pinocchio  3.9.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
Loading...
Searching...
No Matches
InertiaTpl< _Scalar, _Options > Struct Template Reference
Inheritance diagram for InertiaTpl< _Scalar, _Options >:
Collaboration diagram for InertiaTpl< _Scalar, _Options >:

Public Types

enum  { Options = _Options }
typedef Symmetric3::AlphaSkewSquare AlphaSkewSquare
typedef LogCholeskyParametersTpl< Scalar, Options > LogCholeskyParameters
typedef Eigen::Matrix< Scalar, 10, 10, Options > Matrix10
typedef PseudoInertiaTpl< Scalar, Options > PseudoInertia
typedef Eigen::Matrix< Scalar, 10, 1, Options > Vector10
Public Types inherited from NumericalBase< InertiaTpl< _Scalar, _Options > >
typedef traits< InertiaTpl< _Scalar, _Options > >::Scalar Scalar

Public Member Functions

 InertiaTpl (const InertiaTpl &clone)
template<typename S2, int O2>
 InertiaTpl (const InertiaTpl< S2, O2 > &clone)
 InertiaTpl (const Matrix6 &I6)
 InertiaTpl (const Scalar &mass, const Vector3 &com, const Matrix3 &rotational_inertia)
 InertiaTpl (const Scalar &mass, const Vector3 &com, const Symmetric3 &rotational_inertia)
InertiaTpl__equl__ (const InertiaTpl &clone)
InertiaTpl__mequ__ (const InertiaTpl &Yb)
InertiaTpl __minus__ (const InertiaTpl &Yb) const
template<typename MotionDerived>
ForceTpl< typename traits< MotionDerived >::Scalar, traits< MotionDerived >::Options > __mult__ (const MotionDense< MotionDerived > &v) const
template<typename MotionDerived, typename ForceDerived>
void __mult__ (const MotionDense< MotionDerived > &v, ForceDense< ForceDerived > &f) const
InertiaTpl__pequ__ (const InertiaTpl &Yb)
InertiaTpl __plus__ (const InertiaTpl &Yb) const
template<typename NewScalar>
InertiaTpl< NewScalar, Options > cast () const
void disp_impl (std::ostream &os) const
Symmetric3inertia ()
const Symmetric3inertia () const
Matrix6 inverse_impl () const
template<typename Matrix6Like>
void inverse_impl (const Eigen::MatrixBase< Matrix6Like > &M_) const
bool isApprox_impl (const InertiaTpl &other, const Scalar &prec=Eigen::NumTraits< Scalar >::dummy_precision()) const
bool isEqual (const InertiaTpl &Y2) const
bool isZero_impl (const Scalar &prec=Eigen::NumTraits< Scalar >::dummy_precision()) const
Vector3lever ()
const Vector3lever () const
Scalarmass ()
Scalar mass () const
Matrix6 matrix_impl () const
template<typename Matrix6Like>
void matrix_impl (const Eigen::MatrixBase< Matrix6Like > &M_) const
InertiaTploperator= (const InertiaTpl &clone)
template<typename S2, int O2>
InertiaTpl se3Action_impl (const SE3Tpl< S2, O2 > &M) const
 aI = aXb.act(bI)
template<typename S2, int O2>
InertiaTpl se3ActionInverse_impl (const SE3Tpl< S2, O2 > &M) const
 bI = aXb.actInv(aI)
void setIdentity ()
void setRandom ()
void setZero ()
 SPATIAL_TYPEDEF_TEMPLATE (InertiaTpl)
Vector10 toDynamicParameters () const
PseudoInertia toPseudoInertia () const
 Convert the InertiaTpl object to a 4x4 pseudo inertia matrix.
template<typename MotionDerived>
Matrix6 variation (const MotionDense< MotionDerived > &v) const
template<typename MotionDerived>
Scalar vtiv_impl (const MotionDense< MotionDerived > &v) const
template<typename MotionDerived>
Force vxiv (const MotionDense< MotionDerived > &v) const
Public Member Functions inherited from InertiaBase< InertiaTpl< _Scalar, _Options > >
InertiaTpl< _Scalar, _Options > & const_cast_derived () const
InertiaTpl< _Scalar, _Options > & derived ()
void disp (std::ostream &os) const
const Symmetric3inertia () const
void inverse (const Eigen::MatrixBase< Matrix6Like > &mat) const
bool isApprox (const InertiaTpl< _Scalar, _Options > &other, const Scalar &prec=Eigen::NumTraits< Scalar >::dummy_precision()) const
bool isZero (const Scalar &prec=Eigen::NumTraits< Scalar >::dummy_precision()) const
const Vector3lever () const
Scalar mass () const
void matrix (const Eigen::MatrixBase< Matrix6Like > &mat) const
 operator Matrix6 () const
bool operator!= (const InertiaTpl< _Scalar, _Options > &other) const
ForceTpl< typename traits< MotionDerived >::Scalar, traits< MotionDerived >::Options > operator* (const MotionDense< MotionDerived > &v) const
InertiaTpl< _Scalar, _Options > operator+ (const InertiaTpl< _Scalar, _Options > &Yb) const
InertiaTpl< _Scalar, _Options > & operator+= (const InertiaTpl< _Scalar, _Options > &Yb)
InertiaTpl< _Scalar, _Options > operator- (const InertiaTpl< _Scalar, _Options > &Yb) const
InertiaTpl< _Scalar, _Options > & operator-= (const InertiaTpl< _Scalar, _Options > &Yb)
InertiaTpl< _Scalar, _Options > & operator= (const InertiaTpl< _Scalar, _Options > &clone)
bool operator== (const InertiaTpl< _Scalar, _Options > &other) const
InertiaTpl< _Scalar, _Options > se3Action (const SE3Tpl< S2, O2 > &M) const
 aI = aXb.act(bI)
InertiaTpl< _Scalar, _Options > se3ActionInverse (const SE3Tpl< S2, O2 > &M) const
 bI = aXb.actInv(aI)
void setIdentity ()
void setRandom ()
void setZero ()
 SPATIAL_TYPEDEF_TEMPLATE (InertiaTpl< _Scalar, _Options >)
Matrix6 variation (const MotionDense< MotionDerived > &v) const
Scalar vtiv (const MotionDense< MotionDerived > &v) const

Static Public Member Functions

static InertiaTpl FromBox (const Scalar mass, const Scalar x, const Scalar y, const Scalar z)
 Computes the Inertia of a box defined by its mass and main dimensions (x,y,z).
static InertiaTpl FromCapsule (const Scalar mass, const Scalar radius, const Scalar height)
 Computes the Inertia of a capsule defined by its mass, radius and length along the Z axis. Assumes a uniform density.
static InertiaTpl FromCylinder (const Scalar mass, const Scalar radius, const Scalar length)
 Computes the Inertia of a cylinder defined by its mass, radius and length along the Z axis.
template<typename Vector10Like>
static InertiaTpl FromDynamicParameters (const Eigen::MatrixBase< Vector10Like > &params)
static InertiaTpl FromEllipsoid (const Scalar mass, const Scalar x, const Scalar y, const Scalar z)
 Computes the Inertia of an ellipsoid defined by its mass and main semi-axis dimensions (x,y,z).
static InertiaTpl FromLogCholeskyParameters (const LogCholeskyParameters &log_cholesky)
 Create an InertiaTpl object from log Cholesky parameters.
static InertiaTpl FromPseudoInertia (const PseudoInertia &pseudo_inertia)
 Create an InertiaTpl object from a PseudoInertia object.
static InertiaTpl FromSphere (const Scalar mass, const Scalar radius)
 Computes the Inertia of a sphere defined by its mass and its radius.
static InertiaTpl Identity ()
template<typename MotionDerived, typename M6>
static void ivx_impl (const MotionDense< MotionDerived > &v, const InertiaTpl &I, const Eigen::MatrixBase< M6 > &Iout)
static InertiaTpl Random ()
template<typename MotionDerived, typename M6>
static void vxi_impl (const MotionDense< MotionDerived > &v, const InertiaTpl &I, const Eigen::MatrixBase< M6 > &Iout)
static InertiaTpl Zero ()
Static Public Member Functions inherited from InertiaBase< InertiaTpl< _Scalar, _Options > >
static void ivx (const MotionDense< MotionDerived > &v, const InertiaTpl< _Scalar, _Options > &I, const Eigen::MatrixBase< M6 > &Iout)
 Time variation operator. It computes the time derivative of an inertia I corresponding to the formula $       \dot{I} = v \times^{*} I $.
static void vxi (const MotionDense< MotionDerived > &v, const InertiaTpl< _Scalar, _Options > &I, const Eigen::MatrixBase< M6 > &Iout)
 Time variation operator. It computes the time derivative of an inertia I corresponding to the formula $       \dot{I} = v \times^{*} I $.

Protected Attributes

Vector3 m_com
Symmetric3 m_inertia
Scalar m_mass

Detailed Description

template<typename _Scalar, int _Options>
struct pinocchio::InertiaTpl< _Scalar, _Options >

Definition at line 265 of file inertia.hpp.

Member Typedef Documentation

◆ AlphaSkewSquare

template<typename _Scalar, int _Options>
typedef Symmetric3::AlphaSkewSquare AlphaSkewSquare

Definition at line 275 of file inertia.hpp.

◆ LogCholeskyParameters

template<typename _Scalar, int _Options>
typedef LogCholeskyParametersTpl<Scalar, Options> LogCholeskyParameters

Definition at line 279 of file inertia.hpp.

◆ Matrix10

template<typename _Scalar, int _Options>
typedef Eigen::Matrix<Scalar, 10, 10, Options> Matrix10

Definition at line 277 of file inertia.hpp.

◆ PseudoInertia

template<typename _Scalar, int _Options>
typedef PseudoInertiaTpl<Scalar, Options> PseudoInertia

Definition at line 278 of file inertia.hpp.

◆ Vector10

template<typename _Scalar, int _Options>
typedef Eigen::Matrix<Scalar, 10, 1, Options> Vector10

Definition at line 276 of file inertia.hpp.

Member Enumeration Documentation

◆ anonymous enum

template<typename _Scalar, int _Options>
anonymous enum

Definition at line 270 of file inertia.hpp.

Constructor & Destructor Documentation

◆ InertiaTpl() [1/6]

template<typename _Scalar, int _Options>
InertiaTpl()
inline

Definition at line 282 of file inertia.hpp.

◆ InertiaTpl() [2/6]

template<typename _Scalar, int _Options>
InertiaTpl(const Scalar &mass,
const Vector3 &com,
const Matrix3 &rotational_inertia )
inline

Definition at line 286 of file inertia.hpp.

◆ InertiaTpl() [3/6]

template<typename _Scalar, int _Options>
InertiaTpl(const Matrix6 &I6)
inlineexplicit

Definition at line 293 of file inertia.hpp.

◆ InertiaTpl() [4/6]

template<typename _Scalar, int _Options>
InertiaTpl(const Scalar &mass,
const Vector3 &com,
const Symmetric3 &rotational_inertia )
inline

Definition at line 309 of file inertia.hpp.

◆ InertiaTpl() [5/6]

template<typename _Scalar, int _Options>
InertiaTpl(const InertiaTpl< _Scalar, _Options > &clone)
inline

Definition at line 316 of file inertia.hpp.

◆ InertiaTpl() [6/6]

template<typename _Scalar, int _Options>
template<typename S2, int O2>
InertiaTpl(const InertiaTpl< S2, O2 > &clone)
inlineexplicit

Definition at line 332 of file inertia.hpp.

Member Function Documentation

◆ __equl__()

template<typename _Scalar, int _Options>
InertiaTpl & __equl__(const InertiaTpl< _Scalar, _Options > &clone)
inline

Definition at line 612 of file inertia.hpp.

◆ __mequ__()

template<typename _Scalar, int _Options>
InertiaTpl & __mequ__(const InertiaTpl< _Scalar, _Options > &Yb)
inline

Definition at line 697 of file inertia.hpp.

◆ __minus__()

template<typename _Scalar, int _Options>
InertiaTpl __minus__(const InertiaTpl< _Scalar, _Options > &Yb)const
inline

Definition at line 675 of file inertia.hpp.

◆ __mult__() [1/2]

template<typename _Scalar, int _Options>
template<typename MotionDerived>
ForceTpl< typename traits< MotionDerived >::Scalar, traits< MotionDerived >::Options > __mult__(const MotionDense< MotionDerived > &v)const
inline

Definition at line 719 of file inertia.hpp.

◆ __mult__() [2/2]

template<typename _Scalar, int _Options>
template<typename MotionDerived, typename ForceDerived>
void __mult__(const MotionDense< MotionDerived > &v,
ForceDense< ForceDerived > &f ) const
inline

Definition at line 729 of file inertia.hpp.

◆ __pequ__()

template<typename _Scalar, int _Options>
InertiaTpl & __pequ__(const InertiaTpl< _Scalar, _Options > &Yb)
inline

Definition at line 659 of file inertia.hpp.

◆ __plus__()

template<typename _Scalar, int _Options>
InertiaTpl __plus__(const InertiaTpl< _Scalar, _Options > &Yb)const
inline

Definition at line 641 of file inertia.hpp.

◆ cast()

template<typename _Scalar, int _Options>
template<typename NewScalar>
InertiaTpl< NewScalar, Options > cast()const
inline
Returns
An expression of *this with the Scalar type casted to NewScalar.

Definition at line 912 of file inertia.hpp.

◆ disp_impl()

template<typename _Scalar, int _Options>
void disp_impl(std::ostream &os)const
inline

Definition at line 902 of file inertia.hpp.

◆ FromBox()

template<typename _Scalar, int _Options>
InertiaTpl FromBox(const Scalarmass,
const Scalarx,
const Scalary,
const Scalarz )
inlinestatic

Computes the Inertia of a box defined by its mass and main dimensions (x,y,z).

Parameters
[in]massof the box.
[in]xdimension along the local X axis.
[in]ydimension along the local Y axis.
[in]zdimension along the local Z axis.

Definition at line 424 of file inertia.hpp.

◆ FromCapsule()

template<typename _Scalar, int _Options>
InertiaTpl FromCapsule(const Scalarmass,
const Scalarradius,
const Scalarheight )
inlinestatic

Computes the Inertia of a capsule defined by its mass, radius and length along the Z axis. Assumes a uniform density.

Parameters
[in]massof the capsule.
[in]radiusof the capsule.
[in]heightof the capsule.

Definition at line 440 of file inertia.hpp.

◆ FromCylinder()

template<typename _Scalar, int _Options>
InertiaTpl FromCylinder(const Scalarmass,
const Scalarradius,
const Scalarlength )
inlinestatic

Computes the Inertia of a cylinder defined by its mass, radius and length along the Z axis.

Parameters
[in]massof the cylinder.
[in]radiusof the cylinder.
[in]lengthof the cylinder.

Definition at line 407 of file inertia.hpp.

◆ FromDynamicParameters()

template<typename _Scalar, int _Options>
template<typename Vector10Like>
InertiaTpl FromDynamicParameters(const Eigen::MatrixBase< Vector10Like > &params)
inlinestatic

Builds and inertia matrix from a vector of dynamic parameters.

Parameters
[in]paramsThe dynamic parameters.

The parameters are given as $ v = [m, mc_x, mc_y, mc_z, I_{xx}, I_{xy}, I_{yy}, I_{xz}, I_{yz}, I_{zz}]^T $ where $ I = I_C + mS^T(c)S(c) $ and $ I_C $ has its origin at the barycenter.

Definition at line 562 of file inertia.hpp.

◆ FromEllipsoid()

template<typename _Scalar, int _Options>
InertiaTpl FromEllipsoid(const Scalarmass,
const Scalarx,
const Scalary,
const Scalarz )
inlinestatic

Computes the Inertia of an ellipsoid defined by its mass and main semi-axis dimensions (x,y,z).

Parameters
[in]massof the ellipsoid.
[in]xsemi-axis dimension along the local X axis.
[in]ysemi-axis dimension along the local Y axis.
[in]zsemi-axis dimension along the local Z axis.

Definition at line 390 of file inertia.hpp.

◆ FromLogCholeskyParameters()

template<typename _Scalar, int _Options>
InertiaTpl FromLogCholeskyParameters(const LogCholeskyParameters &log_cholesky)
inlinestatic

Create an InertiaTpl object from log Cholesky parameters.

Parameters
log_choleskyA log cholesky parameters object
Returns
An InertiaTpl object.

Definition at line 605 of file inertia.hpp.

◆ FromPseudoInertia()

template<typename _Scalar, int _Options>
InertiaTpl FromPseudoInertia(const PseudoInertia &pseudo_inertia)
inlinestatic

Create an InertiaTpl object from a PseudoInertia object.

Parameters
pseudo_inertiaA PseudoInertia object.
Returns
An InertiaTpl object.

Definition at line 582 of file inertia.hpp.

◆ FromSphere()

template<typename _Scalar, int _Options>
InertiaTpl FromSphere(const Scalarmass,
const Scalarradius )
inlinestatic

Computes the Inertia of a sphere defined by its mass and its radius.

Parameters
[in]massof the sphere.
[in]radiusof the sphere.

Definition at line 375 of file inertia.hpp.

◆ Identity()

template<typename _Scalar, int _Options>
InertiaTpl Identity()
inlinestatic

Definition at line 350 of file inertia.hpp.

◆ inertia() [1/2]

template<typename _Scalar, int _Options>
Symmetric3 & inertia()
inline

Definition at line 866 of file inertia.hpp.

◆ inertia() [2/2]

template<typename _Scalar, int _Options>
const Symmetric3 & inertia()const
inline

Definition at line 853 of file inertia.hpp.

◆ inverse_impl() [1/2]

template<typename _Scalar, int _Options>
Matrix6 inverse_impl()const
inline

Definition at line 528 of file inertia.hpp.

◆ inverse_impl() [2/2]

template<typename _Scalar, int _Options>
template<typename Matrix6Like>
void inverse_impl(const Eigen::MatrixBase< Matrix6Like > &M_)const
inline

Definition at line 501 of file inertia.hpp.

◆ isApprox_impl()

template<typename _Scalar, int _Options>
bool isApprox_impl(const InertiaTpl< _Scalar, _Options > &other,
const Scalar &prec = Eigen::NumTraits<Scalar>::dummy_precision() ) const
inline

Definition at line 626 of file inertia.hpp.

◆ isEqual()

template<typename _Scalar, int _Options>
bool isEqual(const InertiaTpl< _Scalar, _Options > &Y2)const
inline

Definition at line 621 of file inertia.hpp.

◆ isZero_impl()

template<typename _Scalar, int _Options>
bool isZero_impl(const Scalar &prec = Eigen::NumTraits<Scalar>::dummy_precision())const
inline

Definition at line 635 of file inertia.hpp.

◆ ivx_impl()

template<typename _Scalar, int _Options>
template<typename MotionDerived, typename M6>
void ivx_impl(const MotionDense< MotionDerived > &v,
const InertiaTpl< _Scalar, _Options > &I,
const Eigen::MatrixBase< M6 > &Iout )
inlinestatic

Definition at line 813 of file inertia.hpp.

◆ lever() [1/2]

template<typename _Scalar, int _Options>
Vector3 & lever()
inline

Definition at line 862 of file inertia.hpp.

◆ lever() [2/2]

template<typename _Scalar, int _Options>
const Vector3 & lever()const
inline

Definition at line 849 of file inertia.hpp.

◆ mass() [1/2]

template<typename _Scalar, int _Options>
Scalar & mass()
inline

Definition at line 858 of file inertia.hpp.

◆ mass() [2/2]

template<typename _Scalar, int _Options>
Scalar mass()const
inline

Definition at line 845 of file inertia.hpp.

◆ matrix_impl() [1/2]

template<typename _Scalar, int _Options>
Matrix6 matrix_impl()const
inline

Definition at line 493 of file inertia.hpp.

◆ matrix_impl() [2/2]

template<typename _Scalar, int _Options>
template<typename Matrix6Like>
void matrix_impl(const Eigen::MatrixBase< Matrix6Like > &M_)const
inline

Definition at line 481 of file inertia.hpp.

◆ operator=()

template<typename _Scalar, int _Options>
InertiaTpl & operator=(const InertiaTpl< _Scalar, _Options > &clone)
inline

Definition at line 323 of file inertia.hpp.

◆ Random()

template<typename _Scalar, int _Options>
InertiaTpl Random()
inlinestatic

Definition at line 362 of file inertia.hpp.

◆ se3Action_impl()

template<typename _Scalar, int _Options>
template<typename S2, int O2>
InertiaTpl se3Action_impl(const SE3Tpl< S2, O2 > &M)const
inline

aI = aXb.act(bI)

Definition at line 873 of file inertia.hpp.

◆ se3ActionInverse_impl()

template<typename _Scalar, int _Options>
template<typename S2, int O2>
InertiaTpl se3ActionInverse_impl(const SE3Tpl< S2, O2 > &M)const
inline

bI = aXb.actInv(aI)

Definition at line 884 of file inertia.hpp.

◆ setIdentity()

template<typename _Scalar, int _Options>
void setIdentity()
inline

Definition at line 355 of file inertia.hpp.

◆ setRandom()

template<typename _Scalar, int _Options>
void setRandom()
inline

Definition at line 473 of file inertia.hpp.

◆ setZero()

template<typename _Scalar, int _Options>
void setZero()
inline

Definition at line 343 of file inertia.hpp.

◆ toDynamicParameters()

template<typename _Scalar, int _Options>
Vector10 toDynamicParameters()const
inline

Returns the representation of the matrix as a vector of dynamic parameters. The parameters are given as $ v = [m, mc_x, mc_y, mc_z, I_{xx}, I_{xy}, I_{yy}, I_{xz}, I_{yz}, I_{zz}]^T $ where $ c $ is the center of mass, $ I = I_C + mS^T(c)S(c) $ and $ I_C $ has its origin at the barycenter and $ S(c) $ is the the skew matrix representation of the cross product operator.

Definition at line 542 of file inertia.hpp.

◆ toPseudoInertia()

template<typename _Scalar, int _Options>
PseudoInertia toPseudoInertia()const
inline

Convert the InertiaTpl object to a 4x4 pseudo inertia matrix.

Returns
A 4x4 pseudo inertia matrix.

Definition at line 592 of file inertia.hpp.

◆ variation()

template<typename _Scalar, int _Options>
template<typename MotionDerived>
Matrix6 variation(const MotionDense< MotionDerived > &v)const
inline

Definition at line 750 of file inertia.hpp.

◆ vtiv_impl()

template<typename _Scalar, int _Options>
template<typename MotionDerived>
Scalar vtiv_impl(const MotionDense< MotionDerived > &v)const
inline

Definition at line 738 of file inertia.hpp.

◆ vxi_impl()

template<typename _Scalar, int _Options>
template<typename MotionDerived, typename M6>
void vxi_impl(const MotionDense< MotionDerived > &v,
const InertiaTpl< _Scalar, _Options > &I,
const Eigen::MatrixBase< M6 > &Iout )
inlinestatic

Definition at line 779 of file inertia.hpp.

◆ vxiv()

template<typename _Scalar, int _Options>
template<typename MotionDerived>
Force vxiv(const MotionDense< MotionDerived > &v)const
inline

Definition at line 892 of file inertia.hpp.

◆ Zero()

template<typename _Scalar, int _Options>
InertiaTpl Zero()
inlinestatic

Definition at line 338 of file inertia.hpp.

Member Data Documentation

◆ m_com

template<typename _Scalar, int _Options>
Vector3 m_com
protected

Definition at line 930 of file inertia.hpp.

◆ m_inertia

template<typename _Scalar, int _Options>
Symmetric3 m_inertia
protected

Definition at line 931 of file inertia.hpp.

◆ m_mass

template<typename _Scalar, int _Options>
Scalar m_mass
protected

Definition at line 929 of file inertia.hpp.


The documentation for this struct was generated from the following files: