Robot Dynamics Library
Public Member Functions | List of all members
RobotDynamics::Math::FrameOrientation Class Reference

A Frame object that represents an orientation(quaternion) relative to a reference frame. More...

#include <FrameOrientation.hpp>

Inheritance diagram for RobotDynamics::Math::FrameOrientation:
Inheritance graph
[legend]
Collaboration diagram for RobotDynamics::Math::FrameOrientation:
Collaboration graph
[legend]

Public Member Functions

 FrameOrientation ()
 
 FrameOrientation (ReferenceFramePtr referenceFrame)
 
 FrameOrientation (ReferenceFramePtr referenceFrame, Quaternion quat)
 
 FrameOrientation (ReferenceFramePtr referenceFrame, double x, double y, double z, double w)
 
 FrameOrientation (ReferenceFramePtr referenceFrame, const Matrix3d &E)
 
 FrameOrientation (ReferenceFramePtr referenceFrame, const AxisAngle &axis_angle)
 
 FrameOrientation (ReferenceFramePtr referenceFrame, Vector3d axis, double angle)
 
Math::TransformableGeometricObjectgetTransformableGeometricObject ()
 Pure virtual method that FrameObjects are required to implement so the FrameObject::changeFrame method is able to access the TransformableGeometricObject which is required to implement the TransformableGeometricObject::transform method. More...
 
void setIncludingFrame (const Quaternion &q, ReferenceFramePtr referenceFrame)
 
void setIncludingFrame (const Matrix3d &E, ReferenceFramePtr referenceFrame)
 
void setIncludingFrame (const AxisAngle &axis_angle, ReferenceFramePtr referenceFrame)
 
void setIncludingFrame (Vector3d axis, double angle, ReferenceFramePtr referenceFrame)
 
void setOrientation (const Quaternion &o)
 
void setOrientation (const Matrix3d &E)
 
void setOrientation (const AxisAngle &axis_angle)
 
void setOrientation (Vector3d axis, double angle)
 
FrameOrientation changeFrameAndCopy (ReferenceFramePtr referenceFrame) const
 
- Public Member Functions inherited from RobotDynamics::FrameObject
 FrameObject (ReferenceFramePtr referenceFrame)
 
virtual ~FrameObject ()
 Destructor. More...
 
virtual void changeFrame (ReferenceFramePtr desiredFrame)
 Change the ReferenceFrame this FrameObject is expressed in. More...
 
ReferenceFramePtr getReferenceFrame () const
 Get a pointer to the reference frame this FrameObject is expressed in. More...
 
void setReferenceFrame (ReferenceFramePtr frame)
 Set frame objects internal reference frame. More...
 
void checkReferenceFramesMatch (const FrameObject *frameObject) const
 Check if two FrameObjects hold the same ReferenceFrame. More...
 
void checkReferenceFramesMatch (FrameObject *frameObject) const
 
- Public Member Functions inherited from RobotDynamics::Math::Quaternion
 Quaternion ()
 Constructor. More...
 
 Quaternion (const Eigen::Quaterniond &q)
 
 Quaternion (const RobotDynamics::Math::Quaternion &q)
 
 Quaternion (const Eigen::Product< Eigen::Matrix< double, 3, 3 >, Eigen::Matrix< double, 3, 3 >, 0 > E)
 
 Quaternion (const Eigen::Matrix3d &E)
 
 Quaternion (const Eigen::Matrix3d::ConstTransposeReturnType &E)
 
 Quaternion (Eigen::Transpose< Eigen::Matrix< double, 3, 3 > > E)
 
 Quaternion (const Vector4d &v)
 
 Quaternion (const AxisAngle &axis_angle)
 
 Quaternion (Vector3d axis, double angle)
 
 Quaternion (double x, double y, double z, double w)
 Constructor. More...
 
AxisAngle toAxisAngle () const
 
bool isApprox (Quaternion o, double eps) const
 
bool isApprox (Matrix3d E, double eps) const
 
EIGEN_STRONG_INLINE double & x ()
 
EIGEN_STRONG_INLINE double x () const
 
EIGEN_STRONG_INLINE double & y ()
 
EIGEN_STRONG_INLINE double y () const
 
EIGEN_STRONG_INLINE double & z ()
 
EIGEN_STRONG_INLINE double z () const
 
EIGEN_STRONG_INLINE double & w ()
 
EIGEN_STRONG_INLINE double w () const
 
EIGEN_STRONG_INLINE Vector3d vec () const
 Get vector part. More...
 
Quaternionoperator= (const Eigen::Quaterniond &q)
 
void sanitize ()
 sanitize the quaternion by negating each element if the w element is less than zero More...
 
Quaternionoperator= (const RobotDynamics::Math::Quaternion &q)
 
Quaternionoperator= (const Vector4d &q)
 
Quaternionoperator= (const Matrix3d &E)
 
Quaternionoperator= (const AxisAngle &axis_angle)
 
Quaternion operator* (const double &s) const
 Method to scale the elements of a quaternion by a constant. Normalization is NOT performed. More...
 
Quaternion operator* (const Quaternion &q) const
 Quaternion multiplication. More...
 
Quaternionoperator*= (const Quaternion &q)
 Overloaded *= operator for quaternion multiplication. More...
 
void transform (const RobotDynamics::Math::SpatialTransform &X)
 Pure virtual object. This object forces objects that inherit from it to have a method that tells how that object is transformed. More...
 
Quaternion slerp (double alpha, const Quaternion &quat) const
 From Wikipedia: In computer graphics, Slerp is shorthand for spherical linear interpolation, introduced by Ken Shoemake in the context of quaternion interpolation for the purpose of animating 3D rotation. It refers to constant-speed motion along a unit-radius great circle arc, given the ends and an interpolation parameter between 0 and 1. More...
 
Quaternion conjugate () const
 
Quaternion timeStep (const Vector3d &omega, double dt)
 
Vector3d rotate (const Vector3d &vec) const
 
void swingTwistDecomposition (const Vector3d &twist_axis, Quaternion &swing, Quaternion &twist)
 Decompose a quaternion into a swing then twist quaternion where the twist is about the given axis. More...
 
Vector3d toIntrinsicZYXAngles (double yaw_at_pitch_singularity=0.) const
 Convert to intrinsic ZYX euler angles. More...
 
- Public Member Functions inherited from RobotDynamics::Math::Vector4d
template<typename OtherDerived >
 Vector4d (const Eigen::MatrixBase< OtherDerived > &other)
 
template<typename OtherDerived >
Vector4doperator= (const Eigen::MatrixBase< OtherDerived > &other)
 
EIGEN_STRONG_INLINE Vector4d ()
 
EIGEN_STRONG_INLINE Vector4d (const double &v0, const double &v1, const double &v2, const double &v3)
 
void set (const double &v0, const double &v1, const double &v2, const double &v3)
 

Additional Inherited Members

- Public Types inherited from RobotDynamics::Math::Vector4d
typedef Eigen::Vector4d Base
 
- Protected Attributes inherited from RobotDynamics::FrameObject
ReferenceFramePtr referenceFrame
 

Detailed Description

A Frame object that represents an orientation(quaternion) relative to a reference frame.

Constructor & Destructor Documentation

◆ FrameOrientation() [1/7]

RobotDynamics::Math::FrameOrientation::FrameOrientation ( )
inline

◆ FrameOrientation() [2/7]

RobotDynamics::Math::FrameOrientation::FrameOrientation ( ReferenceFramePtr  referenceFrame)
inlineexplicit

◆ FrameOrientation() [3/7]

RobotDynamics::Math::FrameOrientation::FrameOrientation ( ReferenceFramePtr  referenceFrame,
Quaternion  quat 
)
inline

◆ FrameOrientation() [4/7]

RobotDynamics::Math::FrameOrientation::FrameOrientation ( ReferenceFramePtr  referenceFrame,
double  x,
double  y,
double  z,
double  w 
)
inline

◆ FrameOrientation() [5/7]

RobotDynamics::Math::FrameOrientation::FrameOrientation ( ReferenceFramePtr  referenceFrame,
const Matrix3d E 
)
inline

◆ FrameOrientation() [6/7]

RobotDynamics::Math::FrameOrientation::FrameOrientation ( ReferenceFramePtr  referenceFrame,
const AxisAngle axis_angle 
)
inline

◆ FrameOrientation() [7/7]

RobotDynamics::Math::FrameOrientation::FrameOrientation ( ReferenceFramePtr  referenceFrame,
Vector3d  axis,
double  angle 
)
inline

Member Function Documentation

◆ changeFrameAndCopy()

FrameOrientation RobotDynamics::Math::FrameOrientation::changeFrameAndCopy ( ReferenceFramePtr  referenceFrame) const
inline

◆ getTransformableGeometricObject()

Math::TransformableGeometricObject* RobotDynamics::Math::FrameOrientation::getTransformableGeometricObject ( )
inlinevirtual

Pure virtual method that FrameObjects are required to implement so the FrameObject::changeFrame method is able to access the TransformableGeometricObject which is required to implement the TransformableGeometricObject::transform method.

Returns

Implements RobotDynamics::FrameObject.

◆ setIncludingFrame() [1/4]

void RobotDynamics::Math::FrameOrientation::setIncludingFrame ( const AxisAngle axis_angle,
ReferenceFramePtr  referenceFrame 
)
inline

◆ setIncludingFrame() [2/4]

void RobotDynamics::Math::FrameOrientation::setIncludingFrame ( const Matrix3d E,
ReferenceFramePtr  referenceFrame 
)
inline

◆ setIncludingFrame() [3/4]

void RobotDynamics::Math::FrameOrientation::setIncludingFrame ( const Quaternion q,
ReferenceFramePtr  referenceFrame 
)
inline

◆ setIncludingFrame() [4/4]

void RobotDynamics::Math::FrameOrientation::setIncludingFrame ( Vector3d  axis,
double  angle,
ReferenceFramePtr  referenceFrame 
)
inline

◆ setOrientation() [1/4]

void RobotDynamics::Math::FrameOrientation::setOrientation ( const AxisAngle axis_angle)
inline

◆ setOrientation() [2/4]

void RobotDynamics::Math::FrameOrientation::setOrientation ( const Matrix3d E)
inline

◆ setOrientation() [3/4]

void RobotDynamics::Math::FrameOrientation::setOrientation ( const Quaternion o)
inline

◆ setOrientation() [4/4]

void RobotDynamics::Math::FrameOrientation::setOrientation ( Vector3d  axis,
double  angle 
)
inline

The documentation for this class was generated from the following file: