Public Member Functions | Protected Attributes | List of all members
transmission_interface::FourBarLinkageTransmission Class Reference

Implementation of a four-bar-linkage transmission. More...

#include <four_bar_linkage_transmission.h>

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

Public Member Functions

void actuatorToJointEffort (const ActuatorData &act_data, JointData &jnt_data)
 Transform effort variables from actuator to joint space. More...
 
void actuatorToJointPosition (const ActuatorData &act_data, JointData &jnt_data)
 Transform position variables from actuator to joint space. More...
 
void actuatorToJointVelocity (const ActuatorData &act_data, JointData &jnt_data)
 Transform velocity variables from actuator to joint space. More...
 
 FourBarLinkageTransmission (const std::vector< double > &actuator_reduction, const std::vector< double > &joint_reduction, 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
 
void jointToActuatorEffort (const JointData &jnt_data, ActuatorData &act_data)
 Transform effort variables from joint to actuator space. More...
 
void jointToActuatorPosition (const JointData &jnt_data, ActuatorData &act_data)
 Transform position variables from joint to actuator space. More...
 
void jointToActuatorVelocity (const JointData &jnt_data, ActuatorData &act_data)
 Transform velocity variables from joint to actuator space. More...
 
std::size_t numActuators () const
 
std::size_t numJoints () const
 
- Public Member Functions inherited from transmission_interface::Transmission
virtual ~Transmission ()
 

Protected Attributes

std::vector< double > act_reduction_
 
std::vector< double > jnt_offset_
 
std::vector< double > jnt_reduction_
 

Detailed Description

Implementation of a four-bar-linkage transmission.

This transmission relates two actuators and two joints through a mechanism in which the state of the first joint only depends on the first actuator, while the second joint depends on both actuators, as illustrated below. Although the class name makes specific reference to the four-bar-linkage, there are other mechanical layouts that yield the same behavior, such as the remote actuation example also depicted below.

four_bar_linkage_transmission.png
Effort
Velocity
Position
Actuator to joint

\begin{eqnarray*} \tau_{j_1} & = & n_{j_1} n_{a_1} \tau_{a_1} \\ \tau_{j_2} & = & n_{j_2} (n_{a_2} \tau_{a_2} - n_{j_1} n_{a_1} \tau_{a_1}) \end{eqnarray*}

\begin{eqnarray*} \dot{x}_{j_1} & = & \frac{ \dot{x}_{a_1} }{ n_{j_1} n_{a_1} } \\ \dot{x}_{j_2} & = & \frac{ \dot{x}_{a_2} / n_{a_2} - \dot{x}_{a_1} / (n_{j_1} n_{a_1}) }{ n_{j_2} } \end{eqnarray*}

\begin{eqnarray*} x_{j_1} & = & \frac{ x_{a_1} }{ n_{j_1} n_{a_1} } + x_{off_1} \\ x_{j_2} & = & \frac{ x_{a_2} / n_{a_2} - x_{a_1} / (n_{j_1} n_{a_1}) }{ n_{j_2} } + x_{off_2} \end{eqnarray*}

Joint to actuator

\begin{eqnarray*} \tau_{a_1} & = & \tau_{j_1} / (n_{j_1} n_{a_1}) \\ \tau_{a_2} & = & \frac{ \tau_{j_1} + \tau_{j_2} / n_{j_2} }{ n_{a_2} } \end{eqnarray*}

\begin{eqnarray*} \dot{x}_{a_1} & = & n_{j_1} n_{a_1} \dot{x}_{j_1} \\ \dot{x}_{a_2} & = & n_{a_2} (\dot{x}_{j_1} + n_{j_2} \dot{x}_{j_2}) \end{eqnarray*}

\begin{eqnarray*} x_{a_1} & = & n_{j_1} n_{a_1} (x_{j_1} - x_{off_1}) \\ x_{a_2} & = & n_{a_2} \left[(x_{j_1} - x_{off_1}) + n_{j_2} (x_{j_2} - x_{off_2})\right] \end{eqnarray*}

where:

Definition at line 117 of file four_bar_linkage_transmission.h.

Constructor & Destructor Documentation

transmission_interface::FourBarLinkageTransmission::FourBarLinkageTransmission ( const std::vector< double > &  actuator_reduction,
const std::vector< double > &  joint_reduction,
const std::vector< double > &  joint_offset = std::vector<double>(2, 0.0) 
)
inline
Parameters
actuator_reductionReduction ratio of actuators.
joint_reductionReduction ratio of joints.
joint_offsetJoint position offset used in the position mappings.
Precondition
Nonzero actuator reduction values.

Definition at line 203 of file four_bar_linkage_transmission.h.

Member Function Documentation

void transmission_interface::FourBarLinkageTransmission::actuatorToJointEffort ( const ActuatorData act_data,
JointData jnt_data 
)
inlinevirtual

Transform effort variables from actuator to joint space.

Parameters
[in]act_dataActuator-space variables.
[out]jnt_dataJoint-space variables.
Precondition
Actuator and joint effort vectors must have size 2 and point to valid data. To call this method it is not required that all other data vectors contain valid data, and can even remain empty.

Implements transmission_interface::Transmission.

Definition at line 226 of file four_bar_linkage_transmission.h.

void transmission_interface::FourBarLinkageTransmission::actuatorToJointPosition ( const ActuatorData act_data,
JointData jnt_data 
)
inlinevirtual

Transform position variables from actuator to joint space.

Parameters
[in]act_dataActuator-space variables.
[out]jnt_dataJoint-space variables.
Precondition
Actuator and joint position vectors must have size 2 and point to valid data. To call this method it is not required that all other data vectors contain valid data, and can even remain empty.

Implements transmission_interface::Transmission.

Definition at line 252 of file four_bar_linkage_transmission.h.

void transmission_interface::FourBarLinkageTransmission::actuatorToJointVelocity ( const ActuatorData act_data,
JointData jnt_data 
)
inlinevirtual

Transform velocity variables from actuator to joint space.

Parameters
[in]act_dataActuator-space variables.
[out]jnt_dataJoint-space variables.
Precondition
Actuator and joint velocity vectors must have size 2 and point to valid data. To call this method it is not required that all other data vectors contain valid data, and can even remain empty.

Implements transmission_interface::Transmission.

Definition at line 239 of file four_bar_linkage_transmission.h.

const std::vector<double>& transmission_interface::FourBarLinkageTransmission::getActuatorReduction ( ) const
inline

Definition at line 193 of file four_bar_linkage_transmission.h.

const std::vector<double>& transmission_interface::FourBarLinkageTransmission::getJointOffset ( ) const
inline

Definition at line 195 of file four_bar_linkage_transmission.h.

const std::vector<double>& transmission_interface::FourBarLinkageTransmission::getJointReduction ( ) const
inline

Definition at line 194 of file four_bar_linkage_transmission.h.

void transmission_interface::FourBarLinkageTransmission::jointToActuatorEffort ( const JointData jnt_data,
ActuatorData act_data 
)
inlinevirtual

Transform effort variables from joint to actuator space.

Parameters
[in]jnt_dataJoint-space variables.
[out]act_dataActuator-space variables.
Precondition
Actuator and joint effort vectors must have size 2 and point to valid data. To call this method it is not required that all other data vectors contain valid data, and can even remain empty.

Implements transmission_interface::Transmission.

Definition at line 266 of file four_bar_linkage_transmission.h.

void transmission_interface::FourBarLinkageTransmission::jointToActuatorPosition ( const JointData jnt_data,
ActuatorData act_data 
)
inlinevirtual

Transform position variables from joint to actuator space.

Parameters
[in]jnt_dataJoint-space variables.
[out]act_dataActuator-space variables.
Precondition
Actuator and joint position vectors must have size 2 and point to valid data. To call this method it is not required that all other data vectors contain valid data, and can even remain empty.

Implements transmission_interface::Transmission.

Definition at line 292 of file four_bar_linkage_transmission.h.

void transmission_interface::FourBarLinkageTransmission::jointToActuatorVelocity ( const JointData jnt_data,
ActuatorData act_data 
)
inlinevirtual

Transform velocity variables from joint to actuator space.

Parameters
[in]jnt_dataJoint-space variables.
[out]act_dataActuator-space variables.
Precondition
Actuator and joint velocity vectors must have size 2 and point to valid data. To call this method it is not required that all other data vectors contain valid data, and can even remain empty.

Implements transmission_interface::Transmission.

Definition at line 279 of file four_bar_linkage_transmission.h.

std::size_t transmission_interface::FourBarLinkageTransmission::numActuators ( ) const
inlinevirtual
Returns
Number of actuators managed by transmission, ie. the dimension of the actuator space.

Implements transmission_interface::Transmission.

Definition at line 190 of file four_bar_linkage_transmission.h.

std::size_t transmission_interface::FourBarLinkageTransmission::numJoints ( ) const
inlinevirtual
Returns
Number of joints managed by transmission, ie. the dimension of the joint space.

Implements transmission_interface::Transmission.

Definition at line 191 of file four_bar_linkage_transmission.h.

Member Data Documentation

std::vector<double> transmission_interface::FourBarLinkageTransmission::act_reduction_
protected

Definition at line 198 of file four_bar_linkage_transmission.h.

std::vector<double> transmission_interface::FourBarLinkageTransmission::jnt_offset_
protected

Definition at line 200 of file four_bar_linkage_transmission.h.

std::vector<double> transmission_interface::FourBarLinkageTransmission::jnt_reduction_
protected

Definition at line 199 of file four_bar_linkage_transmission.h.


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


transmission_interface
Author(s): Adolfo Rodriguez Tsouroukdissian
autogenerated on Fri Jun 7 2019 22:00:17