Public Member Functions | Protected Attributes
transmission_interface::DifferentialTransmission Class Reference

Implementation of a differential transmission. More...

#include <differential_transmission.h>

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

List of all members.

Public Member Functions

void actuatorToJointEffort (const ActuatorData &act_data, JointData &jnt_data)
 Transform effort variables from actuator to joint space.
void actuatorToJointPosition (const ActuatorData &act_data, JointData &jnt_data)
 Transform position variables from actuator to joint space.
void actuatorToJointVelocity (const ActuatorData &act_data, JointData &jnt_data)
 Transform velocity variables from actuator to joint space.
 DifferentialTransmission (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.
void jointToActuatorPosition (const JointData &jnt_data, ActuatorData &act_data)
 Transform position variables from joint to actuator space.
void jointToActuatorVelocity (const JointData &jnt_data, ActuatorData &act_data)
 Transform velocity variables from joint to actuator space.
std::size_t numActuators () const
std::size_t numJoints () const

Protected Attributes

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

Detailed Description

Implementation of a differential transmission.

This transmission relates two actuators and two joints through a differential mechanism, as illustrated below.

differential_transmission.png
Effort
Velocity
Position
Actuator to joint

\begin{eqnarray*} \tau_{j_1} & = & n_{j_1} ( n_{a_1} \tau_{a_1} + n_{a_2} \tau_{a_2} ) \\[2.5em] \tau_{j_2} & = & n_{j_2} ( n_{a_1} \tau_{a_1} + n_{a_2} \tau_{a_2} ) \end{eqnarray*}

\begin{eqnarray*} \dot{x}_{j_1} & = & \frac{ \dot{x}_{a_1} / n_{a_1} + \dot{x}_{a_2} / n_{a_2} }{2 n_{j_1}} \\[1em] \dot{x}_{j_2} & = & \frac{ \dot{x}_{a_1} / n_{a_1} - \dot{x}_{a_2} / n_{a_2} }{2 n_{j_2}} \end{eqnarray*}

\begin{eqnarray*} x_{j_1} & = & \frac{ x_{a_1} / n_{a_1} + x_{a_2} / n_{a_2} }{2 n_{j_1}} + x_{off_1} \\[1em] x_{j_2} & = & \frac{ x_{a_1} / n_{a_1} - x_{a_2} / n_{a_2} }{2 n_{j_1}} + x_{off_2} \end{eqnarray*}

Joint to actuator

\begin{eqnarray*} \tau_{a_1} & = & \frac{ \tau_{j_1} / n_{j_1} + \tau_{j_2} / n_{j_2} }{2 n_{a_1}} \\[1em] \tau_{a_2} & = & \frac{ \tau_{j_1} / n_{j_1} - \tau_{j_2} / n_{j_2} }{2 n_{a_1}} \end{eqnarray*}

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

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

where:

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.


Constructor & Destructor Documentation

transmission_interface::DifferentialTransmission::DifferentialTransmission ( 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 and joint reduction values.

Definition at line 203 of file differential_transmission.h.


Member Function Documentation

void transmission_interface::DifferentialTransmission::actuatorToJointEffort ( const ActuatorData act_data,
JointData jnt_data 
) [inline, virtual]

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 228 of file differential_transmission.h.

void transmission_interface::DifferentialTransmission::actuatorToJointPosition ( const ActuatorData act_data,
JointData jnt_data 
) [inline, virtual]

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 254 of file differential_transmission.h.

void transmission_interface::DifferentialTransmission::actuatorToJointVelocity ( const ActuatorData act_data,
JointData jnt_data 
) [inline, virtual]

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 241 of file differential_transmission.h.

const std::vector<double>& transmission_interface::DifferentialTransmission::getActuatorReduction ( ) const [inline]

Definition at line 193 of file differential_transmission.h.

const std::vector<double>& transmission_interface::DifferentialTransmission::getJointOffset ( ) const [inline]

Definition at line 195 of file differential_transmission.h.

const std::vector<double>& transmission_interface::DifferentialTransmission::getJointReduction ( ) const [inline]

Definition at line 194 of file differential_transmission.h.

void transmission_interface::DifferentialTransmission::jointToActuatorEffort ( const JointData jnt_data,
ActuatorData act_data 
) [inline, virtual]

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 267 of file differential_transmission.h.

void transmission_interface::DifferentialTransmission::jointToActuatorPosition ( const JointData jnt_data,
ActuatorData act_data 
) [inline, virtual]

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 293 of file differential_transmission.h.

void transmission_interface::DifferentialTransmission::jointToActuatorVelocity ( const JointData jnt_data,
ActuatorData act_data 
) [inline, virtual]

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 280 of file differential_transmission.h.

std::size_t transmission_interface::DifferentialTransmission::numActuators ( ) const [inline, virtual]
Returns:
Number of actuators managed by transmission, ie. the dimension of the actuator space.

Implements transmission_interface::Transmission.

Definition at line 190 of file differential_transmission.h.

std::size_t transmission_interface::DifferentialTransmission::numJoints ( ) const [inline, virtual]
Returns:
Number of joints managed by transmission, ie. the dimension of the joint space.

Implements transmission_interface::Transmission.

Definition at line 191 of file differential_transmission.h.


Member Data Documentation

Definition at line 198 of file differential_transmission.h.

Definition at line 200 of file differential_transmission.h.

Definition at line 199 of file differential_transmission.h.


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


transmission_interface
Author(s): Adolfo Rodriguez Tsouroukdissian
autogenerated on Fri Aug 28 2015 12:36:26