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. More...
#include <RigidBodyInertia.hpp>
Public Member Functions | |
void | createFromMatrix (const SpatialMatrix &Ic) |
Create a Math::RigidBodyInertia object from a 6x6 Math::SpatialMatrix. 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... | |
void | operator+= (const RigidBodyInertia &rbi) |
Overloaded plus-equals operator. Adds two inertia matrices. More... | |
RigidBodyInertia & | operator= (const RigidBodyInertia &other) |
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 | setSpatialMatrix (SpatialMatrix &mat) const |
Store a Math::RigidBodyInertia in the Math::SpatialMatrix. More... | |
SpatialMatrix | subtractSpatialMatrix (const SpatialMatrix &m) const |
Given Math::RigidBodyInertia ad Math::SpatialMatrix , returns Math::SpatialMatrix such that . More... | |
SpatialVector | timesSpatialVector (const SpatialVector &v) const |
Multiply a Math::RigidBodyInertia by a Math::SpatialVector and return the result as a new Math::SpatialVector. More... | |
SpatialMatrix | toMatrix () const |
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... | |
Public Attributes | |
Vector3d | h |
double | Ixx |
double | Iyx |
double | Iyy |
double | Izx |
double | Izy |
double | Izz |
double | m |
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.
Definition at line 45 of file RigidBodyInertia.hpp.
|
inline |
Constructor.
Definition at line 51 of file RigidBodyInertia.hpp.
|
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 |
Definition at line 61 of file RigidBodyInertia.hpp.
|
inline |
Constructor.
m | Body mass |
h | Vector pointing to center of mass scaled by the body mass |
Ixx | |
Iyx | |
Iyy | |
Izx | |
Izy | |
Izz |
Definition at line 77 of file RigidBodyInertia.hpp.
|
inline |
void RobotDynamics::Math::RigidBodyInertia::createFromMatrix | ( | const SpatialMatrix & | Ic | ) |
Create a Math::RigidBodyInertia object from a 6x6 Math::SpatialMatrix.
Ic |
Definition at line 90 of file RigidBodyInertia.cpp.
A helper method that returns a 6x3 matrix that is a Math::RigidBodyInertia multiplied by a 6x3 matrix.
m |
Definition at line 199 of file RigidBodyInertia.hpp.
void RobotDynamics::Math::RigidBodyInertia::operator+= | ( | const RigidBodyInertia & | rbi | ) |
Overloaded plus-equals operator. Adds two inertia matrices.
rbi |
Definition at line 14 of file RigidBodyInertia.cpp.
|
inline |
Definition at line 207 of file RigidBodyInertia.hpp.
|
inline |
|
inline |
Setter.
m | Body mass |
h | Vector pointing to center of mass scaled by the body mass |
Ixx | |
Iyx | |
Iyy | |
Izx | |
Izy | |
Izz |
Definition at line 111 of file RigidBodyInertia.hpp.
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 |
Definition at line 122 of file RigidBodyInertia.cpp.
|
inline |
Given Math::RigidBodyInertia ad Math::SpatialMatrix , returns Math::SpatialMatrix such that .
m |
Definition at line 173 of file RigidBodyInertia.hpp.
|
inline |
Multiply a Math::RigidBodyInertia by a Math::SpatialVector and return the result as a new Math::SpatialVector.
v |
Definition at line 187 of file RigidBodyInertia.hpp.
SpatialMatrix RobotDynamics::Math::RigidBodyInertia::toMatrix | ( | ) | const |
Get a Math::RigidBodyInertia as a 6x6 Math::SpatialMatrix
Definition at line 102 of file RigidBodyInertia.cpp.
|
virtual |
Transform a Math::RigidBodyInertia matrix.
X |
Implements RobotDynamics::Math::TransformableGeometricObject.
Definition at line 26 of file RigidBodyInertia.cpp.
|
inline |
Copy, transform, and return a Math::RigidBodyInertia.
X |
Definition at line 141 of file RigidBodyInertia.hpp.
Vector3d RobotDynamics::Math::RigidBodyInertia::h |
Vector pointing to body center of mass in body frame, scaled by body mass
Definition at line 222 of file RigidBodyInertia.hpp.
double RobotDynamics::Math::RigidBodyInertia::Ixx |
Element in body's inertia matrix
Definition at line 224 of file RigidBodyInertia.hpp.
double RobotDynamics::Math::RigidBodyInertia::Iyx |
Element in body's inertia matrix
Definition at line 225 of file RigidBodyInertia.hpp.
double RobotDynamics::Math::RigidBodyInertia::Iyy |
Element in body's inertia matrix
Definition at line 226 of file RigidBodyInertia.hpp.
double RobotDynamics::Math::RigidBodyInertia::Izx |
Element in body's inertia matrix
Definition at line 227 of file RigidBodyInertia.hpp.
double RobotDynamics::Math::RigidBodyInertia::Izy |
Element in body's inertia matrix
Definition at line 228 of file RigidBodyInertia.hpp.
double RobotDynamics::Math::RigidBodyInertia::Izz |
Element in body's inertia matrix
Definition at line 229 of file RigidBodyInertia.hpp.
double RobotDynamics::Math::RigidBodyInertia::m |
Mass
Definition at line 220 of file RigidBodyInertia.hpp.