States Description Format (USDF) review

Proposer: Sachin Chitta, Kaijen Hsiao, Gil Jones, Ioan Sucan, John Hsu

Intent

This format is intended to capture the state information for a given robot described by an URDF. The specified state format should allow multiple robotic system components to share the state(s) of a robot, serve as a restart file format for robot simulation and enables offline introspection/post processing tools.

Description

Tags

  • <world_state>

    • Purpose: This is the root tag that for this document. All information is included in this tag.
    • Elements: <frame> <model_state>

    • Attributes:
    • <model_state>

      • Purpose: This is the root tag that for this document. All information is included in this tag.
      • Elements: <parent> <pose> <twist> <link_state> <joint_state>

      • Attributes: name
      • name

        • Purpose: Name of the model
      • <parent> name

        • Purpose: A string indicating frame name or name of another model_state to be the reference frame of these states. Keywords world can be used to reference absolute inertial frame. If left empty, default is world.

        • Elements:
        • Attributes:
      • <pose> 6-tuple

        • Purpose: A 6-tuplet (x,y,z,roll,pitch,yaw) used to specify the pose of a link, relative to the <parent> frame.

        • Elements:
        • Attributes:
      • <twist> 6-tuple

        • Purpose: A 6-tuplet (x,y,z,roll,pitch,yaw) used to specify the twist of a link, relative to the <parent> frame.

        • Elements:
        • Attributes:
      • <link_state>

        • Purpose: use this to specify the state of a link in the robot
        • Elements: <pose> <twist> <wrench>

        • Attributes: name
        • name

          • Purpose: Name of the link
        • <pose> 6-tuple

          • Purpose: A 6-tuplet (x,y,z,roll,pitch,yaw) used to specify the pose of a link, relative to the frame of the <model_state>.

          • Elements:
          • Attributes:
        • <twist> 6-tuple

          • Purpose: A 6-tuplet (x,y,z,roll,pitch,yaw) used to specify the twist of a link, relative to the <origin> of the link

          • Elements:
          • Attributes:
        • <wrench> 6-tuple

          • Purpose: A 6-tuplet (x,y,z,roll,pitch,yaw) used to specify the wrench exerted on a link, relative to the <origin> of the link

          • Elements:
          • Attributes:
      • <joint_state>

        • Purpose: use this to specify the state of a joint in the robot
        • Elements: <positions> <velocities> <torques>

          • Attributes: name
          • name

            • Purpose: Name of the joint
        • <positions> double[]

          • Purpose: array of positions of the DOF's of the joint
          • Elements:
          • Attributes:
        • <velocities> double[]

          • Purpose: array of velocities of the DOF's of the joint
          • Elements:
          • Attributes:
        • <torques> double[]

          • Purpose: array of torques measured for each DOF of the joint
          • Elements:
          • Attributes:
    • <frame>

      • Purpose: Frame of reference relative to global frame or anth
      • Elements: <pose> <twist> <parent>

      • Attributes: name
      • name string

        • Purpose: Name of this frame
      • <parent> name

        • Purpose: A string indicating frame name or name of another model_state to be the reference frame of these states. Keywords world can be used to reference absolute inertial frame. If left empty, default is world.

        • Elements:
        • Attributes:
      • <pose> 6-tuple

        • Purpose: A 6-tuplet (x,y,z,roll,pitch,yaw) used to specify the pose of a link, relative to the parent frame or the parent <model_state>.

        • Elements:
        • Attributes:
      • <twist> 6-tuple

        • Purpose: A 6-tuplet (x,y,z,roll,pitch,yaw) used to specify the twist of a link, relative to the <origin> of the link

        • Elements:
        • Attributes:

Generic Example

<world name="world_1">
  <model_state name="pr2">
    <parent>odom</parent>
    <pose>0 0 0 0 0 0</pose>
    <twist>0 0 0 0 0 0</twist>
    <link_state name="r_shoulder_pan_link>
      <pose>1 0 1 0 0 0</pose>
      <twist>0 0 0 0 0 0</twist>
      <wrench>0 0 0 0 0 0</twist>
    </link_state>
  </model_state>
  <frame name="odom">
    <parent>world</parent>
    <pose>0 0 0 0 0 0</pose>
    <twist>0 0 0 0 0 0</twist>
  </frame>
</world>

Questions / Concerns / Comments

Wiki: states_format (last edited 2011-11-02 19:42:53 by hsu)