- 3.0.2 rigid body dynamics module.
ct::rbd::tpl::OperationalModelRBD< RBDContainer, NUM_CONTACTPOINTS, SCALAR > Class Template Reference

This is a class for expressing the RBD equations of an articulated robot as an operational model. It uses the RBDContainer class as an interface to access the generated code for an articulated robot. More...

#include <OperationalModelRBD.h>

Inheritance diagram for ct::rbd::tpl::OperationalModelRBD< RBDContainer, NUM_CONTACTPOINTS, SCALAR >:
ct::rbd::OperationalModelBase< RBDContainer::NJOINTS+6, RBDContainer::NJOINTS, NUM_CONTACTPOINTS >

Public Types

enum  { NUM_OUTPUTS = RBDContainer::NJOINTS + 6, NUM_JOINTS = RBDContainer::NJOINTS }
 
typedef Eigen::Matrix< SCALAR, 3, 1 > Vector3s
 
typedef std::shared_ptr< OperationalModelRBD< RBDContainer, NUM_CONTACTPOINTS > > ptr
 
typedef OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS > Base
 
typedef Base::state_t state_t
 
- Public Types inherited from ct::rbd::OperationalModelBase< RBDContainer::NJOINTS+6, RBDContainer::NJOINTS, NUM_CONTACTPOINTS >
typedef std::shared_ptr< OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS > > ptr
 
typedef CoordinateBase< NUM_OUTPUTS, NUM_JOINTS >::ptr coordinate_class_ptr_t
 
typedef OperationalJacobianBase< NUM_OUTPUTS, NUM_JOINTS >::ptr jacobian_class_ptr_t
 
typedef OperationalJacobianBase< NUM_OUTPUTS, NUM_JOINTS >::jacobian_t jacobian_t
 
typedef OperationalJacobianBase< NUM_OUTPUTS, NUM_JOINTS >::jacobian_inv_t jacobian_inv_t
 
typedef RBDState< NUM_JOINTS > state_t
 
typedef Eigen::Matrix< double, NUM_OUTPUTS, NUM_OUTPUTS > M_t
 
typedef Eigen::Matrix< double, NUM_OUTPUTS, 1 > C_t
 
typedef Eigen::Matrix< double, NUM_OUTPUTS, 1 > G_t
 
typedef Eigen::Matrix< double, NUM_JOINTS, NUM_OUTPUTS > S_t
 
typedef Eigen::Matrix< double, 3, NUM_OUTPUTS > Jc_t
 

Public Member Functions

 OperationalModelRBD (const typename RBDContainer::Ptr_t &rbdContainerPtr, const std::array< EndEffector< NUM_JOINTS >, NUM_CONTACTPOINTS > &endEffectorArray)
 
 ~OperationalModelRBD ()
 
void update (const state_t &state) override
 
- Public Member Functions inherited from ct::rbd::OperationalModelBase< RBDContainer::NJOINTS+6, RBDContainer::NJOINTS, NUM_CONTACTPOINTS >
 OperationalModelBase (const jacobian_class_ptr_t &jacobianPtr=nullptr, const coordinate_class_ptr_t &coordinatePtr=nullptr)
 
virtual ~OperationalModelBase ()
 
const M_tM () const
 Get the inertia matrix: M. More...
 
const M_tMInverse () const
 Get the inertia matrix inverse: M^{-1}. More...
 
const C_tC () const
 Get the Coriolis force vector: C. More...
 
const G_tG () const
 Get the gravity force vector: G. More...
 
const S_tS () const
 Get the selection matrix: S. More...
 
const std::array< Jc_t, NUM_CONTACTPOINTS > & AllJc () const
 Get all of the contact Jacobians: Jc. More...
 
const Jc_tJc (size_t i) const
 Get the ith contact Jacobian: Jc[i]. More...
 
Eigen::Matrix< double, NUM_OUTPUTS, 1 > getPositions ()
 Get the coordinate position. More...
 
Eigen::Matrix< double, NUM_OUTPUTS, 1 > getVelocities ()
 Get the coordinate velocity. More...
 
Eigen::Matrix< double, NUM_OUTPUTS, 1 > getAccelerations (Eigen::Matrix< double, NUM_JOINTS+6, 1 > qdd)
 Get the coordinate acceleration. More...
 

Public Attributes

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef Eigen::Matrix< SCALAR, 3, 3 > Matrix3s
 

Additional Inherited Members

- Protected Attributes inherited from ct::rbd::OperationalModelBase< RBDContainer::NJOINTS+6, RBDContainer::NJOINTS, NUM_CONTACTPOINTS >
jacobian_class_ptr_t jacobianPtr_
 
coordinate_class_ptr_t coordinatePtr_
 
state_t state_
 
M_t M_
 
M_t MInverse_
 
C_t C_
 
G_t G_
 
S_t S_
 
std::array< Jc_t, NUM_CONTACTPOINTS > AllJc_
 

Detailed Description

template<class RBDContainer, size_t NUM_CONTACTPOINTS, typename SCALAR = double>
class ct::rbd::tpl::OperationalModelRBD< RBDContainer, NUM_CONTACTPOINTS, SCALAR >

This is a class for expressing the RBD equations of an articulated robot as an operational model. It uses the RBDContainer class as an interface to access the generated code for an articulated robot.

Member Typedef Documentation

◆ Vector3s

template<class RBDContainer, size_t NUM_CONTACTPOINTS, typename SCALAR = double>
typedef Eigen::Matrix<SCALAR, 3, 1> ct::rbd::tpl::OperationalModelRBD< RBDContainer, NUM_CONTACTPOINTS, SCALAR >::Vector3s

◆ ptr

template<class RBDContainer, size_t NUM_CONTACTPOINTS, typename SCALAR = double>
typedef std::shared_ptr<OperationalModelRBD<RBDContainer, NUM_CONTACTPOINTS> > ct::rbd::tpl::OperationalModelRBD< RBDContainer, NUM_CONTACTPOINTS, SCALAR >::ptr

◆ Base

template<class RBDContainer, size_t NUM_CONTACTPOINTS, typename SCALAR = double>
typedef OperationalModelBase<NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS> ct::rbd::tpl::OperationalModelRBD< RBDContainer, NUM_CONTACTPOINTS, SCALAR >::Base

◆ state_t

template<class RBDContainer, size_t NUM_CONTACTPOINTS, typename SCALAR = double>
typedef Base::state_t ct::rbd::tpl::OperationalModelRBD< RBDContainer, NUM_CONTACTPOINTS, SCALAR >::state_t

Member Enumeration Documentation

◆ anonymous enum

template<class RBDContainer, size_t NUM_CONTACTPOINTS, typename SCALAR = double>
anonymous enum
Enumerator
NUM_OUTPUTS 
NUM_JOINTS 

Constructor & Destructor Documentation

◆ OperationalModelRBD()

template<class RBDContainer, size_t NUM_CONTACTPOINTS, typename SCALAR = double>
ct::rbd::tpl::OperationalModelRBD< RBDContainer, NUM_CONTACTPOINTS, SCALAR >::OperationalModelRBD ( const typename RBDContainer::Ptr_t &  rbdContainerPtr,
const std::array< EndEffector< NUM_JOINTS >, NUM_CONTACTPOINTS > &  endEffectorArray 
)
inline

◆ ~OperationalModelRBD()

template<class RBDContainer, size_t NUM_CONTACTPOINTS, typename SCALAR = double>
ct::rbd::tpl::OperationalModelRBD< RBDContainer, NUM_CONTACTPOINTS, SCALAR >::~OperationalModelRBD ( )
inline

Member Function Documentation

◆ update()

template<class RBDContainer, size_t NUM_CONTACTPOINTS, typename SCALAR = double>
void ct::rbd::tpl::OperationalModelRBD< RBDContainer, NUM_CONTACTPOINTS, SCALAR >::update ( const state_t state)
inlineoverridevirtual

Member Data Documentation

◆ Matrix3s

template<class RBDContainer, size_t NUM_CONTACTPOINTS, typename SCALAR = double>
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef Eigen::Matrix<SCALAR, 3, 3> ct::rbd::tpl::OperationalModelRBD< RBDContainer, NUM_CONTACTPOINTS, SCALAR >::Matrix3s

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