算法_旋转变换_轴角表示(Axis-Angle)\固定角(Fixed Angles)和 欧拉角(Euler Angles)

描述三维空间中刚体旋转的三种常见方式:轴角表示(Axis-Angle)、固定角(Fixed Angles) 和 欧拉角(Euler Angles),虽然最终都用于表达同一个旋转操作,但它们的定义方式、几何意义、优缺点和应用场景各不相同。下面详细解释这三种方法的定义、优缺点及对比。

一、三种旋转表示方式的定义

1. 轴角表示(Axis-Angle)

✅ 定义:

用一个单位向量 n⃗=(nx,ny,nz), n=(nx​,ny​,nz​) 表示旋转轴,
用一个标量 θ 表示绕该轴逆时针旋转的角度(单位:弧度)。
合起来表示为一个三维向量:r⃗=θ⋅n⃗,  r=θ⋅n,称为旋转向量(Rotation Vector)。

📌 例如:r⃗=(0,0,π),r=(0,0,π) 表示绕 z 轴旋转 180°。

🔁 几何意义:

任意三维旋转都可以等效为“绕某一根通过原点的轴旋转某个角度”——这是欧拉定理(Euler's Rotation Theorem) 的结论。

2. 固定角(Fixed Angles / Space-fixed / Extrinisic Rotations)

✅ 定义:

将一个旋转分解为相对于固定坐标系(如世界坐标系)三个坐标轴的连续旋转。
旋转顺序很重要,例如常见的 ZYX 顺序:
    绕固定的 Z 轴旋转 yaw(偏航);
    绕固定的 Y 轴旋转 pitch(俯仰);
    绕固定的 X 轴旋转 roll(滚转)。

📌 注意:每次旋转都相对于原始的、不动的坐标系进行。

🔁 几何意义:

类似于“先整体绕地球北极转,再绕东-西轴抬头低头,最后绕前-后轴翻滚”。

3. 欧拉角(Euler Angles / Body-fixed / Intrinsic Rotations)

✅ 定义:

将一个旋转分解为相对于物体自身坐标系(随动坐标系)三个轴的连续旋转。
常见顺序如 ZYZ、ZYX 等。以 ZYX 为例:
    绕物体当前 Z 轴旋转 yaw;
    绕物体旋转后的新 Y 轴旋转 pitch;
    绕物体再旋转后的新 X 轴旋转 roll。

📌 每次旋转后,坐标轴也随之改变。

🔁 几何意义:

更贴近实际运动,比如飞机:先偏航 → 此时机身坐标系已变 → 再俯仰 → 坐标系再变 → 最后滚转。

💡 关键区别:

    固定角:绕固定坐标系轴旋转(extrinsic)。
    欧拉角:绕物体自身坐标系轴旋转(intrinsic)。
    轴角:一次绕某个轴旋转,不涉及顺序。

二、优缺点对比

特性轴角(Axis-Angle)固定角(Fixed Angles)欧拉角(Euler Angles)
✅ 定义简洁性高(一根轴+一个角)中等(需指定顺序)中等(需指定顺序)
✅ 几何直观性数学直观(适合理论)较强(相对于世界)强(贴近物理运动)
❌ 万向锁(Gimbal Lock)❌ 无✅ 有(如 pitch=±90°)✅ 有(如 pitch=±90°)
✅ 插值能力⭐⭐⭐⭐☆(可转为四元数做SLERP)⭐⭐☆☆☆(线性插值不自然)⭐⭐☆☆☆(易出问题)
✅ 奇异性仅在 θ=0 时轴方向不确定在特定角度出现奇异在特定角度出现奇异
✅ 转换到旋转矩阵/四元数容易(Rodrigues 公式)可转换,但依赖顺序可转换,但依赖顺序
✅ 存储效率高(3个数)高(3个数)高(3个数)
✅ 用户友好性低(不易理解)中(工程人员可用)高(广泛用于航空、UI)
✅ 唯一性多数情况下唯一(θ ∈ [0, π])不唯一(不同顺序结果不同)不唯一(存在多组解)

1. 轴角(Axis-Angle)

✅ 优点:

符合欧拉定理,物理意义明确。
无万向锁问题。
是构造四元数和使用 Rodrigues 公式 计算旋转矩阵的基础。
适合旋转插值(通过四元数实现 SLERP)。

❌ 缺点:

直观性差,普通人难以理解“绕 (0.7, 0.7, 0) 轴转 45°”是什么意思。
当旋转角为 0 时,旋转轴方向任意(退化情况)。
不能直接用于复合旋转(需转为矩阵或四元数)。

2. 固定角(Fixed Angles)

✅ 优点:

所有旋转基于世界坐标系,便于与全局参考系对齐。
在机器人路径规划、相机标定中便于描述“从世界坐标到物体坐标”的变换。
避免了“随动轴”的复杂性。

❌ 缺点:

存在万向锁(如绕 Y 轴转 90° 后,Z 和 X 轴对齐)。
插值时可能出现非预期路径。
与实际物体运动过程不完全一致(现实中物体通常是绕自身轴旋转)。

3. 欧拉角(Euler Angles)

✅ 优点:

高度直观,广泛用于航空、航天、游戏开发(yaw-pitch-roll)。
用户界面友好,易于调试和输入。
分解清晰,便于分步控制(如控制无人机偏航角归零)。

❌ 缺点:

存在万向锁:当第二个旋转角为 ±90° 时,第一个和第三个轴对齐,丢失一个自由度。
旋转顺序依赖性强:ZYX ≠ XYZ,不同顺序结果不同。
插值困难:直接线性插值会导致路径扭曲或抖动。
万向表示不唯一:同一旋转可能对应多组欧拉角(如 0° 和 360°)。

四、实际应用建议

应用场景推荐表示方式原因
动画插值、姿态平滑过渡✅ 轴角 → 四元数支持 SLERP,路径最短且平滑
机器人运动学、视觉SLAM✅ 轴角 或 四元数无奇异性,便于数学处理
飞机/无人机姿态显示✅ 欧拉角(RPY)符合飞行员/工程师习惯
3D建模软件UI✅ 欧拉角用户易于理解和操作
从传感器读取姿态⚠️ 欧拉角(注意万向锁)但内部计算建议转为四元数
构造旋转矩阵✅ 轴角(Rodrigues)或 欧拉角都可,轴角更紧凑

五、总结

方法核心思想是否有万向锁是否适合插值是否直观
轴角一次绕轴旋转❌ 无✅ 适合(配合四元数)❌ 抽象
固定角绕固定坐标系三轴旋转✅ 有❌ 不适合✅ 较直观
欧拉角绕物体自身坐标系三轴旋转✅ 有❌ 不适合✅ 很直观
🎯 最佳实践:

    存储和计算用四元数或轴角(避免奇异性);
    显示和交互用欧拉角(提高可读性);
    避免直接对欧拉角做线性插值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值