Skip to content

Commit 5f38f7c

Browse files
committed
Describe how to structure a new urdf vehicle.
1 parent cbd0ceb commit 5f38f7c

File tree

1 file changed

+77
-0
lines changed

1 file changed

+77
-0
lines changed

docs/sim/vehicle.rst

+77
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,9 @@ Syntax
121121
A vehicle can be composed in the following way:
122122

123123

124+
YAML configurations
125+
^^^^^^^^^^^^^^^^^^^
126+
124127
.. code-block:: yaml
125128
126129
# vehicle_definitions_list.yaml
@@ -148,3 +151,77 @@ A vehicle can be composed in the following way:
148151

149152
See :assets:`vehicles/controller_params/generic_pickup_truck.yaml` and :assets:`vehicles/chassis_params/generic_pickup_truck.yaml`.
150153

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

Comments
 (0)