在线工具 · 机器人数学
旋转表示转换器
四元数、欧拉角、旋转矩阵三者实时互转,配可拖拽的 3D 姿态预览与万向锁演示。
免登录实时 3D 预览
拖一拖,看着数字变
偏航 Yaw0.0°
俯仰 Pitch0.0°
横滚 Roll0.0°
预设
拖拽 3D 物体直接旋转 · 滚轮缩放 · 任意一处修改,三处实时同步
欧拉角 (°)
旋转顺序
偏航 Yaw
俯仰 Pitch
横滚 Roll
ZYX · 偏航-俯仰-横滚(机器人学 RPY)
四元数 (w, x, y, z)
模长 = 1.000 · 已自动归一化w
x
y
z
旋转矩阵 R
1.000
0.000
0.000
0.000
1.000
0.000
0.000
0.000
1.000
三种旋转表示,什么时候用哪个?
| 对比 | 参数量 | 万向锁 | 平滑插值 | 连续组合 | 直观可读 |
|---|---|---|---|---|---|
| 四元数 | 4 | ✓ 支持 | ✓ 支持 | ✓ 支持 | ✗ 不支持 |
| 欧拉角 | 3 | ✗ 不支持 | △ 有坑 | ✗ 不支持 | ✓ 支持 |
| 旋转矩阵 | 9 | ✗ 不支持 | △ 有坑 | ✓ 支持 | △ 有坑 |
- 四元数:状态存储、姿态插值(SLERP)、 IMU 融合、RL 策略观测
- 欧拉角:人机交互界面、调试打印、URDF rpy 属性
- 旋转矩阵:运动学推导、坐标变换链、雅可比计算
什么是万向锁?
欧拉角用三次旋转叠加出任意姿态,但当第二次旋转(ZYX 顺序下的俯仰角)到达 ±90° 时,第一次和第三次旋转绕的是同一根轴——三个数字只剩两个自由度。此时雅可比退化、姿态控制会突然跳变。四元数没有这个问题,这也是工程里内部一律存四元数、只在界面上展示欧拉角的原因。点上方「万向锁演示」预设,再拖动偏航/横滚滑杆感受一下:两个滑杆的效果变得无法区分。
本工具的约定
- 右手坐标系,列向量,主动旋转(旋转向量而非坐标系)。
- ZYX 顺序即 RPY:R = Rz(yaw) · Ry(pitch) · Rx(roll),与 URDF 的 rpy 属性、ROS tf、Pinocchio 一致。
- XYZ 顺序即 R = Rx · Ry · Rz,常见于图形学库。
- 四元数 (w, x, y, z) 采用 Hamilton 乘法约定,输入后自动归一化。
实战小提示
- IMU/里程计输出互化时,先确认双方欧拉顺序与范围(yaw ∈ (−180°, 180°] 还是 [0, 360°))。
- 四元数 q 与 −q 表示同一姿态(双倍覆盖),插值时走「短弧」需先判断点积符号。
- 机器人学里看到「RPY」「roll-pitch-yaw」基本就是 ZYX;看到「XYZ 欧拉角」要追问一句内旋还是外旋。