@@ -121,6 +121,9 @@ Syntax
121
121
A vehicle can be composed in the following way:
122
122
123
123
124
+ YAML configurations
125
+ ^^^^^^^^^^^^^^^^^^^
126
+
124
127
.. code-block :: yaml
125
128
126
129
# vehicle_definitions_list.yaml
@@ -148,3 +151,77 @@ A vehicle can be composed in the following way:
148
151
149
152
See :assets: `vehicles/controller_params/generic_pickup_truck.yaml ` and :assets: `vehicles/chassis_params/generic_pickup_truck.yaml `.
150
153
154
+
155
+ URDF hierarchy
156
+ ^^^^^^^^^^^^^^
157
+
158
+
159
+ The vehicle urdf requires the following link configuration:
160
+
161
+
162
+ .. code-block :: text
163
+
164
+ base_link
165
+ └── <base_link_connection (joint 0)> chassis
166
+ ├── <front_left_steer_joint (joint 1)> fl_axle
167
+ │ └── <front_left_wheel_joint (joint 2)> front_left_wheel
168
+ ├── <front_right_steer_joint (joint 3)> fr_axle
169
+ │ └── <front_right_wheel_joint (joint 4)> front_right_wheel
170
+ ├── <rear_left_wheel_joint (joint 5)> rear_left_wheel
171
+ └── <rear_right_wheel_joint (joint 6)> rear_right_wheel
172
+
173
+
174
+ In XML this looks like:
175
+
176
+
177
+ .. code-block :: xml
178
+
179
+ <!-- vehicle.urdf-->
180
+ <?xml version =" 1.0" ?>
181
+ <robot xmlns : xacro =" http://ros.org/wiki/xacro" name =" vehicle" >
182
+ <!-- Link order is NOT important.-->
183
+ <link name =" base_link" >...</link >
184
+ <link name =" chassis" >...</link >
185
+ <link name =" fl_axle" >...</link >
186
+ <link name =" fr_axle" >...</link >
187
+ <link name =" front_left_wheel" >...</link >
188
+ <link name =" front_right_wheel" >...</link >
189
+ <link name =" rear_left_wheel" >...</link >
190
+ <link name =" rear_right_wheel" >...</link >
191
+
192
+ <!-- ++++Joint order IS important.++++-->
193
+ <joint name =" base_link_connection" type =" fixed" >
194
+ <parent link =" base_link" />
195
+ <child link =" chassis" />
196
+ </joint >
197
+ <joint name =" front_left_steer_joint" type =" revolute" >
198
+ <parent link =" chassis" />
199
+ <child link =" fl_axle" />
200
+ </joint >
201
+ <joint name =" front_right_steer_joint" type =" revolute" >
202
+ <parent link =" chassis" />
203
+ <child link =" fr_axle" />
204
+ </joint >
205
+ <joint name =" front_left_wheel_joint" type =" continuous" >
206
+ <parent link =" fl_axle" />
207
+ <child link =" front_left_wheel" />
208
+ </joint >
209
+ <joint name =" front_right_wheel_joint" type =" continuous" >
210
+ <parent link =" fr_axle" />
211
+ <child link =" front_right_wheel" />
212
+ </joint >
213
+ <joint name =" rear_left_wheel_joint" type =" continuous" >
214
+ <parent link =" chassis" />
215
+ <child link =" rear_left_wheel" />
216
+ </joint >
217
+ <joint name =" rear_right_wheel_joint" type =" continuous" >
218
+ <parent link =" chassis" />
219
+ <child link =" rear_right_wheel" />
220
+ </joint >
221
+ </robot >
222
+
223
+
224
+ .. note ::
225
+
226
+ Joint name and order is critical. Joints and links in excess of the required joints will not cause problems.
227
+
0 commit comments