|
7 | 7 | format. It supports PR2 extensions (transmission) but not the |
8 | 8 | Gazebo ones. |
9 | 9 |
|
10 | | - --> |
11 | | -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" |
12 | | - elementFormDefault="unqualified"> |
13 | | - |
| 10 | +--> |
| 11 | +<xs:schema |
| 12 | + xmlns:xs="http://www.w3.org/2001/XMLSchema" |
| 13 | + elementFormDefault="unqualified" |
| 14 | +> |
14 | 15 | <!-- data type definitions --> |
15 | 16 | <xs:simpleType name="JointType"> |
16 | 17 | <xs:restriction base="xs:string"> |
17 | | - <xs:enumeration value="revolute"/> |
18 | | - <xs:enumeration value="continuous"/> |
19 | | - <xs:enumeration value="prismatic"/> |
20 | | - <xs:enumeration value="fixed"/> |
21 | | - <xs:enumeration value="floating"/> |
22 | | - <xs:enumeration value="planar"/> |
| 18 | + <xs:enumeration value="revolute" /> |
| 19 | + <xs:enumeration value="continuous" /> |
| 20 | + <xs:enumeration value="prismatic" /> |
| 21 | + <xs:enumeration value="fixed" /> |
| 22 | + <xs:enumeration value="floating" /> |
| 23 | + <xs:enumeration value="planar" /> |
23 | 24 | </xs:restriction> |
24 | 25 | </xs:simpleType> |
25 | 26 |
|
|
44 | 45 | <xs:attribute name="name" type="xs:string" /> |
45 | 46 | </xs:complexType> |
46 | 47 |
|
47 | | - |
48 | 48 | <!-- mass node type --> |
49 | 49 | <xs:complexType name="mass"> |
50 | 50 | <!-- FIXME: is value optional? --> |
|
65 | 65 | <!-- inertial node type --> |
66 | 66 | <xs:complexType name="inertial"> |
67 | 67 | <xs:all> |
68 | | - <xs:element name="origin" |
69 | | - type="pose" minOccurs="0" maxOccurs="1" /> |
70 | | - <xs:element name="mass" |
71 | | - type="mass" minOccurs="0" maxOccurs="1" /> |
72 | | - <xs:element name="inertia" |
73 | | - type="inertia" minOccurs="0" maxOccurs="1" /> |
| 68 | + <xs:element name="origin" type="pose" minOccurs="0" maxOccurs="1" /> |
| 69 | + <xs:element name="mass" type="mass" minOccurs="0" maxOccurs="1" /> |
| 70 | + <xs:element name="inertia" type="inertia" minOccurs="0" maxOccurs="1" /> |
74 | 71 | </xs:all> |
75 | 72 | </xs:complexType> |
76 | 73 |
|
|
129 | 126 | <xs:attribute name="name" type="xs:string" use="required" /> |
130 | 127 | </xs:complexType> |
131 | 128 |
|
132 | | - |
133 | 129 | <!-- visual node type --> |
134 | 130 | <xs:complexType name="visual"> |
135 | 131 | <xs:sequence> |
136 | | - <xs:element name="origin" |
137 | | - type="pose" minOccurs="0" maxOccurs="1" /> |
138 | | - <xs:element name="geometry" |
139 | | - type="geometry" minOccurs="1" maxOccurs="1" /> |
140 | | - <xs:element name="material" |
141 | | - type="material" minOccurs="0" maxOccurs="1" /> |
| 132 | + <xs:element name="origin" type="pose" minOccurs="0" maxOccurs="1" /> |
| 133 | + <xs:element name="geometry" type="geometry" minOccurs="1" maxOccurs="1" /> |
| 134 | + <xs:element name="material" type="material" minOccurs="0" maxOccurs="1" /> |
142 | 135 | </xs:sequence> |
143 | 136 | </xs:complexType> |
144 | 137 |
|
145 | 138 | <!-- collision node type --> |
146 | 139 | <xs:complexType name="collision"> |
147 | 140 | <xs:sequence> |
148 | | - <xs:element name="origin" |
149 | | - type="pose" minOccurs="0" maxOccurs="1" /> |
150 | | - <xs:element name="geometry" |
151 | | - type="geometry" minOccurs="1" maxOccurs="1" /> |
152 | | - <xs:element name="verbose" |
153 | | - type="verbose" minOccurs="0" maxOccurs="1" /> |
| 141 | + <xs:element name="origin" type="pose" minOccurs="0" maxOccurs="1" /> |
| 142 | + <xs:element name="geometry" type="geometry" minOccurs="1" maxOccurs="1" /> |
| 143 | + <xs:element name="verbose" type="verbose" minOccurs="0" maxOccurs="1" /> |
154 | 144 | </xs:sequence> |
155 | 145 | <xs:attribute name="name" type="xs:string" /> |
156 | 146 | </xs:complexType> |
|
168 | 158 | <xs:attribute name="type" type="xs:string" /> |
169 | 159 | </xs:complexType> |
170 | 160 |
|
171 | | - |
172 | 161 | <!-- parent node type --> |
173 | 162 | <xs:complexType name="parent"> |
174 | 163 | <xs:attribute name="link" type="xs:string" use="required" /> |
|
186 | 175 |
|
187 | 176 | <!-- calibration node type --> |
188 | 177 | <xs:complexType name="calibration"> |
189 | | - <xs:attribute name="reference_position" type="xs:double"/> |
190 | | - <xs:attribute name="rising" type="xs:double"/> |
191 | | - <xs:attribute name="falling" type="xs:double"/> |
| 178 | + <xs:attribute name="reference_position" type="xs:double" /> |
| 179 | + <xs:attribute name="rising" type="xs:double" /> |
| 180 | + <xs:attribute name="falling" type="xs:double" /> |
192 | 181 | </xs:complexType> |
193 | 182 |
|
194 | 183 | <!-- dynamics node type --> |
|
250 | 239 | <!-- transmission node type --> |
251 | 240 | <xs:complexType name="transmission"> |
252 | 241 | <xs:sequence minOccurs="0" maxOccurs="unbounded"> |
253 | | - <xs:element name="leftActuator" |
254 | | - type="actuator_transmission" minOccurs="0" maxOccurs="1" /> |
255 | | - <xs:element name="rightActuator" |
256 | | - type="actuator_transmission" minOccurs="0" maxOccurs="1" /> |
257 | | - <xs:element name="flexJoint" |
258 | | - type="actuator_transmission" minOccurs="0" maxOccurs="1" /> |
259 | | - <xs:element name="rollJoint" |
260 | | - type="actuator_transmission" minOccurs="0" maxOccurs="1" /> |
261 | | - <xs:element name="gap_joint" |
262 | | - type="gap_joint_transmission" minOccurs="0" maxOccurs="1" /> |
263 | | - <xs:element name="passive_joint" |
264 | | - type="passive_joint_transmission" minOccurs="0" maxOccurs="unbounded" /> |
265 | | - <xs:element name="use_simulated_gripper_joint" minOccurs="0" maxOccurs="1"> |
266 | | - <xs:complexType> |
267 | | - </xs:complexType> |
| 242 | + <xs:element |
| 243 | + name="leftActuator" |
| 244 | + type="actuator_transmission" |
| 245 | + minOccurs="0" |
| 246 | + maxOccurs="1" |
| 247 | + /> |
| 248 | + <xs:element |
| 249 | + name="rightActuator" |
| 250 | + type="actuator_transmission" |
| 251 | + minOccurs="0" |
| 252 | + maxOccurs="1" |
| 253 | + /> |
| 254 | + <xs:element |
| 255 | + name="flexJoint" |
| 256 | + type="actuator_transmission" |
| 257 | + minOccurs="0" |
| 258 | + maxOccurs="1" |
| 259 | + /> |
| 260 | + <xs:element |
| 261 | + name="rollJoint" |
| 262 | + type="actuator_transmission" |
| 263 | + minOccurs="0" |
| 264 | + maxOccurs="1" |
| 265 | + /> |
| 266 | + <xs:element |
| 267 | + name="gap_joint" |
| 268 | + type="gap_joint_transmission" |
| 269 | + minOccurs="0" |
| 270 | + maxOccurs="1" |
| 271 | + /> |
| 272 | + <xs:element |
| 273 | + name="passive_joint" |
| 274 | + type="passive_joint_transmission" |
| 275 | + minOccurs="0" |
| 276 | + maxOccurs="unbounded" |
| 277 | + /> |
| 278 | + <xs:element |
| 279 | + name="use_simulated_gripper_joint" |
| 280 | + minOccurs="0" |
| 281 | + maxOccurs="1" |
| 282 | + > |
| 283 | + <xs:complexType /> |
268 | 284 | </xs:element> |
269 | | - <xs:element name="mechanicalReduction" type="xs:double" |
270 | | - minOccurs="0" maxOccurs="1" /> |
| 285 | + <xs:element |
| 286 | + name="mechanicalReduction" |
| 287 | + type="xs:double" |
| 288 | + minOccurs="0" |
| 289 | + maxOccurs="1" |
| 290 | + /> |
271 | 291 |
|
272 | 292 | <xs:element name="actuator" type="name" minOccurs="0" maxOccurs="1" /> |
273 | 293 | <xs:element name="joint" type="name" minOccurs="0" maxOccurs="1" /> |
|
289 | 309 | <!-- camera node type --> |
290 | 310 | <xs:complexType name="camera"> |
291 | 311 | <xs:sequence> |
292 | | - <xs:element name="image" |
293 | | - type="image" minOccurs="0" maxOccurs="1" /> |
| 312 | + <xs:element name="image" type="image" minOccurs="0" maxOccurs="1" /> |
294 | 313 | </xs:sequence> |
295 | 314 | </xs:complexType> |
296 | 315 |
|
297 | 316 | <!-- horizontal ray node type --> |
298 | 317 | <xs:complexType name="LaserRay"> |
299 | 318 | <xs:attribute name="samples" type="xs:unsignedInt" default="1" /> |
300 | | - <xs:attribute name="resolution" type="xs:unsignedInt" default="1"/> |
| 319 | + <xs:attribute name="resolution" type="xs:unsignedInt" default="1" /> |
301 | 320 | <xs:attribute name="min_angle" type="xs:double" default="0" /> |
302 | 321 | <xs:attribute name="max_angle" type="xs:double" default="0" /> |
303 | 322 | </xs:complexType> |
304 | 323 |
|
305 | 324 | <!-- ray node type --> |
306 | 325 | <xs:complexType name="ray"> |
307 | 326 | <xs:sequence> |
308 | | - <xs:element name="horizontal" |
309 | | - type="LaserRay" minOccurs="0" maxOccurs="1" /> |
310 | | - <xs:element name="vertical" |
311 | | - type="LaserRay" minOccurs="0" maxOccurs="1" /> |
| 327 | + <xs:element |
| 328 | + name="horizontal" |
| 329 | + type="LaserRay" |
| 330 | + minOccurs="0" |
| 331 | + maxOccurs="1" |
| 332 | + /> |
| 333 | + <xs:element name="vertical" type="LaserRay" minOccurs="0" maxOccurs="1" /> |
312 | 334 | </xs:sequence> |
313 | 335 | </xs:complexType> |
314 | 336 |
|
315 | 337 | <!-- sensor node type --> |
316 | 338 | <xs:complexType name="sensor"> |
317 | 339 | <xs:sequence> |
318 | | - <xs:element name="origin" |
319 | | - type="pose" minOccurs="0" maxOccurs="1" /> |
320 | | - <xs:element name="parent" |
321 | | - type="parent" minOccurs="1" maxOccurs="1" /> |
| 340 | + <xs:element name="origin" type="pose" minOccurs="0" maxOccurs="1" /> |
| 341 | + <xs:element name="parent" type="parent" minOccurs="1" maxOccurs="1" /> |
322 | 342 | <xs:choice> |
323 | | - <xs:element name="camera" type="camera" minOccurs="0" maxOccurs="1"/> |
| 343 | + <xs:element name="camera" type="camera" minOccurs="0" maxOccurs="1" /> |
324 | 344 | <xs:element name="ray" type="ray" minOccurs="0" maxOccurs="1" /> |
325 | 345 | </xs:choice> |
326 | 346 | </xs:sequence> |
327 | 347 | <xs:attribute name="name" type="xs:string" use="required" /> |
328 | 348 | <xs:attribute name="update_rate" type="xs:string" /> |
329 | 349 | </xs:complexType> |
330 | 350 |
|
331 | | - <xs:complexType name="gazebo"> |
332 | | - <!-- Allow any content within gazebo --> |
333 | | - <!-- for Gazebo Classic: |
| 351 | + <xs:complexType name="gazebo"> |
| 352 | + <!-- Allow any content within gazebo --> |
| 353 | + <!-- for Gazebo Classic: |
334 | 354 | https://classic.gazebosim.org/tutorials?tut=ros_urdf&cat=connect_ros --> |
335 | | - <!-- for newest Gazebo: |
| 355 | + <!-- for newest Gazebo: |
336 | 356 | http://sdformat.org/tutorials?tut=sdformat_urdf_extensions&cat=specification&--> |
337 | | - <xs:sequence> |
338 | | - <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" /> |
339 | | - </xs:sequence> |
340 | | - </xs:complexType> |
| 357 | + <xs:sequence> |
| 358 | + <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" /> |
| 359 | + </xs:sequence> |
| 360 | + </xs:complexType> |
341 | 361 |
|
342 | 362 | <!-- joint node type --> |
343 | 363 | <xs:complexType name="joint"> |
344 | 364 | <xs:all> |
345 | | - <xs:element name="origin" |
346 | | - type="pose" minOccurs="0" maxOccurs="1" /> |
347 | | - <xs:element name="parent" |
348 | | - type="parent" minOccurs="1" maxOccurs="1" /> |
349 | | - <xs:element name="child" |
350 | | - type="child" minOccurs="1" maxOccurs="1" /> |
351 | | - <xs:element name="axis" |
352 | | - type="axis" minOccurs="0" maxOccurs="1" /> |
353 | | - <xs:element name="calibration" |
354 | | - type="calibration" minOccurs="0" maxOccurs="1" /> |
355 | | - <xs:element name="dynamics" |
356 | | - type="dynamics" minOccurs="0" maxOccurs="1" /> |
357 | | - <xs:element name="limit" |
358 | | - type="limit" minOccurs="0" maxOccurs="1" /> |
359 | | - <xs:element name="safety_controller" |
360 | | - type="safety_controller" minOccurs="0" maxOccurs="1" /> |
361 | | - <xs:element name="mimic" |
362 | | - type="mimic" minOccurs="0" maxOccurs="1" /> |
| 365 | + <xs:element name="origin" type="pose" minOccurs="0" maxOccurs="1" /> |
| 366 | + <xs:element name="parent" type="parent" minOccurs="1" maxOccurs="1" /> |
| 367 | + <xs:element name="child" type="child" minOccurs="1" maxOccurs="1" /> |
| 368 | + <xs:element name="axis" type="axis" minOccurs="0" maxOccurs="1" /> |
| 369 | + <xs:element |
| 370 | + name="calibration" |
| 371 | + type="calibration" |
| 372 | + minOccurs="0" |
| 373 | + maxOccurs="1" |
| 374 | + /> |
| 375 | + <xs:element name="dynamics" type="dynamics" minOccurs="0" maxOccurs="1" /> |
| 376 | + <xs:element name="limit" type="limit" minOccurs="0" maxOccurs="1" /> |
| 377 | + <xs:element |
| 378 | + name="safety_controller" |
| 379 | + type="safety_controller" |
| 380 | + minOccurs="0" |
| 381 | + maxOccurs="1" |
| 382 | + /> |
| 383 | + <xs:element name="mimic" type="mimic" minOccurs="0" maxOccurs="1" /> |
363 | 384 | </xs:all> |
364 | 385 | <xs:attribute name="name" type="xs:string" use="required" /> |
365 | 386 | <xs:attribute name="type" type="JointType" use="required" /> |
|
369 | 390 | <xs:element name="robot"> |
370 | 391 | <xs:complexType> |
371 | 392 | <xs:sequence minOccurs="0" maxOccurs="unbounded"> |
372 | | - <xs:element name="joint" |
373 | | - type="joint" minOccurs="0" maxOccurs="unbounded" /> |
374 | | - <xs:element name="link" |
375 | | - type="link" minOccurs="0" maxOccurs="unbounded" /> |
376 | | - |
377 | | - <!-- FIXME: this is used but undocumented --> |
378 | | - <xs:element name="material" |
379 | | - type="material_global" minOccurs="0" maxOccurs="unbounded" /> |
380 | | - |
381 | | - <!-- FIXME: this is used but undocumented --> |
382 | | - <xs:element name="transmission" |
383 | | - type="transmission" minOccurs="0" maxOccurs="unbounded" /> |
384 | | - |
385 | | - <!-- FIXME: gazebo extension not supported --> |
386 | | - <xs:element name="gazebo" |
387 | | - type="gazebo" minOccurs="0" maxOccurs="unbounded" /> |
388 | | - |
389 | | - <xs:element name="sensor" |
390 | | - type="sensor" minOccurs="0" maxOccurs="unbounded" /> |
391 | | - |
| 393 | + <xs:element |
| 394 | + name="joint" |
| 395 | + type="joint" |
| 396 | + minOccurs="0" |
| 397 | + maxOccurs="unbounded" |
| 398 | + /> |
| 399 | + <xs:element |
| 400 | + name="link" |
| 401 | + type="link" |
| 402 | + minOccurs="0" |
| 403 | + maxOccurs="unbounded" |
| 404 | + /> |
| 405 | + |
| 406 | + <!-- FIXME: this is used but undocumented --> |
| 407 | + <xs:element |
| 408 | + name="material" |
| 409 | + type="material_global" |
| 410 | + minOccurs="0" |
| 411 | + maxOccurs="unbounded" |
| 412 | + /> |
| 413 | + |
| 414 | + <!-- FIXME: this is used but undocumented --> |
| 415 | + <xs:element |
| 416 | + name="transmission" |
| 417 | + type="transmission" |
| 418 | + minOccurs="0" |
| 419 | + maxOccurs="unbounded" |
| 420 | + /> |
| 421 | + |
| 422 | + <!-- FIXME: gazebo extension not supported --> |
| 423 | + <xs:element |
| 424 | + name="gazebo" |
| 425 | + type="gazebo" |
| 426 | + minOccurs="0" |
| 427 | + maxOccurs="unbounded" |
| 428 | + /> |
| 429 | + |
| 430 | + <xs:element |
| 431 | + name="sensor" |
| 432 | + type="sensor" |
| 433 | + minOccurs="0" |
| 434 | + maxOccurs="unbounded" |
| 435 | + /> |
392 | 436 | </xs:sequence> |
393 | 437 | <xs:attribute name="name" type="xs:string" use="required" /> |
394 | 438 |
|
|
0 commit comments