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>
The transmission element has one attribute:
- Specifies the unique name of a transmission
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:
- 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.
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.