Template Function pinocchio::crbaMinimal

Function Documentation

template<typename Scalar, int Options, template<typename, int> class JointCollectionTpl, typename ConfigVectorType>
inline const DataTpl<Scalar, Options, JointCollectionTpl>::MatrixXs &pinocchio::crbaMinimal(const ModelTpl<Scalar, Options, JointCollectionTpl> &model, DataTpl<Scalar, Options, JointCollectionTpl> &data, const Eigen::MatrixBase<ConfigVectorType> &q)

Computes the upper triangular part of the joint space inertia matrix M by using the Composite Rigid Body Algorithm (Chapter 6, Rigid-Body Dynamics Algorithms, R. Featherstone, 2008). The result is accessible through data.M.

Note

You can easly get data.M symetric by copying the stricly upper trinangular part in the stricly lower tringular part with data.M.triangularView<Eigen::StrictlyLower>() = data.M.transpose().triangularView<Eigen::StrictlyLower>();

Note

A direct outcome of this algorithm is the computation of the centroidal momemntum matrix (data.Ag) and the joint jacobian matrix (data.J).

Template Parameters:
  • JointCollection – Collection of Joint types.

  • ConfigVectorType – Type of the joint configuration vector.

Parameters:
  • model[in] The model structure of the rigid body system.

  • data[in] The data structure of the rigid body system.

  • q[in] The joint configuration vector (dim model.nq).

Returns:

The joint space inertia matrix with only the upper triangular part computed.