- 3.0.2 models module.
iit::HyQ::dyn::tpl::InverseDynamics< TRAIT > Class Template Reference

#include <inverse_dynamics.h>

Public Types

typedef iit::rbd::Core< ScalarCoreS
 
typedef CoreS::ForceVector Force
 
typedef LinkDataMap< ForceExtForces
 
typedef CoreS::VelocityVector Velocity
 
typedef CoreS::VelocityVector Acceleration
 
typedef iit::rbd::tpl::InertiaMatrixDense< ScalarInertiaMatrix
 
typedef iit::HyQ::tpl::JointState< ScalarJointState
 
typedef CoreS::Matrix66 Matrix66s
 
typedef iit::HyQ::tpl::MotionTransforms< TRAIT > MTransforms
 
typedef InertiaProperties< TRAIT > IProperties
 

Public Member Functions

 InverseDynamics (IProperties &in, MTransforms &tr)
 
void setJointStatus (const JointState &q) const
 
Inverse dynamics

The full algorithm for the inverse dynamics of this robot.

All the spatial vectors in the parameters are expressed in base coordinates, besides the external forces: each force must be expressed in the reference frame of the link it is acting on.

Parameters
[out]jForcesthe joint force vector required to achieve the desired accelerations
[out]baseAccelthe spatial acceleration of the robot base
[in]gthe gravity acceleration, as a spatial vector; gravity implicitly specifies the orientation of the base in space
[in]trunk_vthe spatial velocity of the base
[in]qthe joint position vector
[in]qdthe joint velocity vector
[in]qddthe desired joint acceleration vector
[in]fextthe external forces acting on the links; this parameters defaults to zero
void id (JointState &jForces, Acceleration &trunk_a, const Acceleration &g, const Velocity &trunk_v, const JointState &q, const JointState &qd, const JointState &qdd, const ExtForces &fext=zeroExtForces)
 
void id (JointState &jForces, Acceleration &trunk_a, const Acceleration &g, const Velocity &trunk_v, const JointState &qd, const JointState &qdd, const ExtForces &fext=zeroExtForces)
 
Inverse dynamics, fully actuated base

The inverse dynamics algorithm for the floating base robot, in the assumption of a fully actuated base.

All the spatial vectors in the parameters are expressed in base coordinates, besides the external forces: each force must be expressed in the reference frame of the link it is acting on.

Parameters
[out]baseWrenchthe spatial force to be applied to the robot base to achieve the desired accelerations
[out]jForcesthe joint force vector required to achieve the desired accelerations
[in]gthe gravity acceleration, as a spatial vector; gravity implicitly specifies the orientation of the base in space
[in]trunk_vthe spatial velocity of the base
[in]baseAccelthe desired spatial acceleration of the robot base
[in]qthe joint position vector
[in]qdthe joint velocity vector
[in]qddthe desired joint acceleration vector
[in]fextthe external forces acting on the links; this parameters defaults to zero
void id_fully_actuated (Force &baseWrench, JointState &jForces, const Acceleration &g, const Velocity &trunk_v, const Acceleration &baseAccel, const JointState &q, const JointState &qd, const JointState &qdd, const ExtForces &fext=zeroExtForces)
 
void id_fully_actuated (Force &baseWrench, JointState &jForces, const Acceleration &g, const Velocity &trunk_v, const Acceleration &baseAccel, const JointState &qd, const JointState &qdd, const ExtForces &fext=zeroExtForces)
 
Gravity terms, fully actuated base
void G_terms_fully_actuated (Force &baseWrench, JointState &jForces, const Acceleration &g, const JointState &q)
 
void G_terms_fully_actuated (Force &baseWrench, JointState &jForces, const Acceleration &g)
 
Centrifugal and Coriolis terms, fully actuated base

These functions take only velocity inputs, that is, they assume a zero spatial acceleration of the base (in addition to zero acceleration at the actuated joints). Note that this is NOT the same as imposing zero acceleration at the virtual 6-dof-floting-base joint, which would result, in general, in a non-zero spatial acceleration of the base, due to velocity product terms.

void C_terms_fully_actuated (Force &baseWrench, JointState &jForces, const Velocity &trunk_v, const JointState &q, const JointState &qd)
 
void C_terms_fully_actuated (Force &baseWrench, JointState &jForces, const Velocity &trunk_v, const JointState &qd)
 
Getters

These functions return various spatial quantities used internally by the inverse dynamics routines, like the spatial acceleration of the links.

The getters can be useful to retrieve the additional data that is not returned explicitly by the inverse dynamics routines even though it is computed. For example, after a call to the inverse dynamics, the spatial velocity of all the links has been determined and can be accessed.

However, beware that certain routines might not use some of the spatial quantities, which therefore would retain their last value without being updated nor reset (for example, the spatial velocity of the links is unaffected by the computation of the gravity terms).

const ForcegetForce_trunk () const
 
const VelocitygetVelocity_LF_hipassembly () const
 
const AccelerationgetAcceleration_LF_hipassembly () const
 
const ForcegetForce_LF_hipassembly () const
 
const VelocitygetVelocity_LF_upperleg () const
 
const AccelerationgetAcceleration_LF_upperleg () const
 
const ForcegetForce_LF_upperleg () const
 
const VelocitygetVelocity_LF_lowerleg () const
 
const AccelerationgetAcceleration_LF_lowerleg () const
 
const ForcegetForce_LF_lowerleg () const
 
const VelocitygetVelocity_RF_hipassembly () const
 
const AccelerationgetAcceleration_RF_hipassembly () const
 
const ForcegetForce_RF_hipassembly () const
 
const VelocitygetVelocity_RF_upperleg () const
 
const AccelerationgetAcceleration_RF_upperleg () const
 
const ForcegetForce_RF_upperleg () const
 
const VelocitygetVelocity_RF_lowerleg () const
 
const AccelerationgetAcceleration_RF_lowerleg () const
 
const ForcegetForce_RF_lowerleg () const
 
const VelocitygetVelocity_LH_hipassembly () const
 
const AccelerationgetAcceleration_LH_hipassembly () const
 
const ForcegetForce_LH_hipassembly () const
 
const VelocitygetVelocity_LH_upperleg () const
 
const AccelerationgetAcceleration_LH_upperleg () const
 
const ForcegetForce_LH_upperleg () const
 
const VelocitygetVelocity_LH_lowerleg () const
 
const AccelerationgetAcceleration_LH_lowerleg () const
 
const ForcegetForce_LH_lowerleg () const
 
const VelocitygetVelocity_RH_hipassembly () const
 
const AccelerationgetAcceleration_RH_hipassembly () const
 
const ForcegetForce_RH_hipassembly () const
 
const VelocitygetVelocity_RH_upperleg () const
 
const AccelerationgetAcceleration_RH_upperleg () const
 
const ForcegetForce_RH_upperleg () const
 
const VelocitygetVelocity_RH_lowerleg () const
 
const AccelerationgetAcceleration_RH_lowerleg () const
 
const ForcegetForce_RH_lowerleg () const
 

Public Attributes

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef TRAIT::Scalar Scalar
 

Protected Member Functions

void secondPass_fullyActuated (JointState &jForces)
 

Member Typedef Documentation

◆ CoreS

template<typename TRAIT >
typedef iit::rbd::Core<Scalar> iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::CoreS

◆ Force

template<typename TRAIT >
typedef CoreS::ForceVector iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::Force

◆ ExtForces

template<typename TRAIT >
typedef LinkDataMap<Force> iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::ExtForces

◆ Velocity

template<typename TRAIT >
typedef CoreS::VelocityVector iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::Velocity

◆ Acceleration

template<typename TRAIT >
typedef CoreS::VelocityVector iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::Acceleration

◆ InertiaMatrix

◆ JointState

◆ Matrix66s

template<typename TRAIT >
typedef CoreS::Matrix66 iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::Matrix66s

◆ MTransforms

template<typename TRAIT >
typedef iit::HyQ::tpl::MotionTransforms<TRAIT> iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::MTransforms

◆ IProperties

template<typename TRAIT >
typedef InertiaProperties<TRAIT> iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::IProperties

Constructor & Destructor Documentation

◆ InverseDynamics()

template<typename TRAIT >
iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::InverseDynamics ( IProperties in,
MTransforms tr 
)

Default constructor

Parameters
inthe inertia properties of the links
trthe container of all the spatial motion transforms of the robot HyQ, which will be used by this instance to compute inverse-dynamics.

Member Function Documentation

◆ id() [1/2]

template<typename TRAIT >
void iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::id ( JointState jForces,
Acceleration trunk_a,
const Acceleration g,
const Velocity trunk_v,
const JointState q,
const JointState qd,
const JointState qdd,
const ExtForces fext = zeroExtForces 
)
inline

◆ id() [2/2]

◆ id_fully_actuated() [1/2]

template<typename TRAIT >
void iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::id_fully_actuated ( Force baseWrench,
JointState jForces,
const Acceleration g,
const Velocity trunk_v,
const Acceleration baseAccel,
const JointState q,
const JointState qd,
const JointState qdd,
const ExtForces fext = zeroExtForces 
)
inline

◆ id_fully_actuated() [2/2]

◆ G_terms_fully_actuated() [1/2]

template<typename TRAIT >
void iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::G_terms_fully_actuated ( Force baseWrench,
JointState jForces,
const Acceleration g,
const JointState q 
)
inline

◆ G_terms_fully_actuated() [2/2]

template<typename TRAIT >
void iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::G_terms_fully_actuated ( Force baseWrench,
JointState jForces,
const Acceleration g 
)

◆ C_terms_fully_actuated() [1/2]

template<typename TRAIT >
void iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::C_terms_fully_actuated ( Force baseWrench,
JointState jForces,
const Velocity trunk_v,
const JointState q,
const JointState qd 
)
inline

◆ C_terms_fully_actuated() [2/2]

◆ setJointStatus()

◆ getForce_trunk()

template<typename TRAIT >
const Force& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getForce_trunk ( ) const
inline

◆ getVelocity_LF_hipassembly()

template<typename TRAIT >
const Velocity& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getVelocity_LF_hipassembly ( ) const
inline

◆ getAcceleration_LF_hipassembly()

template<typename TRAIT >
const Acceleration& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getAcceleration_LF_hipassembly ( ) const
inline

◆ getForce_LF_hipassembly()

template<typename TRAIT >
const Force& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getForce_LF_hipassembly ( ) const
inline

◆ getVelocity_LF_upperleg()

template<typename TRAIT >
const Velocity& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getVelocity_LF_upperleg ( ) const
inline

◆ getAcceleration_LF_upperleg()

template<typename TRAIT >
const Acceleration& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getAcceleration_LF_upperleg ( ) const
inline

◆ getForce_LF_upperleg()

template<typename TRAIT >
const Force& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getForce_LF_upperleg ( ) const
inline

◆ getVelocity_LF_lowerleg()

template<typename TRAIT >
const Velocity& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getVelocity_LF_lowerleg ( ) const
inline

◆ getAcceleration_LF_lowerleg()

template<typename TRAIT >
const Acceleration& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getAcceleration_LF_lowerleg ( ) const
inline

◆ getForce_LF_lowerleg()

template<typename TRAIT >
const Force& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getForce_LF_lowerleg ( ) const
inline

◆ getVelocity_RF_hipassembly()

template<typename TRAIT >
const Velocity& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getVelocity_RF_hipassembly ( ) const
inline

◆ getAcceleration_RF_hipassembly()

template<typename TRAIT >
const Acceleration& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getAcceleration_RF_hipassembly ( ) const
inline

◆ getForce_RF_hipassembly()

template<typename TRAIT >
const Force& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getForce_RF_hipassembly ( ) const
inline

◆ getVelocity_RF_upperleg()

template<typename TRAIT >
const Velocity& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getVelocity_RF_upperleg ( ) const
inline

◆ getAcceleration_RF_upperleg()

template<typename TRAIT >
const Acceleration& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getAcceleration_RF_upperleg ( ) const
inline

◆ getForce_RF_upperleg()

template<typename TRAIT >
const Force& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getForce_RF_upperleg ( ) const
inline

◆ getVelocity_RF_lowerleg()

template<typename TRAIT >
const Velocity& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getVelocity_RF_lowerleg ( ) const
inline

◆ getAcceleration_RF_lowerleg()

template<typename TRAIT >
const Acceleration& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getAcceleration_RF_lowerleg ( ) const
inline

◆ getForce_RF_lowerleg()

template<typename TRAIT >
const Force& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getForce_RF_lowerleg ( ) const
inline

◆ getVelocity_LH_hipassembly()

template<typename TRAIT >
const Velocity& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getVelocity_LH_hipassembly ( ) const
inline

◆ getAcceleration_LH_hipassembly()

template<typename TRAIT >
const Acceleration& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getAcceleration_LH_hipassembly ( ) const
inline

◆ getForce_LH_hipassembly()

template<typename TRAIT >
const Force& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getForce_LH_hipassembly ( ) const
inline

◆ getVelocity_LH_upperleg()

template<typename TRAIT >
const Velocity& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getVelocity_LH_upperleg ( ) const
inline

◆ getAcceleration_LH_upperleg()

template<typename TRAIT >
const Acceleration& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getAcceleration_LH_upperleg ( ) const
inline

◆ getForce_LH_upperleg()

template<typename TRAIT >
const Force& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getForce_LH_upperleg ( ) const
inline

◆ getVelocity_LH_lowerleg()

template<typename TRAIT >
const Velocity& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getVelocity_LH_lowerleg ( ) const
inline

◆ getAcceleration_LH_lowerleg()

template<typename TRAIT >
const Acceleration& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getAcceleration_LH_lowerleg ( ) const
inline

◆ getForce_LH_lowerleg()

template<typename TRAIT >
const Force& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getForce_LH_lowerleg ( ) const
inline

◆ getVelocity_RH_hipassembly()

template<typename TRAIT >
const Velocity& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getVelocity_RH_hipassembly ( ) const
inline

◆ getAcceleration_RH_hipassembly()

template<typename TRAIT >
const Acceleration& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getAcceleration_RH_hipassembly ( ) const
inline

◆ getForce_RH_hipassembly()

template<typename TRAIT >
const Force& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getForce_RH_hipassembly ( ) const
inline

◆ getVelocity_RH_upperleg()

template<typename TRAIT >
const Velocity& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getVelocity_RH_upperleg ( ) const
inline

◆ getAcceleration_RH_upperleg()

template<typename TRAIT >
const Acceleration& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getAcceleration_RH_upperleg ( ) const
inline

◆ getForce_RH_upperleg()

template<typename TRAIT >
const Force& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getForce_RH_upperleg ( ) const
inline

◆ getVelocity_RH_lowerleg()

template<typename TRAIT >
const Velocity& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getVelocity_RH_lowerleg ( ) const
inline

◆ getAcceleration_RH_lowerleg()

template<typename TRAIT >
const Acceleration& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getAcceleration_RH_lowerleg ( ) const
inline

◆ getForce_RH_lowerleg()

template<typename TRAIT >
const Force& iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::getForce_RH_lowerleg ( ) const
inline

◆ secondPass_fullyActuated()

Member Data Documentation

◆ Scalar

template<typename TRAIT >
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef TRAIT::Scalar iit::HyQ::dyn::tpl::InverseDynamics< TRAIT >::Scalar

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