- 3.0.2 rigid body dynamics module.
iit::rbd::Utils Class Reference

#include <utils.h>

Classes

struct  CwiseAlmostZeroOp
 
struct  InertiaMoments
 

Static Public Member Functions

template<typename Scalar >
static Mat33< ScalarbuildInertiaTensor (Scalar Ixx, Scalar Iyy, Scalar Izz, Scalar Ixy, Scalar Ixz, Scalar Iyz)
 
static Matrix33d buildCrossProductMatrix (const Vector3d &in)
 
template<typename Derived >
static void fillAsRotationMatrix (double rx, double ry, double rz, const MatrixBase< Derived > &mx)
 
static Matrix33d buildRotationMatrix (double rx, double ry, double rz)
 
template<typename Scalar >
static void fillAsMotionCrossProductMx (const Vec6< Scalar > &v, Mat66< Scalar > &mx)
 
template<typename Scalar >
static void fillAsForceCrossProductMx (const Vec6< Scalar > &v, Mat66< Scalar > &mx)
 
template<typename D1 , typename D2 >
static void fillAsCrossProductMatrix (const MatrixBase< D2 > &in, const MatrixBase< D1 > &mx)
 
template<typename Derived >
static const MatrixBlock< const Derived, 3, 1 > positionVector (const MatrixBase< Derived > &homT)
 
template<typename Derived >
static const MatrixBlock< const Derived, 3, 3 > rotationMx (const MatrixBase< Derived > &homT)
 
template<typename Derived >
static const MatrixBlock< const Derived, 3, 1 > zAxis (const MatrixBase< Derived > &homT)
 
template<typename Derived , typename Other >
static Vector3d transform (const MatrixBase< Derived > &homT, const MatrixBase< Other > &vect3d)
 
static void randomVec (Vector6D &vec)
 
static void randomGravity (VelocityVector &g)
 
template<class RT >
static void cmdlineargs_spatialv (int argc, char **argv, iit::rbd::Vector6D &vec)
 

Member Function Documentation

◆ buildInertiaTensor()

template<typename Scalar >
static Mat33<Scalar> iit::rbd::Utils::buildInertiaTensor ( Scalar  Ixx,
Scalar  Iyy,
Scalar  Izz,
Scalar  Ixy,
Scalar  Ixz,
Scalar  Iyz 
)
inlinestatic

◆ buildCrossProductMatrix()

static Matrix33d iit::rbd::Utils::buildCrossProductMatrix ( const Vector3d in)
inlinestatic

◆ fillAsRotationMatrix()

template<typename Derived >
static void iit::rbd::Utils::fillAsRotationMatrix ( double  rx,
double  ry,
double  rz,
const MatrixBase< Derived > &  mx 
)
inlinestatic

Suppose B is rotated respect to A by rx, than ry, than rz. Fills the last parameter with the 3x3 rotation matrix A –> B ('B_X_A')

◆ buildRotationMatrix()

static Matrix33d iit::rbd::Utils::buildRotationMatrix ( double  rx,
double  ry,
double  rz 
)
inlinestatic

Suppose B is rotated respect to A by rx, than ry, than rz.

Returns
the 3x3 rotation matrix A –> B ('B_X_A')

◆ fillAsMotionCrossProductMx()

template<typename Scalar >
static void iit::rbd::Utils::fillAsMotionCrossProductMx ( const Vec6< Scalar > &  v,
Mat66< Scalar > &  mx 
)
inlinestatic

◆ fillAsForceCrossProductMx()

template<typename Scalar >
static void iit::rbd::Utils::fillAsForceCrossProductMx ( const Vec6< Scalar > &  v,
Mat66< Scalar > &  mx 
)
inlinestatic

◆ fillAsCrossProductMatrix()

template<typename D1 , typename D2 >
static void iit::rbd::Utils::fillAsCrossProductMatrix ( const MatrixBase< D2 > &  in,
const MatrixBase< D1 > &  mx 
)
inlinestatic

◆ positionVector()

template<typename Derived >
static const MatrixBlock<const Derived,3,1> iit::rbd::Utils::positionVector ( const MatrixBase< Derived > &  homT)
inlinestatic

Referenced by transform().

◆ rotationMx()

template<typename Derived >
static const MatrixBlock<const Derived,3,3> iit::rbd::Utils::rotationMx ( const MatrixBase< Derived > &  homT)
inlinestatic

Referenced by transform().

◆ zAxis()

template<typename Derived >
static const MatrixBlock<const Derived,3,1> iit::rbd::Utils::zAxis ( const MatrixBase< Derived > &  homT)
inlinestatic

◆ transform()

template<typename Derived , typename Other >
static Vector3d iit::rbd::Utils::transform ( const MatrixBase< Derived > &  homT,
const MatrixBase< Other > &  vect3d 
)
inlinestatic

Applies a roto-translation to the given 3D vector. This function is provided for convenience, since a direct matrix product between a 4x4 matrix and a 3x1 vector is obviously not possible. It should also be slightly more efficient than taking the homogeneous representation of the 3D vector (4x1) and then compute the matrix product.

Parameters
homTa 4x4 homogeneous coordinate transform encoding the rotation and the translation
vect3dthe 3x1 vector to be transformed
Returns
the 3D vector that results from the rotation plus translation

References positionVector(), and rotationMx().

Referenced by iit::TestHyQ::getWholeBodyCOM().

◆ randomVec()

static void iit::rbd::Utils::randomVec ( Vector6D vec)
inlinestatic

References i.

◆ randomGravity()

static void iit::rbd::Utils::randomGravity ( VelocityVector g)
inlinestatic

◆ cmdlineargs_spatialv()

template<class RT >
static void iit::rbd::Utils::cmdlineargs_spatialv ( int  argc,
char **  argv,
iit::rbd::Vector6D vec 
)
inlinestatic

References i.


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