Public Member Functions | List of all members
transmission_interface::Transmission Class Referenceabstract

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

#include <transmission.h>

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

Public Member Functions

virtual void actuatorToJointAbsolutePosition (const ActuatorData &, JointData &)
 
virtual void actuatorToJointEffort (const ActuatorData &act_data, JointData &jnt_data)=0
 Transform effort variables from actuator to joint space. More...
 
virtual void actuatorToJointPosition (const ActuatorData &act_data, JointData &jnt_data)=0
 Transform position variables from actuator to joint space. More...
 
virtual void actuatorToJointTorqueSensor (const ActuatorData &, JointData &)
 
virtual void actuatorToJointVelocity (const ActuatorData &act_data, JointData &jnt_data)=0
 Transform velocity variables from actuator to joint space. More...
 
virtual bool hasActuatorToJointAbsolutePosition () const
 
virtual bool hasActuatorToJointTorqueSensor () const
 
virtual void jointToActuatorEffort (const JointData &jnt_data, ActuatorData &act_data)=0
 Transform effort variables from joint to actuator space. More...
 
virtual void jointToActuatorPosition (const JointData &jnt_data, ActuatorData &act_data)=0
 Transform position variables from joint to actuator space. More...
 
virtual void jointToActuatorVelocity (const JointData &jnt_data, ActuatorData &act_data)=0
 Transform velocity variables from joint to actuator space. More...
 
virtual std::size_t numActuators () const =0
 
virtual std::size_t numJoints () const =0
 
virtual ~Transmission ()=default
 

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.

Definition at line 91 of file transmission.h.

Constructor & Destructor Documentation

◆ ~Transmission()

virtual transmission_interface::Transmission::~Transmission ( )
virtualdefault

Member Function Documentation

◆ actuatorToJointAbsolutePosition()

virtual void transmission_interface::Transmission::actuatorToJointAbsolutePosition ( const ActuatorData ,
JointData  
)
inlinevirtual

◆ actuatorToJointEffort()

virtual void transmission_interface::Transmission::actuatorToJointEffort ( const ActuatorData act_data,
JointData jnt_data 
)
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.

◆ actuatorToJointPosition()

virtual void transmission_interface::Transmission::actuatorToJointPosition ( const ActuatorData act_data,
JointData jnt_data 
)
pure virtual

Transform position 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.

◆ actuatorToJointTorqueSensor()

virtual void transmission_interface::Transmission::actuatorToJointTorqueSensor ( const ActuatorData ,
JointData  
)
inlinevirtual

◆ actuatorToJointVelocity()

virtual void transmission_interface::Transmission::actuatorToJointVelocity ( const ActuatorData act_data,
JointData jnt_data 
)
pure virtual

Transform velocity 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.

◆ hasActuatorToJointAbsolutePosition()

virtual bool transmission_interface::Transmission::hasActuatorToJointAbsolutePosition ( ) const
inlinevirtual

◆ hasActuatorToJointTorqueSensor()

virtual bool transmission_interface::Transmission::hasActuatorToJointTorqueSensor ( ) const
inlinevirtual

◆ jointToActuatorEffort()

virtual void transmission_interface::Transmission::jointToActuatorEffort ( const JointData jnt_data,
ActuatorData act_data 
)
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.

◆ jointToActuatorPosition()

virtual void transmission_interface::Transmission::jointToActuatorPosition ( const JointData jnt_data,
ActuatorData act_data 
)
pure virtual

Transform position 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.

◆ jointToActuatorVelocity()

virtual void transmission_interface::Transmission::jointToActuatorVelocity ( const JointData jnt_data,
ActuatorData act_data 
)
pure virtual

Transform velocity 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.

◆ numActuators()

virtual std::size_t transmission_interface::Transmission::numActuators ( ) 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.

◆ numJoints()

virtual std::size_t transmission_interface::Transmission::numJoints ( ) 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:


transmission_interface
Author(s): Adolfo Rodriguez Tsouroukdissian
autogenerated on Tue Oct 15 2024 02:08:29