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

#include <OperationalModelBase.h>

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

Public Types

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

 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...
 
virtual void update (const state_t &state)=0
 

Protected Attributes

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::OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >

This is the base class for the operational space model which gives access to the 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<OperationalModelBase<NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS> > ct::rbd::OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::ptr

◆ coordinate_class_ptr_t

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
typedef CoordinateBase<NUM_OUTPUTS, NUM_JOINTS>::ptr ct::rbd::OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::coordinate_class_ptr_t

◆ jacobian_class_ptr_t

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
typedef OperationalJacobianBase<NUM_OUTPUTS, NUM_JOINTS>::ptr ct::rbd::OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::jacobian_class_ptr_t

◆ jacobian_t

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
typedef OperationalJacobianBase<NUM_OUTPUTS, NUM_JOINTS>::jacobian_t ct::rbd::OperationalModelBase< 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 OperationalJacobianBase<NUM_OUTPUTS, NUM_JOINTS>::jacobian_inv_t ct::rbd::OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::jacobian_inv_t

◆ state_t

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
typedef RBDState<NUM_JOINTS> ct::rbd::OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::state_t

◆ M_t

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
typedef Eigen::Matrix<double, NUM_OUTPUTS, NUM_OUTPUTS> ct::rbd::OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::M_t

◆ C_t

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
typedef Eigen::Matrix<double, NUM_OUTPUTS, 1> ct::rbd::OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::C_t

◆ G_t

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
typedef Eigen::Matrix<double, NUM_OUTPUTS, 1> ct::rbd::OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::G_t

◆ S_t

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
typedef Eigen::Matrix<double, NUM_JOINTS, NUM_OUTPUTS> ct::rbd::OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::S_t

◆ Jc_t

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
typedef Eigen::Matrix<double, 3, NUM_OUTPUTS> ct::rbd::OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::Jc_t

Constructor & Destructor Documentation

◆ OperationalModelBase()

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

◆ ~OperationalModelBase()

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
virtual ct::rbd::OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::~OperationalModelBase ( )
inlinevirtual

Member Function Documentation

◆ M()

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
const M_t& ct::rbd::OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::M ( ) const
inline

Get the inertia matrix: M.

Referenced by TEST().

◆ MInverse()

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
const M_t& ct::rbd::OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::MInverse ( ) const
inline

Get the inertia matrix inverse: M^{-1}.

◆ C()

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
const C_t& ct::rbd::OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::C ( ) const
inline

Get the Coriolis force vector: C.

Referenced by TEST().

◆ G()

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
const G_t& ct::rbd::OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::G ( ) const
inline

Get the gravity force vector: G.

Referenced by TEST().

◆ S()

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
const S_t& ct::rbd::OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::S ( ) const
inline

Get the selection matrix: S.

Referenced by TEST().

◆ AllJc()

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
const std::array<Jc_t, NUM_CONTACTPOINTS>& ct::rbd::OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::AllJc ( ) const
inline

Get all of the contact Jacobians: Jc.

◆ Jc()

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
const Jc_t& ct::rbd::OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::Jc ( size_t  i) const
inline

Get the ith contact Jacobian: Jc[i].

◆ getPositions()

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
Eigen::Matrix<double, NUM_OUTPUTS, 1> ct::rbd::OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::getPositions ( )
inline

Get the coordinate position.

◆ getVelocities()

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
Eigen::Matrix<double, NUM_OUTPUTS, 1> ct::rbd::OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::getVelocities ( )
inline

Get the coordinate velocity.

◆ getAccelerations()

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
Eigen::Matrix<double, NUM_OUTPUTS, 1> ct::rbd::OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::getAccelerations ( Eigen::Matrix< double, NUM_JOINTS+6, 1 >  qdd)
inline

Get the coordinate acceleration.

Referenced by TEST().

◆ update()

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
virtual void ct::rbd::OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::update ( const state_t state)
pure virtual

Member Data Documentation

◆ jacobianPtr_

◆ coordinatePtr_

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, size_t NUM_CONTACTPOINTS>
coordinate_class_ptr_t ct::rbd::OperationalModelBase< NUM_OUTPUTS, NUM_JOINTS, NUM_CONTACTPOINTS >::coordinatePtr_
protected

◆ state_

◆ M_

◆ MInverse_

◆ C_

◆ G_

◆ S_

◆ AllJc_


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