- 3.0.2 rigid body dynamics module.
|
This class implements the equations of motion of a Rigid Body System. More...
#include <Dynamics.h>
Public Types | |
typedef ROBCOGEN::SCALAR | SCALAR |
typedef Eigen::Matrix< SCALAR, NJOINTS, 1 > | control_vector_t |
typedef Eigen::Matrix< SCALAR, NSTATE, 1 > | state_vector_t |
typedef Eigen::Matrix< SCALAR, 6, 1 > | Vector6d_t |
typedef Vector6d_t | ForceVector_t |
typedef RBDState< NJOINTS, SCALAR > | RBDState_t |
typedef RBDAcceleration< NJOINTS, SCALAR > | RBDAcceleration_t |
typedef JointState< NJOINTS, SCALAR > | JointState_t |
typedef JointAcceleration< NJOINTS, SCALAR > | JointAcceleration_t |
typedef tpl::RigidBodyAcceleration< SCALAR > | RigidBodyAcceleration_t |
typedef SelectionMatrix< NJOINTS, NSTATE/2, SCALAR > | SelectionMatrix_t |
typedef RBD::LinkForceMap | ExtLinkForces_t |
typedef RBDDataMap< bool, NEE > | EE_in_contact_t |
typedef Kinematics< RBD, NEE > | Kinematics_t |
Public Attributes | |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef RBD | ROBCOGEN |
Static Public Attributes | |
static const bool | FB = ROBCOGEN::TRAIT::floating_base |
static const size_t | NJOINTS = RBD::NJOINTS |
static const size_t | NLINKS = RBD::NLINKS |
static const size_t | NSTATE = FB * RBDState<NJOINTS, SCALAR>::NSTATE + (1 - FB) * 2 * NJOINTS |
static const size_t | N_EE = NEE |
This class implements the equations of motion of a Rigid Body System.
RBD | The rbd container class |
NEE | The number of endeffectors |
typedef ROBCOGEN::SCALAR ct::rbd::Dynamics< RBD, NEE >::SCALAR |
typedef Eigen::Matrix<SCALAR, NJOINTS, 1> ct::rbd::Dynamics< RBD, NEE >::control_vector_t |
typedef Eigen::Matrix<SCALAR, NSTATE, 1> ct::rbd::Dynamics< RBD, NEE >::state_vector_t |
typedef Eigen::Matrix<SCALAR, 6, 1> ct::rbd::Dynamics< RBD, NEE >::Vector6d_t |
typedef Vector6d_t ct::rbd::Dynamics< RBD, NEE >::ForceVector_t |
typedef RBDState<NJOINTS, SCALAR> ct::rbd::Dynamics< RBD, NEE >::RBDState_t |
typedef RBDAcceleration<NJOINTS, SCALAR> ct::rbd::Dynamics< RBD, NEE >::RBDAcceleration_t |
typedef JointState<NJOINTS, SCALAR> ct::rbd::Dynamics< RBD, NEE >::JointState_t |
typedef JointAcceleration<NJOINTS, SCALAR> ct::rbd::Dynamics< RBD, NEE >::JointAcceleration_t |
typedef tpl::RigidBodyAcceleration<SCALAR> ct::rbd::Dynamics< RBD, NEE >::RigidBodyAcceleration_t |
typedef SelectionMatrix<NJOINTS, NSTATE / 2, SCALAR> ct::rbd::Dynamics< RBD, NEE >::SelectionMatrix_t |
typedef RBD::LinkForceMap ct::rbd::Dynamics< RBD, NEE >::ExtLinkForces_t |
typedef RBDDataMap<bool, NEE> ct::rbd::Dynamics< RBD, NEE >::EE_in_contact_t |
typedef Kinematics<RBD, NEE> ct::rbd::Dynamics< RBD, NEE >::Kinematics_t |
|
inline |
The constructor.
[in] | kinematics | The kinematics of the RBD |
|
inline |
|
inlinevirtual |
References ENABLE_FIX_BASE, ct::rbd::Dynamics< RBD, NEE >::FixBaseForwardDynamics(), u, and x.
ENABLE_FIX_BASE_IMPL ct::rbd::Dynamics< RBD, NEE >::FixBaseForwardDynamics | ( | const JointState_t & | x, |
const control_vector_t & | u, | ||
ExtLinkForces_t & | force, | ||
JointAcceleration_t & | qdd | ||
) |
Compute forward dynamics of a fixed-base RBD system under external forces.
[in] | x | The JointState state |
[in] | u | The control vector |
[in] | force | The external forces vector |
[out] | qdd | The joints acceleration |
References ct::rbd::JointAcceleration< NJOINTS, SCALAR >::getAcceleration(), ct::rbd::JointState< NJOINTS, SCALAR >::getPositions(), and ct::rbd::JointState< NJOINTS, SCALAR >::getVelocities().
Referenced by ct::rbd::Dynamics< RBD, NEE >::FixBaseForwardDynamics(), and ct::rbd::Dynamics< RBD, NEE >::~Dynamics().
|
inline |
Compute forward dynamics of a fixed-base RBD system, NO contact forces forces.
[in] | x | The RBD state |
[in] | u | The control vector |
[out] | qdd | The Joints acceleration |
References ENABLE_FIX_BASE, ENABLE_FLOAT_BASE, ct::rbd::Dynamics< RBD, NEE >::FixBaseForwardDynamics(), ct::rbd::Dynamics< RBD, NEE >::FixBaseID(), ct::rbd::Dynamics< RBD, NEE >::FloatingBaseForwardDynamics(), ct::rbd::Dynamics< RBD, NEE >::FloatingBaseFullyActuatedID(), and ct::rbd::Dynamics< RBD, NEE >::FloatingBaseID().
ENABLE_FIX_BASE_IMPL ct::rbd::Dynamics< RBD, NEE >::FixBaseID | ( | const JointState_t & | x, |
const JointAcceleration_t & | qdd, | ||
const ExtLinkForces_t & | force, | ||
control_vector_t & | u | ||
) |
Computes Inverse dynamics of a fixed-base system under external forces.
[in] | x | the current state of the robot |
[in] | qdd | the Joints acceleration |
[in] | force | the external forces vector |
[out] | u | The control vector |
References ct::rbd::JointAcceleration< NJOINTS, SCALAR >::getAcceleration(), ct::rbd::JointState< NJOINTS, SCALAR >::getPositions(), and ct::rbd::JointState< NJOINTS, SCALAR >::getVelocities().
Referenced by ct::rbd::Dynamics< RBD, NEE >::FixBaseForwardDynamics().
ENABLE_FIX_BASE_IMPL ct::rbd::Dynamics< RBD, NEE >::FixBaseID | ( | const JointState_t & | x, |
const JointAcceleration_t & | qdd, | ||
control_vector_t & | u | ||
) |
Computes Inverse dynamics of a fixed-base system without external forces.
[in] | x | the current state of the robot |
[in] | qdd | the Joints acceleration |
[out] | u | The control vector |
References ct::rbd::JointAcceleration< NJOINTS, SCALAR >::getAcceleration(), ct::rbd::JointState< NJOINTS, SCALAR >::getPositions(), and ct::rbd::JointState< NJOINTS, SCALAR >::getVelocities().
ENABLE_FLOAT_BASE_IMPL ct::rbd::Dynamics< RBD, NEE >::FloatingBaseForwardDynamics | ( | const RBDState_t & | x, |
const control_vector_t & | u, | ||
const ExtLinkForces_t & | link_forces, | ||
RBDAcceleration_t & | xd | ||
) |
Compute forward dynamics for an floating-base RBD system under external forces.
[in] | x | The RBD state |
[in] | u | The control vector |
[in] | link_forces | The external forces vector |
[out] | xd | The RBD state derivative |
References ct::rbd::RBDAcceleration< NJOINTS, SCALAR >::base(), ct::rbd::RBDState< NJOINTS, SCALAR >::basePose(), ct::rbd::RBDState< NJOINTS, SCALAR >::baseVelocities(), ct::rbd::tpl::RigidBodyPose< SCALAR >::computeGravityB6D(), ct::rbd::tpl::RigidBodyAcceleration< SCALAR >::fromVector6d(), ct::rbd::RBDAcceleration< NJOINTS, SCALAR >::joints(), and ct::rbd::RBDState< NJOINTS, SCALAR >::joints().
Referenced by ct::rbd::Dynamics< RBD, NEE >::FixBaseForwardDynamics().
ENABLE_FLOAT_BASE_IMPL ct::rbd::Dynamics< RBD, NEE >::FloatingBaseID | ( | const RBDState_t & | x, |
const JointAcceleration_t & | qdd, | ||
const ExtLinkForces_t & | force, | ||
control_vector_t & | u, | ||
RigidBodyAcceleration_t & | base_a | ||
) |
Computes Inverse dynamics of a floating-base system under external forces.
[in] | x | the RBDstate |
[in] | qdd | the joints acceleration |
[in] | force | the external forces vector |
[out] | u | The control vector |
[out] | base_a | The base state derivative |
References ct::rbd::RBDState< NJOINTS, SCALAR >::basePose(), ct::rbd::RBDState< NJOINTS, SCALAR >::baseVelocities(), ct::rbd::tpl::RigidBodyPose< SCALAR >::computeGravityB6D(), ct::rbd::tpl::RigidBodyAcceleration< SCALAR >::fromVector6d(), ct::rbd::JointAcceleration< NJOINTS, SCALAR >::getAcceleration(), and ct::rbd::RBDState< NJOINTS, SCALAR >::joints().
Referenced by ct::rbd::Dynamics< RBD, NEE >::FixBaseForwardDynamics().
ENABLE_FLOAT_BASE_IMPL ct::rbd::Dynamics< RBD, NEE >::FloatingBaseFullyActuatedID | ( | const RBDState_t & | x, |
const RigidBodyAcceleration_t & | base_ac, | ||
const JointAcceleration_t & | qdd, | ||
const ExtLinkForces_t & | force, | ||
ForceVector_t & | base_w, | ||
control_vector_t & | u | ||
) |
Computes the inverse dynamics of a floating-base fully-actuated system.
[in] | x | The RBDState |
[in] | base_a | The base acceleration |
[in] | qdd | The joint acceleration |
[in] | force | The external forces vector |
[out] | base_w | The base wrench |
[out] | u | The control vector |
References ct::rbd::RBDState< NJOINTS, SCALAR >::basePose(), ct::rbd::RBDState< NJOINTS, SCALAR >::baseVelocities(), ct::rbd::tpl::RigidBodyPose< SCALAR >::computeGravityB6D(), ct::rbd::JointAcceleration< NJOINTS, SCALAR >::getAcceleration(), and ct::rbd::RBDState< NJOINTS, SCALAR >::joints().
Referenced by ct::rbd::Dynamics< RBD, NEE >::FixBaseForwardDynamics().
|
inline |
Computes Projected Forward Dynamics of a floating-base system with contact constraints.
[in] | ee_contact | the EE contact configuration (EEDataMap<bool>) |
[in] | x | the RBD state |
[in] | u | the control vector |
[out] | rbd_a | the RBD acceleration |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef RBD ct::rbd::Dynamics< RBD, NEE >::ROBCOGEN |
|
static |
|
static |
|
static |
|
static |
|
static |