欧拉角方向
以右手坐标系为例,大拇指表示X轴,食指表示Y轴,中指表示Z轴。
大拇指朝向某个轴的正方向,手掌弯曲的方向即为某个轴欧拉角的正方向。
Eigen库中eulerAngles函数
旋转矩阵转欧拉角(Z-Y-X,即RPY)
Eigen::Vector3d eulerAngle=rotation_matrix.eulerAngles(2,1,0);
eulerAngles(a, b, c),3个形参中a代表第一个旋转轴、b代表第二个旋转轴、c代表第三个旋转轴。
这个函数中,数字2表示Z轴,1表示Y轴,0表示X轴 ,eulerAngles(2,1,0)就表示旋转顺序为ZYX。
eulerAngle(0) 表示绕第一个轴的旋转角度。
eulerAngle(1) 表示绕第二个轴的旋转角度。
eulerAngle(2) 表示绕第三个轴的旋转角度。
例1:旋转顺序为:Z-Y-X (Y-P-R)
rpy角(专有名词)的旋转顺序就是这个顺序,Z-Y-X。
Eigen::Vector3d eulerAngle=rotation_matrix.eulerAngles(2,1,0);
float Roll = eulerAngle(2);
float Pitch = eulerAngle(1);
float Yaw = eulerAngle(0);
例2:旋转顺序为:X-Y-Z (R-P-Y)
Eigen::Vector3d eulerAngle=rotation_matrix.eulerAngles(0,1,2);
float Roll = eulerAngle(0);
float Pitch = eulerAngle(1);
float Yaw = eulerAngle(2);
九轴IMU输出的RPY
九轴 IMU 输出的欧拉角通常是描述从当前 IMU(传感器)坐标系到惯性坐标系(通常是ENU坐标系)的旋转变换。
九轴IMU输出的欧拉角的顺序通常由制造商或设备规格指定。通常的惯例是采用Z-Y-X(Yaw-Pitch-Roll)的顺序,也被称为航向-俯仰-横滚(Heading-Pitch-Roll,或者Yaw-Pitch-Roll)。