1. 课程导入
当你第一次操控无人机悬停在半空,可能会觉得“停住不动”是件再自然不过的事。但对飞控系统而言,悬停是一场持续不断的动态博弈:没有刹车、没有支点,只有四个(或更多)电机在毫秒级时间内不断修正姿态与位置。要让无人机“定得住”,飞控必须回答两个问题——我在哪和我有没有漂。前者是定位,后者是速度与位移的估计。本章作为课程导入,先建立全局认知:定位与悬停的关系、光流在其中扮演什么角色,以及后续 29 章将如何一步步把“会漂的无人机”变成“稳如钉子的无人机”。
一、核心原理:定位是悬停的前提,悬停是定位的验证
无人机的定点悬停,本质上是一个闭环控制问题。飞控通过传感器估计自身在水平方向的位置与速度,再通过 PID 等控制器输出修正量,驱动电机产生反向加速度,把漂移“拉回来”。这个闭环里,位置估计的精度直接决定悬停的稳定性。如果位置估计噪声大、延迟高,控制器就会“误判”,表现为画圈、慢漂或高频抖动。
常见的水平定位手段各有边界:
- GPS:室外开阔环境精度约 1~3 米,更新率低(约 5~10 Hz),室内几乎不可用;
- 视觉里程计 / VIO:精度高,但依赖纹理丰富、光照稳定的环境,算力要求高;
- 激光雷达 / 超声波:测距准,但通常只解决高度或单点距离,难以直接给出水平速度;
- 光流传感器:通过向下拍摄地面纹理,计算像素运动,输出水平速度,成本低、更新率高,是室内定点悬停最常用的方案之一。
光流的核心思想并不复杂:当无人机水平移动时,地面纹理在摄像头画面中会整体反向移动;移动越快,像素位移越大。结合高度信息,就能把“像素/秒”换算成“米/秒”。因此,光流提供的是速度观测,而不是绝对位置。它必须与 IMU 融合,才能得到可用的位置估计。
一句话理解光流定位:光流负责“看地面跑了多快”,IMU 负责“感受机体怎么动”,飞控把两者融合,才能知道“我漂到哪里了”。
二、方法流程:从传感器到悬停的完整信号链
为了让你在后续章节中不迷失,这里先给出从光流到悬停的完整信号链。它贯穿本课程的核心技术路线:
- 图像采集:下视摄像头以固定帧率获取地面图像;
- 特征提取与匹配:在相邻帧之间寻找同名点,计算像素位移;
- 光流解算:将像素位移除以时间,得到像素速度,再结合高度与相机内参换算为机体水平速度;
- 传感器融合:与 IMU、气压计、超声波等数据通过卡尔曼滤波或互补滤波融合,输出位置与速度估计;
- 位置控制器:根据目标位置与实际估计的偏差,计算期望速度或加速度;
- 姿态控制器:将期望加速度转换为姿态角目标,再输出电机推力;
- 电机执行:四个电机差速动作,产生修正力矩与推力,使无人机回到目标点。
这条链路中,任何一环出问题都会表现为“悬停漂移”。例如:光流图像模糊会导致速度估计失效;高度不准会导致尺度换算错误;融合参数不当会导致估计滞后;PID 参数过激会导致振荡。后续章节会逐一拆解这些环节。
三、案例与场景:为什么室内悬停必须靠光流
设想一个典型场景:在仓库内进行无人机巡检,GPS 信号被屋顶和货架遮挡,无人机需要在货架通道中稳定悬停并缓慢前进。此时如果只依赖 IMU 积分,几分钟内就会漂出数米;如果依赖 GPS,定位会跳变甚至失效。光流传感器向下拍摄地面,只要地面有纹理(水泥地、地砖、包装箱),就能持续输出速度观测,配合超声波高度,飞控可以把水平漂移控制在厘米级。
再比如,在教室或实验室做编队飞行演示,多架无人机需要在 2 米高度保持固定间距。光流提供的速度反馈让每架无人机都能独立维持位置,不需要外部动捕系统。这类场景正是本课程实战项目的目标:用低成本光流模块 + 开源飞控,实现室内定点悬停与简单航线飞行。
| 定位方式 | 典型精度 | 更新率 | 适用环境 | 主要局限 |
|---|---|---|---|---|
| GPS | 1~3 m | 5~10 Hz | 室外开阔 | 室内失效、延迟大 |
| 光流 + 超声波 | 厘米级速度估计 | 30~60 Hz | 室内、低空、有纹理地面 | 依赖光照与纹理,高度受限 |
| VIO | 厘米级 | 20~60 Hz | 纹理丰富、光照稳定 | 算力高、易受光照突变影响 |
| 激光雷达 | 厘米级 | 10~50 Hz | 室内外均可 | 成本高、重量大 |
四、课程整体框架与实战项目
本课程共 30 章,按“认知 → 原理 → 实操 → 调优 → 排障”递进组织:
- 第 1~4 章:认知与基础——定位与悬停概览、坐标系与运动学、光流物理原理、传感器选型;
- 第 5~10 章:光流算法——图像预处理、特征点法、稠密光流、尺度换算、高度融合、延迟补偿;
- 第 11~16 章:飞控与融合——PX4/ArduPilot 光流接口、EKF 融合、参数配置、日志分析;
- 第 17~22 章:悬停控制——位置环 PID、速度环、姿态环、抗风与地面效应;
- 第 23~27 章:实战与调优——室内定点、航线飞行、编队基础、参数整定、性能评估;
- 第 28~30 章:排障与复盘——常见漂移问题、光照/纹理失效、数据回放与改进。
实战项目贯穿全程:你将使用一架 250~450 轴距的四旋翼,搭载下视光流模块与超声波/ToF 高度计,基于 PX4 或 ArduPilot 飞控,完成“室内定点悬停 → 定点航线 → 抗扰动悬停”三级任务。每章都会给出可操作的参数、代码片段或检查清单。
五、常见误区与学习建议
初学者最容易陷入三个误区:
- 把光流当绝对位置传感器。光流输出的是速度,积分后才有位置,误差会累积。必须与 IMU 融合,并接受“相对定位”的定位属性。
- 忽视高度精度。光流速度换算依赖高度,高度误差 10% 会直接导致速度估计误差 10%,悬停就会持续漂移。
- 只调 PID 不查数据。悬停漂移可能来自光流质量、融合延迟、振动干扰,盲目调 PID 往往越调越糟。先看日志,再改参数。
安全提醒:室内飞行请务必安装桨叶保护罩,设置低电量返航或降落,首次调试建议在 0.5~1 米高度、软质地面、无人员靠近的环境中进行。光流失效时飞控可能切回姿态模式,请提前练习手动救机。