Orocos KDL
KDL::ArticulatedBodyInertia Class Reference

6D Inertia of a articulated body More...

#include <articulatedbodyinertia.hpp>

Public Member Functions

 ArticulatedBodyInertia ()
 ArticulatedBodyInertia (const RigidBodyInertia &rbi)
 ArticulatedBodyInertia (double m, const Vector &oc=Vector::Zero(), const RotationalInertia &Ic=RotationalInertia::Zero())
 ~ArticulatedBodyInertia ()
ArticulatedBodyInertia RefPoint (const Vector &p)
 ArticulatedBodyInertia (const Eigen::Matrix3d &M, const Eigen::Matrix3d &H, const Eigen::Matrix3d &I)

Static Public Member Functions

static ArticulatedBodyInertia Zero ()

Public Attributes

Eigen::Matrix3d M
Eigen::Matrix3d H
Eigen::Matrix3d I

Friends

ArticulatedBodyInertia operator* (double a, const ArticulatedBodyInertia &I)
ArticulatedBodyInertia operator+ (const ArticulatedBodyInertia &Ia, const ArticulatedBodyInertia &Ib)
ArticulatedBodyInertia operator+ (const ArticulatedBodyInertia &Ia, const RigidBodyInertia &Ib)
ArticulatedBodyInertia operator- (const ArticulatedBodyInertia &Ia, const ArticulatedBodyInertia &Ib)
ArticulatedBodyInertia operator- (const ArticulatedBodyInertia &Ia, const RigidBodyInertia &Ib)
Wrench operator* (const ArticulatedBodyInertia &I, const Twist &t)
ArticulatedBodyInertia operator* (const Frame &T, const ArticulatedBodyInertia &I)
ArticulatedBodyInertia operator* (const Rotation &R, const ArticulatedBodyInertia &I)

Detailed Description

6D Inertia of a articulated body

The inertia is defined in a certain reference point and a certain reference base. The reference point does not have to coincide with the origin of the reference frame.

Constructor & Destructor Documentation

◆ ArticulatedBodyInertia() [1/4]

KDL::ArticulatedBodyInertia::ArticulatedBodyInertia ( )
inline

This constructor creates a zero articulated body inertia matrix,

◆ ArticulatedBodyInertia() [2/4]

KDL::ArticulatedBodyInertia::ArticulatedBodyInertia ( const RigidBodyInertia & rbi)

This constructor creates a cartesian space articulated body inertia matrix, the arguments is a rigid body inertia.

◆ ArticulatedBodyInertia() [3/4]

KDL::ArticulatedBodyInertia::ArticulatedBodyInertia ( double m,
const Vector & oc = Vector::Zero(),
const RotationalInertia & Ic = RotationalInertia::Zero() )
explicit

This constructor creates a cartesian space inertia matrix, the arguments are the mass, the vector from the reference point to cog and the rotational inertia in the cog.

◆ ~ArticulatedBodyInertia()

KDL::ArticulatedBodyInertia::~ArticulatedBodyInertia ( )
inline

◆ ArticulatedBodyInertia() [4/4]

KDL::ArticulatedBodyInertia::ArticulatedBodyInertia ( const Eigen::Matrix3d & M,
const Eigen::Matrix3d & H,
const Eigen::Matrix3d & I )

Member Function Documentation

◆ RefPoint()

ArticulatedBodyInertia KDL::ArticulatedBodyInertia::RefPoint ( const Vector & p)

Reference point change with v the vector from the old to the new point expressed in the current reference frame

◆ Zero()

ArticulatedBodyInertia KDL::ArticulatedBodyInertia::Zero ( )
inlinestatic

Creates an inertia with zero mass, and zero RotationalInertia

◆ operator* [1/4]

Wrench operator* ( const ArticulatedBodyInertia & I,
const Twist & t )
friend

calculate spatial momentum: h = I*v make sure that the twist v and the inertia are expressed in the same reference frame/point

◆ operator* [2/4]

ArticulatedBodyInertia operator* ( const Frame & T,
const ArticulatedBodyInertia & I )
friend

Coordinate system transform Ia = T_a_b*Ib with T_a_b the frame from a to b.

◆ operator* [3/4]

ArticulatedBodyInertia operator* ( const Rotation & R,
const ArticulatedBodyInertia & I )
friend

Reference frame orientation change Ia = R_a_b*Ib with R_a_b the rotation of b expressed in a

◆ operator* [4/4]

ArticulatedBodyInertia operator* ( double a,
const ArticulatedBodyInertia & I )
friend

Scalar product: I_new = double * I_old

◆ operator+ [1/2]

ArticulatedBodyInertia operator+ ( const ArticulatedBodyInertia & Ia,
const ArticulatedBodyInertia & Ib )
friend

addition I: I_new = I_old1 + I_old2, make sure that I_old1 and I_old2 are expressed in the same reference frame/point, otherwise the result is worth nothing

◆ operator+ [2/2]

ArticulatedBodyInertia operator+ ( const ArticulatedBodyInertia & Ia,
const RigidBodyInertia & Ib )
friend

◆ operator- [1/2]

ArticulatedBodyInertia operator- ( const ArticulatedBodyInertia & Ia,
const ArticulatedBodyInertia & Ib )
friend

◆ operator- [2/2]

ArticulatedBodyInertia operator- ( const ArticulatedBodyInertia & Ia,
const RigidBodyInertia & Ib )
friend

Member Data Documentation

◆ H

Eigen::Matrix3d KDL::ArticulatedBodyInertia::H

◆ I

Eigen::Matrix3d KDL::ArticulatedBodyInertia::I

◆ M

Eigen::Matrix3d KDL::ArticulatedBodyInertia::M

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