欧拉角 -> 四元数:
Eigen::AngleAxisd rollAngle(roll, Eigen::Vector3d::UnitX());
Eigen::AngleAxisd pitchAngle(pitch, Eigen::Vector3d::UnitY());
Eigen::AngleAxisd yawAngle(yaw, Eigen::Vector3d::UnitZ());
Eigen::Quaterniond q = yawAngle * pitchAngle * rollAngle;
四元数 -> 旋转矩阵:
Eigen::Matrix3d rotationMatrix = q.toRotationMatrix();
欧拉角 -> 旋转矩阵:
即欧拉角 -> 四元数 -> 旋转矩阵。
旋转矩阵 -> 四元数:
Eigen::Matrix3d R;
Eigen::Quaterniond q(R);
旋转矩阵 -> 欧拉角:
Eigen::Vector3f rpy = matrix.eulerAngles(0, 1, 2);