Robot Dynamics Library
|
This class stores a bodies mass, center of mass, and inertia information. The inertia elements are stored individually since the inertia matrix is a 3x3 symmetric matrix. The bodies inertia matrix, expressed about its center of mass, can be reconstructed as. More...
#include <RigidBodyInertia.hpp>
Public Member Functions | |
RigidBodyInertia () | |
Constructor. More... | |
RigidBodyInertia (double mass, const Vector3d &com_mass, const Matrix3d &inertia) | |
Constructor. More... | |
RigidBodyInertia (double m, const Vector3d &h, const double Ixx, const double Iyx, const double Iyy, const double Izx, const double Izy, const double Izz) | |
Constructor. More... | |
RigidBodyInertia (const RigidBodyInertia &inertia) | |
Copy constructor. More... | |
void | set (const RigidBodyInertia &I) |
Setter. More... | |
void | set (double m, const Vector3d &h, const double Ixx, const double Iyx, const double Iyy, const double Izx, const double Izy, const double Izz) |
Setter. More... | |
void | operator+= (const RigidBodyInertia &rbi) |
Overloaded plus-equals operator. Adds two inertia matrices. More... | |
void | transform (const SpatialTransform &X) |
Transform a Math::RigidBodyInertia matrix. More... | |
RigidBodyInertia | transform_copy (const SpatialTransform &X) const |
Copy, transform, and return a Math::RigidBodyInertia. More... | |
void | createFromMatrix (const SpatialMatrix &Ic) |
Create a Math::RigidBodyInertia object from a 6x6 Math::SpatialMatrix. More... | |
SpatialMatrix | toMatrix () const |
void | setSpatialMatrix (SpatialMatrix &mat) const |
Store a Math::RigidBodyInertia in the Math::SpatialMatrix. More... | |
SpatialMatrix | subtractSpatialMatrix (const SpatialMatrix &m) const |
Given Math::RigidBodyInertia ![]() ![]() ![]() ![]() | |
SpatialVector | timesSpatialVector (const SpatialVector &v) const |
Multiply a Math::RigidBodyInertia by a Math::SpatialVector and return the result as a new Math::SpatialVector. More... | |
Matrix63 | multiplyMatrix63 (Matrix63 m) const |
A helper method that returns a 6x3 matrix that is a Math::RigidBodyInertia multiplied by a 6x3 matrix. More... | |
RigidBodyInertia & | operator= (const RigidBodyInertia &I) |
Public Attributes | |
double | m |
Vector3d | h |
double | Ixx |
double | Iyx |
double | Iyy |
double | Izx |
double | Izy |
double | Izz |
This class stores a bodies mass, center of mass, and inertia information. The inertia elements are stored individually since the inertia matrix is a 3x3 symmetric matrix. The bodies inertia matrix, expressed about its center of mass, can be reconstructed as.
The full RigidBodyInertia matrix has the following structure,
where is a 3x3 identity matrix
|
inline |
Constructor.
|
inline |
Constructor.
mass | Body mass |
com_mass | Vector pointing to center of mass scaled by the body mass |
inertia | 3x3 Inertia tensor about the bodies center of mass |
|
inline |
Constructor.
m | Body mass |
h | Vector pointing to center of mass scaled by the body mass |
Ixx | |
Iyx | |
Iyy | |
Izx | |
Izy | |
Izz |
|
inline |
Copy constructor.
inertia |
void RobotDynamics::Math::RigidBodyInertia::createFromMatrix | ( | const SpatialMatrix & | Ic | ) |
Create a Math::RigidBodyInertia object from a 6x6 Math::SpatialMatrix.
Ic |
A helper method that returns a 6x3 matrix that is a Math::RigidBodyInertia multiplied by a 6x3 matrix.
m |
void RobotDynamics::Math::RigidBodyInertia::operator+= | ( | const RigidBodyInertia & | rbi | ) |
Overloaded plus-equals operator. Adds two inertia matrices.
rbi |
|
inline |
|
inline |
Setter.
I |
|
inline |
Setter.
m | Body mass |
h | Vector pointing to center of mass scaled by the body mass |
Ixx | |
Iyx | |
Iyy | |
Izx | |
Izy | |
Izz |
void RobotDynamics::Math::RigidBodyInertia::setSpatialMatrix | ( | SpatialMatrix & | mat | ) | const |
Store a Math::RigidBodyInertia in the Math::SpatialMatrix.
mat | Modified to store a Math::RigidBodyInertia in the Math::SpatialMatrix |
|
inline |
Given Math::RigidBodyInertia ad Math::SpatialMatrix
, returns Math::SpatialMatrix
such that
.
m |
|
inline |
Multiply a Math::RigidBodyInertia by a Math::SpatialVector and return the result as a new Math::SpatialVector.
v |
SpatialMatrix RobotDynamics::Math::RigidBodyInertia::toMatrix | ( | ) | const |
Get a Math::RigidBodyInertia as a 6x6 Math::SpatialMatrix
|
virtual |
Transform a Math::RigidBodyInertia matrix.
X |
Implements RobotDynamics::Math::TransformableGeometricObject.
|
inline |
Copy, transform, and return a Math::RigidBodyInertia.
X |
Vector3d RobotDynamics::Math::RigidBodyInertia::h |
Vector pointing to body center of mass in body frame, scaled by body mass
double RobotDynamics::Math::RigidBodyInertia::Ixx |
Element in body's inertia matrix
double RobotDynamics::Math::RigidBodyInertia::Iyx |
Element in body's inertia matrix
double RobotDynamics::Math::RigidBodyInertia::Iyy |
Element in body's inertia matrix
double RobotDynamics::Math::RigidBodyInertia::Izx |
Element in body's inertia matrix
double RobotDynamics::Math::RigidBodyInertia::Izy |
Element in body's inertia matrix
double RobotDynamics::Math::RigidBodyInertia::Izz |
Element in body's inertia matrix
double RobotDynamics::Math::RigidBodyInertia::m |
Mass