2. 坐标系与运动学基础:惯性坐标系与体坐标系、欧拉角与四元数、漂浮体的六自由度运动描述
各位同学,咱们今天聊点硬核的。坐标系和运动学,说白了就是给漂浮体一个“身份证”和“运动轨迹”。你想想看,一个东西在水里飘着,你总得知道它朝哪、歪了多少、往哪跑吧?这些就是坐标系要干的事。
我个人习惯,做控制算法之前,先把坐标系理清楚。不然你后面算出来的控制力,可能全推反了。我在项目中就吃过这个亏——有一次仿真跑得挺欢,结果实物一上水,姿态全乱套。查了两天,发现是坐标系定义反了。嗯,从那以后,我再也不敢跳过这步。
2.1 惯性坐标系与体坐标系
先讲两个最基础的坐标系。一个是惯性坐标系,一个是体坐标系。
惯性坐标系,也叫大地坐标系。你可以把它想象成地球上的一个固定参考架。比如你站在岸边,看着水面,那个固定的东-北-天方向就是惯性系。它不随船动,是绝对的参考。
体坐标系,是固定在漂浮体上的。原点一般在重心,x轴朝前(船头),y轴朝右(右舷),z轴朝下。你想想看,船一转弯,体坐标系也跟着转。所以体坐标系是“跟着船走”的。
为什么要区分这两个?因为物理规律(比如牛顿第二定律)在惯性系下成立,但传感器(比如IMU)测的是体坐标系下的数据。所以你得来回转换。我在项目中遇到过,有人直接把IMU的加速度当惯性系用,结果积分出来的位置飞到了天上。避坑指南:一定要明确数据是在哪个坐标系下测的。
- 惯性系:固定不动,用于描述绝对运动
- 体系:跟着物体转,用于描述相对运动
- 两者之间的转换是控制算法的第一步
2.2 欧拉角与四元数
好,坐标系有了,那怎么描述一个漂浮体的姿态呢?两个主流方法:欧拉角和四元数。
欧拉角,就是三个角度:横摇(Roll)、纵摇(Pitch)、艏摇(Yaw)。说白了,就是绕x轴、y轴、z轴转了多少度。直观,好理解。我刚开始做控制时,特别喜欢用欧拉角,因为一眼就能看出船歪了多少。
但欧拉角有个大坑——万向锁。当纵摇接近±90度时,横摇和艏摇会耦合,丢失一个自由度。我在项目中遇到过,仿真时一切正常,但实物在极端海况下突然失控。查了半天,就是万向锁导致的。所以,如果你做的是大角度运动(比如水下机器人翻滚),千万别只用欧拉角。
四元数,是四个数:一个标量加三个矢量。它没有万向锁问题,而且插值平滑。你想想看,四元数本质上是一个超复数,用旋转轴和旋转角来描述姿态。虽然不直观,但计算稳定。
我个人习惯:人机交互用欧拉角,算法内部用四元数。显示给操作员看,用欧拉角;做控制律计算,用四元数。这样既直观又稳定。
| 特性 | 欧拉角 | 四元数 |
|---|---|---|
| 直观性 | 高 | 低 |
| 万向锁 | 有 | 无 |
| 计算量 | 小 | 中 |
| 插值平滑 | 差 | 好 |
| 适用场景 | 小角度、显示 | 大角度、控制 |
2.3 漂浮体的六自由度运动描述
漂浮体在水里,可不是只平移或只旋转。它是六个自由度一起动的。哪六个?三个平移,三个旋转。
- 平移: 纵荡(Surge,沿x轴)、横荡(Sway,沿y轴)、垂荡(Heave,沿z轴)
- 旋转: 横摇(Roll,绕x轴)、纵摇(Pitch,绕y轴)、艏摇(Yaw,绕z轴)
你想想看,一个漂浮体在海浪里,它可能一边上下颠簸(垂荡),一边左右摇晃(横摇),还一边往前漂(纵荡)。这六个自由度是耦合的。比如,你给一个纵荡推力,如果重心不在浮心正下方,它还会产生纵摇力矩。这就是耦合。
我在项目中遇到过,有人只做单自由度控制,结果实物一跑,其他自由度全乱了。避坑指南:六自由度模型一定要建全,哪怕你只控制其中几个。因为耦合效应会通过动力学传递。
描述六自由度运动,通常用向量形式。比如位置向量 η = [x, y, z, φ, θ, ψ]^T,速度向量 ν = [u, v, w, p, q, r]^T。其中u、v、w是线速度,p、q、r是角速度。这两个向量之间,通过一个转换矩阵J(η)联系起来:
η_dot = J(η) · ν
这个J矩阵里,包含了欧拉角或四元数的转换关系。说白了,就是把体坐标系下的速度,映射到惯性系下的位置变化率。
2.4 知识体系总览
为了让你更直观地理解本章的知识结构,我画了一张图。你看,从坐标系出发,到姿态描述,再到六自由度运动,最后落到控制算法。每一步都是环环相扣的。
你看这张图,从左到右,从上到下,逻辑很清晰。先定坐标系,再选姿态描述方法,最后建立六自由度运动方程。每一步的选择,都会影响后续控制算法的设计。比如,你选了欧拉角,就要处理万向锁;选了四元数,就要处理归一化。
好了,这一章就到这里。坐标系和运动学是基础中的基础,你把它搞透了,后面的动力学和控制学才能站得住脚。记住我的一句话:坐标系定天下,姿态定乾坤。
- 惯性系和体系是控制算法的“坐标系双雄”
- 欧拉角直观但有万向锁,四元数稳定但不直观
- 六自由度运动是耦合的,模型一定要建全
- 转换矩阵J(η)是连接速度和位置变化率的桥梁