ros2_control - humble
|
Implementation of a simple reducer transmission. More...
#include <simple_transmission.hpp>
Public Member Functions | |
SimpleTransmission (const double joint_to_actuator_reduction, const double joint_offset=0.0) | |
void | configure (const std::vector< JointHandle > &joint_handles, const std::vector< ActuatorHandle > &actuator_handles) override |
Set up the data the transmission operates on. | |
void | actuator_to_joint () override |
Transform variables from actuator to joint space. | |
void | joint_to_actuator () override |
Transform variables from joint to actuator space. | |
std::size_t | num_actuators () const override |
std::size_t | num_joints () const override |
double | get_actuator_reduction () const |
double | get_joint_offset () const |
Protected Attributes | |
double | reduction_ |
double | jnt_offset_ |
JointHandle | joint_position_ = {"", "", nullptr} |
JointHandle | joint_velocity_ = {"", "", nullptr} |
JointHandle | joint_effort_ = {"", "", nullptr} |
ActuatorHandle | actuator_position_ = {"", "", nullptr} |
ActuatorHandle | actuator_velocity_ = {"", "", nullptr} |
ActuatorHandle | actuator_effort_ = {"", "", nullptr} |
Implementation of a simple reducer transmission.
This transmission relates one actuator and one joint through a reductor (or amplifier). Timing belts and gears are examples of this transmission type, and are illustrated below.
Actuator to joint | \[ \tau_j = n \tau_a \] | \[ \dot{x}_j = \dot{x}_a / n \] | \[ x_j = x_a / n + x_{off} \] |
Joint to actuator | \[ \tau_a = \tau_j / n\] | \[ \dot{x}_a = n \dot{x}_j \] | \[ x_a = n (x_j - x_{off}) \] |
where:
|
inlineexplicit |
[in] | joint_to_actuator_reduction | Joint to actuator reduction ratio. |
[in] | joint_offset | Joint position offset used in the position mappings. |
|
inlineoverridevirtual |
Transform variables from actuator to joint space.
This method operates on the handles provided when configuring the transmission. To call this method it is not required that all supported interface types are provided, e.g. one can supply only velocity handles
Implements transmission_interface::Transmission.
|
inlineoverridevirtual |
Set up the data the transmission operates on.
[in] | joint_handles | Vector of interface handles of one joint |
[in] | actuator_handles | Vector of interface handles of one actuator |
Implements transmission_interface::Transmission.
|
inlineoverridevirtual |
Transform variables from joint to actuator space.
This method operates on the handles provided when configuring the transmission. To call this method it is not required that all supported interface types are provided, e.g. one can supply only velocity handles
Implements transmission_interface::Transmission.
|
inlineoverridevirtual |
Implements transmission_interface::Transmission.
|
inlineoverridevirtual |
Implements transmission_interface::Transmission.