第二章 坐标系与姿态表示:地理坐标系、机体坐标系、欧拉角(Yaw/Pitch/Roll)、旋转矩阵
好,咱们正式开始聊偏航控制的核心基础——坐标系和姿态表示。
说实话,我见过不少新手一上来就调PID参数,结果飞机在天上乱转,根本不知道问题出在哪。其实说白了,很多坑都是因为坐标系没搞明白。你想想看,连“往哪转”都没定义清楚,控制算法怎么可能跑对?
2.1 地理坐标系:我们到底在哪个“世界”里说话?
地理坐标系,也叫导航坐标系。我习惯叫它“大地坐标系”。它是个固定不动的参考系,用来描述飞行器相对于地面的位置和姿态。
通常我们这样定义:
- X轴:指向正东(East)
- Y轴:指向正北(North)
- Z轴:指向天顶(Up),符合右手定则
嗯,这里要注意。有些教材会把Z轴指向地心,但在无人机和机器人领域,我们几乎都用“东北天(ENU)”坐标系。我在做第一个飞控项目时,就踩过这个坑——用了“北东地”坐标系,结果姿态解算符号全反了,折腾了两天才发现。
2.2 机体坐标系:飞机自己怎么看自己?
机体坐标系是固定在飞行器上的。它跟着飞机一起动。我个人习惯把原点放在飞行器的质心。
- X轴(机头方向):指向飞行器前进方向
- Y轴(右翼方向):指向飞行器右侧
- Z轴(垂直方向):指向飞行器下方(符合右手定则)
你可能会问:“为什么Z轴要指向下?” 其实这是个历史惯例。在航空领域,为了便于计算升力和重力,大家约定俗成这么定义。我在做固定翼项目时,曾经试着把Z轴朝上,结果和别人的代码对接时,旋转矩阵全得转置,那叫一个痛苦。
2.3 欧拉角:Yaw/Pitch/Roll 到底在转什么?
欧拉角是描述机体坐标系相对于地理坐标系旋转的三个角度。说白了,就是飞机怎么从“躺平”状态转到当前姿态。
| 角度 | 中文名 | 旋转轴 | 范围 | 我的理解 |
|---|---|---|---|---|
| Yaw(ψ) | 偏航角 | 绕Z轴 | [-180°, 180°] 或 [0°, 360°] | 机头指向哪个方向 |
| Pitch(θ) | 俯仰角 | 绕Y轴 | [-90°, 90°] | 机头抬多高 |
| Roll(φ) | 横滚角 | 绕X轴 | [-180°, 180°] | 机身倾斜多少 |
这里有个经典问题:旋转顺序是什么?
我建议你记住这个顺序:Z → Y → X,也就是先偏航,再俯仰,最后横滚。为什么是这个顺序?因为这样最符合直觉——你先让飞机对准方向(Yaw),再抬头低头(Pitch),最后调整左右倾斜(Roll)。
2.4 旋转矩阵:用数学描述“转了多少”
欧拉角虽然直观,但计算机不喜欢它。计算机喜欢矩阵。所以我们需要把欧拉角转换成旋转矩阵。
旋转矩阵的作用很简单:把一个向量从一个坐标系变换到另一个坐标系。比如,把机体坐标系下的加速度,转换到地理坐标系下。
三个基本旋转矩阵如下:
// 绕Z轴旋转(Yaw)
Rz(ψ) = [cosψ -sinψ 0]
[sinψ cosψ 0]
[0 0 1]
// 绕Y轴旋转(Pitch)
Ry(θ) = [cosθ 0 sinθ]
[0 1 0 ]
[-sinθ 0 cosθ]
// 绕X轴旋转(Roll)
Rx(φ) = [1 0 0 ]
[0 cosφ -sinφ]
[0 sinφ cosφ]
完整的旋转矩阵(从机体到地理,按ZYX顺序):
R = Rz(ψ) * Ry(θ) * Rx(φ)
R = [cosθ*cosψ, sinφ*sinθ*cosψ - cosφ*sinψ, cosφ*sinθ*cosψ + sinφ*sinψ]
[cosθ*sinψ, sinφ*sinθ*sinψ + cosφ*cosψ, cosφ*sinθ*sinψ - sinφ*cosψ]
[-sinθ, sinφ*cosθ, cosφ*cosθ ]
嗯,这个矩阵看着有点吓人。但你别怕,实际写代码时,我们很少手写这个矩阵。大部分飞控库(如PX4、ArduPilot)都封装好了。你只需要理解它的物理意义:矩阵的每一列,代表机体坐标系的三个轴在地理坐标系下的方向向量。
2.5 知识体系总览
下面这张图,是我自己总结的坐标系与姿态表示的核心逻辑。你看一遍,应该就能把整个章节串起来。
这张图你看懂了吗?从左到右,我们先用欧拉角描述“地理坐标系怎么转到机体坐标系”,然后把这个旋转关系写成旋转矩阵,方便计算机做运算。反过来,我们也能从旋转矩阵反解出欧拉角——这就是姿态解算的基本原理。
2.6 实际项目中的选择建议
说了这么多理论,到底怎么选?我根据自己的经验,给你几个建议:
- 做飞控调试时:用欧拉角,直观好理解。但注意避开Pitch=±90°的情况,否则会万向锁。
- 写控制算法时:用旋转矩阵或者四元数(下一章会讲)。矩阵运算稳定,没有奇点。
- 做数据记录和分析时:用欧拉角,方便人类阅读。但内部计算一定要转成矩阵或四元数。
好了,这一章的内容就到这。坐标系和姿态表示是整个偏航控制的地基,地基不稳,上层建筑再漂亮也得塌。建议你动手画一画坐标系,写一写旋转矩阵的乘法,感受一下“转”的过程。
公众号:蓝海资料掘金营,微信deep3321