30 return Eigen::Quaterniond(
31 Eigen::AngleAxisd(rpy.z(), Eigen::Vector3d::UnitZ()) *
32 Eigen::AngleAxisd(rpy.y(), Eigen::Vector3d::UnitY()) *
33 Eigen::AngleAxisd(rpy.x(), Eigen::Vector3d::UnitX())
40 return q.toRotationMatrix().eulerAngles(2, 1, 0).reverse();
47 const double &q0 = q.w();
48 const double &q1 = q.x();
49 const double &q2 = q.y();
50 const double &q3 = q.z();
52 return std::atan2(2. * (q0*q3 + q1*q2), 1. - 2. * (q2*q2 + q3*q3));
Eigen::Vector3d quaternion_to_rpy(const Eigen::Quaterniond &q)
Convert quaternion to euler angles.
Eigen::Quaterniond quaternion_from_rpy(const Eigen::Vector3d &rpy)
Convert euler angles to quaternion.
double quaternion_get_yaw(const Eigen::Quaterniond &q)
Get Yaw angle from quaternion.
Frame transformation utilities.