Tags needed in the XML Structure:
| Tag | Compulsory? | What Happens If You Ignore It? |
|---|---|---|
<robot> |
Yes | The XML will not parse at all. This is the master wrapper around the entire robot. |
<link> |
Yes | The robot has no physical parts. Every segment of the robot requires its own link. |
<visual> |
No | The robot becomes invisible in RViz and visualization tools. |
<collision> |
Yes (Simulation) | Robot parts will pass through the floor, walls, and other links like ghosts. |
<inertial> |
Yes (Simulation) | Physics engines may explode, become unstable, or ignore gravity for that link. |
<joint> |
Yes | All links remain detached and float independently in space. |
<parent> / <child> |
Yes | The joint fails because the system does not know which links are connected. |
<origin> |
No | Defaults to (0, 0, 0) with no rotation, which is usually incorrect. |
<axis> |
Yes (Movable Joints) | The joint does not know which direction to rotate and will not behave correctly. |
<limit> |
Yes (Simulation) | The joint cannot move properly because maximum effort and velocity are undefined. |
Tags optional in the XML Structure:
| Tag | What Does It Do? | Can You Ignore It? | Effect of Ignoring It |
|---|---|---|---|
<transmission> |
Maps virtual URDF joints to physical ROS controllers and actuators. | Yes | Required only when controlling real hardware. Physics simulation and RViz work fine without it. |
<safety_controller> |
Prevents physical robots from exceeding safe position and velocity limits. | Yes | Simulations run normally, but hardware protection features are unavailable. |
<calibration> |
Stores encoder and sensor offsets for physical robots. | Yes | Sensor calibration information is omitted, which has no effect in simulation. |
<mimic> |
Makes one joint automatically follow another joint, useful for grippers and coupled mechanisms. | Yes | Joints operate independently instead of mirroring each other. |
<dynamics> |
Defines joint friction, damping, and drag characteristics. | Yes | Joints behave like ideal frictionless motors, which is usually sufficient for initial simulations. |