Cheetah Software
1.0
|
Enumerations | |
enum | CoordinateAxis { CoordinateAxis::X, CoordinateAxis::Y, CoordinateAxis::Z } |
Functions | |
template<typename T > | |
T | rad2deg (T rad) |
template<typename T > | |
T | deg2rad (T deg) |
template<typename T > | |
Mat3< T > | coordinateRotation (CoordinateAxis axis, T theta) |
template<typename T > | |
Mat3< typename T::Scalar > | rpyToRotMat (const Eigen::MatrixBase< T > &v) |
template<typename T > | |
Mat3< typename T::Scalar > | vectorToSkewMat (const Eigen::MatrixBase< T > &v) |
template<typename T > | |
Vec3< typename T::Scalar > | matToSkewVec (const Eigen::MatrixBase< T > &m) |
template<typename T > | |
Quat< typename T::Scalar > | rotationMatrixToQuaternion (const Eigen::MatrixBase< T > &r1) |
template<typename T > | |
Mat3< typename T::Scalar > | quaternionToRotationMatrix (const Eigen::MatrixBase< T > &q) |
template<typename T > | |
Vec3< typename T::Scalar > | quatToRPY (const Eigen::MatrixBase< T > &q) |
template<typename T > | |
Quat< typename T::Scalar > | rpyToQuat (const Eigen::MatrixBase< T > &rpy) |
template<typename T > | |
Vec3< typename T::Scalar > | quatToso3 (const Eigen::MatrixBase< T > &q) |
template<typename T > | |
Vec3< typename T::Scalar > | rotationMatrixToRPY (const Eigen::MatrixBase< T > &R) |
template<typename T , typename T2 > | |
Quat< typename T::Scalar > | quatDerivative (const Eigen::MatrixBase< T > &q, const Eigen::MatrixBase< T2 > &omega) |
template<typename T > | |
Quat< typename T::Scalar > | quatProduct (const Eigen::MatrixBase< T > &q1, const Eigen::MatrixBase< T > &q2) |
template<typename T , typename T2 , typename T3 > | |
Quat< typename T::Scalar > | integrateQuat (const Eigen::MatrixBase< T > &quat, const Eigen::MatrixBase< T2 > &omega, T3 dt) |
template<typename T , typename T2 , typename T3 > | |
Quat< typename T::Scalar > | integrateQuatImplicit (const Eigen::MatrixBase< T > &quat, const Eigen::MatrixBase< T2 > &omega, T3 dt) |
template<typename T > | |
void | quaternionToso3 (const Quat< T > quat, Vec3< T > &so3) |
template<typename T > | |
Quat< T > | so3ToQuat (Vec3< T > &so3) |
Variables | |
static constexpr double | quaternionDerviativeStabilization = 0.1 |
|
strong |
Enumerator | |
---|---|
X | |
Y | |
Z |
Definition at line 32 of file orientation_tools.h.
Mat3<T> ori::coordinateRotation | ( | CoordinateAxis | axis, |
T | theta | ||
) |
Compute rotation matrix for coordinate transformation. Note that coordinateRotation(CoordinateAxis:X, .1) * v will rotate v by -.1 radians - this transforms into a frame rotated by .1 radians!.
Definition at line 60 of file orientation_tools.h.
T ori::deg2rad | ( | T | deg | ) |
Convert degrees to radians
Definition at line 48 of file orientation_tools.h.
Quat<typename T::Scalar> ori::integrateQuat | ( | const Eigen::MatrixBase< T > & | quat, |
const Eigen::MatrixBase< T2 > & | omega, | ||
T3 | dt | ||
) |
Compute new quaternion given:
quat | The old quaternion |
omega | The angular velocity (IN INERTIAL COORDINATES!) |
dt | The timestep |
Definition at line 283 of file orientation_tools.h.
References quatProduct().
Quat<typename T::Scalar> ori::integrateQuatImplicit | ( | const Eigen::MatrixBase< T > & | quat, |
const Eigen::MatrixBase< T2 > & | omega, | ||
T3 | dt | ||
) |
Compute new quaternion given:
quat | The old quaternion |
omega | The angular velocity (IN INERTIAL COORDINATES!) |
dt | The timestep |
Definition at line 315 of file orientation_tools.h.
References quatProduct().
Vec3<typename T::Scalar> ori::matToSkewVec | ( | const Eigen::MatrixBase< T > & | m | ) |
Put the skew-symmetric component of 3x3 matrix m into a 3x1 vector
Definition at line 108 of file orientation_tools.h.
Quat<typename T::Scalar> ori::quatDerivative | ( | const Eigen::MatrixBase< T > & | q, |
const Eigen::MatrixBase< T2 > & | omega | ||
) |
Quaternion derivative calculation, like rqd(q, omega) in MATLAB. the omega is expressed in body frame
q | |
omega |
Definition at line 240 of file orientation_tools.h.
Mat3<typename T::Scalar> ori::quaternionToRotationMatrix | ( | const Eigen::MatrixBase< T > & | q | ) |
Convert a quaternion to a rotation matrix. This matrix represents a coordinate transformation into the frame which has the orientation specified by the quaternion
Definition at line 160 of file orientation_tools.h.
Definition at line 340 of file orientation_tools.h.
Quat<typename T::Scalar> ori::quatProduct | ( | const Eigen::MatrixBase< T > & | q1, |
const Eigen::MatrixBase< T > & | q2 | ||
) |
Take the product of two quaternions
Definition at line 262 of file orientation_tools.h.
Vec3<typename T::Scalar> ori::quatToRPY | ( | const Eigen::MatrixBase< T > & | q | ) |
Convert a quaternion to RPY. Uses ZYX order (yaw-pitch-roll), but returns angles in (roll, pitch, yaw).
Definition at line 185 of file orientation_tools.h.
References square().
Vec3<typename T::Scalar> ori::quatToso3 | ( | const Eigen::MatrixBase< T > & | q | ) |
Convert a quaternion to so3.
Definition at line 213 of file orientation_tools.h.
T ori::rad2deg | ( | T | rad | ) |
Convert radians to degrees
Definition at line 38 of file orientation_tools.h.
Quat<typename T::Scalar> ori::rotationMatrixToQuaternion | ( | const Eigen::MatrixBase< T > & | r1 | ) |
Convert a coordinate transformation matrix to an orientation quaternion.
Definition at line 119 of file orientation_tools.h.
Vec3<typename T::Scalar> ori::rotationMatrixToRPY | ( | const Eigen::MatrixBase< T > & | R | ) |
Definition at line 225 of file orientation_tools.h.
References quatToRPY(), and rotationMatrixToQuaternion().
Quat<typename T::Scalar> ori::rpyToQuat | ( | const Eigen::MatrixBase< T > & | rpy | ) |
Definition at line 201 of file orientation_tools.h.
References rotationMatrixToQuaternion(), and rpyToRotMat().
Mat3<typename T::Scalar> ori::rpyToRotMat | ( | const Eigen::MatrixBase< T > & | v | ) |
Go from rpy to rotation matrix.
Definition at line 83 of file orientation_tools.h.
References coordinateRotation(), X, Y, and Z.
Definition at line 356 of file orientation_tools.h.
Mat3<typename T::Scalar> ori::vectorToSkewMat | ( | const Eigen::MatrixBase< T > & | v | ) |
Convert a 3x1 vector to a skew-symmetric 3x3 matrix
Definition at line 96 of file orientation_tools.h.
|
static |
Definition at line 30 of file orientation_tools.h.