第一章 坐标系与刚体运动

各位同学,欢迎来到《姿态稳定控制全系统搭建教程》。

我是你们这门课的主讲。做了十几年飞控,踩过的坑比写过的代码还多。今天咱们聊点基础中的基础——坐标系和刚体运动。

你可能会想,坐标系有什么好讲的?不就是XYZ三个轴吗?

嗯,我当年也是这么想的。直到有一次,我把机体坐标系和地球坐标系搞反了,结果四旋翼在天上来了个“倒立”——那场面,至今难忘。

1.1 地球坐标系:我们到底在哪儿?

地球坐标系,也叫惯性坐标系(NED系)。说白了,就是给飞行器一个“绝对参考”。

我习惯这样记:N指向北,E指向东,D指向地心。右手定则,大拇指朝北,食指朝东,中指朝下。

重要:地球坐标系是固定不动的。飞行器所有的姿态、位置,最终都要换算到这个坐标系下才有意义。

我在项目中遇到过一个问题:GPS给出的位置是经纬度,而IMU给出的是加速度。怎么对齐?

答案就是——先把GPS数据转换到NED坐标系下,再做融合。否则,你就是在拿苹果和橘子做加法。

1.2 机体坐标系:飞行器自己的“小世界”

机体坐标系,就是绑在飞行器身上的坐标系。原点在重心,X轴朝前,Y轴朝右,Z轴朝下。

你想想看,飞行员说“左转”,其实是绕着Z轴转。这个“左”是相对于机头方向的,不是相对于地面的。

个人经验:我建议初学者在调试时,先在机体坐标系下做控制。等稳定了,再考虑转换到地球坐标系。一步到位?容易翻车。

1.3 欧拉角:最直观的姿态描述

欧拉角就是三个角度:横滚(Roll)俯仰(Pitch)偏航(Yaw)

  • 横滚:绕X轴转。飞机侧倾。
  • 俯仰:绕Y轴转。飞机抬头或低头。
  • 偏航:绕Z轴转。飞机转向。

我曾经犯过一个低级错误:把欧拉角的旋转顺序搞反了。先转偏航再转俯仰,和先转俯仰再转偏航,结果完全不同。

避坑指南:欧拉角有“万向锁”问题。当俯仰角接近±90°时,横滚和偏航会耦合,导致姿态丢失。我当年做固定翼时,一个筋斗翻过去,姿态直接炸了。后来改用四元数,再也没出过这问题。

1.4 旋转矩阵:数学上的“姿态变换器”

旋转矩阵,说白了就是一个3x3的矩阵。它能把机体坐标系下的向量,转换到地球坐标系下。

// 绕Z轴旋转的矩阵示例
Rz(ψ) = [cosψ  -sinψ  0]
        [sinψ   cosψ  0]
        [0      0     1]

你可能会问:为什么要用矩阵?直接算角度不行吗?

嗯,角度计算有奇异性。矩阵运算稳定、可逆、可组合。我在做姿态解算时,习惯用旋转矩阵做中间过渡,最后再转成欧拉角输出。

核心公式:V地球 = R × V机体

其中R是旋转矩阵,由三个欧拉角依次旋转得到。

1.5 四元数:飞控工程师的“瑞士军刀”

四元数,听起来高大上。其实就是一个四维向量:q = [w, x, y, z]。

它没有万向锁,计算量小,插值平滑。现代飞控几乎都在用四元数做姿态解算。

// 四元数乘法示例
q1 * q2 = [w1*w2 - x1*x2 - y1*y2 - z1*z2,
           w1*x2 + x1*w2 + y1*z2 - z1*y2,
           w1*y2 - x1*z2 + y1*w2 + z1*x2,
           w1*z2 + x1*y2 - y1*x2 + z1*w2]

我建议初学者这样理解:四元数就是“旋转轴 + 旋转角度”的数学封装。轴是单位向量,角度是标量。

实用技巧:从IMU读取原始数据后,我习惯先归一化四元数。否则,累积误差会让姿态越飘越远。归一化公式很简单:q = q / ||q||。

1.6 知识体系总览

下面这张图,是我自己总结的坐标系与刚体运动的知识结构。你把它存脑子里,后面学起来会轻松很多。

姿态描述 地球坐标系 (NED) 机体坐标系 欧拉角 (Roll/Pitch/Yaw) 旋转矩阵 四元数 应用:姿态解算 → 控制律 → 执行器

这张图里,四个分支最终都指向“姿态解算”。你掌握了任意一种描述方式,都能做控制。但真正的高手,是四种方法融会贯通,随时切换。

1.7 本章小结

好了,这一章的内容就这些。总结一下:

  • 地球坐标系是绝对参考,机体坐标系是相对参考。
  • 欧拉角直观但有万向锁,适合人机交互。
  • 旋转矩阵稳定可靠,适合数学运算。
  • 四元数无奇异性,是飞控的首选。

下一章,我们会把这些数学工具用起来,开始搭建真正的姿态解算算法。到时候,你会发现——原来这些坐标系和角度,真的能变成飞控代码里的每一行逻辑。

课后思考:为什么现代飞控普遍使用四元数而不是欧拉角?如果你来做,你会怎么选?

专注资料整理