1. 程式人生 > >尤拉角、四元數、旋轉矩陣

尤拉角、四元數、旋轉矩陣

尤拉角 -> 四元數:

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.toRoationMatrix();

尤拉角 -> 旋轉矩陣:

即尤拉角 -> 四元數 -> 旋轉矩陣。

旋轉矩陣 -> 尤拉角:

Eigen::Vector3f rpy = matrix.eulerAngles(0, 1, 2);