Home > Posts > Robot modelling formats for simulation

Robot modelling formats for simulation

Several XML-based formats have surfaced over the years that can be used to describe a robot.

Apart from URDF (and SRDF) of ROS origin, the Gazebo simulator has been promoting SDF (an evolution of URDF with emphasis on physics simulation), while MJCF apart from being available as URDF extensions, also has its own format with an XML schema for validation and more advanced simulation features (e.g. tendons).

URDF (ROS)

http://wiki.ros.org/urdf

http://wiki.ros.org/urdf/XML

http://wiki.ros.org/urdf/XML/joint

http://wiki.ros.org/urdf/XML/link

Also related, units of measurement in ROS: http://www.ros.org/reps/rep-0103.html

Can find some well-known robots (like Boston Dynamics’ Atlas) in URDF format at the data subfolder in: https://github.com/bulletphysics/pybullet_robots

SRDF format http://wiki.ros.org/srdf that is mentioned at http://wiki.ros.org/robot_model is also related (adds Semantics like kinematic chain definition etc). As explained there it is combined with URDF in describing a robot:

This does not replace URDF, and is not an extension of URDF.

This is a format for representing semantic information about the robot structure.

A URDF file must exist for this robot as well, where the joints and the links that are referenced are defined

SDF (Gazebo)

http://gazebosim.org/tutorials?tut=build_model

http://sdformat.org
http://sdformat.org/spec

https://bitbucket.org/osrf/gazebo_models/src (various SDF models in XML)

http://gazebosim.org/tutorials/?tut=ros_urdf (Converting from URDF to Gazebo)

http://gazebosim.org/tutorials?tut=simple_gripper (tutorial for simple gripper in SDF)

Gazebo seems to be using ODE (Open Dynamics Engine), so these are related too:

http://www.ode.org/ode-latest-userguide.html#sec_7_3_0 (see images for Joint types)

http://www.ode.org/ode-latest-userguide.html#sec_3_6_0 (ERP & CFM constraint parameters)

MJCF (MuJoCo)

http://www.mujoco.org/ (MuJoCo 1.50 was released on April 23, 2017. Student licenses are now free)

http://www.mujoco.org/book/

http://www.mujoco.org/book/modeling.html

http://www.mujoco.org/book/modeling.html#CURDF (MJCF is an advanced format but some of its functionality is also available as URDF extensions)

http://www.mujoco.org/book/computation.html#Constraint (MuJoCo has constraints like Connect/Weld/Joint/Tendon/Distance)

https://homes.cs.washington.edu/~todorov/papers/TodorovIROS12.pdf (see paragraph «B. Elements of a MuJoCo model»)

URDF to MJCF conversion is possible (related sample available for MuJoCo):

http://www.mujoco.org/forum/index.php?threads/urdf-mjcf-conversion.3429/

There is ongoing work at Bullet Physics engine to import MJCF, as mentioned at:

https://github.com/bulletphysics/bullet3/releases

Thus, they have collected various MJCF models (XML):

https://github.com/bulletphysics/bullet3/tree/master/data/mjcf

  1. 2017/06/18 at 06:37

    What, no JSON? 😉

    • 2017/06/18 at 16:06

      Actually the biggest issue with JSON is that it never came with a way to define a Schema for your data (so that you can check apart from well-formdness of a document, its validity too). Later on some efforts came to make schemas for JSON, not sure if anything has been “standardized” though, and guess even with JSON schemas there isn’t any standard way for a document to self-refer to its schema, like you can do in XML, nor refer to transformations (XML in browsers even supports CSS styling transforms apart from the more versatile XSL structural+content transforms)

      • 2017/06/18 at 17:39

        No no no… the biggest issue with JSON was that it was invented. 😉 😉 😉

  1. No trackbacks yet.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.