Newer
Older
Niklas Yann Wettengel
committed
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
# map_messages
## Introduction
Dieses Package enthält alle benutzerdefinierten Messages, die neben den in ROS enthaltenen Messages für das Mapping und die Navigation verwendet werden. Das Package enthält keine Node oder Librabries.
## Messages
### PointOfInterest
Die PointOfInterest-Message enthält alle Informationen, um einen POI zu erstellen, zu verschicken und zu speichern.
~~~~~~ {.cpp}
PointOfInterest.msg
int32 DEFAULT=100
int32 VICTIM=200
int32 OBJECT=300
int32 GRIPPABLE_OBJECT=400
int32 PERSON=600
int32 ROOMBA=700
int32 HAZARD_MATERIAL=800
int32 START_POSITION=900
int32 START_ORIENTATION=1000
int32 type
string name
string remarks
geometry_msgs/Pose pose
~~~~~~
* `type` bezeichnet den Typ des POIs. Es kann eine der in dieser Message vorhandenen Konstanten verwendet werden.
* `name` bezeichnet den Namen des POIs. Dieser Name muss einzigartig sein, da die POIs über ihren Namen unterschieden werden.
* `remarks`: Hier können Anmerkungen reingeschrieben werden. Diese werden in der GUI angezeigt.
* `pose` bezeichnet die Position und Orientierung des POIS im /map-Frame.
### ModifyPOI
ModifyPOI ist dafür zuständig, einen vorhandenen POI zu verändern.
~~~~~~ {.cpp}
ModifyPOI.msg
PointOfInterest poi
string old_name
~~~~~~
* `poi` beinhaltet den POI, durch den der alte ersetzt werden soll.
* `old_name` bezeichnet den Namen des POIs, der verändert werden soll.
### TargetUnreachable
TargetUnreachable wird von der Navigation versendet, sobald kein Pfad mehr zu einem Ziel geplant werden kann.
~~~~~~ {.cpp}
TargetUnreachable.msg
int8 UNKNOWN=0
int8 TILT_OCCURED=10
int8 GRAVE_TILT_OCCURED=15
int8 STALL_OCCURED=20
int8 LASER_OBSTACLE=30
int8 reason
~~~~~~
* `reason` kann einen von den in dieser Message definierten Konstanten annehmen und beschreibt den Grund des Fehlers.
### SaveMap
SaveMap wird versendet, wenn eine Karte gespeichert oder geladen werden soll und beinhaltet den Dateipfad zum Kartenordner.
~~~~~~ {.cpp}
SaveMap.msg
string filename
~~~~~~
* `filename` bezeichnet den Dateipfad zum Kartenordner.
### PointsOfInterest
PointsOfInterest wird verwendet, um alle aktuellen POIs zu versenden.
~~~~~~ {.cpp}
PointsOfInterest.msg
PointOfInterest[] pois
~~~~~~
* `pois` beinhaltet einen Vektor mit allen aktuellen POIs.
### StartNavigation
StartNavigation ist eine von zwei Methoden, um eine Navigation zu starten. Hier wird Der POI mitgegeben, zu dem der Roboter navigieren soll.
~~~~~~ {.cpp}
StartNavigation.msg
geometry_msgs/Pose goal
float32 distance_to_target
bool skip_final_turn
bool fast_planning
~~~~~~
* `goal` beinhaltet den Ziel-POI
* `distance_to_target`: Hier kann angegeben werden, ab welcher Distanz zum Ziel die Navigation als erfolgreich abgeschlossen wird.
* `skip_final_turn`: Hier kann eingestellt werden, ob der Roboter sich am Ziel-POI in Richtund der POI-Orientierung ausrichten soll oder nicht.
* `fast_planning`: Mit dieser Option kann ein experimentelles "Schnelles Planen" eingeschaltet werden. Es werden nur Pfade geplant, die sich in einer Boundingbox zwischen Roboter und Zielposition befinden.
### MapLayers
MapLayers definiert die vorhanden Kartenebenen als Konstanten und kann zudem verwendet werden, um einzelne Ebenen ein- oder auszuschalten.
~~~~~~ {.cpp}
MapLayers.msg
int32 SLAM_LAYER=0
int32 MASKING_LAYER=1
int32 KINECT_LAYER=2
int32 SICK_LAYER=3
int32 layer
bool state
~~~~~~
* `layer` enthält die Kartenebenen-ID und kann einen Wert dern in dieser Message definierten Konstanten annehmen.
* `state` besagt, ob die ausgewählte Kartenebene aktiviert sein soll.
### NavigateToPOI
NavigateToPOI ist die zweite Art eine Navigation zu starten. Anstatt das gesamte POI-Objekt mitzugeben, wird nur der Name eines bereits im map_manger vorhandenen POIs mitgegeben, der daraufhin von der Navigation nachgeschlagen wird.
~~~~~~ {.cpp}
NavigateToPOI.msg
string poi_name
float32 distance_to_target
bool skip_final_turn
~~~~~~
* `poi_name` beschreibt den Namen des POIS, zu dem navigiert werden soll.
* `distance_to_target` siehe StartNavigation
* `skip_final_turn` siehe StartNavigation
### ModifyMap
Mit dieser Message können Bereiche in einzelnen Kartenebenen verändert werden.
~~~~~~ {.cpp}
ModifyMap.msg
int32 FREE = 0
int32 BLOCKED = 100
int32 OBSTACLE = 99
int32 NOT_MASKED = -1
geometry_msgs/Point[] region
int32 maskAction
int32 mapLayer
~~~~~~
* `region` beschreibt die Eckpunkte des Polygons, das maskiert werden soll.
* `maskAction` kann einen Wert der in dieser Message definierten Konstanten annehmen. OBSTACLE wird in der Karte rot dargestellt. Mit NOT_MASKED können bereits maskierte Bereiche wieder gelöscht werden.
* `mapLayer` enthält die ID der zu verändernden Kartenebene. Die IDs sind in der Message MapLayers definiert.
### DeletePointOfInterest
Löscht einen vorhandenen POI.
~~~~~~ {.cpp}
DeletePointOfInterest.msg
string name
~~~~~~
* `name` beschreibt den Namen des zu löschenden POIs.
### DoMapping
Mit dieser Message kann das Mapping ein- oder ausgeschaltet werden.
~~~~~~ {.cpp}
DoMapping.msg
bool state
~~~~~~
* `state` beinhaltet den Zustand des Mappings (true = an, false = off).
## Services
### GetPointsOfInterest
Über diesen Service kann die aktuelle Liste der POIs angefordert werden.
~~~~~~ {.cpp}
GetPointsOfInterest.srv
---
PointsOfInterest poi_list
~~~~~~
* `poi_list` beinhaltet einen Vektor mit allen aktuellen POIs.