- 3.0.2 rigid body dynamics module.
robcogen_commons.h File Reference
#include "rbd.h"
#include "InertiaMatrix.h"
#include "TransformsBase.h"
#include "types.h"
#include "internals.h"

Go to the source code of this file.

Namespaces

 iit
 
 iit::rbd
 

Macros

#define DScalar   typename Derived::Scalar
 
#define block33   template block<3,3>
 

Functions

template<typename Derived >
Force< DScalariit::rbd::vxIv (const Velocity< DScalar > &v, const MatrixBase< Derived > &I)
 
template<typename Derived >
Force< DScalariit::rbd::vxIv (const DScalar &omegaz, const MatrixBase< Derived > &I)
 
template<typename S = double>
void iit::rbd::motionCrossProductMx (const Velocity< S > &v, Mat66< S > &vx)
 
template<typename S = double>
void iit::rbd::forceCrossProductMx (const Velocity< S > &v, Mat66< S > &vx)
 
template<typename S = double>
void iit::rbd::fillInertia (S mass, const Vec3< S > &com, const internal::SymmMat3x3Coefficients< S > &I3x3, InertiaMat< S > &I)
 
template<typename Scalar = double>
void iit::rbd::transformInertia (const InertiaMat< Scalar > &I_A, const Mat66< Scalar > &XF, InertiaMat< Scalar > &I_B)
 
Articulated inertia - Coordinate transform

These functions perform the coordinate transform of a spatial articulated inertia, in the special case of a mass-less handle (see chapter 7 of the RBDA book, §7.2.2, equation 7.23)

Two specialized functions are available for the two cases of revolute and prismatic joint (which connects the subtree with the mass-less handle), since the inertia exhibits two different sparsity patterns.

Parameters
Ia_Athe articulated inertia in A coordinates
XMa spatial coordinate transform for motion vectors, in the form A_XM_B (that is, mapping forces from A to B coordinates)
[out]Ia_B_constthe same articulated inertia, but expressed in B coordinates. Note that the constness is casted away (trick required with Eigen)
template<typename D1 , typename D2 , typename D3 >
void iit::rbd::ctransform_Ia_revolute (const MatrixBase< D1 > &Ia_A, const MatrixBase< D2 > &XM, const MatrixBase< D3 > &Ia_B_const)
 
template<typename D1 , typename D2 , typename D3 >
void iit::rbd::ctransform_Ia_prismatic (const MatrixBase< D1 > &Ia_A, const MatrixBase< D2 > &XM, const MatrixBase< D3 > &Ia_B_const)
 
Articulated inertia - Computation

These functions calculate the spatial articulated inertia of a subtree, in the special case of a mass-less handle (see chapter 7 of the RBDA book, §7.2.2, equation 7.23)

Two specialized functions are available for the two cases of revolute and prismatic joint (which connects the subtree with the mass-less handle), since the inertia exhibits two different sparsity patterns.

Parameters
IAthe regular articulated inertia of some subtree
Uthe U term for the current joint (cfr. eq. 7.43 of RBDA)
Dthe D term for the current joint (cfr. eq. 7.44 of RBDA)
[out]Ia_constthe articulated inertia for the same subtree, but propagated across the current joint. The matrix is assumed to be already initialized with zeros, at least in the row and column which is known to be zero. In other words, those elements are not computed nor assigned in this function. Note that the constness of the argument is casted away (trick required with Eigen), as this is an output argument.
template<typename D1 , typename D2 >
void iit::rbd::compute_Ia_revolute (const MatrixBase< D1 > &IA, const Vec6< typename D1::Scalar > &U, const typename D1::Scalar &D, const MatrixBase< D2 > &Ia_const)
 
template<typename D1 , typename D2 >
void iit::rbd::compute_Ia_prismatic (const MatrixBase< D1 > &IA, const Vec6< typename D1::Scalar > &U, const typename D1::Scalar &D, const MatrixBase< D2 > &Ia_const)
 

Macro Definition Documentation

◆ block33

#define block33   template block<3,3>