Orocos KDL
KDL::RigidBodyInertia Class Reference

6D Inertia of a rigid body More...

#include <rigidbodyinertia.hpp>

Public Member Functions

 RigidBodyInertia (double m=0, const Vector &oc=Vector::Zero(), const RotationalInertia &Ic=RotationalInertia::Zero())
 ~RigidBodyInertia ()
RigidBodyInertia RefPoint (const Vector &p)
double getMass () const
const Vector & getSpatialMomentum () const
Vector getCOG () const
RotationalInertia getRotationalInertia () const

Static Public Member Functions

static RigidBodyInertia Zero ()

Friends

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

Detailed Description

6D Inertia of a rigid 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

◆ RigidBodyInertia()

KDL::RigidBodyInertia::RigidBodyInertia ( double m = 0,
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.

◆ ~RigidBodyInertia()

KDL::RigidBodyInertia::~RigidBodyInertia ( )
inline

Member Function Documentation

◆ getCOG()

Vector KDL::RigidBodyInertia::getCOG ( ) const
inline

Get the center of gravity of the rigid body

◆ getMass()

double KDL::RigidBodyInertia::getMass ( ) const
inline

Get the mass of the rigid body

◆ getRotationalInertia()

RotationalInertia KDL::RigidBodyInertia::getRotationalInertia ( ) const
inline

Get the rotational inertia expressed in the reference frame (not the cog)

◆ getSpatialMomentum()

const Vector & KDL::RigidBodyInertia::getSpatialMomentum ( ) const
inline

Get the spatial momentum of the rigid body

◆ RefPoint()

RigidBodyInertia KDL::RigidBodyInertia::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()

RigidBodyInertia KDL::RigidBodyInertia::Zero ( )
inlinestatic

Creates an inertia with zero mass, and zero RotationalInertia

◆ ArticulatedBodyInertia

friend class ArticulatedBodyInertia
friend

◆ operator* [1/4]

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

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

◆ operator* [2/4]

Wrench operator* ( const RigidBodyInertia & 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* [3/4]

RigidBodyInertia operator* ( const Rotation & R,
const RigidBodyInertia & 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]

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

Scalar product: I_new = double * I_old

◆ operator+

RigidBodyInertia operator+ ( const RigidBodyInertia & Ia,
const RigidBodyInertia & 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


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