Classes | Typedefs | Enumerations | Functions | Variables
RobotDynamics::Math Namespace Reference

Math types such as vectors and matrices and utility functions. More...

Classes

class  ForceVector
 A ForceVector is a SpatialVector containing 3 moments and 3 linear forces. More...
 
class  FrameOrientation
 A Frame object that represents an orientation(quaternion) relative to a reference frame. More...
 
class  FramePoint
 A FramePoint is a 3D point that is expressed in a ReferenceFrame. To change the ReferenceFrame a FramePoint is expressed in, you may call the inhereted FrameObject::changeFrame method and supply it a pointer to the ReferenceFrame you wish to have the FramePoint expressed in. This class and its implementation are an adaptation of FramePoint.java by Jerry Pratt and the IHMC Robotics Group. More...
 
class  FrameVector
 A FrameVector is a 3D vector with a ReferenceFrame, and all operations between FrameVectors and other frame objects will perform runtime checks that objects are expressed in the same frames. This class and its implementation are an adaptation of FrameVector.java by Jerry Pratt and the IHMC Robotics Group. More...
 
class  FrameVectorPair
 A FrameVector is a pair of 3D vector with a ReferenceFrame. More...
 
class  Matrix3d
 
class  Matrix4d
 
class  Momentum
 Momentum is mass/inertia multiplied by velocity. More...
 
class  MotionVector
 
class  Point3d
 
class  Quaternion
 Quaternion that are used for singularity free joints. More...
 
class  RigidBodyInertia
 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

\[ I_c = \begin{bmatrix} I_xx & I_yx & I_zx \\ I_yx & I_yy & I_zy \\ I_zx & I_zy & I_zz \end{bmatrix} \]

The full RigidBodyInertia matrix has the following structure,

\[ \begin{bmatrix} I_c + (h\times)h & h\times \\ -h\times & \mathbf{1}_{3\times3}m \end{bmatrix} \]

where $ \mathbf{1}_{3\times 3} $ is a 3x3 identity matrix. More...

 
class  SpatialAcceleration
 SpatialAcceleration. For clarity, the ReferenceFrames are stated as follows. A spatial acceleration is the acceleration of the SpatialAcceleration::bodyFrame with respect to the SpatialAcceleration::baseFrame expressed in the SpatialAcceleration::expressedInFrame. More...
 
class  SpatialForce
 A SpatialForce is a spatial vector with the angular part being three moments and the linear part being 3 linear forces. More...
 
class  SpatialInertia
 A Math::SpatialInertia is a RigidBodyInertia explicitly expressed in a RobotDynamics::ReferenceFrame. The frame a Math::SpatialInertia is expressed in can be changed by calling RobotDynamics::FrameObject::changeFrame. More...
 
class  SpatialMatrix
 
class  SpatialMomentum
 A SpatialMomentum is a Momentum expressed in a RobotDynamics::ReferenceFrame. The angular portion of the vector is referred to as $k$ and the linear portion as $l$. More...
 
class  SpatialMotion
 A SpatialMotion vector is a MotionVector with a RobotDynamics::ReferenceFrame it is expressed in. This allows for runtime checks that frame rules are obeyed and makes it easy to change the frame the metion vector is expressed in. As with a SpatialAcceleration, a SpatialMotion vector is the spatial velocity of a SpatialMotion::bodyFrame relative to a SpatialMotion::baseFrame and is expressed in RobotDynamics::FrameObject::referenceFrame. More...
 
struct  SpatialTransform
 Compact representation of spatial transformations. More...
 
class  SpatialVector
 
class  TransformableGeometricObject
 The TransformableGeometricObject class is an essential interface because it forces all geometric objects to implement a method that tells how to transform them. This makes in possible for frame transformations of any TransformableGeometricObject can be done via the FrameObject::changeFrame method. More...
 
class  Vector3d
 
class  Vector4d
 

Typedefs

typedef Eigen::AngleAxisd AxisAngle
 
typedef std::vector< ForceVector, Eigen::aligned_allocator< ForceVector > > ForceVectorV
 
typedef std::vector< FramePoint, Eigen::aligned_allocator< FramePoint > > FramePointV
 
typedef std::vector< FrameVector, Eigen::aligned_allocator< FrameVector > > FrameVectorV
 
typedef Eigen::Matrix< double, 6, 3 > Matrix63
 
typedef Eigen::MatrixXd MatrixNd
 
typedef std::vector< MotionVector, Eigen::aligned_allocator< MotionVector > > MotionVectorV
 
typedef std::vector< Point3d, Eigen::aligned_allocator< Point3d > > Point3V
 
typedef std::vector< RigidBodyInertia, Eigen::aligned_allocator< RigidBodyInertia > > RigidBodyInertiaV
 
typedef std::vector< SpatialAcceleration, Eigen::aligned_allocator< SpatialAcceleration > > SpatialAccelerationV
 
typedef std::vector< SpatialForce, Eigen::aligned_allocator< SpatialForce > > SpatialForceV
 
typedef std::vector< SpatialInertia, Eigen::aligned_allocator< SpatialInertia > > SpatialInertiaV
 
typedef std::vector< SpatialMomentum, Eigen::aligned_allocator< SpatialMomentum > > SpatialMomentumV
 
typedef std::vector< SpatialMotion, Eigen::aligned_allocator< SpatialMotion > > SpatialMotionV
 
typedef Eigen::VectorXd VectorNd
 

Enumerations

enum  LinearSolver {
  LinearSolverUnknown = 0, LinearSolverPartialPivLU, LinearSolverColPivHouseholderQR, LinearSolverHouseholderQR,
  LinearSolverLLT, LinearSolverLast
}
 Available solver methods for the linear systems. More...
 

Functions

Vector3d angular_acceleration_from_angle_rates (const Vector3d &zyx_angles, const Vector3d &zyx_angle_rates, const Vector3d &zyx_angle_rates_dot)
 
Vector3d angular_velocity_from_angle_rates (const Vector3d &zyx_angles, const Vector3d &zyx_angle_rates)
 
static RigidBodyInertia createFromMassComInertiaC (double mass, const Vector3d &com, const Matrix3d &inertia_C)
 
SpatialMatrix crossf (const SpatialVector &v)
 Get the spatial force cross matrix. More...
 
SpatialVector crossf (const SpatialVector &v1, const SpatialVector &v2)
 Spatial motion cross spatial force. More...
 
SpatialMatrix crossm (const SpatialVector &v)
 Get the spatial motion cross matrix. More...
 
SpatialVector crossm (const SpatialVector &v1, const SpatialVector &v2)
 Spatial motion cross times spatial motion. More...
 
Vector3d getLinearPartTransformed (const SpatialVector &v, const SpatialTransform &X)
 Get the rotated linear portion of the spatial vector. More...
 
Vector3d global_angular_velocity_from_rates (const Vector3d &zyx_angles, const Vector3d &zyx_rates)
 
static Quaternion intrinsicXYZAnglesToQuaternion (double roll, double pitch, double yaw)
 Convert RPY angles to quaternion. More...
 
static Quaternion intrinsicXYZAnglesToQuaternion (const Vector3d &xyz_angles)
 Convert RPY angles to quaternion. More...
 
static Quaternion intrinsicYXZAnglesToQuaternion (double pitch, double roll, double yaw)
 Convert PRY angles to quaternion. More...
 
static Quaternion intrinsicYXZAnglesToQuaternion (const Vector3d &yxz_angles)
 Convert PRY angles to quaternion. More...
 
static Quaternion intrinsicZYXAnglesToQuaternion (double yaw, double pitch, double roll)
 Convert YPR angles to quaternion. More...
 
static Quaternion intrinsicZYXAnglesToQuaternion (const Vector3d &zyx_angles)
 Convert YPR angles to quaternion. More...
 
bool linSolveGaussElimPivot (MatrixNd A, VectorNd b, VectorNd &x)
 Solves a linear system using gaussian elimination with pivoting. More...
 
Matrix3d Matrix3dIdentity (1., 0., 0., 0., 1., 0., 0., 0., 1)
 
Matrix3d Matrix3dZero (0., 0., 0., 0., 0., 0., 0., 0., 0.)
 
MatrixNd matrixFromPtr (unsigned int rows, unsigned int cols, double *ptr, bool row_major=true)
 
bool operator!= (const FramePoint &lhs, const FramePoint &rhs)
 Check if two FramePoints are not equal. More...
 
EIGEN_STRONG_INLINE SpatialMotion operator% (SpatialMotion v1, const SpatialMotion &v2)
 
MotionVector operator% (MotionVector v, const MotionVector &v2)
 
ForceVector operator% (MotionVector v, const ForceVector &v2)
 
SpatialMomentum operator* (const SpatialInertia &inertia, const SpatialMotion &vector)
 
static Momentum operator* (const RigidBodyInertia &I, const MotionVector &v)
 Multiplying a Math::RigidBodyInertia by a Math::MotionVector returns a Momentum. More...
 
SpatialForce operator* (SpatialForce f1, double scale)
 Overloaded * operator to scale a spatial force by a scalar value. More...
 
template<typename T >
FrameVector operator* (FrameVector v1, const T scale)
 
SpatialVector operator* (const RigidBodyInertia &I, const SpatialVector &v)
 Operator for multiplying a Math::RigidBodyInertia by a Math::SpatialVector. More...
 
ForceVector operator* (const SpatialTransform &X, ForceVector f)
 Operator for transforming a ForceVector. Calls the ForceVector::transform method. More...
 
template<typename T >
FrameVector operator* (const T scale, FrameVector v1)
 
Matrix63 operator* (const RigidBodyInertia &I, const Matrix63 &m)
 Operator for multiplying a Math::RigidBodyInertia by a Math::Matrix63. More...
 
template<typename T >
FrameVectorPair operator* (FrameVectorPair pair, const T scalar)
 
template<typename T >
FrameVectorPair operator* (const T scalar, FrameVectorPair pair)
 
template<typename T >
FrameVector operator* (const T scale, FramePoint p)
 
template<typename T >
FrameVector operator* (FramePoint p, const T scale)
 
MotionVector operator* (const SpatialTransform &X, MotionVector v)
 Operator for transforming a MotionVector. More...
 
template<typename T >
Point3d operator* (Point3d p, const T scale)
 
template<typename T >
Point3d operator* (const T scale, Point3d p)
 
SpatialAcceleration operator+ (SpatialAcceleration v1, const SpatialAcceleration &v2)
 Add two SpatialAccelerations. Frame check will be performed to ensure frame rules are abided by. More...
 
SpatialInertia operator+ (SpatialInertia inertia_a, const SpatialInertia &inertia_b)
 Adds two Math::SpatialInertia together. Performs frame checks. More...
 
SpatialForce operator+ (SpatialForce f1, const SpatialForce &f2)
 Overloaded + operator to add two SpatialForce vectors and return the result in a new SpatialForce. Frame checks are performed. More...
 
RigidBodyInertia operator+ (RigidBodyInertia rbi_in, const RigidBodyInertia &rbi)
 Add two Math::RigidBodyInertia objects together. More...
 
EIGEN_STRONG_INLINE SpatialMotion operator+ (SpatialMotion v1, const SpatialMotion &v2)
 
FrameVector operator+ (FrameVector v1, const Vector3d v2)
 
FrameVector operator+ (FrameVector v1, const FrameVector v2)
 Add two FrameVectors together. More...
 
FrameVectorPair operator+ (FrameVectorPair v1, const FrameVectorPair v2)
 
FramePoint operator+ (FramePoint p, const FrameVector &v)
 
Point3d operator+ (Point3d p, const Vector3d &v)
 
SpatialAcceleration operator- (SpatialAcceleration v1, const SpatialAcceleration &v2)
 Subtract two SpatialAccelerations. Frame check will be performed to ensure frame rules are abided by. More...
 
static Momentum operator- (Momentum m1, const Momentum &m2)
 Add two momentums. More...
 
SpatialForce operator- (SpatialForce f1, const SpatialForce &f2)
 Overloaded - operator to add two SpatialForce vectors and return the result in a new SpatialForce. Frame checks are performed. More...
 
EIGEN_STRONG_INLINE SpatialMotion operator- (SpatialMotion v1, const SpatialMotion &v2)
 
FrameVector operator- (FrameVector v1, const Vector3d v2)
 
FrameVector operator- (FrameVector v1, const FrameVector v2)
 Add two FrameVectors together. More...
 
FrameVectorPair operator- (FrameVectorPair v1, const FrameVectorPair v2)
 
FramePoint operator- (FramePoint p, const FrameVector &v)
 
Point3d operator- (Point3d p, const Vector3d &v)
 
FrameVector operator- (FramePoint p1, const FramePoint &p2)
 Subtract two FramePoints and return result in newly created FramePoint. More...
 
Vector3d operator- (Point3d p1, const Point3d &p2)
 
std::ostream & operator<< (std::ostream &output, const SpatialTransform &X)
 
std::ostream & operator<< (std::ostream &os, const Point3d &point)
 
std::ostream & operator<< (std::ostream &output, const FramePoint &framePoint)
 
bool operator== (const FramePoint &lhs, const FramePoint &rhs)
 Check if two FramePoints are equal. More...
 
Matrix3d parallel_axis (const Matrix3d &inertia, double mass, const Vector3d &com)
 Translates the inertia matrix to a new center. More...
 
Quaternion QuaternionIdentity (0., 0., 0., 1)
 
Matrix3d rotx (const double &xrot)
 
Matrix3d rotxdot (const double &x, const double &xdot)
 
Matrix3d roty (const double &yrot)
 
Matrix3d rotydot (const double &y, const double &ydot)
 
Matrix3d rotz (const double &zrot)
 
Matrix3d rotzdot (const double &z, const double &zdot)
 
void SparseFactorizeLTL (Model &model, Math::MatrixNd &H)
 
void SparseMultiplyHx (Model &model, Math::MatrixNd &L)
 
void SparseMultiplyLTx (Model &model, Math::MatrixNd &L)
 
void SparseMultiplyLx (Model &model, Math::MatrixNd &L)
 
void SparseSolveLTx (Model &model, Math::MatrixNd &L, Math::VectorNd &x)
 
void SparseSolveLx (Model &model, Math::MatrixNd &L, Math::VectorNd &x)
 
SpatialMatrix SpatialMatrixIdentity (1., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 1.)
 
SpatialMatrix SpatialMatrixZero (0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.)
 
SpatialVector SpatialVectorZero (0., 0., 0., 0., 0., 0.)
 
static AxisAngle toAxisAngle (Quaternion q)
 Get axis angle representation of a quaternion. More...
 
static Vector3d toIntrinsicZYXAngles (const Quaternion &q, double yaw_at_pitch_singularity=0.)
 Converte quaternion to intrinsic ZYX euler angles. More...
 
static Vector3d toIntrinsicZYXAngles (const Matrix3d &m, double yaw_at_pitch_singularity=0.)
 Convert rotation matrix to intrinsic ZYX euler angles. More...
 
static Matrix3d toMatrix (const Quaternion &q)
 Convert quaternion to rotation matrix. More...
 
static Quaternion toQuaternion (const Vector3d &axis, double angle_rad)
 Get quaternion representation of axis and angle. More...
 
static Quaternion toQuaternion (const AxisAngle &axisAngle)
 Convert axis angle to quaternion. More...
 
static Quaternion toQuaternion (const Matrix3d &mat)
 convert rotation matrix to quaternion More...
 
static Matrix3d toTildeForm (const Vector3d &vector)
 Create a skew symmetric matrix, m, from a 3d vector such that, given two vectors $v_1$ and $v_2$, a 3rd vector which is the cross product of the first two is given by, $v_3=\tilde{v_1}v_2$. The $\sim$ operator is referred to in Featherstones RBDA as the 3d vector cross( $\times$) operator. More...
 
static Matrix3d toTildeForm (const double x, const double y, const double z)
 
static Matrix3d toTildeForm (const Point3d &p)
 
Vector3d Vector3dZero (0., 0., 0.)
 
VectorNd vectorFromPtr (unsigned int n, double *ptr)
 
SpatialTransform XeulerXYZ (double roll, double pitch, double yaw)
 Get transform with zero translation and intrinsic euler x/y/z rotation. More...
 
SpatialTransform XeulerXYZ (const Vector3d &xyz_angles)
 Get transform with zero translation and euler x/y/z rotation. More...
 
SpatialTransform XeulerZYX (double yaw, double pitch, double roll)
 Get transform with zero translation and intrinsic euler z/y/x rotation. More...
 
SpatialTransform XeulerZYX (const Vector3d &ypr)
 Get transform defined by intrinsic YPR(yaw->pitch->roll) euler angles. More...
 
SpatialTransform Xrot (double angle_rad, const Vector3d &axis)
 Get spatial transform from angle and axis. More...
 
SpatialTransform XrotQuat (double x, double y, double z, double w)
 
SpatialTransform XrotQuat (const Quaternion &orientation)
 
SpatialTransform Xrotx (const double &xrot)
 Get transform with zero translation and pure rotation about x axis. More...
 
SpatialMatrix Xrotx_mat (const double &xrot)
 Creates a rotational transformation around the X-axis. More...
 
SpatialTransform Xroty (const double &yrot)
 Get transform with zero translation and pure rotation about y axis. More...
 
SpatialMatrix Xroty_mat (const double &yrot)
 Creates a rotational transformation around the Y-axis. More...
 
SpatialTransform Xrotz (const double &zrot)
 Get transform with zero translation and pure rotation about z axis. More...
 
SpatialMatrix Xrotz_mat (const double &zrot)
 Creates a rotational transformation around the Z-axis. More...
 
SpatialTransform Xtrans (const Vector3d &r)
 Get pure translation transform. More...
 
SpatialMatrix Xtrans_mat (const Vector3d &displacement)
 Creates a transformation of a linear displacement. More...
 
SpatialMatrix XtransRotZYXEuler (const Vector3d &displacement, const Vector3d &zyx_euler)
 Creates a spatial transformation for given parameters. More...
 

Variables

Matrix3d Matrix3dIdentity
 
Matrix3d Matrix3dZero
 
Quaternion QuaternionIdentity
 
SpatialMatrix SpatialMatrixIdentity
 
SpatialMatrix SpatialMatrixZero
 
SpatialVector SpatialVectorZero
 
Vector3d Vector3dZero
 

Detailed Description

Math types such as vectors and matrices and utility functions.

Typedef Documentation

typedef Eigen::AngleAxisd RobotDynamics::Math::AxisAngle

Definition at line 27 of file rdl_eigenmath.h.

typedef std::vector<ForceVector, Eigen::aligned_allocator<ForceVector> > RobotDynamics::Math::ForceVectorV

Definition at line 261 of file ForceVector.hpp.

typedef std::vector<FramePoint, Eigen::aligned_allocator<FramePoint> > RobotDynamics::Math::FramePointV

Definition at line 381 of file FramePoint.hpp.

typedef std::vector<FrameVector, Eigen::aligned_allocator<FrameVector> > RobotDynamics::Math::FrameVectorV

Definition at line 300 of file FrameVector.hpp.

typedef Eigen::Matrix<double, 6, 3> RobotDynamics::Math::Matrix63

Definition at line 24 of file rdl_eigenmath.h.

typedef Eigen::MatrixXd RobotDynamics::Math::MatrixNd

Definition at line 26 of file rdl_eigenmath.h.

typedef std::vector<MotionVector, Eigen::aligned_allocator<MotionVector> > RobotDynamics::Math::MotionVectorV

Definition at line 350 of file MotionVector.hpp.

typedef std::vector<Point3d, Eigen::aligned_allocator<Point3d> > RobotDynamics::Math::Point3V

Definition at line 374 of file Point3.hpp.

typedef std::vector<RigidBodyInertia, Eigen::aligned_allocator<RigidBodyInertia> > RobotDynamics::Math::RigidBodyInertiaV

Definition at line 290 of file RigidBodyInertia.hpp.

typedef std::vector<SpatialAcceleration, Eigen::aligned_allocator<SpatialAcceleration> > RobotDynamics::Math::SpatialAccelerationV

Definition at line 148 of file SpatialAcceleration.hpp.

typedef std::vector<SpatialForce, Eigen::aligned_allocator<SpatialForce> > RobotDynamics::Math::SpatialForceV

Definition at line 248 of file SpatialForce.hpp.

typedef std::vector<SpatialInertia, Eigen::aligned_allocator<SpatialInertia> > RobotDynamics::Math::SpatialInertiaV

Definition at line 139 of file SpatialRigidBodyInertia.hpp.

typedef std::vector<SpatialMomentum, Eigen::aligned_allocator<SpatialMomentum> > RobotDynamics::Math::SpatialMomentumV

Definition at line 174 of file SpatialMomentum.hpp.

typedef std::vector<SpatialMotion, Eigen::aligned_allocator<SpatialMotion> > RobotDynamics::Math::SpatialMotionV

Definition at line 260 of file SpatialMotion.hpp.

typedef Eigen::VectorXd RobotDynamics::Math::VectorNd

Definition at line 25 of file rdl_eigenmath.h.

Enumeration Type Documentation

Available solver methods for the linear systems.

Enumerator
LinearSolverUnknown 
LinearSolverPartialPivLU 
LinearSolverColPivHouseholderQR 
LinearSolverHouseholderQR 
LinearSolverLLT 
LinearSolverLast 

Definition at line 34 of file rdl_mathutils.h.

Function Documentation

Vector3d RobotDynamics::Math::angular_acceleration_from_angle_rates ( const Vector3d zyx_angles,
const Vector3d zyx_angle_rates,
const Vector3d zyx_angle_rates_dot 
)
inline

Definition at line 223 of file rdl_mathutils.h.

Vector3d RobotDynamics::Math::angular_velocity_from_angle_rates ( const Vector3d zyx_angles,
const Vector3d zyx_angle_rates 
)
inline

Definition at line 204 of file rdl_mathutils.h.

static RigidBodyInertia RobotDynamics::Math::createFromMassComInertiaC ( double  mass,
const Vector3d com,
const Matrix3d inertia_C 
)
inlinestatic

Creates a RigidBodyInertia from a body's mass, center of mass location, and 3x3 inertia matrix

Parameters
massBody mass
comCenter of mass location in body frame
inertia_C3x3 inertia tensor about from located at center of mass and aligned with body frame
Returns
RigidBodyInertia

Definition at line 273 of file RigidBodyInertia.hpp.

SpatialMatrix RobotDynamics::Math::crossf ( const SpatialVector v)
inline

Get the spatial force cross matrix.

Parameters
v
Returns
$ v\times* $

Definition at line 403 of file SpatialAlgebraOperators.h.

SpatialVector RobotDynamics::Math::crossf ( const SpatialVector v1,
const SpatialVector v2 
)
inline

Spatial motion cross spatial force.

Parameters
v1Spatial motion
v2Spatial force
Returns
$ v1\times* v2 $

Definition at line 415 of file SpatialAlgebraOperators.h.

SpatialMatrix RobotDynamics::Math::crossm ( const SpatialVector v)
inline

Get the spatial motion cross matrix.

Parameters
v
Returns
$ v\times $

Definition at line 379 of file SpatialAlgebraOperators.h.

SpatialVector RobotDynamics::Math::crossm ( const SpatialVector v1,
const SpatialVector v2 
)
inline

Spatial motion cross times spatial motion.

Parameters
v1
v2
Returns
$ v1\times v2 $

Definition at line 391 of file SpatialAlgebraOperators.h.

Vector3d RobotDynamics::Math::getLinearPartTransformed ( const SpatialVector v,
const SpatialTransform X 
)
inline

Get the rotated linear portion of the spatial vector.

Parameters
vSpatial vector
XSpatial transform
Returns
Rotated linear portion of the spatial vector argument

Definition at line 428 of file SpatialAlgebraOperators.h.

Vector3d RobotDynamics::Math::global_angular_velocity_from_rates ( const Vector3d zyx_angles,
const Vector3d zyx_rates 
)
inline

Definition at line 215 of file rdl_mathutils.h.

static Quaternion RobotDynamics::Math::intrinsicXYZAnglesToQuaternion ( double  roll,
double  pitch,
double  yaw 
)
inlinestatic

Convert RPY angles to quaternion.

Definition at line 114 of file SpatialAlgebraOperators.h.

static Quaternion RobotDynamics::Math::intrinsicXYZAnglesToQuaternion ( const Vector3d xyz_angles)
inlinestatic

Convert RPY angles to quaternion.

Definition at line 122 of file SpatialAlgebraOperators.h.

static Quaternion RobotDynamics::Math::intrinsicYXZAnglesToQuaternion ( double  pitch,
double  roll,
double  yaw 
)
inlinestatic

Convert PRY angles to quaternion.

Definition at line 98 of file SpatialAlgebraOperators.h.

static Quaternion RobotDynamics::Math::intrinsicYXZAnglesToQuaternion ( const Vector3d yxz_angles)
inlinestatic

Convert PRY angles to quaternion.

Definition at line 106 of file SpatialAlgebraOperators.h.

static Quaternion RobotDynamics::Math::intrinsicZYXAnglesToQuaternion ( double  yaw,
double  pitch,
double  roll 
)
inlinestatic

Convert YPR angles to quaternion.

Definition at line 82 of file SpatialAlgebraOperators.h.

static Quaternion RobotDynamics::Math::intrinsicZYXAnglesToQuaternion ( const Vector3d zyx_angles)
inlinestatic

Convert YPR angles to quaternion.

Definition at line 90 of file SpatialAlgebraOperators.h.

bool RobotDynamics::Math::linSolveGaussElimPivot ( MatrixNd  A,
VectorNd  b,
VectorNd x 
)

Solves a linear system using gaussian elimination with pivoting.

Definition at line 36 of file rdl_mathutils.cc.

Matrix3d RobotDynamics::Math::Matrix3dIdentity ( 1.  ,
0.  ,
0.  ,
0.  ,
1.  ,
0.  ,
0.  ,
0.  ,
 
)
Matrix3d RobotDynamics::Math::Matrix3dZero ( 0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.   
)
MatrixNd RobotDynamics::Math::matrixFromPtr ( unsigned int  rows,
unsigned int  cols,
double *  ptr,
bool  row_major = true 
)
inline

Definition at line 66 of file rdl_mathutils.h.

bool RobotDynamics::Math::operator!= ( const FramePoint lhs,
const FramePoint rhs 
)
inline

Check if two FramePoints are not equal.

Parameters
lhs
rhs
Exceptions
ReferenceFrameExceptionIf the two FramePoint arguments are not expressed in the same ReferenceFrame
Returns
bool false if equal, true if not equal

Definition at line 370 of file FramePoint.hpp.

EIGEN_STRONG_INLINE SpatialMotion RobotDynamics::Math::operator% ( SpatialMotion  v1,
const SpatialMotion v2 
)

Definition at line 255 of file SpatialMotion.hpp.

MotionVector RobotDynamics::Math::operator% ( MotionVector  v,
const MotionVector v2 
)
inline

Operator for performing the spatial vector $\times$ operator.

Parameters
v
v2
Returns
Returns $ ret = (v \times)v2 $

Definition at line 335 of file MotionVector.hpp.

ForceVector RobotDynamics::Math::operator% ( MotionVector  v,
const ForceVector v2 
)
inline

Operator for performing the spatial vector $\times*$ operator

Parameters
v
v2
Returns
Returns $ ret = (v\times*)v2 $

Definition at line 346 of file MotionVector.hpp.

SpatialMomentum RobotDynamics::Math::operator* ( const SpatialInertia inertia,
const SpatialMotion vector 
)
inline

Overloaded * operator for computing a SpatialMomentum from a SpatialInertia and SpatialMotion. Frame checks will be performed.

Parameters
inertia
vector
Returns
The resulting SpatialMomentum

Definition at line 167 of file SpatialMomentum.hpp.

static Momentum RobotDynamics::Math::operator* ( const RigidBodyInertia I,
const MotionVector v 
)
inlinestatic

Multiplying a Math::RigidBodyInertia by a Math::MotionVector returns a Momentum.

Parameters
I
v
Returns
I*V

Definition at line 195 of file Momentum.hpp.

SpatialForce RobotDynamics::Math::operator* ( SpatialForce  f1,
double  scale 
)
inline

Overloaded * operator to scale a spatial force by a scalar value.

Parameters
f1
scale
Returns
$ f_sp=f_sp_1*scalar $

Definition at line 244 of file SpatialForce.hpp.

template<typename T >
FrameVector RobotDynamics::Math::operator* ( FrameVector  v1,
const T  scale 
)
inline

Definition at line 250 of file FrameVector.hpp.

SpatialVector RobotDynamics::Math::operator* ( const RigidBodyInertia I,
const SpatialVector v 
)
inline

Operator for multiplying a Math::RigidBodyInertia by a Math::SpatialVector.

Parameters
I
v
Returns
Math::RigidBodyInertia times Math::SpatialVector

Definition at line 250 of file RigidBodyInertia.hpp.

ForceVector RobotDynamics::Math::operator* ( const SpatialTransform X,
ForceVector  f 
)
inline

Operator for transforming a ForceVector. Calls the ForceVector::transform method.

Parameters
XSpatialTransform
fForceVector to be transformed
Returns
Transformed ForceVector

Definition at line 256 of file ForceVector.hpp.

template<typename T >
FrameVector RobotDynamics::Math::operator* ( const T  scale,
FrameVector  v1 
)
inline

Definition at line 257 of file FrameVector.hpp.

Matrix63 RobotDynamics::Math::operator* ( const RigidBodyInertia I,
const Matrix63 m 
)
inline

Operator for multiplying a Math::RigidBodyInertia by a Math::Matrix63.

Parameters
I
m
Returns
The result of multiplying a Math::RigidBodyInertia by a Math::Matrix63

Definition at line 261 of file RigidBodyInertia.hpp.

template<typename T >
FrameVectorPair RobotDynamics::Math::operator* ( FrameVectorPair  pair,
const T  scalar 
)
inline

Definition at line 279 of file FrameVectorPair.hpp.

template<typename T >
FrameVectorPair RobotDynamics::Math::operator* ( const T  scalar,
FrameVectorPair  pair 
)
inline

Definition at line 286 of file FrameVectorPair.hpp.

template<typename T >
FrameVector RobotDynamics::Math::operator* ( const T  scale,
FramePoint  p 
)
inline

Definition at line 308 of file FramePoint.hpp.

template<typename T >
FrameVector RobotDynamics::Math::operator* ( FramePoint  p,
const T  scale 
)
inline

Definition at line 315 of file FramePoint.hpp.

MotionVector RobotDynamics::Math::operator* ( const SpatialTransform X,
MotionVector  v 
)
inline

Operator for transforming a MotionVector.

Parameters
XSpatialTransform to the desired frame
v
Returns
Transformed MotionVector

Definition at line 323 of file MotionVector.hpp.

template<typename T >
Point3d RobotDynamics::Math::operator* ( Point3d  p,
const T  scale 
)
inline

Definition at line 344 of file Point3.hpp.

template<typename T >
Point3d RobotDynamics::Math::operator* ( const T  scale,
Point3d  p 
)
inline

Definition at line 352 of file Point3.hpp.

SpatialAcceleration RobotDynamics::Math::operator+ ( SpatialAcceleration  v1,
const SpatialAcceleration v2 
)
inline

Add two SpatialAccelerations. Frame check will be performed to ensure frame rules are abided by.

Parameters
v1
v2
Returns
A new SpatialAcceleration that is the addition of the two arguments.

Definition at line 131 of file SpatialAcceleration.hpp.

SpatialInertia RobotDynamics::Math::operator+ ( SpatialInertia  inertia_a,
const SpatialInertia inertia_b 
)
inline

Adds two Math::SpatialInertia together. Performs frame checks.

Parameters
inertia_a
inertia_b
Returns
The addition of the two arguments

Definition at line 134 of file SpatialRigidBodyInertia.hpp.

SpatialForce RobotDynamics::Math::operator+ ( SpatialForce  f1,
const SpatialForce f2 
)
inline

Overloaded + operator to add two SpatialForce vectors and return the result in a new SpatialForce. Frame checks are performed.

Parameters
f1
f2
Returns
$ f_sp=f_sp_1+f_sp_2 $

Definition at line 221 of file SpatialForce.hpp.

RigidBodyInertia RobotDynamics::Math::operator+ ( RigidBodyInertia  rbi_in,
const RigidBodyInertia rbi 
)
inline

Add two Math::RigidBodyInertia objects together.

Parameters
rbi_inA copy that is modified and returned.
rbi
Returns
A Math::RigidBodyInertia that is the addition of the two arguments

Definition at line 238 of file RigidBodyInertia.hpp.

EIGEN_STRONG_INLINE SpatialMotion RobotDynamics::Math::operator+ ( SpatialMotion  v1,
const SpatialMotion v2 
)

Definition at line 243 of file SpatialMotion.hpp.

FrameVector RobotDynamics::Math::operator+ ( FrameVector  v1,
const Vector3d  v2 
)
inline

Definition at line 263 of file FrameVector.hpp.

FrameVector RobotDynamics::Math::operator+ ( FrameVector  v1,
const FrameVector  v2 
)
inline

Add two FrameVectors together.

Parameters
v1
v2
Returns
THe result of $ v_1 + v_2 $

Definition at line 282 of file FrameVector.hpp.

FrameVectorPair RobotDynamics::Math::operator+ ( FrameVectorPair  v1,
const FrameVectorPair  v2 
)
inline

Definition at line 293 of file FrameVectorPair.hpp.

FramePoint RobotDynamics::Math::operator+ ( FramePoint  p,
const FrameVector v 
)
inline

Definition at line 295 of file FramePoint.hpp.

Point3d RobotDynamics::Math::operator+ ( Point3d  p,
const Vector3d v 
)
inline

Definition at line 331 of file Point3.hpp.

SpatialAcceleration RobotDynamics::Math::operator- ( SpatialAcceleration  v1,
const SpatialAcceleration v2 
)
inline

Subtract two SpatialAccelerations. Frame check will be performed to ensure frame rules are abided by.

Parameters
v1
v2
Returns
A new SpatialAcceleration that is the subtraction of the second argument from the first.

Definition at line 143 of file SpatialAcceleration.hpp.

static Momentum RobotDynamics::Math::operator- ( Momentum  m1,
const Momentum m2 
)
inlinestatic

Add two momentums.

Parameters
m1
m2
Returns
$ m = m1+m2 /f$ */ static inline Momentum operator+(Momentum m1, const Momentum& m2) { m1 += m2; return m1; } /** @brief subtract momentums two momentums @param m1 @param m2 @return $ m = m1-m2 /f$

Definition at line 218 of file Momentum.hpp.

SpatialForce RobotDynamics::Math::operator- ( SpatialForce  f1,
const SpatialForce f2 
)
inline

Overloaded - operator to add two SpatialForce vectors and return the result in a new SpatialForce. Frame checks are performed.

Parameters
f1
f2
Returns
$ f_sp=f_sp_1-f_sp_2 $

Definition at line 233 of file SpatialForce.hpp.

EIGEN_STRONG_INLINE SpatialMotion RobotDynamics::Math::operator- ( SpatialMotion  v1,
const SpatialMotion v2 
)

Definition at line 249 of file SpatialMotion.hpp.

FrameVector RobotDynamics::Math::operator- ( FrameVector  v1,
const Vector3d  v2 
)
inline

Definition at line 269 of file FrameVector.hpp.

FrameVector RobotDynamics::Math::operator- ( FrameVector  v1,
const FrameVector  v2 
)
inline

Add two FrameVectors together.

Parameters
v1
v2
Returns
THe result of $ v_1 - v_2 $

Definition at line 295 of file FrameVector.hpp.

FrameVectorPair RobotDynamics::Math::operator- ( FrameVectorPair  v1,
const FrameVectorPair  v2 
)
inline

Definition at line 300 of file FrameVectorPair.hpp.

FramePoint RobotDynamics::Math::operator- ( FramePoint  p,
const FrameVector v 
)
inline

Definition at line 301 of file FramePoint.hpp.

Point3d RobotDynamics::Math::operator- ( Point3d  p,
const Vector3d v 
)
inline

Definition at line 337 of file Point3.hpp.

FrameVector RobotDynamics::Math::operator- ( FramePoint  p1,
const FramePoint p2 
)
inline

Subtract two FramePoints and return result in newly created FramePoint.

Parameters
p1
p2
Exceptions
ReferenceFrameExceptionIf the two FramePoint arguments are not expressed in the same ReferenceFrame
Returns
A FramePoint that is the difference of the two argument FramePoints, i.e. p1-=p2

Definition at line 357 of file FramePoint.hpp.

Vector3d RobotDynamics::Math::operator- ( Point3d  p1,
const Point3d p2 
)
inline

Definition at line 359 of file Point3.hpp.

std::ostream& RobotDynamics::Math::operator<< ( std::ostream &  output,
const SpatialTransform X 
)
inline

Definition at line 237 of file SpatialAlgebraOperators.h.

std::ostream& RobotDynamics::Math::operator<< ( std::ostream &  os,
const Point3d point 
)
inline

Definition at line 364 of file Point3.hpp.

std::ostream& RobotDynamics::Math::operator<< ( std::ostream &  output,
const FramePoint framePoint 
)
inline

Definition at line 375 of file FramePoint.hpp.

bool RobotDynamics::Math::operator== ( const FramePoint lhs,
const FramePoint rhs 
)
inline

Check if two FramePoints are equal.

Parameters
lhs
rhs
Exceptions
ReferenceFrameExceptionIf the two FramePoint arguments are not expressed in the same ReferenceFrame
Returns
bool true if equal, false if not equal

Definition at line 328 of file FramePoint.hpp.

Matrix3d RobotDynamics::Math::parallel_axis ( const Matrix3d inertia,
double  mass,
const Vector3d com 
)

Translates the inertia matrix to a new center.

Definition at line 126 of file rdl_mathutils.cc.

Quaternion RobotDynamics::Math::QuaternionIdentity ( 0.  ,
0.  ,
0.  ,
 
)
Matrix3d RobotDynamics::Math::rotx ( const double &  xrot)
inline

Definition at line 150 of file rdl_mathutils.h.

Matrix3d RobotDynamics::Math::rotxdot ( const double &  x,
const double &  xdot 
)
inline

Definition at line 177 of file rdl_mathutils.h.

Matrix3d RobotDynamics::Math::roty ( const double &  yrot)
inline

Definition at line 159 of file rdl_mathutils.h.

Matrix3d RobotDynamics::Math::rotydot ( const double &  y,
const double &  ydot 
)
inline

Definition at line 186 of file rdl_mathutils.h.

Matrix3d RobotDynamics::Math::rotz ( const double &  zrot)
inline

Definition at line 168 of file rdl_mathutils.h.

Matrix3d RobotDynamics::Math::rotzdot ( const double &  z,
const double &  zdot 
)
inline

Definition at line 195 of file rdl_mathutils.h.

void RobotDynamics::Math::SparseFactorizeLTL ( Model model,
Math::MatrixNd H 
)

Definition at line 170 of file rdl_mathutils.cc.

void RobotDynamics::Math::SparseMultiplyHx ( Model model,
Math::MatrixNd L 
)

Definition at line 204 of file rdl_mathutils.cc.

void RobotDynamics::Math::SparseMultiplyLTx ( Model model,
Math::MatrixNd L 
)

Definition at line 214 of file rdl_mathutils.cc.

void RobotDynamics::Math::SparseMultiplyLx ( Model model,
Math::MatrixNd L 
)

Definition at line 209 of file rdl_mathutils.cc.

void RobotDynamics::Math::SparseSolveLTx ( Model model,
Math::MatrixNd L,
Math::VectorNd x 
)

Definition at line 233 of file rdl_mathutils.cc.

void RobotDynamics::Math::SparseSolveLx ( Model model,
Math::MatrixNd L,
Math::VectorNd x 
)

Definition at line 219 of file rdl_mathutils.cc.

SpatialMatrix RobotDynamics::Math::SpatialMatrixIdentity ( 1.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
1.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
1.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
1.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
1.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
1.   
)
SpatialMatrix RobotDynamics::Math::SpatialMatrixZero ( 0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.   
)
SpatialVector RobotDynamics::Math::SpatialVectorZero ( 0.  ,
0.  ,
0.  ,
0.  ,
0.  ,
0.   
)
static AxisAngle RobotDynamics::Math::toAxisAngle ( Quaternion  q)
inlinestatic

Get axis angle representation of a quaternion.

Parameters
q
Returns
Axis angle

Definition at line 132 of file SpatialAlgebraOperators.h.

static Vector3d RobotDynamics::Math::toIntrinsicZYXAngles ( const Quaternion q,
double  yaw_at_pitch_singularity = 0. 
)
inlinestatic

Converte quaternion to intrinsic ZYX euler angles.

Parameters
qThe quaternion to convert to ZYX angles
yaw_at_pitch_singularityAt Y = +- PI/2 is a singularity in which there are multiple solutions. This will be the yaw value in the output and the roll value is dependent on this. To get the most accurate results at singularity, provide this value as close as possible to desired/reality and the resulting roll value will be near the expected

q can be non-normalised quaternion

Definition at line 34 of file SpatialAlgebraOperators.h.

static Vector3d RobotDynamics::Math::toIntrinsicZYXAngles ( const Matrix3d m,
double  yaw_at_pitch_singularity = 0. 
)
inlinestatic

Convert rotation matrix to intrinsic ZYX euler angles.

Parameters
mRotation matrix to convert
yaw_at_pitch_singularityAt Y = +- PI/2 is a singularity in which there are multiple solutions. This will be the yaw value in the output and the roll value is dependent on this. To get the most accurate results at singularity, provide this value as close as possible to desired/reality and the resulting roll value will be near the expected

Definition at line 205 of file SpatialAlgebraOperators.h.

static Matrix3d RobotDynamics::Math::toMatrix ( const Quaternion q)
inlinestatic

Convert quaternion to rotation matrix.

Definition at line 187 of file SpatialAlgebraOperators.h.

static Quaternion RobotDynamics::Math::toQuaternion ( const Vector3d axis,
double  angle_rad 
)
inlinestatic

Get quaternion representation of axis and angle.

Parameters
axis
angle_rad
Returns
Quaternion

Definition at line 63 of file SpatialAlgebraOperators.h.

static Quaternion RobotDynamics::Math::toQuaternion ( const AxisAngle axisAngle)
inlinestatic

Convert axis angle to quaternion.

Definition at line 74 of file SpatialAlgebraOperators.h.

static Quaternion RobotDynamics::Math::toQuaternion ( const Matrix3d mat)
inlinestatic

convert rotation matrix to quaternion

Definition at line 158 of file SpatialAlgebraOperators.h.

static Matrix3d RobotDynamics::Math::toTildeForm ( const Vector3d vector)
inlinestatic

Create a skew symmetric matrix, m, from a 3d vector such that, given two vectors $v_1$ and $v_2$, a 3rd vector which is the cross product of the first two is given by, $v_3=\tilde{v_1}v_2$. The $\sim$ operator is referred to in Featherstones RBDA as the 3d vector cross( $\times$) operator.

Parameters
vector
Returns
A skew symmetric matrix

Definition at line 227 of file SpatialAlgebraOperators.h.

static Matrix3d RobotDynamics::Math::toTildeForm ( const double  x,
const double  y,
const double  z 
)
inlinestatic

Definition at line 232 of file SpatialAlgebraOperators.h.

static Matrix3d RobotDynamics::Math::toTildeForm ( const Point3d p)
inlinestatic

Definition at line 370 of file Point3.hpp.

Vector3d RobotDynamics::Math::Vector3dZero ( 0.  ,
0.  ,
0.   
)
VectorNd RobotDynamics::Math::vectorFromPtr ( unsigned int  n,
double *  ptr 
)
inline

Definition at line 53 of file rdl_mathutils.h.

SpatialTransform RobotDynamics::Math::XeulerXYZ ( double  roll,
double  pitch,
double  yaw 
)
inline

Get transform with zero translation and intrinsic euler x/y/z rotation.

Parameters
roll
pitch
yaw
Returns
Transform with zero translation and x/y/z rotation

Definition at line 339 of file SpatialAlgebraOperators.h.

SpatialTransform RobotDynamics::Math::XeulerXYZ ( const Vector3d xyz_angles)
inline

Get transform with zero translation and euler x/y/z rotation.

Parameters
intrinsicxyz_angles xyz angles where element 0 is roll, 1 is pitch, and 2 is yaw
Returns
Transform with zero translation and x/y/z rotation

Definition at line 349 of file SpatialAlgebraOperators.h.

SpatialTransform RobotDynamics::Math::XeulerZYX ( double  yaw,
double  pitch,
double  roll 
)
inline

Get transform with zero translation and intrinsic euler z/y/x rotation.

Parameters
yaw
pitch
roll
Returns
Transform with zero translation and z/y/x rotation

Definition at line 316 of file SpatialAlgebraOperators.h.

SpatialTransform RobotDynamics::Math::XeulerZYX ( const Vector3d ypr)
inline

Get transform defined by intrinsic YPR(yaw->pitch->roll) euler angles.

Parameters
yprVector of euler angles where ypr[0] is yaw, ypr[1] is pitch, and ypr[2] is roll
Returns
spatial transform where rotation component is defined by the YPR rotations

Definition at line 327 of file SpatialAlgebraOperators.h.

SpatialTransform RobotDynamics::Math::Xrot ( double  angle_rad,
const Vector3d axis 
)
inline

Get spatial transform from angle and axis.

Parameters
angle_radangle magnitude
axisnormalized 3d vector
Returns
Spatial transform

Definition at line 250 of file SpatialAlgebraOperators.h.

SpatialTransform RobotDynamics::Math::XrotQuat ( double  x,
double  y,
double  z,
double  w 
)
inline

Definition at line 354 of file SpatialAlgebraOperators.h.

SpatialTransform RobotDynamics::Math::XrotQuat ( const Quaternion orientation)
inline

Definition at line 359 of file SpatialAlgebraOperators.h.

SpatialTransform RobotDynamics::Math::Xrotx ( const double &  xrot)
inline

Get transform with zero translation and pure rotation about x axis.

Parameters
xrot
Returns
Transform with zero translation and x-rotation

Definition at line 272 of file SpatialAlgebraOperators.h.

SpatialMatrix RobotDynamics::Math::Xrotx_mat ( const double &  xrot)

Creates a rotational transformation around the X-axis.

Creates a rotation around the current X-axis by the given angle (specified in radians).

Parameters
xrotRotation angle in radians.

Definition at line 138 of file rdl_mathutils.cc.

SpatialTransform RobotDynamics::Math::Xroty ( const double &  yrot)
inline

Get transform with zero translation and pure rotation about y axis.

Parameters
yrot
Returns
Transform with zero translation and y-rotation

Definition at line 286 of file SpatialAlgebraOperators.h.

SpatialMatrix RobotDynamics::Math::Xroty_mat ( const double &  yrot)

Creates a rotational transformation around the Y-axis.

Creates a rotation around the current Y-axis by the given angle (specified in radians).

Parameters
yrotRotation angle in radians.

Definition at line 147 of file rdl_mathutils.cc.

SpatialTransform RobotDynamics::Math::Xrotz ( const double &  zrot)
inline

Get transform with zero translation and pure rotation about z axis.

Parameters
zrot
Returns
Transform with zero translation and z-rotation

Definition at line 300 of file SpatialAlgebraOperators.h.

SpatialMatrix RobotDynamics::Math::Xrotz_mat ( const double &  zrot)

Creates a rotational transformation around the Z-axis.

Creates a rotation around the current Z-axis by the given angle (specified in radians).

Parameters
zrotRotation angle in radians.

Definition at line 156 of file rdl_mathutils.cc.

SpatialTransform RobotDynamics::Math::Xtrans ( const Vector3d r)
inline

Get pure translation transform.

Parameters
r
Returns
Transform with identity rotation and translation $ r $

Definition at line 369 of file SpatialAlgebraOperators.h.

SpatialMatrix RobotDynamics::Math::Xtrans_mat ( const Vector3d displacement)

Creates a transformation of a linear displacement.

This can be used to specify the translation to the joint center when adding a body to a model. See also section 2.8 in RBDA.

Note
The transformation returned is for motions. For a transformation for forces
one has to conjugate the matrix.
Parameters
displacementThe displacement as a 3D vector

Definition at line 133 of file rdl_mathutils.cc.

SpatialMatrix RobotDynamics::Math::XtransRotZYXEuler ( const Vector3d displacement,
const Vector3d zyx_euler 
)

Creates a spatial transformation for given parameters.

Creates a transformation to a coordinate system that is first rotated and then translated.

Parameters
displacementThe displacement to the new origin
zyx_eulerThe orientation of the new coordinate system, specifyed by ZYX-Euler angles.

Definition at line 165 of file rdl_mathutils.cc.

Variable Documentation

Matrix3d RobotDynamics::Math::Matrix3dIdentity(1., 0., 0., 0., 1., 0., 0., 0., 1)
Matrix3d RobotDynamics::Math::Matrix3dZero(0., 0., 0., 0., 0., 0., 0., 0., 0.)
Quaternion RobotDynamics::Math::QuaternionIdentity(0., 0., 0., 1)
SpatialMatrix RobotDynamics::Math::SpatialMatrixIdentity(1., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 1.)
SpatialMatrix RobotDynamics::Math::SpatialMatrixZero(0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.)
SpatialVector RobotDynamics::Math::SpatialVectorZero(0., 0., 0., 0., 0., 0.)
Vector3d RobotDynamics::Math::Vector3dZero(0., 0., 0.)


rdl_dynamics
Author(s):
autogenerated on Tue Apr 20 2021 02:25:28