适用对象 :使用 PX4 飞控、希望在无 GPS 环境下实现定高和位置保持的开发者。
硬件 :MicoAir MTF-01(光流 + LED 测距)
固件范围:PX4 1.12~1.17+(参数名称会随版本变化)
MTF-01 把向下的光流相机和测距模块集成在一个小型传感器中:光流提供水平运动速度,测距提供离地高度。PX4 的 EKF 将两者与 IMU 融合后,可以在室内或无 GPS 环境下完成定高和位置保持。



一、MTF-01 的主要规格
| 项目 | 参数 |
|---|---|
| 传感器功能 | 光流 + 测距(2 合 1) |
| 测距范围 | 约 0.02~8 m(实验室条件,目标反射率和光照会影响结果) |
| 测距光源 | 850 nm LED,视场角约 6° |
| 光流视场角 | 约 42° |
| 光流最大速度 | 约 7 m/s(离地 1 m 时) |
| 最低光流距离 | 约 8 cm |
| 工作光照 | 地面纹理清晰、照度大于约 60 lux |
| 接口 | 3.3 V LVTTL UART,115200 baud,100 Hz |
| 供电 | 5 V,平均约 100 mA |
| 重量/尺寸 | 约 4.5 g;约 29.3 × 17 × 14.5 mm |
这些数值是传感器规格的典型值。户外强光、深色地面、玻璃或无纹理地面都会让有效测距和光流距离变短,不能把"8 m"当作所有环境下的保证值。
二、接线与安装
1. UART 接线
MTF-01 的串口必须交叉连接:传感器 TX 接飞控 UART RX,传感器 RX 接飞控 UART TX。
| MTF-01 引脚 | 飞控连接 | 说明 |
|---|---|---|
| GND | GND | 共地 |
| 5V | 5V | 建议使用飞控稳定的 5 V 供电 |
| Rx | UART TX | 传感器接收 |
| Tx | UART RX | 传感器发送 |
接线关系可简化为:
text
MTF-01 Tx ─────> 飞控 UART Rx
MTF-01 Rx <───── 飞控 UART Tx
MTF-01 5V ─────> 飞控 5V
MTF-01 GND ─────> 飞控 GND
不同飞控的串口编号不同。下文用 TELEM n 表示实际连接的串口,例如接在 TELEM2,就把 n 替换为 2。不要把同一个串口同时分配给 GPS、数传或其他 MAVLink 设备。
2. 安装方向
- 镜头和测距窗口垂直朝下,不能被机架、脚架或保护壳遮挡。
- 传感器尽量安装在机体中心附近,减少横滚/俯仰时的杆臂误差。
- 固定要牢靠,避免线束拉扯传感器或把电机振动传到飞控。
- 光流依赖地面纹理;纯白墙面、反光地板、黑色地毯和低照度环境都可能导致漂移。
三、PX4 参数配置
1. PX4 1.12~1.13
在 QGroundControl(QGC)中打开 Vehicle Setup → Parameters,搜索并设置:
text
MAV_1_CONFIG = TELEM n # 选择接入 MTF-01 的串口
MAV_1_MODE = Normal
SER_TELn_BAUD = 115200 8N1
SENS_FLOW_ROT = No rotation # 传感器垂直朝下时保持默认值
EKF2_AID_MASK = 启用 optical flow
EKF2_RNG_AID = 启用 range aid
EKF2_HGT_MODE = Range sensor
修改 MAV_1_CONFIG 后先重启飞控,再设置其余参数。QGC 的参数界面可能以复选框显示 EKF2_AID_MASK,不要直接照抄十进制数,按界面中的 Optical flow 选项启用即可。
2. PX4 1.14~1.16
text
MAV_1_CONFIG = TELEM n
MAV_1_MODE = Normal
SER_TELn_BAUD = 115200 8N1
EKF2_OF_CTRL = Enabled
EKF2_RNG_CTRL = Enabled
EKF2_HGT_REF = Range sensor
这几个参数分别启用光流融合、测距融合,并把高度参考切换到测距传感器。首次重启后,QGC 才可能显示 SENS_FLOW_ROT;MTF-01 向下安装时保持 No rotation。
3. PX4 1.17 及以后
在上一组参数基础上,再确认:
text
MAV_PROTO_VER = 1
如果参数名称与本文不同,请以当前 PX4 固件在 QGC 中实际出现的参数为准。PX4 的参数在不同大版本中有迁移,升级固件后建议重新检查一次串口和 EKF 设置。
四、推荐的配置顺序
第一步:确认串口数据
- 断开电机或拆下桨叶,给飞控和 MTF-01 上电。
- 通过 USB 连接 QGC,打开 MAVLink Inspector。
- 搜索以下消息:
DISTANCE_SENSOROPTICAL_FLOW_RAD
能看到距离但看不到光流时,优先检查 TX/RX 是否接反、串口是否选错,以及老版本传感器的协议是否设置为 mav_px4。通过低速率数传链路检查时,光流消息可能被链路带宽丢弃,所以验证应优先使用 USB。
第二步:先调定高,再启用位置保持
先只使用测距作为高度源,在室内平整、带纹理的地面上测试定高;高度数据稳定后,再启用光流并测试位置保持。这样可以把"测距问题"和"光流问题"分开定位。
第三步:检查振动
光流无法修复机械振动。先在没有光流辅助的模式下悬停并记录日志,使用 PX4 Flight Review 查看原始加速度。若 Z 轴和 X/Y 轴严重重叠,先处理桨叶平衡、电机轴、飞控软硬安装和滤波,再继续调参。
五、常见问题排查
1. QGC 中完全没有传感器数据
- 检查 5 V 供电和共地。
- 确认
MAV_1_CONFIG选择的是实际 UART。 - 确认串口波特率为
115200 8N1。 - 检查 TX/RX 是否交叉连接。
- 一个 UART 只能由一个设备使用,避免与 GPS/数传复用。
2. 有 DISTANCE_SENSOR,没有 OPTICAL_FLOW_RAD
老版本 MTF-01 可能需要手动选择 PX4 协议 mav_px4;当前生产批次通常支持上电自动识别。仍无光流时,检查镜头是否被遮挡、地面是否有纹理、光照是否足够,并用 USB 而不是数传链路观察。
3. 室内悬停漂移或来回摆动
- 离地高度先保持在传感器容易工作的范围内,建议从 0.3~2 m 开始测试。
- 避免纯色、反光、透明或快速变化的地面。
- 检查传感器是否真正垂直向下。
- 先降低飞行速度,确认光流质量后再提高。
- 重新检查 IMU 振动和飞控安装刚度。
4. 测距距离明显小于 8 m
规格中的最大距离是在特定反射率和光照条件下测得。强烈阳光会降低 LED 测距的有效距离,深色草地、黑色沥青和低反射目标也会明显缩短读数。测试时可先用浅色、纹理适中的平面目标验证传感器本身。
六、参数修改后的安全检查
起飞前建议逐项确认:
- 桨叶已安装正确、紧固件已锁紧;首次测试可先拆桨检查数据。
DISTANCE_SENSOR和OPTICAL_FLOW_RAD都能稳定更新。- 传感器朝向和
SENS_FLOW_ROT一致。 - 高度保持先单独验证,再启用位置保持。
- 室内测试保留人工接管和立即降落空间,不要在首次配置时直接使用高速或自动任务。
参考资料
- MicoAir: MTF-01 光流测距一体传感器用户手册
- MicoAir: MTF-01 产品页
- ArduPilot: MicoAir MTF-01 Optical Flow Sensor
- PX4: Optical Flow 文档
本文参数以资料页面可见版本为基准。PX4 和 QGC 会随版本更新参数名称及界面,实际配置时应以飞控当前固件的参数元数据为准。