PX4 使用 MTF-01 光流测距一体传感器:接线、参数配置与室内定点

适用对象 :使用 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 设置。

四、推荐的配置顺序

第一步:确认串口数据

  1. 断开电机或拆下桨叶,给飞控和 MTF-01 上电。
  2. 通过 USB 连接 QGC,打开 MAVLink Inspector。
  3. 搜索以下消息:
    • DISTANCE_SENSOR
    • OPTICAL_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 一致。
  • 高度保持先单独验证,再启用位置保持。
  • 室内测试保留人工接管和立即降落空间,不要在首次配置时直接使用高速或自动任务。

参考资料

  1. MicoAir: MTF-01 光流测距一体传感器用户手册
  2. MicoAir: MTF-01 产品页
  3. ArduPilot: MicoAir MTF-01 Optical Flow Sensor
  4. PX4: Optical Flow 文档

本文参数以资料页面可见版本为基准。PX4 和 QGC 会随版本更新参数名称及界面,实际配置时应以飞控当前固件的参数元数据为准。

相关推荐
keyipatience1 小时前
TS学习(3)交叉类型与泛型深度解析
1024程序员节
茉莉玫瑰花茶1 小时前
线性代数 [ 矩阵与线性变化 ]
线性代数·math·1024程序员节
m0_639906941 小时前
JVM 垃圾回收 GC 全解|判断对象死亡、GC 算法、4 种引用、CMS/G1/ZGC 收集器详解
1024程序员节
淡海水2 小时前
07-04-源码-.NET Core GC清扫与压缩
unity·架构·c#·.netcore·gc·1024程序员节
深频率2 小时前
上线一年就撤:微软关掉Outlook的AI邮件助理
人工智能·1024程序员节
橙光成长3 小时前
PDF离线工具箱深度解析:4MB纯前端单文件,40+功能全本地运行,文件绝不上传
前端·pdf·1024程序员节
可爱系程序猿7 小时前
佳能 MF645Cx Windows 11 驱动下载安装:UFR II 队列可打印但扫描入口缺失的排查
程序人生·电脑·1024程序员节
irislinAmelia10 小时前
缺陷检测AI关键点在哪
人工智能·嵌入式硬件·1024程序员节
Ai-_Man10 小时前
Meta Muse还是不可以导出左侧所有对话,只能点进去单条内容导出,方法不对吗?
开发语言·人工智能·ai·小程序·c#·1024程序员节