Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
<?xml version="1.0" standalone="no" ?>
<MergedConfig>
<default>
<!-- MAPPING SETTINGS -->
<Map>
<!-- Path to a default map file that is loaded at start (e.g. maps/test.map). If value is not set, no map is loaded -->
<value name="sDefaultMapFile" value=""/>
<!-- Size of the map in x and y direction. -->
<!-- Note: the robot's initial pose is in the middle
of the map, so choose an adequate size.
i.e. if you set it to 2000, the map size will be
2000 * 2000 mm and the robot's start position is at (1000, 1000) -->
<!-- Note: values > 50000 may cause segmentation faults -->
<value name="iSize" value="35000"/>
<!-- Size of one cell of the map in mm.
The grid map will be of size iSize/iCellSize+1 -->
<value name="iCellSize" value="50"/>
<!-- Minimum occupancy probability for treating a map pixel as obstacle -->
<value name="fMinObstacleOccupancy" value="0.5"/>
<!-- This variabe is true, if dynamic obstacles are integrated in the map. -->
<value name="bDynamicMapping" value="1"/>
<!-- This variabe is true, if a loaded map shall be updated by the current laserdata.
If it is false, the map is just used for localization. -->
<value name="bUpdateLoadedMap" value="0"/>
<!-- Minimum distance (in mm) between two samples for probability calcualation
Values above 1.0 speed things up, but can result in lower accuracy -->
<value name="fMeasureSamplingStep" value="150.0"/>
<!-- Enable checking to avoid matching front- and backside of obstacles, e.g. walls.
Useful when creating high resolution maps. -->
<value name="bBacksideChecking" value="0"/>
<!-- Leaves a small border around obstacles unchanged when inserting a laser scan.
Useful when creating high resolution maps. -->
<value name="bObstacleBorders" value="1"/>
<!-- Options for map generation based on the sonar sensors -->
<Sonar>
<!-- If the sonar sensors detect an obstacle at a larger distance than this value,
only a free beam is inserted into the map, the position of the detected obstacle
is left blank. -->
<value name="fMaxTrustedObstacleDistance" value="800.0"/>
<!-- Minimal movement of the robot [deg/mm] when inserting a new measurement -->
<value name="fMinMoveAngle" value="2.0"/>
<value name="fMinMoveDistance" value="5.0"/>
<!-- Minimal difference between last and current sonar measurement when inserting -->
<value name="iMinSonarDiff" value="50"/>
</Sonar>
<Geotiff>
<!-- Standard file name for geotiff export
As the filename is printed on the geotiff map, a reasonable filename has to be choosen
During a competition this value should be set for providing backup savings-->
<value name="sStandardFileName" value="Resko.tiff"/>
<!-- Number of necessary observations of a cell to be displayed without transparency.
Transparency is approached via different gray level.-->
<value name="iTrancparencyThreshold" value="10"/>
<!-- Threshold to mark an occupied cell as an obstacle in the geotiff map.
In percentage of reliability. -->
<value name="iObstacleThreshold" value="90"/>
<Visibility>
<!-- 1 if the inaccessible regions shall be displayed in geotiff. -->
<value name="bShowInaccessibleRegions" value="1"/>
<!-- 1 if the navigation map shall be displayed in geotiff. -->
<value name="bShowNavigationMap" value="1"/>
<!-- 1 if the robot path shall be displayed in geotiff. -->
<value name="bShowRobotPath" value="1"/>
<!-- Sizes of the geotiff map.
Attention: all this values influence the map resolution -->
</Visibility>
<Sizes>
<!-- The width (in mm) of one forground grid cell in an exported map. -->
<value name="iGridWidth" value="500"/>
<!-- Thickness of the grid in the background of the explored area in mm -->
<value name="iExploredAreaGrid" value="10"/>
<!-- Size of the victim sign, radius in mm -->
<value name="iVictimLocation" value="350"/>
<!-- Size of the hazard sign, radius in mm -->
<value name="iHazardLocation" value="400"/>
<!-- Thickness of the robot path in mm -->
<value name="iRobotPath" value="20"/>
</Sizes>
<!-- Used color schemas for geotiff export. -->
<ColorSchema>
<NavigationMap>
<value name="iRed" value="160"/>
<value name="iGreen" value="230"/>
<value name="iBlue" value="160"/>
</NavigationMap>
<VictimLocation>
<value name="iRed" value="240"/>
<value name="iGreen" value="10"/>
<value name="iBlue" value="10"/>
</VictimLocation>
<HazardLocation>
<value name="iRed" value="255"/>
<value name="iGreen" value="100"/>
<value name="iBlue" value="30"/>
</HazardLocation>
<InitialRobotPosition>
<value name="iRed" value="250"/>
<value name="iGreen" value="200"/>
<value name="iBlue" value="0"/>
</InitialRobotPosition>
<RobotPath>
<value name="iRed" value="120"/>
<value name="iGreen" value="0"/>
<value name="iBlue" value="140"/>
</RobotPath>
<Obstacle>
<value name="iRed" value="0"/>
<value name="iGreen" value="40"/>
<value name="iBlue" value="120"/>
</Obstacle>
<FileInfo>
<value name="iRed" value="0"/>
<value name="iGreen" value="50"/>
<value name="iBlue" value="140"/>
</FileInfo>
<!-- Checkerbord pattern of two colors in the background of the unexplored region -->
<UnexploredAreaGrid>
<Light>
<value name="iRed" value="170"/>
<value name="iGreen" value="170"/>
<value name="iBlue" value="171"/>
</Light>
<Dark>
<value name="iRed" value="160"/>
<value name="iGreen" value="160"/>
<value name="iBlue" value="161"/>
</Dark>
</UnexploredAreaGrid>
<!-- Grid lines painted in the background in the explored region -->
<ExploredAreaGrid>
<value name="iRed" value="0"/>
<value name="iGreen" value="0"/>
<value name="iBlue" value="1"/>
</ExploredAreaGrid>
</ColorSchema>
</Geotiff>
</Map>
<!-- PARTICLE FILTER SETTINGS -->
<ParticleFilter>
<HyperSlamFilter>
<!-- Number of particle filters to use (hyper particles) -->
<value name="iParticleFilterNum" value="1"/>
<!-- Threshold for deleting particle filters (quotient between best/worst contrast) -->
<value name="fDeletionThreshold" value="0.98"/>
</HyperSlamFilter>
<!-- Number of particles to use -->
<value name="iParticleNum" value="1000"/>
<!-- The maximal rotation if mapping is performed. If the rotation is
bigger, mapping is interrupted.
This value may depend on the computing power, because it is influenced
by the size of time intervals of mapping. 0.35-->
<value name="fMaxRotationPerSecond" value="1.0"/> <!-- 0.55-->
<!-- Minimum time to wait between two mapping/localization steps -->
<value name="iWaitTime" value="500"/>
<!-- The map is only updated when the robot has turned a minimal angle (iUpdateMinMoveAngle),
has moved a minimal distance (iUpdateMinMoveDist) or a maximal time has passed( iMaxUpdateInterval ) -->
<value name="iUpdateMinMoveAngle" value="5"/>
<value name="iUpdateMinMoveDist" value="100"/>
<value name="iMaxUpdateInterval" value="2000"/>
<!-- Handle all incoming sensordata messages (AlwaysDeliver - value="1" - for SLAM benchmark) or only newest messages (keeponlynewest - value="0" - default) -->
<value name="bProcessAllMeasurements" value="0"/>
<!-- ASSUMED ERROR VALUES OF MOTION CALCULATION -->
<ErrorValues>
<!-- Rotation error while rotating in percent - old value: 50 20-->
<value name="fRotationErrorRotating" value="5.0"/>
<!-- Rotation error while translating in degrees per meter - old value: 5 2.0-->
<value name="fRotationErrorTranslating" value="5.0"/>
<!-- Translation error while translating in percent - old value: 15-25-->
<value name="fTranslationErrorTranslating" value="15.0"/>
<!-- Translation error while rotating in mm per degree - old value: 0.0-->
<value name="fTranslationErrorRotating" value="0.0"/>
<!-- Move jitter while turning in mm per degree - old value: 45800-->
<value name="fMoveJitterWhileTurning" value="30000.0"/>
</ErrorValues>
<!-- SETTINGS FOR SCAN MATCHING-->
<!-- SETTINGS FOR SCAN MATCHING-->
<ScanMatching>
<!-- If this variabe is true, scan matching is performed to improve the odometry data.
In a dynamic environment scan matching causes grave errors, especially if the
moving objects are close to the robot -->
<value name="bActivated" value="0"/>
<!-- Ignore odometry if true -->
<value name="bTest" value="0"/>
<!-- Used algorithm for scan matching.
1 = ICP, 2 = IDC, 3 = MbICP -->
<value name="iUsedAlgorithm" value="3"/>
<!-- Minimal point distance after reducing the number of scan points for
scan matching.
Value in mm. Value 0.0 means it is switched off. Standard: 200.0-->
<value name="fReducedPointDist" value="100.0"/>
<!-- Maximal distance of corresponding scan points, which are used
for scan matching. Value in mm. Standard: 300.0-->
<value name="fMaxCorrespondenceDiff" value="300.0"/>
<!-- Difference of scan angles which is considered to find
corresponding scan points for scan matching.
Value in degree. Standard: 90.0-->
<value name="fMaxAngleDiff" value="40.0"/>
<!-- Maximal distance of points in a cluster which is considered in
scan matching. Value in mm. 100.0-->
<value name="fMaxClusterDist" value="100.0"/>
<!-- Minimal diameter of a cluster of scan points which is considered
in scan matching.
Value in mm. Value 1.0 means it is switched of. Standard: 200.0-->
<value name="fMinClusterSize" value="200.0"/> <!--!!!!!!-->
<LineExtraction>
<!-- If this variable is true, the scan matcher works line-based.
If it is false, it works on the raw scan data.-->
<value name="bActivated" value="0"/>
<!-- Maximal distance of two consecutive points of a line -->
<value name="fMaxPointDistance" value="50.0"/>
<!-- Minimal number of points on a line -->
<value name="iMinPointsOnLine" value="10"/>
<!-- Minimal length of a line -->
<value name="fMinLength" value="100.0"/>
<!-- Maximal standard deviation of all points of a line-->
<value name="fMaxSigma" value="15.0"/>
</LineExtraction>
<MbICP>
<!--Factor which influences the behavior of the applied metric distance.
It describes the relation between rotation and translation.
If it is set to inifity, the behaviour of the MbIcpScanMatcher draws near to the IcpScanMatcher.
The value must be > 0. -->
<value name="fMetricFactor" value="1800.0"/>
</MbICP>
</ScanMatching>
</ParticleFilter>
<Kinect>
<!-- Settings for the kinect rgb camera -->
<Camera>
<!-- Note: sColorFormat can be RGB8 or Y8UV8 -->
<value name="sColorFormat" value="RGB8"/>
</Camera>
<!-- Determines whether to use Pointcloud(0) or Image(1) messages to compute our RGBDepthM -->
<value name="bUseImageTransport" value="1" />
<!-- Determines whether to use Image compression for transport of Images
If true(1) be sure to add a compression value (in percent) -->
<value name="bCompressImages" value="0" />
<value name="iCompressionValue" value="100" />
<value name="bSendContinuousDepthData" value="1" />
<!-- Determines how often RGBDepthDataM is updated -->
<value name="iIdleInterval" value="250" />
<value name="iTofIdleInterval" value="50" />
<!-- If set to true, RGBDepthM will be kept for painting and a 3DMap will be created
Always set to false, because of memory usage. -->
<value name="bCreate3DMap" value="0" />
<!-- 1: We are using the kinect instead of Laser Scanner data, affects PeopleTrackingModule (list may be incomplete)-->
<value name="bUseKinect" value="1" />
<value name="bUseKinectTracking" value="0" />
<value name="fTiltAngle" value="0"/>
<!-- If bMaskObstacles is true, then 3D Scan points with height greater
fMinObstacleHeight are marked inaccessible in the map -->
<value name="bMaskObstacles" value="1"/>
<!--value name="fMinObstacleHeight" value="140"/-->
<value name="fMinObstacleHeight" value="70"/>
<!-- Threshold for the maximum distance of points that are candidates as obstacles.
Needed because accuracy of the Kinect is decreasing by distance -->
<value name="fMaxObstacleFromRobotDistance" value="2000"/>
<value name="fMinObstacleFromRobotDistance" value="300"/>
<!-- How long is an obstcle saved after his last appearance in the kinect data -->
<value name="iObstacleSaveTime" value="10"/>
<value name="bDoKinectMappingWithTemporaryObstacles" value="1"/>
<!-- How often must an obstacle appear before it is known as an real obstacle -->
<value name="iObstacleMinAppearance" value="5"/>
</Kinect>
<SelfLocalization>
<value name="fScatterVarXY" value="50"/>
<!-- scattering variance for pose orientation in radiants -->
<value name="fScatterVarTheta" value="0.2"/>
</SelfLocalization>
<LaserScanners>
<SickLMS100>
<!-- Use this device in ActiveLaserScannerModule? -->
<value name="bActiveLaserScanner" value="0"/>
<!-- Is the device used for navigation? -->
<value name="bPassiveScan" value="1"/>
<!-- the ip and port the scanner is providing -->
<value name="sIP" value="169.254.97.144"/>
<value name="iPort" value="2111"/>
<!-- position of laserscanner in robot coordinates in mm -->
<value name="fPositionX" value="240"/>
<value name="fPositionY" value="0.0"/>
<value name="fPositionZ" value="40"/>
<!-- rotation radiuses of laserscanner beam in mm -->
<value name="fRotateRadiusY" value="0"/>
<value name="fRotateRadiusX" value="0"/>
<!-- orientation of laserscanner in robot coordinates
in degrees (counter clockwise) -->
<value name="fOrientation" value="-0.5"/>
<!-- valid maximum range (mm) -->
<value name="iValidMaxRange" value="30000"/>
<!-- valid minimum range (mm) -->
<value name="iValidMinRange" value="150"/>
<!-- minimum distance to be classified as free in case of errorneous measurement -->
<value name="iFreeReadingDistance" value="800"/>
<!-- number of scan points old 541-->
<value name="iScanSteps" value="1081"/>
<!-- scan angle in degrees -->
<value name="fScanAngle" value="270.0"/>
<!-- starting angle of one scan in degrees -->
<value name="fStartAngle" value="-135.0"/>
<value name="fObstacleThreshold" value="10"/>
<value name="iNumOffsetSteps" value="110" />
<value name="iNumBottomOffsetSteps" value="0"/>
<value name="iNumTopOffsetSteps" value="100"/>
<!-- iNumClearSlots for a 270Degree scanner. Only 180 Degree are used. Left and right 45 degree are deaktivated. For 0.5 resolution with 541 scanpoints we will need 90 points at each side masked. For security the Value for 0.5Degree Resolution is 100. If we use a 0.25 resulution we need 45Degree to masked out that means 180 Points + 10 Points security = 190 Points -->
<value name="iNumClearSlots" value="190"/>
<value name="sId" value="FrontLRF"/>
<!-- Set to 1 if scanner is mounted upside down -->
<value name="bMirror" value="1"/>
</SickLMS100>
</LaserScanners>
</default>
<map_manager>
</map_manager>
</MergedConfig>