robotdescriptions.com

Robot descriptions

A robot description is the file that says what a robot is made of: its links, joints, masses, limits and meshes. Simulators, motion planners and viewers all start from one. These are the resources worth knowing, checked by hand.

<robot name="arm">
  <link name="base"/>
  <link name="upper_arm">
    <inertial>…</inertial>
    <visual>…</visual>
  </link>
  <joint name="shoulder" type="revolute">
    <parent link="base"/>
    <child link="upper_arm"/>
    <limit lower="-1.57" upper="1.57" …/>
  </joint>
  …
</robot>

Start here

01Ready-made robots

Start from a model someone already got right. Licences are set per robot, so check each one before you ship it.

02The formats

URDF is the one every tool reads. MJCF, SDFormat and USD can each say more, and each grew up around its own simulator.

FormatNative toClosed loopsVersions
URDFROS, MoveIt and most plannersNo, a tree only1.0, then 1.1 and 1.2 in 2026
MJCFMuJoCoClosed with equality constraintsFollows MuJoCo releases
SDFormatGazeboYes1.12 is current
USDIsaac Sim, Omniverse; REP 158 for ROSJoints kept out of the articulationUsdPhysics; AOUSD physics spec in draft

03Make one from CAD

Exporters turn a CAD assembly into a description. Name your joints and frames in CAD, and every re-export comes out the same.

04Load or write it in Python

Parse a description, compute kinematics and dynamics from it, or build one in code.

05Look at it

Check that the joints move the way you think before anything simulates them.

06Convert between formats

Each simulator wants its own format. These conversion paths work today, but none is lossless, so check what comes out.

07Read more

What people have measured about URDF, and where robot descriptions are heading.