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

#include <SecondOrderActuatorDynamics.h>

Inheritance diagram for ct::rbd::SecondOrderActuatorDynamics< NJOINTS, SCALAR >:
ct::rbd::ActuatorDynamics< 2 *NJOINTS, NJOINTS, SCALAR >

Public Member Functions

 SecondOrderActuatorDynamics (double w_n, double zeta)
 constructor assuming unit amplification More...
 
 SecondOrderActuatorDynamics (double w_n, double zeta, double g_dc)
 constructor assuming custom amplification, set g_dc = w_n*w_n More...
 
 SecondOrderActuatorDynamics (std::vector< double > w_n, std::vector< double > zeta)
 constructor assuming unit amplification More...
 
 SecondOrderActuatorDynamics (std::vector< double > w_n, std::vector< double > zeta, std::vector< double > g_dc)
 constructor assuming custom amplification, set g_dc = w_n*w_n More...
 
virtual ~SecondOrderActuatorDynamics ()
 destructor More...
 
virtual SecondOrderActuatorDynamics< NJOINTS, SCALAR > * clone () const override
 deep cloning More...
 
virtual void computeActuatorDynamics (const JointState< NJOINTS, SCALAR > &robotJointState, const ct::core::StateVector< 2 *NJOINTS, SCALAR > &state, const SCALAR &t, const ct::core::ControlVector< NJOINTS, SCALAR > &control, ct::core::StateVector< 2 *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< 2 *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< 2 *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< 2 *NJOINTS, NJOINTS, SCALARBASE
 

Additional Inherited Members

- Public Types inherited from ct::rbd::ActuatorDynamics< 2 *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< 2 *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::SecondOrderActuatorDynamics< NJOINTS, SCALAR >

Actuator Dynamics modeled as second order system, an oscillator with damping.

Warning
This is wrong - actually the simple oscillator is not a symplectic system (if damping != 0)

Constructor & Destructor Documentation

◆ SecondOrderActuatorDynamics() [1/4]

template<size_t NJOINTS, typename SCALAR >
ct::rbd::SecondOrderActuatorDynamics< NJOINTS, SCALAR >::SecondOrderActuatorDynamics ( double  w_n,
double  zeta 
)

constructor assuming unit amplification

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

◆ SecondOrderActuatorDynamics() [2/4]

template<size_t NJOINTS, typename SCALAR >
ct::rbd::SecondOrderActuatorDynamics< NJOINTS, SCALAR >::SecondOrderActuatorDynamics ( double  w_n,
double  zeta,
double  g_dc 
)

constructor assuming custom amplification, set g_dc = w_n*w_n

◆ SecondOrderActuatorDynamics() [3/4]

template<size_t NJOINTS, typename SCALAR >
ct::rbd::SecondOrderActuatorDynamics< NJOINTS, SCALAR >::SecondOrderActuatorDynamics ( std::vector< double >  w_n,
std::vector< double >  zeta 
)

constructor assuming unit amplification

References i.

◆ SecondOrderActuatorDynamics() [4/4]

template<size_t NJOINTS, typename SCALAR >
ct::rbd::SecondOrderActuatorDynamics< NJOINTS, SCALAR >::SecondOrderActuatorDynamics ( std::vector< double >  w_n,
std::vector< double >  zeta,
std::vector< double >  g_dc 
)

constructor assuming custom amplification, set g_dc = w_n*w_n

References i.

◆ ~SecondOrderActuatorDynamics()

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

destructor

Member Function Documentation

◆ clone()

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

◆ computeActuatorDynamics()

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

References i.

◆ computeControlOutput()

template<size_t NJOINTS, typename SCALAR >
core::ControlVector< NJOINTS, SCALAR > ct::rbd::SecondOrderActuatorDynamics< 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< 2 *NJOINTS, SCALAR > ct::rbd::SecondOrderActuatorDynamics< 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< 2 *NJOINTS, NJOINTS, SCALAR >.

References 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<2 * NJOINTS, NJOINTS, SCALAR> ct::rbd::SecondOrderActuatorDynamics< NJOINTS, SCALAR >::BASE

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