31#include "Eigen/Geometry"
35#include "modules/common_msgs/basic_msgs/geometry.pb.h"
57 const double qy,
const double qz) {
104 const Eigen::Vector3d &original) {
105 Eigen::Quaternion<double> quaternion(orientation.
qw(), orientation.
qx(),
106 orientation.
qy(), orientation.
qz());
107 return static_cast<Eigen::Vector3d
>(quaternion.toRotationMatrix() * original);
111 const Eigen::Vector3d &rotated) {
112 Eigen::Quaternion<double> quaternion(orientation.
qw(), orientation.
qx(),
113 orientation.
qy(), orientation.
qz());
114 return static_cast<Eigen::Vector3d
>(quaternion.toRotationMatrix().inverse() *
Any orientation of a rigid body on a 3-D space can be achieved by composing three rotations about the...
Eigen::Quaternion< T > ToQuaternion() const
Converts to a quaternion with a non-negative scalar part
Math-related util functions.
Defines the EulerAnglesZXY class.
Eigen::Vector3d QuaternionRotate(const Quaternion &orientation, const Eigen::Vector3d &original)
Eigen::Quaternion< T > HeadingToQuaternion(T heading)
EulerAnglesZXY< double > EulerAnglesZXYd
Eigen::Vector3d InverseQuaternionRotate(const Quaternion &orientation, const Eigen::Vector3d &rotated)
double QuaternionToHeading(const double qw, const double qx, const double qy, const double qz)
double NormalizeAngle(const double angle)
Normalize angle to [-PI, PI).