Main Page
Namespaces
Classes
Files
File List
File Members
include
hector_slam_lib
map
GridMapReflectanceCount.h
Go to the documentation of this file.
1
//=================================================================================================
2
// Copyright (c) 2011, Stefan Kohlbrecher, TU Darmstadt
3
// All rights reserved.
4
5
// Redistribution and use in source and binary forms, with or without
6
// modification, are permitted provided that the following conditions are met:
7
// * Redistributions of source code must retain the above copyright
8
// notice, this list of conditions and the following disclaimer.
9
// * Redistributions in binary form must reproduce the above copyright
10
// notice, this list of conditions and the following disclaimer in the
11
// documentation and/or other materials provided with the distribution.
12
// * Neither the name of the Simulation, Systems Optimization and Robotics
13
// group, TU Darmstadt nor the names of its contributors may be used to
14
// endorse or promote products derived from this software without
15
// specific prior written permission.
16
17
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
18
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
21
// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24
// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
//=================================================================================================
28
29
#ifndef __GridMapReflectanceCount_h_
30
#define __GridMapReflectanceCount_h_
31
35
class
ReflectanceCell
36
{
37
public
:
38
39
void
set
(
float
val)
40
{
41
probOccupied
= val;
42
}
43
44
float
getValue
()
const
45
{
46
return
probOccupied
;
47
}
48
49
bool
isOccupied
()
const
50
{
51
return
probOccupied
> 0.5f;
52
}
53
54
bool
isFree
()
const
{
55
return
probOccupied
< 0.5f;
56
}
57
58
void
resetGridCell
()
59
{
60
probOccupied
= 0.5f;
61
visitedCount
= 0.0f;
62
reflectedCount
= 0.0f;
63
updateIndex
= -1;
64
}
65
66
//protected:
67
68
float
visitedCount
;
69
float
reflectedCount
;
70
float
probOccupied
;
71
int
updateIndex
;
72
};
73
74
75
class
GridMapReflectanceFunctions
76
{
77
public
:
78
79
GridMapReflectanceFunctions
()
80
{}
81
82
void
updateSetOccupied
(
ReflectanceCell
& cell)
const
83
{
84
++cell.
reflectedCount
;
85
++cell.
visitedCount
;
86
cell.
probOccupied
= cell.
reflectedCount
/ cell.
visitedCount
;
87
}
88
89
void
updateSetFree
(
ReflectanceCell
& cell)
const
90
{
91
++cell.
visitedCount
;
92
cell.
probOccupied
= cell.
reflectedCount
/ cell.
visitedCount
;
93
}
94
95
void
updateUnsetFree
(
ReflectanceCell
& cell)
const
96
{
97
--cell.
visitedCount
;
98
cell.
probOccupied
= cell.
reflectedCount
/ cell.
visitedCount
;
99
}
100
101
float
getGridProbability
(
const
ReflectanceCell
& cell)
const
102
{
103
return
cell.
probOccupied
;
104
}
105
106
protected
:
107
108
};
109
110
111
#endif
ReflectanceCell::probOccupied
float probOccupied
Definition:
GridMapReflectanceCount.h:70
GridMapReflectanceFunctions::updateUnsetFree
void updateUnsetFree(ReflectanceCell &cell) const
Definition:
GridMapReflectanceCount.h:95
ReflectanceCell::isOccupied
bool isOccupied() const
Definition:
GridMapReflectanceCount.h:49
GridMapReflectanceFunctions::GridMapReflectanceFunctions
GridMapReflectanceFunctions()
Definition:
GridMapReflectanceCount.h:79
ReflectanceCell
Definition:
GridMapReflectanceCount.h:35
GridMapReflectanceFunctions::getGridProbability
float getGridProbability(const ReflectanceCell &cell) const
Definition:
GridMapReflectanceCount.h:101
GridMapReflectanceFunctions::updateSetFree
void updateSetFree(ReflectanceCell &cell) const
Definition:
GridMapReflectanceCount.h:89
ReflectanceCell::visitedCount
float visitedCount
Definition:
GridMapReflectanceCount.h:68
ReflectanceCell::reflectedCount
float reflectedCount
Definition:
GridMapReflectanceCount.h:69
GridMapReflectanceFunctions::updateSetOccupied
void updateSetOccupied(ReflectanceCell &cell) const
Definition:
GridMapReflectanceCount.h:82
GridMapReflectanceFunctions
Definition:
GridMapReflectanceCount.h:75
ReflectanceCell::resetGridCell
void resetGridCell()
Definition:
GridMapReflectanceCount.h:58
ReflectanceCell::getValue
float getValue() const
Definition:
GridMapReflectanceCount.h:44
ReflectanceCell::updateIndex
int updateIndex
Definition:
GridMapReflectanceCount.h:71
ReflectanceCell::isFree
bool isFree() const
Definition:
GridMapReflectanceCount.h:54
hector_mapping
Author(s): Stefan Kohlbrecher
autogenerated on Sun Nov 3 2019 03:18:33