ros2_control - humble
Loading...
Searching...
No Matches
Public Member Functions | List of all members
transmission_interface::Transmission Class Referenceabstract

Abstract base class for representing mechanical transmissions. More...

#include <transmission.hpp>

Inheritance diagram for transmission_interface::Transmission:
Inheritance graph
[legend]

Public Member Functions

virtual void configure (const std::vector< JointHandle > &joint_handles, const std::vector< ActuatorHandle > &actuator_handles)=0
 
virtual void actuator_to_joint ()=0
 Transform effort variables from actuator to joint space.
 
virtual void joint_to_actuator ()=0
 Transform effort variables from joint to actuator space.
 
virtual std::size_t num_actuators () const =0
 
virtual std::size_t num_joints () const =0
 

Detailed Description

Abstract base class for representing mechanical transmissions.

Mechanical transmissions transform effort/flow variables such that their product (power) remains constant. Effort variables for linear and rotational domains are force and torque; while the flow variables are respectively linear velocity and angular velocity.

In robotics it is customary to place transmissions between actuators and joints. This interface adheres to this naming to identify the input and output spaces of the transformation. The provided interfaces allow bidirectional mappings between actuator and joint spaces for effort, velocity and position. Position is not a power variable, but the mappings can be implemented using the velocity map plus an integration constant representing the offset between actuator and joint zeros.

Credit
This interface was inspired by similar existing implementations by PAL Robotics, S.L. and Willow Garage Inc.
Note
Implementations of this interface must take care of realtime-safety if the code is to be run in realtime contexts, as is often the case in robot control.

Member Function Documentation

◆ actuator_to_joint()

virtual void transmission_interface::Transmission::actuator_to_joint ( )
pure virtual

Transform effort variables from actuator to joint space.

Parameters
[in]act_dataActuator-space variables.
[out]jnt_dataJoint-space variables.
Precondition
All non-empty vectors must contain valid data and their size should be consistent with the number of transmission actuators and joints. Data vectors not used in this map can remain empty.

Implemented in transmission_interface::DifferentialTransmission, transmission_interface::FourBarLinkageTransmission, and transmission_interface::SimpleTransmission.

◆ configure()

virtual void transmission_interface::Transmission::configure ( const std::vector< JointHandle > &  joint_handles,
const std::vector< ActuatorHandle > &  actuator_handles 
)
pure virtual

◆ joint_to_actuator()

virtual void transmission_interface::Transmission::joint_to_actuator ( )
pure virtual

Transform effort variables from joint to actuator space.

Parameters
[in]jnt_dataJoint-space variables.
[out]act_dataActuator-space variables.
Precondition
All non-empty vectors must contain valid data and their size should be consistent with the number of transmission actuators and joints. Data vectors not used in this map can remain empty.

Implemented in transmission_interface::DifferentialTransmission, transmission_interface::FourBarLinkageTransmission, and transmission_interface::SimpleTransmission.

◆ num_actuators()

virtual std::size_t transmission_interface::Transmission::num_actuators ( ) const
pure virtual
Returns
Number of actuators managed by transmission, ie. the dimension of the actuator space.

Implemented in transmission_interface::DifferentialTransmission, transmission_interface::FourBarLinkageTransmission, and transmission_interface::SimpleTransmission.

◆ num_joints()

virtual std::size_t transmission_interface::Transmission::num_joints ( ) const
pure virtual
Returns
Number of joints managed by transmission, ie. the dimension of the joint space.

Implemented in transmission_interface::DifferentialTransmission, transmission_interface::FourBarLinkageTransmission, and transmission_interface::SimpleTransmission.


The documentation for this class was generated from the following file: