- 3.0.2 rigid body dynamics module.
ct::rbd::tpl::FrameJacobian< NUM_JOINTS, SCALAR > Class Template Reference

This class provides methods for converting the non-inertia base frame Jacobian matrix to an user defined inertia frame (called as inertia frame). More...

#include <FrameJacobian.h>

Public Types

typedef Eigen::Matrix< SCALAR, 3, 1 > Vector3s
 

Public Member Functions

 FrameJacobian ()
 
 ~FrameJacobian ()
 

Static Public Member Functions

static void FromBaseJacobianToInertiaJacobian (const Matrix3s &i_R_b, const Vector3s &b_r_point, const Eigen::Matrix< SCALAR, 6, NUM_JOINTS > &b_J_point, Eigen::Matrix< SCALAR, 6, NUM_JOINTS+6 > &i_J_point)
 
static void FromBaseJacToInertiaJacOrientation (const Matrix3s &i_R_b, const Vector3s &b_r_point, const Eigen::Matrix< SCALAR, 3, NUM_JOINTS > &b_J_point, Eigen::Matrix< SCALAR, 3, NUM_JOINTS+6 > &i_J_point)
 
static void FromBaseJacToInertiaJacTranslation (const Matrix3s &i_R_b, const Vector3s &b_r_point, const Eigen::Matrix< SCALAR, 3, NUM_JOINTS > &b_J_point, Eigen::Matrix< SCALAR, 3, NUM_JOINTS+6 > &i_J_point)
 
static void FromBaseJacobianDevToInertiaJacobianDev (const Eigen::Matrix< SCALAR, NUM_JOINTS+6, 1 > &generalizedVelocities, const Matrix3s &i_R_b, const Vector3s &b_r_point, const Eigen::Matrix< SCALAR, 6, NUM_JOINTS > &b_J_point, const Eigen::Matrix< SCALAR, 6, NUM_JOINTS > &b_dJdt_point, Eigen::Matrix< SCALAR, 6, NUM_JOINTS+6 > &i_dJdt_point)
 
static void FromBaseJacobianDevToInertiaJacobianDevOrientation (const Eigen::Matrix< SCALAR, NUM_JOINTS+6, 1 > &generalizedVelocities, const Matrix3s &i_R_b, const Vector3s &b_r_point, const Eigen::Matrix< SCALAR, 3, NUM_JOINTS > &b_J_point, const Eigen::Matrix< SCALAR, 3, NUM_JOINTS > &b_dJdt_point, Eigen::Matrix< SCALAR, 3, NUM_JOINTS+6 > &i_dJdt_point)
 
static void FromBaseJacobianDevToInertiaJacobianDevTranslation (const Eigen::Matrix< SCALAR, NUM_JOINTS+6, 1 > &generalizedVelocities, const Matrix3s &i_R_b, const Vector3s &b_r_point, const Eigen::Matrix< SCALAR, 3, NUM_JOINTS > &b_J_point, const Eigen::Matrix< SCALAR, 3, NUM_JOINTS > &b_dJdt_point, Eigen::Matrix< SCALAR, 3, NUM_JOINTS+6 > &i_dJdt_point)
 

Public Attributes

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

Detailed Description

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

This class provides methods for converting the non-inertia base frame Jacobian matrix to an user defined inertia frame (called as inertia frame).

Member Typedef Documentation

◆ Vector3s

template<size_t NUM_JOINTS, typename SCALAR >
typedef Eigen::Matrix<SCALAR, 3, 1> ct::rbd::tpl::FrameJacobian< NUM_JOINTS, SCALAR >::Vector3s

Constructor & Destructor Documentation

◆ FrameJacobian()

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

◆ ~FrameJacobian()

template<size_t NUM_JOINTS, typename SCALAR >
ct::rbd::tpl::FrameJacobian< NUM_JOINTS, SCALAR >::~FrameJacobian ( )
inline

Member Function Documentation

◆ FromBaseJacobianToInertiaJacobian()

template<size_t NUM_JOINTS, typename SCALAR >
static void ct::rbd::tpl::FrameJacobian< NUM_JOINTS, SCALAR >::FromBaseJacobianToInertiaJacobian ( const Matrix3s i_R_b,
const Vector3s b_r_point,
const Eigen::Matrix< SCALAR, 6, NUM_JOINTS > &  b_J_point,
Eigen::Matrix< SCALAR, 6, NUM_JOINTS+6 > &  i_J_point 
)
inlinestatic

This method calculates the inertia frame (frame i) Jacobian (rotational and translation part) given the non-inertia base frame full Jacobian (frame b).

Parameters
[in]i_R_bRotation matrix from base frame to the desired inertia frame.
[in]b_r_pointPosition of the desired inertia frame origin expressed in the base frame.
[in]b_J_pointA 6-by-NUM_JOINTS Jacobian matrix (rotational and translation part) expressed in the base frame.
[out]i_J_pointA 6-by-(6+NUM_JOINTS) Jacobian matrix (rotational and linear translation) expressed in the desired inertia frame.

References ct::rbd::tpl::FrameJacobian< NUM_JOINTS, SCALAR >::FromBaseJacToInertiaJacOrientation(), and ct::rbd::tpl::FrameJacobian< NUM_JOINTS, SCALAR >::FromBaseJacToInertiaJacTranslation().

◆ FromBaseJacToInertiaJacOrientation()

template<size_t NUM_JOINTS, typename SCALAR >
static void ct::rbd::tpl::FrameJacobian< NUM_JOINTS, SCALAR >::FromBaseJacToInertiaJacOrientation ( const Matrix3s i_R_b,
const Vector3s b_r_point,
const Eigen::Matrix< SCALAR, 3, NUM_JOINTS > &  b_J_point,
Eigen::Matrix< SCALAR, 3, NUM_JOINTS+6 > &  i_J_point 
)
inlinestatic

This method calculates the inertia frame (frame i) rotational Jacobian given the non-inertia frame rotational Jacobian (frame b).

Parameters
[in]i_R_bRotation matrix from base frame to the desired inertia frame.
[in]b_r_pointPosition of the desired inertia frame origin expressed in the base frame.
[in]b_J_pointA 3-by-NUM_JOINTS rotational Jacobian matrix expressed in the base frame.
[out]i_J_pointA 3-by-(6+NUM_JOINTS) rotational Jacobian matrix expressed in the desired inertia frame.

Referenced by ct::rbd::tpl::FrameJacobian< NUM_JOINTS, SCALAR >::FromBaseJacobianToInertiaJacobian().

◆ FromBaseJacToInertiaJacTranslation()

template<size_t NUM_JOINTS, typename SCALAR >
static void ct::rbd::tpl::FrameJacobian< NUM_JOINTS, SCALAR >::FromBaseJacToInertiaJacTranslation ( const Matrix3s i_R_b,
const Vector3s b_r_point,
const Eigen::Matrix< SCALAR, 3, NUM_JOINTS > &  b_J_point,
Eigen::Matrix< SCALAR, 3, NUM_JOINTS+6 > &  i_J_point 
)
inlinestatic

This method calculates the inertia frame (frame i) translational Jacobian given the non-inertia base frame translation Jacobian (frame b).

Parameters
[in]i_R_bRotation matrix from base frame to the desired inertia frame.
[in]b_r_pointPosition of the desired inertia frame origin expressed in the base frame.
[in]b_J_pointA 3-by-NUM_JOINTS translational Jacobian matrix expressed in the base frame.
[out]i_J_pointA 3-by-(6+NUM_JOINTS) translational Jacobian matrix expressed in the desired inertia frame.

Referenced by ct::rbd::tpl::FrameJacobian< NUM_JOINTS, SCALAR >::FromBaseJacobianToInertiaJacobian(), ct::rbd::tpl::ConstraintJacobian< ct::rbd::Kinematics< RBD, NEE >, MAX_JAC_SIZE, NJOINTS, Scalar >::getJacobianOrigin(), and ct::rbd::tpl::OperationalModelRBD< RBDContainer, NUM_CONTACTPOINTS, SCALAR >::update().

◆ FromBaseJacobianDevToInertiaJacobianDev()

template<size_t NUM_JOINTS, typename SCALAR >
static void ct::rbd::tpl::FrameJacobian< NUM_JOINTS, SCALAR >::FromBaseJacobianDevToInertiaJacobianDev ( const Eigen::Matrix< SCALAR, NUM_JOINTS+6, 1 > &  generalizedVelocities,
const Matrix3s i_R_b,
const Vector3s b_r_point,
const Eigen::Matrix< SCALAR, 6, NUM_JOINTS > &  b_J_point,
const Eigen::Matrix< SCALAR, 6, NUM_JOINTS > &  b_dJdt_point,
Eigen::Matrix< SCALAR, 6, NUM_JOINTS+6 > &  i_dJdt_point 
)
inlinestatic

This method calculates the time derivative of the inertia frame (frame i) Jacobian (rotational and translation part) given the non-inertia base frame Jacobian (frame b).

Parameters
[in]generalizedVelocitiesGeneralized coordinate velocities.
[in]i_R_bRotation matrix from base frame to the desired inertia frame.
[in]b_r_pointPosition of the desired inertia frame origin expressed in the base frame.
[in]b_J_pointA 6-by-NUM_JOINTS Jacobian matrix (rotational and translation part) expressed in the base frame.
[in]b_dJdt_pointA 6-by-NUM_JOINTS Jacobian matrix time derivative (rotational and translation part) expressed in the base frame.
[out]i_dJdt_pointA 6-by-(6+NUM_JOINTS) Jacobian matrix time derivative (rotational and translation part) expressed in the desired inertia frame.

References ct::rbd::tpl::FrameJacobian< NUM_JOINTS, SCALAR >::FromBaseJacobianDevToInertiaJacobianDevOrientation(), and ct::rbd::tpl::FrameJacobian< NUM_JOINTS, SCALAR >::FromBaseJacobianDevToInertiaJacobianDevTranslation().

◆ FromBaseJacobianDevToInertiaJacobianDevOrientation()

template<size_t NUM_JOINTS, typename SCALAR >
static void ct::rbd::tpl::FrameJacobian< NUM_JOINTS, SCALAR >::FromBaseJacobianDevToInertiaJacobianDevOrientation ( const Eigen::Matrix< SCALAR, NUM_JOINTS+6, 1 > &  generalizedVelocities,
const Matrix3s i_R_b,
const Vector3s b_r_point,
const Eigen::Matrix< SCALAR, 3, NUM_JOINTS > &  b_J_point,
const Eigen::Matrix< SCALAR, 3, NUM_JOINTS > &  b_dJdt_point,
Eigen::Matrix< SCALAR, 3, NUM_JOINTS+6 > &  i_dJdt_point 
)
inlinestatic

This method calculates the time derivative of the inertia frame (frame i) rotational Jacobian given the non-inertia base frame rotational Jacobian (frame b).

Parameters
[in]generalizedVelocitiesGeneralized coordinate velocities.
[in]i_R_bRotation matrix from base frame to the desired inertia frame.
[in]b_r_pointPosition of the desired inertia frame origin expressed in the base frame.
[in]b_J_pointA 6-by-NUM_JOINTS rotational Jacobian matrix expressed in the base frame.
[in]b_dJdt_pointA 6-by-NUM_JOINTS rotational Jacobian matrix time derivative expressed in the base frame.
[out]i_dJdt_pointA 6-by-(6+NUM_JOINTS) rotational Jacobian matrix time derivative expressed in the desired inertia frame.

Referenced by ct::rbd::tpl::FrameJacobian< NUM_JOINTS, SCALAR >::FromBaseJacobianDevToInertiaJacobianDev().

◆ FromBaseJacobianDevToInertiaJacobianDevTranslation()

template<size_t NUM_JOINTS, typename SCALAR >
static void ct::rbd::tpl::FrameJacobian< NUM_JOINTS, SCALAR >::FromBaseJacobianDevToInertiaJacobianDevTranslation ( const Eigen::Matrix< SCALAR, NUM_JOINTS+6, 1 > &  generalizedVelocities,
const Matrix3s i_R_b,
const Vector3s b_r_point,
const Eigen::Matrix< SCALAR, 3, NUM_JOINTS > &  b_J_point,
const Eigen::Matrix< SCALAR, 3, NUM_JOINTS > &  b_dJdt_point,
Eigen::Matrix< SCALAR, 3, NUM_JOINTS+6 > &  i_dJdt_point 
)
inlinestatic

This method calculates the time derivative of the inertia frame (frame i) translational Jacobian given the non-inertia base frame rotational Jacobian (frame b).

Parameters
[in]generalizedVelocitiesGeneralized coordinate velocities.
[in]i_R_bRotation matrix from base frame to the desired inertia frame.
[in]b_r_pointPosition of the desired inertia frame origin expressed in the base frame.
[in]b_J_pointA 6-by-NUM_JOINTS translational Jacobian matrix expressed in the base frame.
[in]b_dJdt_pointA 6-by-NUM_JOINTS translational Jacobian matrix time derivative expressed in the base frame.
[out]i_dJdt_pointA 6-by-(6+NUM_JOINTS) translational Jacobian matrix time derivative expressed in the desired inertia frame.

Referenced by ct::rbd::tpl::FrameJacobian< NUM_JOINTS, SCALAR >::FromBaseJacobianDevToInertiaJacobianDev().

Member Data Documentation

◆ Matrix3s

template<size_t NUM_JOINTS, typename SCALAR >
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef Eigen::Matrix<SCALAR, 3, 3> ct::rbd::tpl::FrameJacobian< NUM_JOINTS, SCALAR >::Matrix3s

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