- 3.0.2 rigid body dynamics module.
ct::rbd::OperationalModel< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS > Class Template Reference

This is the class for the operational space model which gives access to the operational model parameter. The model is assumed to have the following form: $ M \ddot{x} + C + G = S^\top \tau + J_c^\top \lambda $ where $ \ddot{x} $ is the acceleration of the operational space coordinate. More...

#include <OperationalModel.h>

Inheritance diagram for ct::rbd::OperationalModel< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >:
ct::rbd::OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >

Public Types

typedef std::shared_ptr< OperationalModel< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS > > ptr
 
typedef OperationalModelBase< NUM_JOINTS+6, NUM_JOINTS, NUM_CONTACTPOINTS >::ptr full_body_model_ptr_t
 
typedef OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS > Base
 
typedef Base::state_t state_t
 
typedef Base::jacobian_t jacobian_t
 
typedef Base::jacobian_inv_t jacobian_inv_t
 
typedef Base::jacobian_class_ptr_t jacobian_class_ptr_t
 
typedef Base::coordinate_class_ptr_t coordinate_class_ptr_t
 
- Public Types inherited from ct::rbd::OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, 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

 OperationalModel (const full_body_model_ptr_t &fullModelPtr, const jacobian_class_ptr_t &jacobianPtr, const coordinate_class_ptr_t &coordinatePtr=nullptr)
 
 OperationalModel ()=delete
 
 ~OperationalModel ()
 
void update (const state_t &state) override
 
jacobian_class_ptr_t getJacobianPtr ()
 
const Base::S_tSTransposeDager (const Eigen::MatrixXd &orthogonalSystemS=Eigen::MatrixXd::Zero(NUM_JOINTS, 0))
 
template<>
void update (const state_t &state)
 
template<>
const OperationalModel< 0, 12, 4 >::Base::S_tSTransposeDager (const Eigen::MatrixXd &orthogonalSystemS)
 
- Public Member Functions inherited from ct::rbd::OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, 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...
 

Additional Inherited Members

- Protected Attributes inherited from ct::rbd::OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, 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<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
class ct::rbd::OperationalModel< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >

This is the class for the operational space model which gives access to the operational model parameter. The model is assumed to have the following form: $ M \ddot{x} + C + G = S^\top \tau + J_c^\top \lambda $ where $ \ddot{x} $ is the acceleration of the operational space coordinate.

Member Typedef Documentation

◆ ptr

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
typedef std::shared_ptr<OperationalModel<NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS> > ct::rbd::OperationalModel< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::ptr

◆ full_body_model_ptr_t

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
typedef OperationalModelBase<NUM_JOINTS + 6, NUM_JOINTS, NUM_CONTACTPOINTS>::ptr ct::rbd::OperationalModel< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::full_body_model_ptr_t

◆ Base

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
typedef OperationalModelBase<NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS> ct::rbd::OperationalModel< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::Base

◆ state_t

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
typedef Base::state_t ct::rbd::OperationalModel< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::state_t

◆ jacobian_t

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
typedef Base::jacobian_t ct::rbd::OperationalModel< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::jacobian_t

◆ jacobian_inv_t

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
typedef Base::jacobian_inv_t ct::rbd::OperationalModel< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::jacobian_inv_t

◆ jacobian_class_ptr_t

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
typedef Base::jacobian_class_ptr_t ct::rbd::OperationalModel< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::jacobian_class_ptr_t

◆ coordinate_class_ptr_t

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
typedef Base::coordinate_class_ptr_t ct::rbd::OperationalModel< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::coordinate_class_ptr_t

Constructor & Destructor Documentation

◆ OperationalModel() [1/2]

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
ct::rbd::OperationalModel< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::OperationalModel ( const full_body_model_ptr_t fullModelPtr,
const jacobian_class_ptr_t jacobianPtr,
const coordinate_class_ptr_t coordinatePtr = nullptr 
)
inline

◆ OperationalModel() [2/2]

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
ct::rbd::OperationalModel< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::OperationalModel ( )
delete

◆ ~OperationalModel()

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
ct::rbd::OperationalModel< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::~OperationalModel ( )
inline

Member Function Documentation

◆ update() [1/2]

◆ getJacobianPtr()

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
jacobian_class_ptr_t ct::rbd::OperationalModel< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::getJacobianPtr ( )
inline

this method returns a pointer to the internal operational space Jacobian.

Returns
pointer to the internal operational space Jacobian

◆ STransposeDager() [1/2]

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
const Base::S_t& ct::rbd::OperationalModel< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::STransposeDager ( const Eigen::MatrixXd &  orthogonalSystemS = Eigen::MatrixXd::Zero(NUM_JOINTS, 0))
inline

◆ update() [2/2]

template<>
void ct::rbd::OperationalModel< 0, 12, 4 >::update ( const state_t state)
inlinevirtual

This method updates the class member variables using the current state.

Parameters
stateThe current state

Implements ct::rbd::OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >.

References ct::rbd::OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::state_.

◆ STransposeDager() [2/2]

template<>
const OperationalModel< 0, 12, 4 >::Base::S_t & ct::rbd::OperationalModel< 0, 12, 4 >::STransposeDager ( const Eigen::MatrixXd &  orthogonalSystemS)
inline

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