|
KDL 1.5.1
|
6D Inertia of a rigid body More...
#include <src/rigidbodyinertia.hpp>

Public Member Functions | |
| RigidBodyInertia (double m=0, const Vector &oc=Vector::Zero(), const RotationalInertia &Ic=RotationalInertia::Zero()) | |
| 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 () | |
| 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. | |
| double | getMass () const |
| Get the mass of the rigid body. | |
| Vector | getCOG () const |
| Get the center of gravity of the rigid body. | |
| RotationalInertia | getRotationalInertia () const |
| Get the rotational inertia expressed in the reference frame (not the cog) | |
Static Public Member Functions | |
| static RigidBodyInertia | Zero () |
| Creates an inertia with zero mass, and zero RotationalInertia. | |
Private Member Functions | |
| RigidBodyInertia (double m, const Vector &h, const RotationalInertia &I, bool mhi) | |
Private Attributes | |
| double | m |
| Vector | h |
| RotationalInertia | I |
Friends | |
| class | ArticulatedBodyInertia |
| RigidBodyInertia | operator* (double a, const RigidBodyInertia &I) |
| Scalar product: I_new = double * I_old. | |
| RigidBodyInertia | operator+ (const RigidBodyInertia &Ia, const RigidBodyInertia &Ib) |
| 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 | |
| Wrench | operator* (const RigidBodyInertia &I, const Twist &t) |
| calculate spatial momentum: h = I*v make sure that the twist v and the inertia are expressed in the same reference frame/point | |
| RigidBodyInertia | operator* (const Frame &T, const RigidBodyInertia &I) |
| Coordinate system transform Ia = T_a_b*Ib with T_a_b the frame from a to b. | |
| RigidBodyInertia | operator* (const Rotation &R, const RigidBodyInertia &I) |
| Reference frame orientation change Ia = R_a_b*Ib with R_a_b the rotation of b expressed in a. | |
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.
References KDL::RotationalInertia::data, KDL::Vector::data, h, I, and m.
Referenced by operator*, operator*, operator*, operator*, operator+, RefPoint(), and Zero().
|
inline |
|
private |
|
inline |
Get the center of gravity of the rigid body.
References h, m, and KDL::Vector::Zero().
|
inline |
Get the mass of the rigid body.
References m.
|
inline |
Get the rotational inertia expressed in the reference frame (not the cog)
References I.
| 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.
References KDL::RotationalInertia::data, KDL::Vector::data, h, I, m, KDL::mhi, and RigidBodyInertia().
|
inlinestatic |
Creates an inertia with zero mass, and zero RotationalInertia.
References RigidBodyInertia(), KDL::RotationalInertia::Zero(), and KDL::Vector::Zero().
|
friend |
References ArticulatedBodyInertia.
Referenced by ArticulatedBodyInertia.
|
friend |
Coordinate system transform Ia = T_a_b*Ib with T_a_b the frame from a to b.
References KDL::Rotation::data, KDL::RotationalInertia::data, KDL::Vector::data, I, KDL::Frame::Inverse(), KDL::Frame::M, KDL::mhi, KDL::Frame::p, and RigidBodyInertia().
|
friend |
calculate spatial momentum: h = I*v make sure that the twist v and the inertia are expressed in the same reference frame/point
References I, RigidBodyInertia(), KDL::Twist::rot, and KDL::Twist::vel.
|
friend |
Reference frame orientation change Ia = R_a_b*Ib with R_a_b the rotation of b expressed in a.
References KDL::Rotation::data, KDL::RotationalInertia::data, I, KDL::mhi, and RigidBodyInertia().
|
friend |
Scalar product: I_new = double * I_old.
References I, KDL::mhi, and RigidBodyInertia().
|
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
References h, I, m, KDL::mhi, and RigidBodyInertia().
|
private |
Referenced by KDL::ArticulatedBodyInertia::ArticulatedBodyInertia(), getCOG(), operator+, RefPoint(), RigidBodyInertia(), and RigidBodyInertia().
|
private |
|
private |