- 3.0.2 rigid body dynamics module.
ct::rbd::tpl::OperationalJacobianBase< NUM_OUTPUTS, NUM_JOINTS, SCALAR > Class Template Referenceabstract

#include <OperationalJacobianBase.h>

Inheritance diagram for ct::rbd::tpl::OperationalJacobianBase< NUM_OUTPUTS, NUM_JOINTS, SCALAR >:
ct::rbd::tpl::JacobianBase< NUM_OUTPUTS, NUM_JOINTS, SCALAR > TestJacobian

Public Types

typedef JacobianBase< NUM_OUTPUTS, NUM_JOINTS, SCALAR >::state_t state_t
 
typedef JacobianBase< NUM_OUTPUTS, NUM_JOINTS, SCALAR >::jacobian_t jacobian_t
 
typedef JacobianBase< NUM_OUTPUTS, NUM_JOINTS, SCALAR >::jacobian_inv_t jacobian_inv_t
 
typedef Eigen::Matrix< SCALAR, 6+NUM_JOINTS, 6+NUM_JOINTS > square_matrix_t
 
typedef Eigen::Matrix< SCALAR, Eigen::Dynamic, Eigen::Dynamic > MatrixXs
 
- Public Types inherited from ct::rbd::tpl::JacobianBase< NUM_OUTPUTS, NUM_JOINTS, SCALAR >
typedef Eigen::Matrix< SCALAR, NUM_OUTPUTS, 6+NUM_JOINTS > jacobian_t
 
typedef Eigen::Matrix< SCALAR, 6+NUM_JOINTS, NUM_OUTPUTS > jacobian_inv_t
 

Public Member Functions

 OperationalJacobianBase ()
 
virtual ~OperationalJacobianBase ()
 
void updateState (const state_t &state, const square_matrix_t &weighting=square_matrix_t::Identity())
 
const jacobian_tJ ()
 This method gets the floating-base Jacobian. More...
 
const jacobian_tdJdt ()
 This method gets the time derivative of the floating-base Jacobian. More...
 
const jacobian_inv_tJdagerLDLT ()
 This method calculates the right inverse using W as the weighting matrix. More...
 
const jacobian_inv_tJdagerSVD ()
 
const jacobian_inv_tdJdagerdt ()
 This method calculates the time derivative of right inverse. More...
 
const square_matrix_tP ()
 This method calculates the null space projector. More...
 
const square_matrix_tdPdt ()
 This method calculates the time derivative of the null space projector. More...
 
virtual void resetUserUpdatedFlags ()
 
virtual void getJacobianOrigin (const state_t &state, jacobian_t &J)=0
 
virtual void getJacobianOriginDerivative (const state_t &state, jacobian_t &dJdt)=0
 
- Public Member Functions inherited from ct::rbd::tpl::JacobianBase< NUM_OUTPUTS, NUM_JOINTS, SCALAR >
 JacobianBase ()
 
virtual ~JacobianBase ()
 
virtual void getJacobianOrigin (const state_t &state, jacobian_t &J)=0
 
virtual void getJacobianOriginDerivative (const state_t &state, jacobian_t &dJdt)=0
 

Public Attributes

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef std::shared_ptr< OperationalJacobianBase< NUM_OUTPUTS, NUM_JOINTS, SCALAR > > ptr
 
- Public Attributes inherited from ct::rbd::tpl::JacobianBase< NUM_OUTPUTS, NUM_JOINTS, SCALAR >
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef RBDState< NUM_JOINTS, SCALARstate_t
 

Protected Attributes

jacobian_t J_
 

Detailed Description

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, typename SCALAR>
class ct::rbd::tpl::OperationalJacobianBase< NUM_OUTPUTS, NUM_JOINTS, SCALAR >

This class provides extra functionalities for performing the operational space Jacobain matrix algebra. such as calculating the Moore-Penrose pseudo-inverse and Null space projectors.

Member Typedef Documentation

◆ state_t

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, typename SCALAR>
typedef JacobianBase<NUM_OUTPUTS, NUM_JOINTS, SCALAR>::state_t ct::rbd::tpl::OperationalJacobianBase< NUM_OUTPUTS, NUM_JOINTS, SCALAR >::state_t

◆ jacobian_t

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, typename SCALAR>
typedef JacobianBase<NUM_OUTPUTS, NUM_JOINTS, SCALAR>::jacobian_t ct::rbd::tpl::OperationalJacobianBase< NUM_OUTPUTS, NUM_JOINTS, SCALAR >::jacobian_t

◆ jacobian_inv_t

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, typename SCALAR>
typedef JacobianBase<NUM_OUTPUTS, NUM_JOINTS, SCALAR>::jacobian_inv_t ct::rbd::tpl::OperationalJacobianBase< NUM_OUTPUTS, NUM_JOINTS, SCALAR >::jacobian_inv_t

◆ square_matrix_t

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, typename SCALAR>
typedef Eigen::Matrix<SCALAR, 6 + NUM_JOINTS, 6 + NUM_JOINTS> ct::rbd::tpl::OperationalJacobianBase< NUM_OUTPUTS, NUM_JOINTS, SCALAR >::square_matrix_t

◆ MatrixXs

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, typename SCALAR>
typedef Eigen::Matrix<SCALAR, Eigen::Dynamic, Eigen::Dynamic> ct::rbd::tpl::OperationalJacobianBase< NUM_OUTPUTS, NUM_JOINTS, SCALAR >::MatrixXs

Constructor & Destructor Documentation

◆ OperationalJacobianBase()

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, typename SCALAR>
ct::rbd::tpl::OperationalJacobianBase< NUM_OUTPUTS, NUM_JOINTS, SCALAR >::OperationalJacobianBase ( )
inline

◆ ~OperationalJacobianBase()

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, typename SCALAR>
virtual ct::rbd::tpl::OperationalJacobianBase< NUM_OUTPUTS, NUM_JOINTS, SCALAR >::~OperationalJacobianBase ( )
inlinevirtual

Member Function Documentation

◆ updateState()

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, typename SCALAR>
void ct::rbd::tpl::OperationalJacobianBase< NUM_OUTPUTS, NUM_JOINTS, SCALAR >::updateState ( const state_t state,
const square_matrix_t weighting = square_matrix_t::Identity() 
)
inline

This function gets the RBD state and the the user defined weighting matrix in order to calculate the the floating-base Jacobian, its right pseudo-inverse, and null space and their corresponding time derivatives.

Parameters
stateState of the RBD
weightingThe weighting function for the calculating the pseudo-inverse and null space

◆ J()

◆ dJdt()

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, typename SCALAR>
const jacobian_t& ct::rbd::tpl::OperationalJacobianBase< NUM_OUTPUTS, NUM_JOINTS, SCALAR >::dJdt ( )
inline

◆ JdagerLDLT()

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, typename SCALAR>
const jacobian_inv_t& ct::rbd::tpl::OperationalJacobianBase< NUM_OUTPUTS, NUM_JOINTS, SCALAR >::JdagerLDLT ( )
inline

◆ JdagerSVD()

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, typename SCALAR>
const jacobian_inv_t& ct::rbd::tpl::OperationalJacobianBase< NUM_OUTPUTS, NUM_JOINTS, SCALAR >::JdagerSVD ( )
inline

◆ dJdagerdt()

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, typename SCALAR>
const jacobian_inv_t& ct::rbd::tpl::OperationalJacobianBase< NUM_OUTPUTS, NUM_JOINTS, SCALAR >::dJdagerdt ( )
inline

This method calculates the time derivative of right inverse.

◆ P()

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, typename SCALAR>
const square_matrix_t& ct::rbd::tpl::OperationalJacobianBase< NUM_OUTPUTS, NUM_JOINTS, SCALAR >::P ( )
inline

This method calculates the null space projector.

Referenced by ct::rbd::tpl::OperationalJacobianBase< OUTPUTS, NJOINTS, SCALAR >::dPdt().

◆ dPdt()

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, typename SCALAR>
const square_matrix_t& ct::rbd::tpl::OperationalJacobianBase< NUM_OUTPUTS, NUM_JOINTS, SCALAR >::dPdt ( )
inline

This method calculates the time derivative of the null space projector.

◆ resetUserUpdatedFlags()

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, typename SCALAR>
virtual void ct::rbd::tpl::OperationalJacobianBase< NUM_OUTPUTS, NUM_JOINTS, SCALAR >::resetUserUpdatedFlags ( )
inlinevirtual

A method for reseting the user defined flags. This function is called is the new state is set using the update() method

◆ getJacobianOrigin()

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, typename SCALAR>
virtual void ct::rbd::tpl::OperationalJacobianBase< NUM_OUTPUTS, NUM_JOINTS, SCALAR >::getJacobianOrigin ( const state_t state,
jacobian_t J 
)
pure virtual

This methods calculates the Jacobian of the floating-base Jacobian in the Origin (World or Inertia) frame.

Parameters
stateState of the RBD
Jfloating-base Jacobian in the Origin frame

Implemented in TestJacobian.

Referenced by ct::rbd::tpl::OperationalJacobianBase< OUTPUTS, NJOINTS, SCALAR >::J(), and ct::rbd::tpl::OperationalJacobianBase< OUTPUTS, NJOINTS, SCALAR >::resetUserUpdatedFlags().

◆ getJacobianOriginDerivative()

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, typename SCALAR>
virtual void ct::rbd::tpl::OperationalJacobianBase< NUM_OUTPUTS, NUM_JOINTS, SCALAR >::getJacobianOriginDerivative ( const state_t state,
jacobian_t dJdt 
)
pure virtual

This methods calculates the time derivative of the Jacobian of the floating-base function in the Origin (World or Inertia) frame.

Parameters
stateState of the RBD
dJdtTime derivative of the floating-base Jacobian in the Origin frame

Implemented in TestJacobian.

Referenced by ct::rbd::tpl::OperationalJacobianBase< OUTPUTS, NJOINTS, SCALAR >::dJdt(), and ct::rbd::tpl::OperationalJacobianBase< OUTPUTS, NJOINTS, SCALAR >::resetUserUpdatedFlags().

Member Data Documentation

◆ ptr

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, typename SCALAR>
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef std::shared_ptr<OperationalJacobianBase<NUM_OUTPUTS, NUM_JOINTS, SCALAR> > ct::rbd::tpl::OperationalJacobianBase< NUM_OUTPUTS, NUM_JOINTS, SCALAR >::ptr

Referenced by TEST().

◆ J_

template<size_t NUM_OUTPUTS, size_t NUM_JOINTS, typename SCALAR>
jacobian_t ct::rbd::tpl::OperationalJacobianBase< NUM_OUTPUTS, NUM_JOINTS, SCALAR >::J_
protected

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