Ravelin
|
A 6x6 spatial algebra matrix used for dynamics calculations. More...
#include <SpatialRBInertiad.h>
Public Member Functions | |
SPATIAL_RB_INERTIA (boost::shared_ptr< const POSE3 > pose=boost::shared_ptr< const POSE3 >()) | |
SPATIAL_RB_INERTIA (boost::shared_ptr< POSE3 > pose) | |
SPATIAL_RB_INERTIA (REAL m, const VECTOR3 &h, const MATRIX3 &J, boost::shared_ptr< const POSE3 > pose=boost::shared_ptr< const POSE3 >()) | |
SPATIAL_RB_INERTIA (REAL m, const VECTOR3 &h, const MATRIX3 &J, boost::shared_ptr< POSE3 > pose) | |
SPATIAL_RB_INERTIA (const SPATIAL_RB_INERTIA &source) | |
void | set_zero () |
SACCEL | inverse_mult (const SFORCE &v) const |
SVELOCITY | inverse_mult (const SMOMENTUM &m) const |
std::vector< SACCEL > & | inverse_mult (const std::vector< SFORCE > &v, std::vector< SACCEL > &result) const |
SPATIAL_RB_INERTIA & | operator= (const SPATIAL_RB_INERTIA &source) |
SPATIAL_RB_INERTIA & | operator+= (const SPATIAL_RB_INERTIA &m) |
SPATIAL_RB_INERTIA & | operator-= (const SPATIAL_RB_INERTIA &m) |
SPATIAL_RB_INERTIA & | operator*= (const SPATIAL_RB_INERTIA &m) |
SPATIAL_RB_INERTIA & | operator*= (REAL scalar) |
SPATIAL_RB_INERTIA & | operator/= (REAL scalar) |
SPATIAL_RB_INERTIA | operator+ (const SPATIAL_RB_INERTIA &m) const |
SPATIAL_RB_INERTIA | operator- (const SPATIAL_RB_INERTIA &m) const |
SPATIAL_RB_INERTIA | operator* (const SPATIAL_RB_INERTIA &m) const |
SPATIAL_RB_INERTIA | operator* (REAL scalar) const |
SPATIAL_RB_INERTIA | operator/ (REAL scalar) const |
SFORCE | operator* (const SACCEL &s) const |
std::vector< SFORCE > & | mult (const std::vector< SACCEL > &s, std::vector< SFORCE > &result) const |
SMOMENTUM | operator* (const SVELOCITY &s) const |
SMOMENTUM | mult (const SVELOCITY &s) const |
std::vector< SMOMENTUM > & | mult (const std::vector< SVELOCITY > &s, std::vector< SMOMENTUM > &result) const |
SPATIAL_RB_INERTIA | operator- () const |
template<class Mat > | |
Mat & | to_matrix (Mat &M) const |
Converts this to a matrix. | |
template<class Mat > | |
Mat & | to_PD_matrix (Mat &M) const |
Converts this to a positive-definite matrix. | |
SPATIAL_RB_INERTIA (boost::shared_ptr< const POSE3 > pose=boost::shared_ptr< const POSE3 >()) | |
SPATIAL_RB_INERTIA (boost::shared_ptr< POSE3 > pose) | |
SPATIAL_RB_INERTIA (REAL m, const VECTOR3 &h, const MATRIX3 &J, boost::shared_ptr< const POSE3 > pose=boost::shared_ptr< const POSE3 >()) | |
SPATIAL_RB_INERTIA (REAL m, const VECTOR3 &h, const MATRIX3 &J, boost::shared_ptr< POSE3 > pose) | |
SPATIAL_RB_INERTIA (const SPATIAL_RB_INERTIA &source) | |
void | set_zero () |
SACCEL | inverse_mult (const SFORCE &v) const |
SVELOCITY | inverse_mult (const SMOMENTUM &m) const |
std::vector< SACCEL > & | inverse_mult (const std::vector< SFORCE > &v, std::vector< SACCEL > &result) const |
SPATIAL_RB_INERTIA & | operator= (const SPATIAL_RB_INERTIA &source) |
SPATIAL_RB_INERTIA & | operator+= (const SPATIAL_RB_INERTIA &m) |
SPATIAL_RB_INERTIA & | operator-= (const SPATIAL_RB_INERTIA &m) |
SPATIAL_RB_INERTIA & | operator*= (const SPATIAL_RB_INERTIA &m) |
SPATIAL_RB_INERTIA & | operator*= (REAL scalar) |
SPATIAL_RB_INERTIA & | operator/= (REAL scalar) |
SPATIAL_RB_INERTIA | operator+ (const SPATIAL_RB_INERTIA &m) const |
SPATIAL_RB_INERTIA | operator- (const SPATIAL_RB_INERTIA &m) const |
SPATIAL_RB_INERTIA | operator* (const SPATIAL_RB_INERTIA &m) const |
SPATIAL_RB_INERTIA | operator* (REAL scalar) const |
SPATIAL_RB_INERTIA | operator/ (REAL scalar) const |
SFORCE | operator* (const SACCEL &s) const |
std::vector< SFORCE > & | mult (const std::vector< SACCEL > &s, std::vector< SFORCE > &result) const |
SMOMENTUM | operator* (const SVELOCITY &s) const |
SMOMENTUM | mult (const SVELOCITY &s) const |
std::vector< SMOMENTUM > & | mult (const std::vector< SVELOCITY > &s, std::vector< SMOMENTUM > &result) const |
SPATIAL_RB_INERTIA | operator- () const |
template<class Mat > | |
Mat & | to_matrix (Mat &M) const |
Converts this to a matrix. | |
template<class Mat > | |
Mat & | to_PD_matrix (Mat &M) const |
Converts this to a positive-definite matrix. | |
Static Public Member Functions | |
static SPATIAL_RB_INERTIA | zero () |
static SPATIAL_RB_INERTIA | zero () |
Public Attributes | |
REAL | m |
The rigid body mass. | |
ORIGIN3 | h |
The position of the center-of-mass times the mass. | |
MATRIX3 | J |
The rigid body moment of inertia matrix. | |
boost::shared_ptr< const POSE3 > | pose |
The pose that this inertia is defined in. | |
A 6x6 spatial algebra matrix used for dynamics calculations.
The matrix is represented by: | -hx*m I*m | | J - hx*hx*m hx*m | where hx is the skew symmetric matrix determined by h (h is the vector from the origin of the reference frame to the center of mass) and I is the identity matrix. The inverse of this matrix is: | -inv(J)*hx inv(J) | | I/m - hx*inv(J)*hx hx*inv(J) |