URDF Transmissions

The transmission element is an extension to the URDF robot description model that is used to describe the relationship between an actuator and a joint. This allows one to model concepts such as gear ratios and parallel linkages. A transmission transforms efforts/flow variables such that their product - power - remains constant. Multiple actuators may be linked to multiple joints through complex transmission.

Here is an example of a transmission element:

   1 <transmission name="simple_trans">
   2   <type>transmission_interface/SimpleTransmission</type>
   3   <joint name="foo_joint">
   4     <hardwareInterface>EffortJointInterface</hardwareInterface>
   5   </joint>
   6   <actuator name="foo_motor">
   7     <mechanicalReduction>50</mechanicalReduction>
   8     <hardwareInterface>EffortJointInterface</hardwareInterface>
   9   </actuator>
  10 </transmission>

<transmission> Attributes

The transmission element has one attribute:

  • name (required)

    • Specifies the unique name of a transmission

<transmission> Elements

The transmission has the following elements:

  • <type> (one occurrence)

    • Specifies the transmission type.
  • <joint> (one or more occurrences)

    • A joint the transmission is connected to. The joint is specified by its name attribute, and the following sub-elements:

    • <hardwareInterface> (one or more occurrences)

      • Specifies a supported joint-space hardware interface. Note that the value of this tag should be EffortJointInterface when this transmission is loaded in Gazebo and hardware_interface/EffortJointInterface when this transmission is loaded in RobotHW.

  • <actuator> (one or more occurrences)

    • An actuator the transmission is connected to. The actuator is specified by its name attribute, and the following sub-elements:

    • <mechanicalReduction> (optional)

      • Specifies a mechanical reduction at the joint/actuator transmission. This tag may not be needed for all transmissions.
    • <hardwareInterface> (optional) (one or more occurrences)

      • Specifies a supported joint-space hardware interface. Note that <hardwareInterface> tag should only be specified here for ROS releases prior to Indigo. The correct place to specify this tag is in <joint> tag. More details about this can be found here.

Development Notes

Currently, only the ros_control project uses this transmission elements. Developing an updated transmission format that is extensible to all use cases was complicated endeavor that can be reviewed here.

Wiki: urdf/XML/Transmission (last edited 2017-02-02 14:58:56 by JuliusGelsvartas)