iDynTree::ArticulatedBodyInertia class

Class representing an Articulated Body Inertia.

For more information on Articulated Body Inertia, please check Featherstone 2008, Chapter 7 .

Storage: The symmetric articulated body inertia is stored as 3 3x3 matrices :

  • the linearLinear is the top left submatrix
  • the linearAngular is the top right submatrix
  • the angularAngular is the bottom right submatrix

The bottom left submatrix can be obtained as the transpose of the linearAngular matrix.

Public static functions

static auto combine(const ArticulatedBodyInertia& op1, const ArticulatedBodyInertia& op2) -> ArticulatedBodyInertia
static auto ABADyadHelper(const SpatialForceVector& U, const double d) -> ArticulatedBodyInertia
Build the ArticulatedInertia $U d^{-1} U^\top$ .
static auto ABADyadHelperLin(const SpatialForceVector& U, const double inv_d, const SpatialForceVector& dU, const double d_inv_d) -> ArticulatedBodyInertia
Build the ArticulatedInertia dU inv_d U^\top + U d_inv_d U^\top + U inv_d dU^\top Used in the linearization of the articulated body algorithm.

Constructors, destructors, conversion operators

ArticulatedBodyInertia()
The data is not reset to zeo for perfomance reason.
ArticulatedBodyInertia(const double* in_data, const unsigned int in_rows, const unsigned int in_cols)
Constructor from a buffer of 36 doubles, stored as a C-style array (i.e.
ArticulatedBodyInertia(const iDynTree::SpatialInertia& rigidBodyInertia)
Constructor from a Rigid Body Inertia.
ArticulatedBodyInertia(const ArticulatedBodyInertia& other)
Copy constructor: create a ArticulatedBodyInertia from another ArticulatedBodyInertia.

Public functions

auto getLinearLinearSubmatrix() -> Matrix3x3&
Low level data getters.
auto getLinearAngularSubmatrix() -> Matrix3x3&
auto getAngularAngularSubmatrix() -> Matrix3x3&
auto getLinearLinearSubmatrix() const -> const Matrix3x3&
auto getLinearAngularSubmatrix() const -> const Matrix3x3&
auto getAngularAngularSubmatrix() const -> const Matrix3x3&
auto applyInverse(const Wrench& wrench) const -> SpatialAcc
Return the inverse of this ArticulatedBodyInertia applied to the passed wrench.
auto asMatrix() const -> Matrix6x6
Get the ArticulatedBodyInertia as a 6x6 matrix.
auto getInverse() const -> Matrix6x6
Get the inverse of the ArticulatedBodyInertia matrix.
auto operator+(const ArticulatedBodyInertia& other) const -> ArticulatedBodyInertia
auto operator-(const ArticulatedBodyInertia& other) const -> ArticulatedBodyInertia
auto operator+=(const ArticulatedBodyInertia& other) -> ArticulatedBodyInertia&
auto operator*(const SpatialMotionVector& other) const -> SpatialForceVector
auto operator*(const SpatialAcc& other) const -> Wrench
void zero()
reset to zero (i.e.

Function documentation

static ArticulatedBodyInertia iDynTree::ArticulatedBodyInertia::ABADyadHelper(const SpatialForceVector& U, const double d)

Build the ArticulatedInertia $U d^{-1} U^\top$ .

Used in the articulated body algorithm .

iDynTree::ArticulatedBodyInertia::ArticulatedBodyInertia()

The data is not reset to zeo for perfomance reason.

Please initialize the data in the class before any use.

iDynTree::ArticulatedBodyInertia::ArticulatedBodyInertia(const double* in_data, const unsigned int in_rows, const unsigned int in_cols)

Constructor from a buffer of 36 doubles, stored as a C-style array (i.e.

row major).

void iDynTree::ArticulatedBodyInertia::zero()

reset to zero (i.e.

the inertia of body with zero mass) the ArticulatedBodyInertia