3. 坐标系与导航基础

做无人机飞控,坐标系是绕不开的第一道坎。我刚开始接触 ArduPilot 时,觉得坐标系这东西太理论了,不就是个参考系嘛。结果第一次调参数,飞机在天上乱转,我才意识到——坐标系搞错了,飞控根本不知道自己在哪。

说白了,坐标系就是给无人机一个「空间语言」。它告诉飞控:哪是前、哪是上、哪是北。没有这个基础,航线设计就是空中楼阁。

3.1 地理坐标系:WGS84

WGS84 是目前全球卫星导航系统通用的地理坐标系。GPS 给出的经纬度,就是基于这个标准。

它的核心逻辑很简单:用经度、纬度、海拔来描述地球上的一个点。地球被近似为一个椭球体,WGS84 定义了它的长半轴、短半轴和扁率。

参数 值 说明
长半轴 a 6378137.0 m 赤道半径
短半轴 b 6356752.3142 m 极半径
扁率 f 1/298.257223563 地球椭球体扁平程度

在 ArduPilot 里,所有航点坐标都存为 WGS84 格式。你在地图上点一个点,飞控拿到的是经纬度,然后换算成本地坐标去执行。

我的习惯:在 Mission Planner 里设置航点时,我会把坐标格式统一设为「度分秒」或「十进制度」。混用的话,后期检查航线会很痛苦。

3.2 机体坐标系

机体坐标系是固定在无人机上的。原点在飞机重心,X 轴指向机头,Y 轴指向右翼,Z 轴指向下方。

为什么要单独搞一个机体坐标系?因为飞控的传感器——陀螺仪、加速度计——都是装在飞机上的。它们测量的数据,天然就是机体坐标系下的。

举个例子:加速度计测到 X 轴方向有 9.8 m/s² 的加速度。这不一定代表飞机在向前加速,也可能是飞机仰头了,重力分量落到了 X 轴上。

注意:机体坐标系的 Z 轴指向下,这是航空领域的惯例。和很多 3D 图形学里的 Z 轴向上正好相反。我第一次做姿态解算时,就被这个方向坑过。

3.3 NED 坐标系

NED 是 North-East-Down 的缩写。原点在飞机当前位置,X 轴指向北,Y 轴指向东,Z 轴指向地心。

这个坐标系有什么用?它把地球曲面「拍平」了。在局部小范围内,我们可以把地球近似成平面,用 NED 坐标做位置控制。

ArduPilot 的导航算法,本质上就是在 NED 坐标系下算位置偏差,然后换算成机体坐标系下的控制指令。

关键转换:WGS84 → NED 转换是飞控最频繁的计算之一。每次 GPS 更新,飞控都要把经纬度转成 NED 坐标,才能算出当前位置和目标的偏差。

3.4 航向角 / 俯仰角 / 横滚角

这三个角定义了飞机的姿态。我习惯把它们叫做「飞机的三个自由度」。

  • 航向角(Yaw):绕 Z 轴旋转。机头指向的方向,0° 为正北,顺时针为正。
  • 俯仰角(Pitch):绕 Y 轴旋转。机头抬起为正,低下为负。
  • 横滚角(Roll):绕 X 轴旋转。右翼抬起为正,左翼抬起为负。

在 ArduPilot 里,这三个角的数据来自姿态估计算法(EKF 或互补滤波)。它们决定了飞控如何输出电机指令。

避坑指南:我曾经在调试时发现飞机一直偏航。查了半天,原来是磁罗盘校准没做好,导致航向角有 10° 的偏差。记住:磁罗盘校准不是走过场,它直接影响航向精度。

3.5 GPS 定位原理与精度

GPS 的原理,说白了就是「三边测量」。卫星告诉你它的位置和信号发射时间,你的接收机算出信号传播时间,乘以光速,得到距离。有三颗卫星就能解出三维位置。

但实际没那么简单。卫星钟差、电离层延迟、多路径效应……各种误差源都会影响精度。

误差源 典型影响 ArduPilot 应对方式
电离层延迟 2-5 m 双频接收机 / SBAS 修正
卫星钟差 1-2 m 广播星历修正
多路径效应 0.5-10 m 天线位置优化 / 滤波器
几何精度因子 随卫星分布变化 选择 PDOP < 3 的时段

普通 GPS 模块的精度在 2-5 米。如果要做精准航线作业,比如植保无人机,建议用 RTK-GPS,精度可以到厘米级。

我的经验:GPS 信号受环境影响很大。在城市峡谷、山谷、高压线附近,多路径效应会严重降低定位精度。我一般会在起飞前检查 PDOP 值,低于 2.0 才放心起飞。

3.6 坐标系与导航基础结构图

下面这张图把本章的核心知识点串起来了。你可以看到 WGS84、机体坐标系、NED 坐标系之间的关系,以及它们如何支撑姿态角和 GPS 定位。

坐标系与导航基础结构图 WGS84 地理坐标系 经纬度 + 海拔 机体坐标系 X 前 / Y 右 / Z 下 NED 坐标系 北 / 东 / 地 坐标转换 姿态旋转 姿态角定义 航向角 (Yaw) | 俯仰角 (Pitch) | 横滚角 (Roll) 绕 Z 轴旋转 | 绕 Y 轴旋转 | 绕 X 轴旋转 传感器测量 GPS 定位原理与精度 三边测量 → 误差源 → RTK 厘米级精度 提供参考椭球 局部导航框架 核心逻辑 WGS84 提供全球坐标 → 转换为 NED 局部坐标 → 结合姿态角 → 实现精准导航控制

你想想看,没有坐标系,飞控怎么知道「向前飞」是朝哪个方向?GPS 给的是经纬度,飞控要转成 NED 坐标,再结合姿态角算出电机转速。每一步都离不开坐标系。

一句话总结:WGS84 是地球的「地址簿」,NED 是飞控的「本地地图」,机体坐标系是飞机的「身体感知」,姿态角是「身体姿态」。四者配合,无人机才能知道自己在哪里、朝哪飞、怎么飞。