-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathscuttle.xacro
executable file
·302 lines (282 loc) · 12.2 KB
/
scuttle.xacro
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
<?xml version="1.0" ?>
<robot name="scuttle" xmlns:xacro="http://www.ros.org/wiki/xacro">
<xacro:include filename="$(find scuttle_description)/urdf/materials.xacro" />
<xacro:include filename="$(find scuttle_description)/urdf/scuttle.trans" />
<xacro:include filename="$(find scuttle_description)/urdf/scuttle.gazebo" />
<!--
An empty base link for the following reasons:
- When running a simulation the base link is not allowed to have inertia, but the chassis does need to have
its inertia defined. So the fix is to define a 'dummy' base link.
-->
<link name="base_link">
</link>
<!--
A box that pretends to be the ground. Used for testing that the scuttle model has been assembled correctly.
-->
<!--
<link name="ground_for_testing">
<visual>
<geometry>
<box size="0.5 0.5 0.01"/>
</geometry>
<origin rpy="0 0 0" xyz="0.25 -0.25 -0.005"/>
</visual>
</link>
-->
<!-- The chassis of scuttle -->
<!--
Define the connection between base_link and chassis_link. Relative to base_link the joint
is exactly in the c.o.g of the chassis, because ROS considers the joint frame to be the same
as the child frame.
-->
<joint name="chassis_joint" type="fixed">
<origin rpy="0 0 0" xyz="0.10539999389648432 0 0.084749938964843793"/>
<parent link="base_link"/>
<child link="chassis_link"/>
</joint>
<!--
The coordinate framework has the X-asis in the direction of forward motion, with the y-axis pointing
to the left. This is equivalent to the coordinate system defined by the scuttle kinematics guide.
-->
<link name="chassis_link">
<inertial>
<origin rpy="0 0 0" xyz="0.1 0 0.07392564365565002"/>
<mass value="3.288323846275119"/>
<inertia ixx="0.038876" ixy="1.3e-05" ixz="1e-06" iyy="0.047513" iyz="0.000486" izz="0.084083"/>
</inertial>
<visual>
<!--
The origin of the STL mesh is the center of gravity of the aluminium frame (excluding the
motors etc.). To get it to the correct location it needs to be moved slightly forward and
slightly up.
-->
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<!--
The visual mesh is a high definition mesh for visual purposes only.
Note that the STL mesh is dimensioned in millimeters
-->
<mesh filename="package://scuttle_description/meshes/chassis_link.stl" scale="0.001 0.001 0.001"/>
</geometry>
<material name="silver"/>
</visual>
<collision>
<!--
The origin of the STL mesh is the center of gravity of the aluminium frame (excluding the
motors etc.). To get it to the correct location it needs to be moved slightly forward and
slightly up.
-->
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<!--
The collision mesh is a low definition mesh for collision calculation purposes. It only
describes the outer boundaries of the scuttle chassis.
Note that the STL mesh is dimensioned in millimeters
-->
<mesh filename="package://scuttle_description/meshes/chassis_link_collision.stl" scale="0.001 0.001 0.001"/>
</geometry>
</collision>
</link>
<!--
The left rear wheel. This includes the sprocket for the drive belt.
-->
<joint name="l_wheel_joint" type="continuous">
<origin rpy="0 0 1.570796" xyz="-0.10539999389648432 0.21235 -0.043"/>
<parent link="chassis_link"/>
<child link="l_wheel"/>
<axis xyz="1.0 -0.0 0.0"/>
</joint>
<link name="l_wheel">
<inertial>
<origin rpy="0 0 0" xyz="-0.020325481156161784 -9.763736334427187e-09 4.516951403188418e-09"/>
<mass value="0.5928646271111422"/>
<inertia ixx="0.000334" ixy="0.0" ixz="-0.0" iyy="0.000332" iyz="-0.0" izz="0.000332"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="-0.21235 -0.0 -0.04175"/>
<geometry>
<mesh filename="package://scuttle_description/meshes/l_wheel_1.stl" scale="0.001 0.001 0.001"/>
</geometry>
<material name="blue"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="-0.21235 -0.0 -0.04175"/>
<geometry>
<mesh filename="package://scuttle_description/meshes/l_wheel_collision_1.stl" scale="0.001 0.001 0.001"/>
</geometry>
</collision>
</link>
<!--
The right rear wheel. This includes the sprocket for the drive belt.
-->
<joint name="r_wheel_joint" type="continuous">
<origin rpy="0 0 1.570796" xyz="-0.10539999389648432 -0.21235 -0.043"/>
<parent link="chassis_link"/>
<child link="r_wheel"/>
<axis xyz="1.0 0.0 -0.0"/>
</joint>
<link name="r_wheel">
<inertial>
<origin rpy="0 0 0" xyz="0.020325563043213257 1.3954236146756306e-08 2.0353343177514915e-09"/>
<mass value="0.592867092340216"/>
<inertia ixx="0.000334" ixy="0.0" ixz="0.0" iyy="0.000332" iyz="-0.0" izz="0.000332"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0.21215 0.0 -0.04175"/>
<geometry>
<mesh filename="package://scuttle_description/meshes/r_wheel_1.stl" scale="0.001 0.001 0.001"/>
</geometry>
<material name="blue"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0.21215 0.0 -0.04175"/>
<geometry>
<mesh filename="package://scuttle_description/meshes/r_wheel_collision_1.stl" scale="0.001 0.001 0.001"/>
</geometry>
</collision>
</link>
<!--
The swivel unit for the left caster
-->
<joint name="l_caster_swivel_joint" type="continuous">
<origin rpy="0 0 1.570796" xyz="0.149015 0.119015 -0.025468"/>
<parent link="chassis_link"/>
<child link="l_caster_swivel"/>
<axis xyz="0.0 0.0 1.0"/>
</joint>
<link name="l_caster_swivel">
<inertial>
<origin rpy="0 0 0" xyz="-0.0002554502352885568 0.010633952722858359 -0.012968467515129908"/>
<mass value="0.02074189648802402"/>
<inertia ixx="7e-06" ixy="0.0" ixz="0.0" iyy="8e-06" iyz="1e-06" izz="9e-06"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0.119279 0.254415 -0.059282"/>
<geometry>
<mesh filename="package://scuttle_description/meshes/r_caster_swivel_1.stl" scale="0.001 0.001 0.001"/>
</geometry>
<material name="silver"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0.119279 0.254415 -0.059282"/>
<geometry>
<mesh filename="package://scuttle_description/meshes/r_caster_swivel_collision_1.stl" scale="0.001 0.001 0.001"/>
</geometry>
</collision>
</link>
<!--
The wheel for the left caster
-->
<joint name="l_caster_wheel_joint" type="continuous">
<origin rpy="0 0 0" xyz="-0.017792 0.024 -0.034"/>
<parent link="l_caster_swivel"/>
<child link="l_caster_wheel"/>
<axis xyz="1.0 0.0 -0.0"/>
</joint>
<link name="l_caster_wheel">
<inertial>
<origin rpy="0 0 0" xyz="0.0160002016389222 -1.6368916427866864e-07 -7.02880924990934e-08"/>
<mass value="0.03841110590847018"/>
<inertia ixx="1.2e-05" ixy="0.0" ixz="-0.0" iyy="7e-06" iyz="0.0" izz="7e-06"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="-0.101223 0.230415 -0.025282"/>
<geometry>
<mesh filename="package://scuttle_description/meshes/l_caster_wheel_1.stl" scale="0.001 0.001 0.001"/>
</geometry>
<material name="blue"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="-0.101223 0.230415 -0.025282"/>
<geometry>
<mesh filename="package://scuttle_description/meshes/l_caster_wheel_collision_1.stl" scale="0.001 0.001 0.001"/>
</geometry>
</collision>
</link>
<!--
The swivel unit for the right caster
-->
<joint name="r_caster_swivel_joint" type="continuous">
<origin rpy="0 0 1.570796" xyz="0.149015 -0.119015 -0.025468"/>
<parent link="chassis_link"/>
<child link="r_caster_swivel"/>
<axis xyz="0.0 -0.0 1.0"/>
</joint>
<link name="r_caster_swivel">
<inertial>
<origin rpy="0 0 0" xyz="-0.00025520971284771765 0.010633952722903461 -0.012968467515129777"/>
<mass value="0.02074189648802399"/>
<inertia ixx="7e-06" ixy="0.0" ixz="0.0" iyy="8e-06" iyz="1e-06" izz="9e-06"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="-0.119015 0.254415 -0.059282"/>
<geometry>
<mesh filename="package://scuttle_description/meshes/l_caster_swivel_1.stl" scale="0.001 0.001 0.001"/>
</geometry>
<material name="silver"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="-0.119015 0.254415 -0.059282"/>
<geometry>
<mesh filename="package://scuttle_description/meshes/l_caster_swivel_collision_1.stl" scale="0.001 0.001 0.001"/>
</geometry>
</collision>
</link>
<!--
The wheel for the right caster
-->
<joint name="r_caster_wheel_joint" type="continuous">
<origin rpy="0 0 0" xyz="0.014208 0.024 -0.034"/>
<parent link="r_caster_swivel"/>
<child link="r_caster_wheel"/>
<axis xyz="-1.0 -0.0 0.0"/>
</joint>
<link name="r_caster_wheel">
<inertial>
<origin rpy="0 0 0" xyz="-0.016000038883518655 -1.6368920854881175e-07 -7.028809271419911e-08"/>
<mass value="0.03841110590847031"/>
<inertia ixx="1.2e-05" ixy="-0.0" ixz="0.0" iyy="7e-06" iyz="0.0" izz="7e-06"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0.105071 0.230415 -0.025282"/>
<geometry>
<mesh filename="package://scuttle_description/meshes/r_caster_wheel_1.stl" scale="0.001 0.001 0.001"/>
</geometry>
<material name="blue"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0.105071 0.230415 -0.025282"/>
<geometry>
<mesh filename="package://scuttle_description/meshes/r_caster_wheel_collision_1.stl" scale="0.001 0.001 0.001"/>
</geometry>
</collision>
</link>
<!--
The LIDAR unit. This is attached to the rear extrusion on the chassis.
-->
<joint name="lidar" type="fixed">
<origin rpy="0 0 3.141592" xyz="-0.077900 0.0 0.024850"/>
<parent link="chassis_link"/>
<child link="lidar_1"/>
</joint>
<link name="lidar_1">
<inertial>
<origin rpy="0 0 0" xyz="-0.0010241190327231165 -0.0008953477993804172 0.009594767416774092"/>
<mass value="0.07327266108520486"/>
<inertia ixx="2.5e-05" ixy="1e-06" ixz="0.0" iyy="2.5e-05" iyz="0.0" izz="4.4e-05"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="-0.0 0.0275 -0.1096"/>
<geometry>
<mesh filename="package://scuttle_description/meshes/lidar_1.stl" scale="0.001 0.001 0.001"/>
</geometry>
<material name="gray"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="-0.0 0.0275 -0.1096"/>
<geometry>
<mesh filename="package://scuttle_description/meshes/lidar_1.stl" scale="0.001 0.001 0.001"/>
</geometry>
</collision>
</link>
</robot>