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 
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 
59  {
60  probOccupied = 0.5f;
61  visitedCount = 0.0f;
62  reflectedCount = 0.0f;
63  updateIndex = -1;
64  }
65 
66 //protected:
67 
68  float visitedCount;
70  float probOccupied;
72 };
73 
74 
76 {
77 public:
78 
80  {}
81 
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
void updateUnsetFree(ReflectanceCell &cell) const
float getGridProbability(const ReflectanceCell &cell) const
void updateSetFree(ReflectanceCell &cell) const
void updateSetOccupied(ReflectanceCell &cell) const


hector_mapping
Author(s): Stefan Kohlbrecher
autogenerated on Sun Nov 3 2019 03:18:33