robot_model: assimp | collada_urdf | colladadom | convex_decomposition | ivcon | kdl_parser | resource_retriever | robot_state_publisher | urdf

Package Summary

This package contains a C++ parser for the Unified Robot Description Format (URDF), which is an XML format for representing a robot model. The code API of the parser has been through our review process and will remain backwards compatible in future releases.

Overview

This package contains the the specification of the XML robot description format (URDF) and a C++ parser to read the corresponding URDF XML files.

Unified Robot Description Format (URDF)

For a complete specification, please see the URDF XML reference. There is also a tutorial that teaches how to create your own URDF.

We also developed a macro language called xacro to make it easier to maintain the robot description files, increase their readable, and to avoid duplication in the robot description files.

URDF Parser

The URDF parser creates a C++ representation of a robot that is easy to browse through. For more details, take a look at the code API.

URDF Validator

The package includes the command line tool check_urdf. It's called with a single command line argument naming a file. It attempts to parse the file as a URDF description, and either prints a description of the resulting kinematic chain, or an error message.

link.png

Examples

PR2 Robot

The complete PR2 URDF can be found in the ROS package containing PR2 robot model XML URDF files under the name pr2.urdf.xacro. To obtain the fully expanded PR2 URDF (pr2.urdf), run

  • rosrun xacro xacro.py `rospack find pr2_description`/robots/pr2.urdf.xacro -o /tmp/pr2.urdf

To test the URDF parser, run

  • $ rosrun urdf check_urdf /tmp/pr2.urdf
    and you should see something resembling:
    robot name is: pr2
    ---------- Successfully Parsed XML ---------------
    root Link: base_footprint has 1 child(ren)
        child(1):  base_link
            child(1):  base_laser_link
            child(2):  bl_caster_rotation_link
                child(1):  bl_caster_l_wheel_link
                child(2):  bl_caster_r_wheel_link
            child(3):  br_caster_rotation_link
                child(1):  br_caster_l_wheel_link
                child(2):  br_caster_r_wheel_link
            child(4):  fl_caster_rotation_link
                child(1):  fl_caster_l_wheel_link
                child(2):  fl_caster_r_wheel_link
            child(5):  fr_caster_rotation_link
                child(1):  fr_caster_l_wheel_link
                child(2):  fr_caster_r_wheel_link
            child(6):  torso_lift_link
                child(1):  head_pan_link
                    child(1):  head_tilt_link
                        child(1):  head_plate_frame
                            child(1):  sensor_mount_link
                                child(1):  double_stereo_link
                                    child(1):  narrow_stereo_link
     ...

Known Issues

  • Sensor model information is not included (except in gazebo extensions for simulated sensors).

Wiki: urdf (last edited 2010-06-22 18:55:39 by wim)