|
void | actuatorToJointAbsolutePosition (const ActuatorData &act_data, JointData &jnt_data) override |
| Transform absolute encoder values from actuator to joint space. More...
|
|
void | actuatorToJointEffort (const ActuatorData &act_data, JointData &jnt_data) override |
| Transform effort variables from actuator to joint space. More...
|
|
void | actuatorToJointPosition (const ActuatorData &act_data, JointData &jnt_data) override |
| Transform position variables from actuator to joint space. More...
|
|
void | actuatorToJointTorqueSensor (const ActuatorData &act_data, JointData &jnt_data) override |
| Transform torque sensor values from actuator to joint space. More...
|
|
void | actuatorToJointVelocity (const ActuatorData &act_data, JointData &jnt_data) override |
| Transform velocity variables from actuator to joint space. More...
|
|
| DifferentialTransmission (const std::vector< double > &actuator_reduction, const std::vector< double > &joint_reduction, const std::vector< double > &joint_offset) |
|
| DifferentialTransmission (const std::vector< double > &actuator_reduction, const std::vector< double > &joint_reduction, bool ignore_transmission_for_absolute_encoders=false, const std::vector< double > &joint_offset=std::vector< double >(2, 0.0)) |
|
const std::vector< double > & | getActuatorReduction () const |
|
const std::vector< double > & | getJointOffset () const |
|
const std::vector< double > & | getJointReduction () const |
|
bool | hasActuatorToJointAbsolutePosition () const override |
|
bool | hasActuatorToJointTorqueSensor () const override |
|
void | jointToActuatorEffort (const JointData &jnt_data, ActuatorData &act_data) override |
| Transform effort variables from joint to actuator space. More...
|
|
void | jointToActuatorPosition (const JointData &jnt_data, ActuatorData &act_data) override |
| Transform position variables from joint to actuator space. More...
|
|
void | jointToActuatorVelocity (const JointData &jnt_data, ActuatorData &act_data) override |
| Transform velocity variables from joint to actuator space. More...
|
|
std::size_t | numActuators () const override |
|
std::size_t | numJoints () const override |
|
virtual | ~Transmission ()=default |
|
Implementation of a differential transmission.
This transmission relates two actuators and two joints through a differential mechanism, as illustrated below.
| Effort | Velocity | Position |
Actuator to joint |
|
|
|
Joint to actuator |
|
|
|
where:
- , and are position, velocity and effort variables, respectively.
- Subindices and are used to represent actuator-space and joint-space variables, respectively.
- represents the offset between motor and joint zeros, expressed in joint position coordinates (cf. SimpleTransmission class documentation for a more detailed description of this variable).
- represents a transmission ratio. Reducers/amplifiers are allowed on both the actuator and joint sides (depicted as timing belts in the figure). A transmission ratio can take any real value except zero. In particular:
- If its absolute value is greater than one, it's a velocity reducer / effort amplifier, while if its absolute value lies in it's a velocity amplifier / effort reducer.
- Negative values represent a direction flip, ie. input and output move in opposite directions.
- Important: Use transmission ratio signs to match this class' convention of positive actuator/joint directions with a given mechanical design, as they will in general not match.
- Note
- This implementation currently assumes a specific layout for location of the actuators and joint axes which is common in robotic mechanisms. Please file an enhancement ticket if your use case does not adhere to this layout.
Definition at line 117 of file differential_transmission.h.