4. 关键传感器原理

传感器是无人机的眼睛和耳朵。选错了,飞控再强也白搭。这一章,我带你逐个过一遍PX4里最关键的几个传感器:GPS/RTK、磁罗盘、空速计,还有避障用的激光雷达和超声波。每个我都会讲选型要点、接线坑点,还有校准时的亲身教训。

核心原则:传感器数据必须“干净”。一个噪声大的磁罗盘,能让你的无人机在悬停时原地画圈。我见过太多人花大价钱买飞控,却在传感器上省钱,最后炸机收场。

PX4 传感器选型与校准知识体系 传感器融合核心 GPS / RTK u-blox F9P / 双天线 磁罗盘 IST8310 / 外置安装 空速计 皮托管 / 差压传感器 避障传感器 激光雷达 / 超声波 校准流程:QGC → 传感器校准 水平校准 / 旋转校准 / 动态校准 ⚠ 关键提醒:传感器安装位置决定数据质量,校准顺序不能乱 先装GPS → 再装罗盘(远离大电流线)→ 空速管朝前 → 避障传感器避开桨面

4.1 GPS/RTK:定位的基石

GPS模块是无人机最基础的传感器。没有它,你的飞机连“我在哪”都不知道。我个人习惯用u-blox的F9P系列,支持双频段(L1/L2)和RTK差分定位,厘米级精度。

参数 普通GPS(M8N) RTK GPS(F9P)
定位精度 2.5m 0.025m(RTK固定解)
更新率 10Hz 20Hz
收敛时间 ~30s ~10s(有基站)
抗干扰 一般 强(双频抗多径)

选型建议:如果你做测绘、巡检、精准农业,直接上F9P。普通航拍用M8N就够了。别为了省钱买山寨模块——我踩过坑,山寨F9P在强电磁环境下直接丢星。

接线要点:GPS模块通常用UART口连接飞控。F9P默认输出UBX协议,PX4原生支持。注意TX/RX不要接反。我记得第一次调试时,死活收不到数据,最后发现是TX接了TX——低级错误,但很容易犯。

// PX4 GPS参数配置(QGC参数面板)
GPS_1_CONFIG = TELEM1  // 或 TELEM2,看硬件连接
GPS_1_GNSS_ID = 0      // 默认GPS
GPS_1_PROTOCOL = 1     // u-blox协议
GPS_1_RATE_MS = 50     // 20Hz更新率
GPS_YAW_OFFSET = 0     // 天线安装偏角

⚠ 重要:RTK模式下,基站和移动站必须使用同一型号的F9P模块。混用不同固件版本会导致RTK解算失败。我曾经在项目里混用了F9P 1.13和1.14固件,折腾了两天才发现是固件不匹配。

4.2 磁罗盘:方向感的来源

磁罗盘(磁力计)提供航向信息。PX4默认使用IST8310,这是一颗三轴磁阻传感器,精度不错。但磁罗盘有个致命弱点——怕干扰。

安装位置决定生死。磁罗盘必须远离大电流线路、电机、电调。我见过最离谱的案例:有人把罗盘装在电池正极旁边,结果航向偏差30度,飞机一解锁就往右偏。

  • 内置罗盘:集成在飞控板上,适合小机架。但干扰大,需要做硬铁校准。
  • 外置罗盘:装在GPS支架上,远离干扰源。我强烈推荐这种方式。

校准方法:在QGroundControl里进入“传感器校准”页面,选择“磁力计”。然后拿着飞机做“8字旋转”——水平转、垂直转、翻滚转。每个轴都要转够360度。

避坑指南:校准环境要远离钢筋建筑、高压线、铁质物体。我曾经在停车场里校准,结果罗盘数据全是乱的。后来才发现地下的钢筋网把磁场搅得一塌糊涂。

// 查看罗盘数据是否正常(MAVLink控制台)
mavlink console
> sensor_test mag
// 输出示例:
// MAG0: x=0.12 y=-0.08 z=0.95 强度=0.96Gauss
// 正常范围:0.4~0.6 Gauss(室内),0.5~0.7 Gauss(室外)

4.3 空速计:固定翼的“速度表”

空速计只用于固定翼和VTOL。它测量的是飞机相对于空气的速度,不是地速。这个区别很重要——逆风飞行时,地速可能很低,但空速足够就能维持升力。

选型要点:PX4支持MS4525DO和SDP33两种差压传感器。我个人偏爱MS4525DO,因为它量程宽(±1psi),适合高速机型。

传感器型号 量程 精度 适用场景
MS4525DO ±1 psi ±0.25% 高速固定翼(>20m/s)
SDP33 ±500 Pa ±3% 低速滑翔机(<15m/s)

安装注意事项:皮托管必须朝前,且远离螺旋桨气流。我见过有人把皮托管装在机翼下方,结果空速数据全是乱的——因为机翼下表面气流是分离的。

校准技巧:空速计校准很简单:在无风环境下,用QGC的“空速校准”功能,让传感器归零。注意:校准前要堵住皮托管的总压口和静压口,防止气流扰动。

4.4 避障传感器:激光雷达 vs 超声波

避障传感器是无人机“长眼睛”的关键。PX4支持激光雷达(LiDAR)和超声波两种。选哪个?看场景。

激光雷达(如TFmini、VL53L1X):精度高(±1cm),测距远(12m),抗干扰强。但价格贵,且对透明物体(玻璃)无效。

超声波(如HC-SR04):便宜,对透明物体有效。但精度低(±3cm),测距近(4m),受温度影响大。

对比项 激光雷达 超声波
测距范围 0.1~12m 0.02~4m
精度 ±1cm ±3cm
更新率 100~250Hz 20~40Hz
抗干扰 强(不受光照影响) 弱(受风噪、温度影响)
价格 ¥100~500 ¥10~50

我的建议:室内避障用超声波就够了,便宜且对墙壁有效。室外高速避障必须上激光雷达。我在一个农业项目中用过超声波,结果在农田里被杂草反射干扰,误报率极高——后来全换成了激光雷达。

⚠ 安装位置:避障传感器必须安装在桨面之外。否则螺旋桨会遮挡波束,导致测距数据跳变。我见过有人把传感器装在机臂下方,结果每次打舵时桨叶扫过传感器前方,数据直接飞掉。

// PX4避障传感器参数配置
// 以TFmini激光雷达为例(I2C接口)
SENS_EN_TFMINI = 1     // 启用TFmini
SENS_TFMINI_CFG = 0    // I2C地址(默认0x10)
SENS_TFMINI_MODE = 0   // 标准模式

// 超声波(HC-SR04)使用UART
SENS_EN_HCSR04 = 1
SENS_HCSR04_CFG = TELEM2

4.5 校准流程:一步都不能省

传感器装好了,不校准等于白装。PX4的校准流程在QGC里是傻瓜式的,但有几个关键点你必须知道。

  1. 水平校准(加速度计):把飞机放平,点击“开始”。然后按提示翻转6个面(正面、背面、左侧、右侧、机头朝上、机头朝下)。
  2. 磁罗盘校准:前面说过了,8字旋转。注意:校准过程中不要移动手机或遥控器——它们也有磁场。
  3. 水平校准(陀螺仪):飞机静止不动,点击“开始”。等进度条走完就行。千万别动飞机。
  4. 空速计校准:堵住皮托管,点击“归零”。
  5. 避障传感器校准:在传感器前方放一个已知距离的平面(比如1m),然后设置偏移量。

我的经验:校准顺序不能乱。先加速度计,再磁罗盘,最后空速计。因为磁罗盘校准需要飞机水平,而加速度计校准提供了水平基准。我曾经反过来做,结果磁罗盘校准数据全是歪的。

校准完成后,记得在QGC里查看传感器状态。所有传感器都应该显示“绿色”或“正常”。如果有红色警告,别起飞——先排查问题。