Start here
Nothing matches. Clear the filter to see everything.
01Ready-made robots
Start from a model someone already got right. Licences are set per robot, so check each one before you ship it.
-
Awesome Robot DescriptionsURDFMJCF
A curated index of open robot models, grouped by type, with each model's maker, licence and whether it has inertias and collision shapes.
Use it when you want to know whether a usable model of a robot already exists. -
robot_descriptions.pyURDFMJCF
A Python package that downloads 200+ robot models by name and loads them into MuJoCo, Pinocchio, PyBullet and others.
Use it when you want a known robot in code with one import. -
MuJoCo MenagerieMJCF
DeepMind's collection of MJCF models, each tuned and graded so it simulates correctly in MuJoCo out of the box.
Use it when you need a MuJoCo model that already behaves like the real robot. -
NVIDIA's catalogue of simulation-ready USD robots: arms, legged robots, humanoids, mobile bases and drones, with a licence for each.
Use it when your simulator is Isaac Sim or Isaac Lab. -
Gazebo FuelSDFormat
Open Robotics' hosted library of SDFormat models and worlds, which Gazebo pulls in directly by URL.
Use it when you are building a Gazebo world.Quality varies, and most of its 3,400 models are props rather than robots. -
Gepetto's set of URDF and SRDF robot models with Python loaders, used throughout the Pinocchio ecosystem.
Use it when you work with Pinocchio or Crocoddyl. -
Drake modelsURDFSDFormat
The models Drake ships with, including KUKA iiwa, Franka, UR, Allegro and Atlas, as URDF or SDFormat with meshes.
Use it when you work in Drake or want its well-tested arm models. -
Universal Robots' official xacro models for every arm from UR3 to UR30, with kinematics and limits files for each.
Use it when you simulate or plan for a UR arm. -
Franka Robotics' official xacro and URDF models for the FR3, the Panda and their mobile and dual-arm variants.
Use it when you need Franka's own kinematics and inertias. -
Unitree ROSURDF
Unitree's official URDFs and meshes for its quadrupeds, its G1, H1 and R1 humanoids and the Z1 arm.
Use it when you need Unitree models straight from the manufacturer. -
Unitree MuJoCoMJCF
Unitree's MJCF models plus a simulator that speaks the same SDK messages as the real robots.
Use it when you test Unitree controllers in simulation before hardware. -
Community URDF and xacro packages for ABB, FANUC, Yaskawa Motoman and KUKA industrial arms.
Use it when you model a classic industrial arm that has no official ROS 2 package.Most default branches are still ROS 1.
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.
| Format | Native to | Closed loops | Versions |
|---|---|---|---|
| URDF | ROS, MoveIt and most planners | No, a tree only | 1.0, then 1.1 and 1.2 in 2026 |
| MJCF | MuJoCo | Closed with equality constraints | Follows MuJoCo releases |
| SDFormat | Gazebo | Yes | 1.12 is current |
| USD | Isaac Sim, Omniverse; REP 158 for ROS | Joints kept out of the articulation | UsdPhysics; AOUSD physics spec in draft |
-
The original tag-by-tag URDF reference: robot, link, joint, inertial, collision, transmission and the Gazebo extensions.
Use it when you need to know what a tag or attribute means.It predates URDF 1.1 and 1.2; the urdfdom notes below cover those. -
The official ROS 2 tutorials: build a URDF from scratch, add joints, physics and collisions, then publish it.
Use it when you are learning URDF, or teaching it to a teammate. -
The reference parser's notes on URDF's first new versions: quaternions and capsules in 1.1, acceleration and jerk limits in 1.2.
Use it when you decide whether to declare a version in your robot tag. -
XacroURDF
The XML macro language most URDFs are written in: parameters, maths, includes and conditionals, expanded into plain URDF.
Use it when your URDF repeats itself or comes in variants. -
SRDF (MoveIt)URDF
MoveIt's companion file to URDF for planning groups, end effectors, named poses and collision pairs to skip.
Use it when you set up motion planning on an existing URDF. -
Every element and attribute of MJCF, MuJoCo's native format, including default classes and compiler settings.
Use it when you write or debug a MuJoCo model by hand. -
MuJoCo's guide to building models that behave: kinematic trees, contacts, actuators, solver settings and practical tips.
Use it when your model loads but behaves wrong. -
SDFormat specificationSDFormat
The versioned spec for Gazebo models and worlds, with explicit frames, nested models and closed kinematic loops.
Use it when you target Gazebo, or need loops URDF can't express. -
USD's physics schema: rigid bodies, mass, collision shapes, joints, drives and the articulation roots robot files rely on.
Use it when you author or inspect robot physics in USD directly. -
NVIDIA's USD schemas that mark a robot's root, links and joints, layered on top of the physics schema.
Use it when you want Isaac Sim's tools to recognise your USD robot. -
The ROS convention, accepted in 2026, for a strict OpenUSD profile so one robot asset loads in Gazebo, Isaac Sim, MuJoCo and others.
Use it when you ship robot assets as USD into the ROS ecosystem. -
Drake: parsing modelsURDFSDFormatMJCF
Drake's exact list of which URDF, SDFormat and MJCF features it supports, and the extension tags it adds.
Use it when you move a model between simulators and need the fine print.
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.
-
onshape-to-robotURDFSDFormatMJCF
Pulls an Onshape assembly through Onshape's API and writes URDF, SDFormat or MJCF with meshes and inertias.
Use it when your robot is designed in Onshape. -
Onshape added URDF as one of its own export formats in its March 13, 2026 release.
Use it when you want a URDF out of Onshape with no extra tools. -
ACDC4Robot (Fusion)URDFSDFormatMJCF
A Fusion add-in that exports a jointed design to URDF, SDFormat or MJCF; the most actively maintained Fusion exporter.
Use it when you design in Fusion.The original fusion2urdf, which most Fusion exporters forked from, has had no commits since March 2025. -
A Fusion add-in that writes a whole ROS 2 description package (xacro, URDF, meshes, ros2_control) from nested assemblies.
Use it when your Fusion design uses nested subassemblies. -
Fusion2MujocoMJCF
Exports a Fusion design straight to MJCF and builds convex collision meshes with CoACD.
Use it when you go from Fusion to MuJoCo and care about contacts. -
A SolidWorks add-in that walks you through choosing links and joints, then exports a URDF package with meshes.
Use it when your robot lives in SolidWorks.The last binary release targets SolidWorks 2021; newer versions may need a source build. -
A FreeCAD workbench that builds ROS 2 description packages, computing inertias from materials and adding controllers and sensors.
Use it when you want an open-source CAD path into ROS 2 and Gazebo. -
Phobos (Blender)URDFSDFormat
A Blender add-on for building and editing robot models visually, exporting URDF, SDFormat or SMURF.
Use it when your meshes come from Blender. -
creo2urdfURDF
IIT's Creo Parametric plugin that exports a Creo mechanism to URDF; it builds the iCub and ergoCub models.
Use it when your robot is modelled in PTC Creo. -
step2urdfURDF
Turns a STEP file into a URDF: pick joint axes from arcs and edges, and it estimates inertias from the total mass.
Use it when you only have a STEP file, not the original CAD. -
The ROS 2 documentation's list of CAD exporters, covering more CAD packages than this page does.
Use it when your CAD tool isn't listed here.
04Load or write it in Python
Parse a description, compute kinematics and dynamics from it, or build one in code.
-
yourdfpyURDF
A light, forgiving URDF parser with forward kinematics, trimesh meshes and round-trip writing.
Use it when you need a plain URDF object model in Python.It replaces urdfpy, which stopped in 2022. If your code imports urdfpy, urchin keeps the same API. -
PinocchioURDFSDFormatMJCF
A fast rigid-body dynamics library that reads URDF, SDFormat and MJCF and gives analytic derivatives.
Use it when you need dynamics, Jacobians or their derivatives, fast. -
MuJoCo Python and MjSpecMJCFURDF
MuJoCo's official bindings load MJCF or URDF, and MjSpec builds, edits and recompiles models in code.
Use it when you build or change MuJoCo models programmatically.MjSpec replaces dm_control's older PyMJCF for model editing. -
Drake parserURDFSDFormatMJCF
Drake's Parser loads URDF, SDFormat or MJCF into a MultibodyPlant for dynamics, planning and control.
Use it when you do optimisation-based planning or control in Drake. -
urdf_parser_pyURDF
ROS's reference Python reader and writer for URDF: plain objects for the XML, no kinematics.
Use it when you work inside ROS tooling, or only parse and write files.Install it from your ROS distribution; the PyPI release is from 2021. -
pytorch_kinematicsURDFSDFormatMJCF
Batched, differentiable forward kinematics, Jacobians and inverse kinematics on the GPU, from URDF, SDFormat or MJCF.
Use it when you need gradients or thousands of configurations at once. -
IKPyURDF
Pure-Python inverse kinematics that builds a kinematic chain straight from a URDF.
Use it when you want quick IK for a serial arm with few dependencies. -
Peter Corke's toolbox: load a URDF for kinematics, Jacobians, inverse kinematics and teaching plots.
Use it when you are teaching, prototyping or following Corke's textbook. -
LinkForgeURDF
Compose and check a robot in Python or Blender, then compile it to URDF, xacro and SRDF.
Use it when you want to author a description in code rather than XML. -
pyppetURDF
A robot description format written in Python instead of XML, for type checking, logic and scripting.
Use it when you want to see what a Python-first description looks like.
05Look at it
Check that the joints move the way you think before anything simulates them.
-
Robot ViewerURDFMJCFUSD
An in-browser viewer for URDF, xacro, MJCF and some USD that shows inertias, centres of mass and joint axes.
Use it when you want to check any description without installing anything. Files stay in your browser. -
A VS Code extension that previews URDF and xacro beside the editor and updates as you type.
Use it when you edit URDF or xacro by hand. -
viserURDF
A Python web visualiser; its ViserUrdf helper shows a URDF with joint sliders in a browser tab.
Use it when you visualise robots from a Python script or notebook. -
MuJoCo viewerMJCFURDF
MuJoCo's own viewer: load an MJCF or URDF and inspect joints, inertias, contacts and actuators live.
Use it when you debug physics: collisions, inertia boxes, joint limits. -
URDF StudioURDFMJCFSDFormatUSD
A browser-based editor for links, joints and hardware data that exports URDF, MJCF, USD and SDFormat.
Use it when you want to adjust a model visually instead of editing XML. -
urdf-loadersURDF
The three.js URDF loader behind most browser robot viewers, with a drag-and-drop demo page.
Use it when you want to put a robot on a web page. -
RViz 2URDF
ROS 2's standard 3D visualiser; its RobotModel display draws the robot_description with live transforms.
Use it when your robot already runs in ROS 2. -
A robotics data viewer whose 3D panel loads a URDF from ROS parameters, topics, URLs or files.
Use it when you want the robot next to logged or live data.Foxglove is commercial; Lichtblick is its open-source fork with the same panel. -
A multimodal data viewer with a built-in URDF loader: log the file, then stream joint transforms.
Use it when you debug robot motion together with camera and sensor logs. -
urdf-vizURDF
A small Rust desktop viewer for URDF and xacro with prebuilt binaries and joint sliders.
Use it when you want a desktop viewer without installing ROS. -
urdfdom's command-line tools: validate a URDF's tree, and draw its links and joints as a graph.
Use it when you check models in CI or need to understand an unfamiliar tree.
06Convert between formats
Each simulator wants its own format. These conversion paths work today, but none is lossless, so check what comes out.
-
MuJoCo compile (URDF to MJCF)URDFMJCF
MuJoCo reads URDF directly, and its bundled compile tool saves the result as MJCF.
Use it when you start porting a URDF robot to MuJoCo.Add a mujoco compiler block to the URDF to control mesh paths; actuators and sensors are added by hand. -
ros2_control's MuJoCo bridge ships a script that turns a robot_description into a ready MJCF scene.
Use it when your robot is already a ros2_control robot.Its authors call it highly experimental. -
mjcf_urdf_simple_converterMJCFURDF
A minimal MJCF-to-URDF converter covering meshes, inertias and hinge joints.
Use it when you bring a MuJoCo model into ROS tooling.Hinge joints only, one joint per body, no actuators. No full MJCF-to-URDF converter exists. -
gz sdf -p (URDF to SDFormat)URDFSDFormat
libsdformat's command line prints the SDFormat that Gazebo builds from a URDF; gazebo tags in the URDF steer it.
Use it when you move a URDF robot into Gazebo, or debug that step. -
sdformat_urdfSDFormatURDF
A ROS 2 plugin that lets robot_state_publisher and other URDF consumers read SDFormat files.
Use it when SDFormat is your source of truth but ROS expects URDF.Only what URDF can express survives. -
urdf-usd-converterURDFUSD
A pip-installable URDF-to-OpenUSD converter; Isaac Sim 6's URDF importer uses it under the hood.
Use it when you need a URDF in USD for Isaac Sim or Newton.One-way, and still alpha. -
mujoco-usd-converterMJCFUSD
Converts MJCF to OpenUSD with the physics schema plus MuJoCo's own schemas; MuJoCo's docs point to it.
Use it when you move MuJoCo models into a USD pipeline.One-way, and still alpha. -
Isaac Sim importers and exporterURDFMJCFUSD
Isaac Sim's importers for URDF and MJCF, plus an exporter from USD back to URDF.
Use it when your target is Isaac Sim or Isaac Lab. -
urdf2webotsURDF
Cyberbotics' converter from a URDF to a Webots PROTO node, meshes included.
Use it when you simulate a URDF robot in Webots. -
gz-usdSDFormatUSD
Gazebo's command-line tools for converting SDFormat models and worlds to USD and back.
Use it when you need SDFormat and USD to meet; it's the only direct path.No commits since October 2024, so check its output carefully.
07Read more
What people have measured about URDF, and where robot descriptions are heading.
-
Tola and Corke, IEEE RA-L 2024: 322 real URDFs examined for how they were made and how duplicates disagree.
Use it when you want evidence about URDF quality across the ecosystem. -
The dataset behind that paper: real URDF files with their robot type, maker and source, plus the analysis scripts.
Use it when you test a URDF tool against many real files. -
Tola and Corke, IEEE CASE 2023: 510 robotics developers on how they use URDF and what hurts.
Use it when you argue for or against a URDF change with user data. -
Humanoids 2024: loop-joint elements for URDF plus a parser, so closed-chain robots work with fast dynamics algorithms.
Use it when your robot has linkages URDF can't express. -
RAAD 2025: a minimal URDF extension for parallel mechanisms that stays compatible with existing tools.
Use it when you compare closed-loop proposals before picking one. -
A 2025 preprint proposing a directory of derived robot data generated from URDF, so tools stop recomputing it.
Use it when you think about what a richer description should carry. -
The community thread that followed the URDF survey: schema, versioning, a spec website, jerk limits and parallel linkages.
Use it when you want to know why URDF 1.1 and 1.2 look the way they do. -
The original debate on a URDF successor: data versus scripting, frames versus links, and merging with SDFormat.
Use it when you are about to propose a new format. -
Practitioners compare CAD-to-description pipelines, where they break, and how to version robot assets.
Use it when you choose a CAD export workflow. -
The 2026 debate that led to REP 158: making OpenUSD a first-class robot asset format beside URDF and SDFormat.
Use it when you weigh shipping USD alongside URDF. -
An open issue about the URDF spec's home once the ROS 1 wiki is archived; it notes 1.1 is undocumented there.
Use it when you check whether an official URDF spec page exists yet.