Greetings,

I'd like to update the ROS community on the current status of the Unified Robotic Description Format (URDF). As ROS matures some packages are being moved out of the ROS ecosystem into stand-alone projects. With URDF, this has caused a number of package naming changes between Fuerte, Groovy, and Hydro that have made the situation a little confusing, especially on the ROS wiki. 

I've made a diagram that outlines the current components of URDF and shows how they work together:

Current Status:

1) The core URDF parser and data structures (urdfdom, urdfdom_headers) have been pushed upstream into stand alone (no ROS-dependencies) software packages that will in the future be released into Ubuntu completely separate from ROS. 

2) There is now a distinction between a URDF file and a URDF data structure. A URDF file follows the XML format as described on the ros.org wiki. A URDF data structure is a set of generic classes that various formats (currently URDF and Collada) can be parsed into.

3) A new plugin abstraction layer (urdf_parser_plugin) allows the URDF data structures to be populated with various file formats (currently URDF and Collada)

4) The ROS packages urdf_parser and urdf_interface have been deprecated in Groovy and removed in Hydro.

5) As of today, urdfdom and urdfdom_headers have been moved to Github from Bitbucket.

6) An update to the <transmission> element has been made to the URDF spec that is a revisit of the old pr2_mechanisms format generalized for all robots. It currently lives in the new ros_control package but should soon be moved into urdfdom.

Related Topics:

1) The Gazebo simulator can use either URDF or its own (more feature-filled) SDF format. SDFormat was also recently released upstream into a stand alone software package available in Ubuntu separate from ROS. SDFormat also currently contains a copy of the URDF parser.

2) Very preliminary discussions have begun on the needs of URDF 2.0 and potential merging of SDF and URDF. There are several significant limitations in the current URDF specification that need to be addressed. This is targeted for ROS-I or later.

Links:

Thanks to Ioan Sucan, John Hsu, and Wim Meeussen for their continued maintenance and support of these urdf components.


I hope this helps clarify things for everyone!


Dave Coleman
Open Source Robotics Foundation | 251.463.2345 | davetcoleman.com