- 3.0.2 rigid body dynamics module.
ct::rbd::SEADynamicsFirstOrder< NJOINTS, SCALAR > Class Template Reference

#include <SEADynamicsFirstOrder.h>

Inheritance diagram for ct::rbd::SEADynamicsFirstOrder< NJOINTS, SCALAR >:
ct::rbd::ActuatorDynamics< NJOINTS, NJOINTS, SCALAR >

Public Member Functions

 SEADynamicsFirstOrder (double k_spring, double gear_ratio)
 constructor assuming unit amplification More...
 
virtual ~SEADynamicsFirstOrder ()
 destructor More...
 
virtual SEADynamicsFirstOrder< NJOINTS, SCALAR > * clone () const override
 deep cloning More...
 
virtual void computeActuatorDynamics (const JointState< NJOINTS, SCALAR > &robotJointState, const ct::core::StateVector< NJOINTS, SCALAR > &state, const SCALAR &t, const ct::core::ControlVector< NJOINTS, SCALAR > &control, ct::core::StateVector< NJOINTS, SCALAR > &derivative) override
 
virtual core::ControlVector< NJOINTS, SCALARcomputeControlOutput (const JointState< NJOINTS, SCALAR > &robotJointState, const typename BASE::act_state_vector_t &actState) override
 
virtual ct::core::StateVector< NJOINTS, SCALARcomputeStateFromOutput (const JointState< NJOINTS, SCALAR > &refRobotJointState, const core::ControlVector< NJOINTS, SCALAR > &refControl) override
 reconstruct actuator state from a desired control output and robot joint state (e.g. for initialization) More...
 
- Public Member Functions inherited from ct::rbd::ActuatorDynamics< NJOINTS, NJOINTS, SCALAR >
 ActuatorDynamics ()
 
virtual ~ActuatorDynamics ()
 
virtual void computeActuatorDynamics (const JointState< NJOINTS, SCALAR > &robotJointState, const ct::core::StateVector< ACT_STATE_DIMS, SCALAR > &actuatorState, const SCALAR &t, const ct::core::ControlVector< NJOINTS, SCALAR > &control, ct::core::StateVector< ACT_STATE_DIMS, SCALAR > &derivative)=0
 
virtual core::ControlVector< NJOINTS, SCALARcomputeControlOutput (const JointState< NJOINTS, SCALAR > &robotJointState, const act_state_vector_t &actState)=0
 output equation of the actuator More...
 

Public Attributes

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef ActuatorDynamics< NJOINTS, NJOINTS, SCALARBASE
 

Additional Inherited Members

- Public Types inherited from ct::rbd::ActuatorDynamics< NJOINTS, NJOINTS, SCALAR >
typedef ct::core::StateVector< ACT_STATE_DIMS, SCALARact_state_vector_t
 
typedef ct::core::ControlVector< NJOINTS, SCALARact_control_vector_t
 
- Static Public Attributes inherited from ct::rbd::ActuatorDynamics< NJOINTS, NJOINTS, SCALAR >
static EIGEN_MAKE_ALIGNED_OPERATOR_NEW const size_t ACT_STATE_DIM
 
static const size_t ACT_CONTROL_DIM
 

Detailed Description

template<size_t NJOINTS, typename SCALAR = double>
class ct::rbd::SEADynamicsFirstOrder< NJOINTS, SCALAR >

Series-elastic actuator dynamics modeled as a series of motor, gearbox and a spring.

Control Input: Motor Velocity Actuator State: Gear Position Actuator State Derivative: Gear Velocity

Note
The advantage of choosing the the gear position as state is that no calibration on the motor position is required. In a SEA, the gear position is typically known anyway.

Constructor & Destructor Documentation

◆ SEADynamicsFirstOrder()

template<size_t NJOINTS, typename SCALAR >
ct::rbd::SEADynamicsFirstOrder< NJOINTS, SCALAR >::SEADynamicsFirstOrder ( double  k_spring,
double  gear_ratio 
)

constructor assuming unit amplification

Referenced by ct::rbd::SEADynamicsFirstOrder< NJOINTS, SCALAR >::clone().

◆ ~SEADynamicsFirstOrder()

template<size_t NJOINTS, typename SCALAR >
ct::rbd::SEADynamicsFirstOrder< NJOINTS, SCALAR >::~SEADynamicsFirstOrder ( )
virtual

destructor

Member Function Documentation

◆ clone()

template<size_t NJOINTS, typename SCALAR >
SEADynamicsFirstOrder< NJOINTS, SCALAR > * ct::rbd::SEADynamicsFirstOrder< NJOINTS, SCALAR >::clone ( ) const
overridevirtual

◆ computeActuatorDynamics()

template<size_t NJOINTS, typename SCALAR >
void ct::rbd::SEADynamicsFirstOrder< NJOINTS, SCALAR >::computeActuatorDynamics ( const JointState< NJOINTS, SCALAR > &  robotJointState,
const ct::core::StateVector< NJOINTS, SCALAR > &  state,
const SCALAR t,
const ct::core::ControlVector< NJOINTS, SCALAR > &  control,
ct::core::StateVector< NJOINTS, SCALAR > &  derivative 
)
overridevirtual

◆ computeControlOutput()

template<size_t NJOINTS, typename SCALAR >
core::ControlVector< NJOINTS, SCALAR > ct::rbd::SEADynamicsFirstOrder< NJOINTS, SCALAR >::computeControlOutput ( const JointState< NJOINTS, SCALAR > &  robotJointState,
const typename BASE::act_state_vector_t &  actState 
)
overridevirtual

◆ computeStateFromOutput()

template<size_t NJOINTS, typename SCALAR >
ct::core::StateVector< NJOINTS, SCALAR > ct::rbd::SEADynamicsFirstOrder< NJOINTS, SCALAR >::computeStateFromOutput ( const JointState< NJOINTS, SCALAR > &  refRobotJointState,
const core::ControlVector< NJOINTS, SCALAR > &  refControl 
)
overridevirtual

reconstruct actuator state from a desired control output and robot joint state (e.g. for initialization)

Returns
the actuator state resulting in the desired control output

Implements ct::rbd::ActuatorDynamics< NJOINTS, NJOINTS, SCALAR >.

References ct::rbd::JointState< NJOINTS, SCALAR >::getPositions(), and ct::core::ControlVector< CONTROL_DIM, SCALAR >::toImplementation().

Member Data Documentation

◆ BASE

template<size_t NJOINTS, typename SCALAR = double>
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef ActuatorDynamics<NJOINTS, NJOINTS, SCALAR> ct::rbd::SEADynamicsFirstOrder< NJOINTS, SCALAR >::BASE

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