|
Orocos KDL
|
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) |
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.
|
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.
|
inline |
|
inline |
Get the center of gravity of the rigid body
|
inline |
Get the mass of the rigid body
|
inline |
Get the rotational inertia expressed in the reference frame (not the cog)
|
inline |
Get the spatial momentum of the rigid body
| 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
|
inlinestatic |
Creates an inertia with zero mass, and zero RotationalInertia
|
friend |
|
friend |
Coordinate system transform Ia = T_a_b*Ib with T_a_b the frame from a to b.
|
friend |
calculate spatial momentum: h = I*v make sure that the twist v and the inertia are expressed in the same reference frame/point
|
friend |
Reference frame orientation change Ia = R_a_b*Ib with R_a_b the rotation of b expressed in a
|
friend |
Scalar product: I_new = double * I_old
|
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