1. 适用于RxRyRz顺序的旋转矩阵与欧拉角变换关系
1.1. 基本旋转矩阵

1.2. 欧拉角->旋转矩阵


1.3. 旋转矩阵->欧拉角


Eigen自带的转换函数会出现欧拉角跳变的现象,虽然结果上没有问题,但使用起来不直观,这里提供一个自定义的转换方式,输出的欧拉角顺序是yaw, pitch, roll
Eigen::Vector3d ToYPRAngles(const Eigen::Matrix3d &rotation) {Eigen::Vector3d ypr;if (rotation(2, 0) < 1) {if (rotation(2, 0) > -1) {ypr.y() = std::asin(-rotation(2, 0));ypr.x() = std::atan2(rotation(1, 0), rotation(0, 0));ypr.z() = std::atan2(rotation(2, 1), rotation(2, 2));} else {ypr.y() = M_PI_2;ypr.x() = -std::atan2(-rotation(1, 2), rotation(1, 1));ypr.z() = 0.0;}} else {ypr.y() = -M_PI_2;ypr.x() = std::atan2(-rotation(1, 2), rotation(1, 1));ypr.z() = 0.0;}return ypr;
}
2. 轴角与旋转矩阵的变换关系
![]()

当已知旋转矩阵也可以得到旋转轴和旋转角:
![]()
![]()
旋转轴上的向量在旋转后不发生变化,即Rn=n
因此,旋转轴n为旋转矩阵R的特征值为1对应的特征向量。
旋转矩阵和旋转轴还可以写成如下形式:

3. 四元数转欧拉角
绕固定坐标系的X-Y-Z依次旋转α,β,γ角
则由四元数q=(q0,q1,q2,q3)或q=(w,x,y,z)到欧拉角的转换为

4. 四元数转旋转矩阵

5. 方向余弦矩阵

参考文献
数学·旋转矩阵与欧拉角 - xjEzekiel - 博客园
四元数与欧拉角(RPY角)的相互转换 - XXX已失联 - 博客园
旋转矩阵(Rotation matrix):旋转轴与旋转角 ( axis and angle )_Sandy_WYM_的博客-CSDN博客_根据旋转矩阵求旋转轴的方向和旋转角度
旋转的描述【1】——方向余弦矩阵_清风微升至的博客-CSDN博客_方向余弦矩阵
















