orocos_kdl
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
KDL::RigidBodyInertia Class Reference

6D Inertia of a rigid body More...

#include <rigidbodyinertia.hpp>

Public Member Functions

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

Static Public Member Functions

static RigidBodyInertia Zero ()
 

Private Member Functions

 RigidBodyInertia (double m, const Vector &h, const RotationalInertia &I, bool mhi)
 

Private Attributes

Vector h
 
RotationalInertia I
 
double m
 

Friends

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

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.

Definition at line 37 of file rigidbodyinertia.hpp.

Constructor & Destructor Documentation

◆ RigidBodyInertia() [1/2]

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.

Definition at line 35 of file rigidbodyinertia.cpp.

◆ ~RigidBodyInertia()

KDL::RigidBodyInertia::~RigidBodyInertia ( )
inline

Definition at line 54 of file rigidbodyinertia.hpp.

◆ RigidBodyInertia() [2/2]

KDL::RigidBodyInertia::RigidBodyInertia ( double  m,
const Vector h,
const RotationalInertia I,
bool  mhi 
)
private

Definition at line 30 of file rigidbodyinertia.cpp.

Member Function Documentation

◆ getCOG()

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

Get the center of gravity of the rigid body

Definition at line 86 of file rigidbodyinertia.hpp.

◆ getMass()

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

Get the mass of the rigid body

Definition at line 71 of file rigidbodyinertia.hpp.

◆ getRotationalInertia()

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

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

Definition at line 94 of file rigidbodyinertia.hpp.

◆ getSpatialMomentum()

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

Get the spatial momentum of the rigid body

Definition at line 78 of file rigidbodyinertia.hpp.

◆ 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

Definition at line 83 of file rigidbodyinertia.cpp.

◆ Zero()

static RigidBodyInertia KDL::RigidBodyInertia::Zero ( )
inlinestatic

Creates an inertia with zero mass, and zero RotationalInertia

Definition at line 49 of file rigidbodyinertia.hpp.

Friends And Related Function Documentation

◆ ArticulatedBodyInertia

friend class ArticulatedBodyInertia
friend

Definition at line 104 of file rigidbodyinertia.hpp.

◆ 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.

Definition at line 54 of file rigidbodyinertia.cpp.

◆ 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

Definition at line 50 of file rigidbodyinertia.cpp.

◆ 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

Definition at line 72 of file rigidbodyinertia.cpp.

◆ operator* [4/4]

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

Scalar product: I_new = double * I_old

Definition at line 42 of file rigidbodyinertia.cpp.

◆ 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

Definition at line 46 of file rigidbodyinertia.cpp.

Member Data Documentation

◆ h

Vector KDL::RigidBodyInertia::h
private

Definition at line 101 of file rigidbodyinertia.hpp.

◆ I

RotationalInertia KDL::RigidBodyInertia::I
private

Definition at line 102 of file rigidbodyinertia.hpp.

◆ m

double KDL::RigidBodyInertia::m
private

Definition at line 100 of file rigidbodyinertia.hpp.


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