.urdf  →  .usda

URDF to USD

Convert a robot description from URDF to USD in the browser. Nothing is installed and nothing is queued: the file is read, written in the other format, and handed back with a list of anything that could not be carried across.

Convert a file

Drop your URDF here

Drop the folder too if the model references meshes.

Files are read on our server and deleted after a day. Nothing is published.

What this conversion costs

These are the things USD has no place for. They are reported on the converted file as well, as a comment at the top, so the file itself says what is missing from it.

A robot in USD is geometry with physics applied to it

There is no robot element to write. What makes a stage a robot is UsdPhysics: an Xform per link with PhysicsRigidBodyAPI and a mass, a shape under it carrying PhysicsCollisionAPI when it collides, and a PhysicsRevoluteJoint or PhysicsPrismaticJoint relating two of them. That is what Isaac Sim opens, and it is what this writes.

The full inertia tensor is carried, not just the diagonal

USD stores inertia as three principal moments plus the rotation into them. A real robot's links are not aligned with their own principal axes — every link of the A1 has products of inertia — so the tensor is diagonalised and the rotation written as principalAxes. Reading it back reproduces the original tensor to within a rounding; without that step, 39 numbers on the A1 alone would arrive quietly changed.

Metres, Z up, and why that line matters

The stage declares metersPerUnit = 1 and upAxis = "Z". Omniverse defaults to centimetres, so a robot without those two lines opens a hundred times too big and lying on its side — and nothing about the file looks wrong.

The velocity limit goes through PhysX

Core USD has nowhere to say how fast a joint may turn. Isaac reads physxJoint:maxJointVelocity, so the number is written there rather than dropped; a reader that does not know the attribute ignores it, which is what an extension is for.

The two formats

URDF .urdf
the ROS description of a robot: links, joints, geometry and inertia, one rigid tree.
USD .usda
NVIDIA's scene format, where a robot is ordinary geometry with UsdPhysics applied on top — what Isaac Sim opens.

Converting is rarely the whole job. Once you have the USD, the viewer shows what actually came across — collision geometry against visual, joint limits, where the mass sits — and the physics lab answers the question a file cannot: whether the robot stands up when gravity is switched on.

Other directions