Eigen - 欧拉角、四元数、旋转矩阵 - 相互转换

欧拉角 -> 四元数:

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::Vector3f rpy = matrix.eulerAngles(0, 1, 2); 

你可能感兴趣的:(Eigen - 欧拉角、四元数、旋转矩阵 - 相互转换)