Created
May 19, 2026 14:57
-
-
Save Wumpf/7cce9c8f7db80c20741be6289d910073 to your computer and use it in GitHub Desktop.
LLM generated description of URDF & alternatives
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!DOCTYPE html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="utf-8" /> | |
| <title>Robot Description Formats: URDF and Alternatives</title> | |
| <style> | |
| body { font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.55; max-width: 1100px; margin: 0 auto; padding: 2rem; color: #222; background: #fafafa; } | |
| h1, h2, h3 { line-height: 1.2; } | |
| h1 { font-size: 2.2rem; margin-bottom: 0.25rem; } | |
| .subtitle { color: #666; margin-bottom: 2rem; } | |
| section { background: white; border: 1px solid #ddd; border-radius: 12px; padding: 1.5rem; margin: 1.5rem 0; } | |
| table { width: 100%; border-collapse: collapse; margin-top: 1rem; } | |
| th, td { border: 1px solid #ddd; padding: 0.75rem; vertical-align: top; } | |
| th { background: #f0f0f0; text-align: left; } | |
| .tag { display: inline-block; background: #eef3ff; color: #254a91; border: 1px solid #c9d8ff; border-radius: 999px; padding: 0.15rem 0.55rem; font-size: 0.85rem; margin-right: 0.25rem; } | |
| .note { border-left: 4px solid #4677f5; padding: 0.8rem 1rem; background: #f2f6ff; margin-top: 1rem; } | |
| .format-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1rem; } | |
| .card { border: 1px solid #ddd; border-radius: 10px; padding: 1rem; background: #fff; } | |
| .card h3 { margin-top: 0; } | |
| </style> | |
| </head> | |
| <body> | |
| <h1>URDF and Robot Description Format Alternatives</h1> | |
| <p class="subtitle">A structured overview of URDF, SDF, MJCF, USD, glTF, Collada, and common CAD/mesh formats.</p> | |
| <section> | |
| <h2>What is URDF?</h2> | |
| <p><strong>URDF</strong>, or <strong>Unified Robot Description Format</strong>, is an XML-based format commonly used in <strong>ROS</strong> to describe a robot’s physical and kinematic structure.</p> | |
| <p>A URDF file describes how a robot is assembled from rigid bodies and joints. It is commonly used for visualization, transform computation, motion planning, collision checking, and basic simulation integration.</p> | |
| <h3>Important things contained in URDF</h3> | |
| <ul> | |
| <li><strong>Links:</strong> rigid robot bodies, such as a base, arm segment, wheel, or camera housing.</li> | |
| <li><strong>Joints:</strong> connections between links, such as fixed, revolute, continuous, prismatic, floating, or planar joints.</li> | |
| <li><strong>Kinematic tree:</strong> parent-child relationships between links and joints.</li> | |
| <li><strong>Visual geometry:</strong> meshes or primitive shapes used for rendering.</li> | |
| <li><strong>Collision geometry:</strong> simplified geometry used for collision detection and planning.</li> | |
| <li><strong>Inertial properties:</strong> mass, center of mass, and inertia tensor.</li> | |
| <li><strong>Materials:</strong> simple colors and material references for visualization.</li> | |
| <li><strong>ROS/Gazebo extensions:</strong> optional tags for simulation plugins, transmissions, sensors, and control interfaces.</li> | |
| </ul> | |
| <div class="note"><strong>Key limitation:</strong> plain URDF describes a single robot as a tree structure. It is not ideal for full simulation worlds, closed-loop mechanisms, rich materials, or complex scene composition.</div> | |
| </section> | |
| <section> | |
| <h2>Main Alternatives</h2> | |
| <div class="format-grid"> | |
| <div class="card"><h3>SDF / SDFormat</h3><p><span class="tag">Gazebo</span><span class="tag">simulation</span><span class="tag">worlds</span></p><p><strong>SDF</strong> is the simulation description format used by Gazebo and Ignition Gazebo. It can describe robots, objects, sensors, lights, plugins, and complete simulation worlds.</p><h4>Contains</h4><ul><li>Models</li><li>Links and joints</li><li>Worlds and environments</li><li>Lights</li><li>Sensors</li><li>Physics parameters</li><li>Simulation plugins</li><li>Nested models</li><li>Visual and collision geometry</li></ul></div> | |
| <div class="card"><h3>MJCF</h3><p><span class="tag">MuJoCo</span><span class="tag">physics</span><span class="tag">robot learning</span></p><p><strong>MJCF</strong> is MuJoCo’s XML format. It is designed for high-performance physics simulation, articulated bodies, contacts, actuators, and control.</p><h4>Contains</h4><ul><li>Bodies</li><li>Joints</li><li>Geometries</li><li>Inertial properties</li><li>Actuators</li><li>Tendons</li><li>Contacts</li><li>Sensors</li><li>Materials and meshes</li><li>Simulation/compiler options</li></ul></div> | |
| <div class="card"><h3>USD / OpenUSD</h3><p><span class="tag">3D scenes</span><span class="tag">Isaac Sim</span><span class="tag">asset pipeline</span></p><p><strong>USD</strong>, or <strong>Universal Scene Description</strong>, is a rich scene description system originally developed by Pixar. In robotics, it is commonly associated with NVIDIA Isaac Sim and advanced simulation asset pipelines.</p><h4>Contains</h4><ul><li>Scene hierarchy</li><li>Meshes and geometry</li><li>Materials and shaders</li><li>Lights and cameras</li><li>Animation</li><li>Variants and composition arcs</li><li>References to external assets</li><li>Physics metadata, with extensions</li><li>Robotics semantics, with extensions</li></ul></div> | |
| <div class="card"><h3>glTF / GLB</h3><p><span class="tag">visual assets</span><span class="tag">web</span><span class="tag">meshes</span></p><p><strong>glTF</strong> and binary <strong>GLB</strong> are modern 3D asset formats optimized for efficient transmission and rendering.</p><h4>Contains</h4><ul><li>Meshes</li><li>Materials</li><li>Textures</li><li>Scene nodes</li><li>Transforms</li><li>Animations</li><li>Skins and skeletons</li><li>Cameras and lights, via extensions</li></ul></div> | |
| <div class="card"><h3>Collada / DAE</h3><p><span class="tag">legacy</span><span class="tag">3D interchange</span><span class="tag">meshes</span></p><p><strong>Collada</strong> is an older XML-based 3D asset interchange format. It has often been used with URDF to provide visual mesh geometry.</p><h4>Contains</h4><ul><li>Meshes</li><li>Materials</li><li>Textures</li><li>Transforms</li><li>Animations</li><li>Skeletons</li><li>Scene graph information</li></ul></div> | |
| <div class="card"><h3>CAD and Mesh Formats</h3><p><span class="tag">geometry</span><span class="tag">manufacturing</span><span class="tag">assets</span></p><p>Formats such as <strong>STEP</strong>, <strong>STL</strong>, <strong>OBJ</strong>, and <strong>FBX</strong> are commonly used for robot parts, visual geometry, or manufacturing data, but they are not complete robot description formats.</p><h4>Contains</h4><ul><li>Part geometry</li><li>Surface meshes</li><li>CAD solids, depending on format</li><li>Materials, depending on format</li><li>Textures, depending on format</li><li>Animations, depending on format</li></ul></div> | |
| </div> | |
| </section> | |
| <section> | |
| <h2>Comparison Table</h2> | |
| <table><thead><tr><th>Format</th><th>Primary Use</th><th>Most Important Contents</th><th>Strengths</th><th>Limitations</th></tr></thead><tbody> | |
| <tr><td><strong>URDF</strong></td><td>ROS robot model description</td><td>Links, joints, visuals, collisions, inertial data, materials</td><td>Simple, ROS-native, widely supported for robot kinematics</td><td>Limited scene/world support; weak for complex simulation</td></tr> | |
| <tr><td><strong>SDF / SDFormat</strong></td><td>Gazebo simulation</td><td>Models, worlds, links, joints, sensors, lights, plugins, physics</td><td>Better simulation support than URDF; supports full worlds</td><td>Less universal outside Gazebo-style simulation workflows</td></tr> | |
| <tr><td><strong>MJCF</strong></td><td>MuJoCo physics simulation</td><td>Bodies, joints, actuators, tendons, contacts, sensors, physics options</td><td>Excellent physics and control modeling</td><td>Mostly tied to MuJoCo ecosystem</td></tr> | |
| <tr><td><strong>USD / OpenUSD</strong></td><td>Rich 3D scene and simulation asset pipelines</td><td>Scene hierarchy, meshes, materials, lights, cameras, animation, variants, references</td><td>Powerful composition and large-scene management</td><td>More complex; robotics semantics often require extensions</td></tr> | |
| <tr><td><strong>glTF / GLB</strong></td><td>Portable 3D visual assets</td><td>Meshes, materials, textures, transforms, animations, skins</td><td>Efficient, modern, web-friendly</td><td>Not a full robot description format</td></tr> | |
| <tr><td><strong>Collada / DAE</strong></td><td>Legacy 3D asset interchange</td><td>Meshes, materials, textures, transforms, animations</td><td>Historically common with URDF</td><td>Older, verbose, less common in modern workflows</td></tr> | |
| <tr><td><strong>STEP / STL / OBJ / FBX</strong></td><td>CAD, geometry, and mesh exchange</td><td>Geometry, meshes, surfaces, materials, textures, sometimes animation</td><td>Useful for part design and visual/collision assets</td><td>Usually lacks robot joints, kinematics, dynamics, and semantics</td></tr> | |
| </tbody></table> | |
| </section> | |
| <section> | |
| <h2>How These Formats Relate to Each Other</h2> | |
| <h3>Robot semantics vs. visual geometry</h3> | |
| <table><thead><tr><th>Category</th><th>Formats</th><th>Role</th></tr></thead><tbody> | |
| <tr><td>Robot description</td><td>URDF, SDF, MJCF</td><td>Define robot structure, joints, physical properties, and simulation behavior.</td></tr> | |
| <tr><td>Scene description</td><td>SDF, USD</td><td>Define robots plus environments, lights, cameras, assets, and world layout.</td></tr> | |
| <tr><td>Visual asset description</td><td>glTF, GLB, Collada, OBJ, FBX</td><td>Define meshes, materials, textures, animations, and renderable geometry.</td></tr> | |
| <tr><td>CAD/manufacturing geometry</td><td>STEP, STL</td><td>Define engineered part geometry or mesh exports, often converted for simulation/rendering.</td></tr> | |
| </tbody></table> | |
| <h3>Common workflow relationships</h3> | |
| <ul> | |
| <li><strong>URDF often references mesh files</strong> such as STL, OBJ, DAE, or sometimes glTF for visual and collision geometry.</li> | |
| <li><strong>URDF can be converted to SDF</strong> for Gazebo simulation, but some semantics may need plugins or extra SDF-specific configuration.</li> | |
| <li><strong>CAD files are often simplified</strong> into visual meshes and collision meshes before being referenced by URDF, SDF, MJCF, or USD.</li> | |
| <li><strong>SDF extends beyond a robot</strong> by describing full simulation worlds, including terrain, lights, sensors, and physics settings.</li> | |
| <li><strong>MJCF is more simulation/control focused</strong> than URDF and is common in reinforcement learning and robotics control research.</li> | |
| <li><strong>USD is broader than robotics</strong>: it can contain robots, environments, props, lights, cameras, materials, animation, and references to many external assets.</li> | |
| <li><strong>glTF and Collada are usually supporting assets</strong>, not complete robot model descriptions by themselves.</li> | |
| </ul> | |
| <h3>Typical conversion paths</h3> | |
| <table><thead><tr><th>From</th><th>To</th><th>Why</th></tr></thead><tbody> | |
| <tr><td>CAD</td><td>STL / OBJ / DAE / glTF</td><td>Export robot part geometry for visualization or collision.</td></tr> | |
| <tr><td>Meshes</td><td>URDF</td><td>Attach visual and collision geometry to robot links.</td></tr> | |
| <tr><td>URDF</td><td>SDF</td><td>Use a ROS robot model in Gazebo-style simulation.</td></tr> | |
| <tr><td>URDF / meshes</td><td>USD</td><td>Use robot assets in richer scene/simulation pipelines such as Isaac Sim.</td></tr> | |
| <tr><td>URDF / custom model</td><td>MJCF</td><td>Use the robot in MuJoCo for physics simulation or robot learning.</td></tr> | |
| <tr><td>Collada / OBJ / FBX</td><td>glTF / GLB</td><td>Modernize 3D assets for efficient rendering and web use.</td></tr> | |
| </tbody></table> | |
| </section> | |
| <section> | |
| <h2>Rule of Thumb</h2> | |
| <ul> | |
| <li>Use <strong>URDF</strong> if you are working in ROS and need a robot model.</li> | |
| <li>Use <strong>SDF</strong> if you need Gazebo simulation with worlds, sensors, lights, and plugins.</li> | |
| <li>Use <strong>MJCF</strong> if you are working with MuJoCo, control, contacts, or reinforcement learning.</li> | |
| <li>Use <strong>USD</strong> if you need rich scene composition, high-quality assets, or Isaac Sim-style workflows.</li> | |
| <li>Use <strong>glTF / GLB</strong> for portable visual assets.</li> | |
| <li>Use <strong>STEP</strong> for CAD interchange and engineering geometry.</li> | |
| <li>Use <strong>STL / OBJ / DAE / FBX</strong> as supporting mesh formats, not complete robot descriptions.</li> | |
| </ul> | |
| </section> | |
| </body> | |
| </html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment