新闻详情

新闻详情

首页 / 资讯中心 / 详情

PX4无人机RTK厘米级定位实战:硬件选型、EKF2调参与避坑指南

发布时间:2026/9/28 3:34:12来源:尧图网络
PX4无人机RTK厘米级定位实战:硬件选型、EKF2调参与避坑指南
1. 从GPS漂移到厘米级悬停RTK到底解决了什么痛点飞过无人机的人大概都经历过这种场景飞机悬停时像喝多了似的来回晃航线飞行拍出来的照片重叠率忽高忽低测绘任务回来一看相邻两张图的地面覆盖对不上。很多人第一反应是PID没调好折腾半天参数结果发现根本问题出在定位精度上——普通GPS的定位误差在米级水平方向飘个一两米太正常了而RTK能把定位精度拉到厘米级这才是从根上解决问题的办法。RTK的全称是实时动态差分定位核心思路其实不复杂。普通GPS接收机自己算位置卫星信号穿过电离层、对流层会有延迟加上卫星钟差、轨道误差最终定位结果就有米级误差。RTK的做法是在已知精确坐标的位置架一个基准站基准站也接收卫星信号但它知道自己真实位置所以能算出当前时刻的各类误差修正量然后通过数据链路把这些修正量发给移动站也就是无人机上的接收机。移动站用修正量去校正自己的观测值再解算位置精度就能到厘米级。这里有个关键概念叫差分龄期指的是移动站当前使用的修正数据距离基准站生成时刻的时间差。差分龄期越大修正量的时效性越差定位精度就越低。一般要求差分龄期控制在2秒以内超过5秒基本就退化成普通GPS了。这也是为什么RTK对数据链路的稳定性要求很高——链路一断修正数据就断了差分龄期蹭蹭往上涨。那PX4飞控是怎么把RTK数据用起来的PX4本身不直接处理RTK的原始观测数据它接收的是RTK接收机解算好的位置信息通常通过MAVLink协议以GPS_RAW_INT或GPS_RTCM_DATA消息传进来。RTK接收机内部完成差分解算后把高精度的经纬度、高度、定位状态单点/浮点/固定解发给飞控。飞控里的EKF2扩展卡尔曼滤波器再融合IMU、气压计、磁力计、光流等多传感器数据输出最终的位置估计。所以整条链路是这样的卫星信号→RTK接收机基准站移动站→差分解算→MAVLink消息→PX4飞控→EKF2融合→位置控制。任何一个环节出问题最终精度都会打折扣。我见过不少人RTK模块买回来直接插上就飞结果定位状态一直是浮点解甚至单点解还以为模块是坏的其实问题出在基准站配置或者数据链路上面。注意RTK的固定解Fixed和浮点解Float差距很大。固定解是载波相位整周模糊度已经确定精度在厘米级浮点解是模糊度还没固定精度在分米级。飞行任务中至少要保证浮点解测绘任务必须固定解。2. 硬件选型与接线别让一根线毁掉整套系统2.1 RTK模块怎么挑市面上RTK模块从几百到几千的都有核心差异在几个地方支持的卫星系统数量、更新率、是否支持多频、接口类型。对于PX4用户来说最省心的选择是那些已经和PX4做过适配的模块比如Here、CUAV C-RTK、Holybro H-RTK系列。这些模块的好处是接线定义明确、PX4驱动支持完善、QGroundControl里直接能看定位状态。如果你打算自己搭配需要注意几个硬指标。更新率至少5Hz最好10Hz以上否则高速飞行时位置更新跟不上。支持GPSGLONASSGalileo北斗多系统卫星数越多固定解越快越稳。接口方面PX4飞控一般有专用的GPS口通常是6pin的JST-GH或者10pin接口具体看飞控型号。RTK模块输出通常是UART串口波特率一般设成115200或者230400。基准站和移动站的关系也要搞清楚。有些模块是双天线设计一个模块同时做基准站和移动站有些需要两个独立模块一个架在地面做基准站一个装在飞机上做移动站。双天线方案省事但贵分离方案便宜但配置麻烦。我个人的建议是如果预算允许直接上双天线方案省去很多调试时间。2.2 接线中最容易翻车的地方接线这块我踩过的坑最多说几个典型的。第一个是TX/RX交叉问题。RTK模块的TX要接飞控的RX模块的RX要接飞控的TX这个大家都知道但实际接线时看错丝印或者用错线序的情况太常见了。建议接完线先用万用表通断档确认一遍别嫌麻烦。第二个是供电问题。有些RTK模块功耗不小特别是双天线方案峰值电流可能到500mA以上。如果直接从飞控的GPS口取电要确认飞控那个口的供电能力够不够。供电不足的表现是模块能启动但搜星慢、频繁掉星很容易误判为模块质量问题。第三个是线缆长度和屏蔽。RTK模块到飞控的线缆尽量短最好不超过30cm。线太长信号衰减不说还容易引入干扰。如果必须延长用带屏蔽层的线缆屏蔽层单端接地。我遇到过飞机一加油门RTK就掉固定解的情况后来发现是GPS线缆和动力线捆在一起走线电磁干扰导致的。2.3 飞控端参数配置接线搞定后在QGroundControl里需要设置几个参数。首先是GPS_1_CONFIG指定GPS接在哪个串口。比如接在GPS口就设成对应的串口编号。然后GPS_1_PROTOCOL设成Auto或者UBX大部分RTK模块用UBX协议。SER_GPS1_BAUD设置波特率要和模块实际波特率一致。还有一个容易忽略的参数是GPS_1_RATE这个控制飞控向GPS模块请求数据的频率。默认可能是5Hz如果你模块支持10Hz可以改成10。但要注意改高了之后串口带宽要够否则会丢数据。提示改完GPS相关参数后一定要重启飞控有些参数是启动时读取的不重启不生效。重启后在QGC的MAVLink Inspector里看GPS_RAW_INT消息确认fix_type字段。3是3D定位4是DGPS5是RTK浮点解6是RTK固定解。3. 固件版本选择那些年我们踩过的版本坑3.1 PX4版本与RTK的兼容性PX4的固件版本对RTK支持影响很大这不是危言耸听。早期版本比如1.12.xEKF2对RTK数据的融合逻辑和现在差别很大有些版本甚至存在RTK高度异常跳变的bug。1.13.x开始对RTK的支持明显改善但1.13.0有个已知问题当RTK固定解丢失时EKF2的位置估计会出现较大跳变1.13.2修复了这个问题。目前比较稳妥的选择是1.14.x系列1.14.3是我实测下来最稳定的版本。这个版本对EKF2做了不少优化特别是GPS高度融合和RTK降级处理方面。1.15.x也出来了但新版本刚发布时往往有一些边角问题如果你不是急着用新功能建议等一两个补丁版本再上。选版本的时候还要注意和QGroundControl的兼容性。QGC 4.2.x配PX4 1.14.x是经过充分测试的组合。QGC 4.3.x开始对MAVLink协议做了一些调整和某些PX4版本的配合可能有问题。我遇到过QGC 4.3.0连PX4 1.13.2时参数界面加载不全的情况换成QGC 4.2.8就正常了。3.2 固件编译时的RTK相关选项如果你是自己编译PX4固件有几个编译选项和RTK相关。CONFIG_EKF2_GPS控制EKF2是否使用GPS数据这个默认是开的。CONFIG_EKF2_GPS_YAW控制是否用GPS航向双天线RTK模块可以输出航向信息开了这个可以省掉磁力计。但要注意GPS航向的精度和基线长度有关基线太短航向精度会很差。还有一个参数是EKF2_GPS_DELAY这个设置GPS数据的延迟补偿。RTK模块从接收信号到输出解算结果有一定延迟不同模块延迟不一样。如果这个参数设得不准EKF2融合时会有相位滞后表现为位置估计滞后于实际运动。一般RTK模块延迟在50-100ms之间可以先设80ms试试然后看飞行日志里的位置跟踪情况再微调。3.3 版本升级的注意事项从旧版本升级到新版本时参数迁移是个大问题。PX4的参数存储区在升级时可能会被重置特别是大版本升级。我的做法是升级前用QGC导出参数文件升级后再导入。但要注意新版本可能删除了某些旧参数或者改了参数名导入时会有警告需要手动处理。升级后必须重新做传感器校准特别是加速度计和磁力计。不同版本的校准算法可能有变化用旧校准数据可能导致EKF2表现异常。校准完之后先在地面测试看EKF2的状态估计是否正常再解锁起飞。我见过升级后直接起飞结果飞机往一个方向猛冲的案例就是校准数据不兼容导致的。4. EKF2融合调参让RTK数据真正发挥作用4.1 EKF2怎么看待RTK数据EKF2是个扩展卡尔曼滤波器它把IMU、气压计、磁力计、GPS、光流、视觉等传感器的数据融合在一起输出位置、速度、姿态的最优估计。RTK提供的位置信息在EKF2里作为一个观测值来用EKF2会根据RTK的精度估计给它分配权重。关键参数是EKF2_GPS_P_NOISE这个控制GPS位置观测的噪声方差。设得越小EKF2越信任GPS数据设得越大越不信任。对于RTK固定解位置精度可以到厘米级这个值可以设小一点比如0.1-0.3。但设太小也有风险如果RTK偶尔跳点EKF2会跟着跳。我一般设0.5兼顾精度和鲁棒性。还有一个参数是EKF2_GPS_V_NOISE控制GPS速度观测的噪声。RTK的速度精度通常也不错可以设0.1-0.3。但要注意有些RTK模块的速度是从位置差分算出来的噪声比较大这种情况就要设大一点。4.2 融合中的常见问题与排查最常见的问题是EKF2不融合GPS数据表现为QGC里EKF2的GPS状态一直是红色。原因可能有好几个GPS的fix_type太低低于3、GPS数据延迟太大、EKF2的GPS延迟参数设得不对、或者GPS和IMU的时间戳对不上。排查的时候先看GPS_RAW_INT消息确认fix_type和卫星数。然后看ESTIMATOR_STATUS消息里的gps_check_fail_flags字段这个字段的每一位对应一种失败原因。比如bit 0是卫星数不够bit 1是水平精度不够bit 2是垂直精度不够bit 3是速度精度不够。根据标志位去对应排查比盲目试参数高效得多。另一个常见问题是RTK固定解丢失后EKF2位置跳变。这个在1.13.x早期版本比较明显1.14.x改善了很多。如果还是遇到可以调大EKF2_GPS_P_NOISE让EKF2在RTK降级时更平滑地过渡。同时可以开EKF2_GPS_CHECK里的各项检查确保GPS数据质量不达标时EKF2及时降级而不是硬融。4.3 实测调参记录我拿一架450轴距的四旋翼做测试RTK模块是双天线方案飞控是Pixhawk 6C固件1.14.3。初始参数下悬停时位置漂移在±5cm左右航线飞行时跟踪误差在10cm以内。后来把EKF2_GPS_P_NOISE从默认的0.5降到0.3悬停漂移缩小到±3cm但有一次RTK短暂失锁时位置跳了大概20cm。权衡之后还是用0.5稳定性更重要。EKF2_GPS_DELAY我试过50ms、80ms、100ms三个值。用飞行日志里的vehicle_gps_position和vehicle_local_position做互相关分析发现80ms时相关性最高说明这个模块的延迟大概就是80ms。设成80ms后高速飞行时的位置跟踪明显改善急停时飞机不会过冲。还有一个经验是RTK的航向输出如果要用EKF2_GPS_YAW的噪声参数要设得比磁力计大一些。因为GPS航向在基线短的时候噪声很大设太小反而会污染姿态估计。我一般设EKF2_GPS_YAW_NOISE为0.5-1.0具体看基线长度和实测航向波动。5. QGroundControl里的RTK状态监控与日志分析5.1 实时监控要看哪些指标QGC里看RTK状态最直接的地方是GPS状态栏会显示fix_type、卫星数、HDOP、VDOP。fix_type是6的时候就是固定解5是浮点解。但光看这个不够还要看差分龄期。差分龄期在QGC的MAVLink Inspector里看GPS_RTCM_DATA消息或者有些RTK模块会通过GPS_RAW_INT的dgps_age字段输出。我习惯在飞行界面上加几个自定义仪表一个显示fix_type一个显示差分龄期一个显示EKF2的GPS融合状态。这样一眼就能看出RTK是否正常工作。如果差分龄期突然变大说明数据链路有问题要赶紧检查基准站和移动站之间的通信。还有一个指标是EKF2_GPS_CHECK里的各项检查结果。QGC的Analyze工具里可以看estimator_status消息里面有gps_check_fail_flags。飞行前在地面就应该确认这个字段是0如果有非零位说明GPS数据质量不达标起飞后EKF2可能不融合GPS。5.2 飞行日志里的RTK分析飞行日志用Flight Review或者PlotJuggler分析。关键topic是vehicle_gps_position里面有fix_type、satellites_used、eph、epv等字段。eph是水平精度估计RTK固定解时应该在0.01-0.05之间epv是垂直精度固定解时在0.02-0.1之间。如果这两个值偏大说明RTK解算质量不高。还要看vehicle_local_position和vehicle_gps_position的位置对比。理想情况下两者应该高度重合如果偏差大说明EKF2没有充分融合GPS数据。可以用PlotJuggler把两个topic的x、y、z分别画出来对比看跟踪情况。差分龄期在日志里看vehicle_gps_position.dgps_age单位是毫秒。正常应该在2000ms以内超过5000ms就要警惕了。如果飞行中差分龄期频繁超标说明数据链路不稳定可能是电台功率不够、天线摆放位置不好、或者有干扰源。5.3 常见异常的处理RTK固定解一直出不来先检查基准站。基准站需要知道自己的精确坐标如果是自己架设的要么用已知点坐标要么让基准站先自己定位一段时间通常几分钟到十几分钟再开始发差分数据。基准站坐标不准移动站永远固定不了。固定解偶尔丢失然后恢复这个在城区或者树林附近比较常见因为卫星信号被遮挡。如果只是偶尔丢一下马上恢复问题不大。但如果频繁丢失要考虑换个飞行场地或者把RTK的降级策略调得更保守一些比如固定解丢失后先降到浮点解而不是直接掉到单点解。EKF2报GPS故障但GPS本身正常这种情况多半是EKF2的GPS检查太严格。可以适当放宽EKF2_GPS_CHECK里的阈值比如把水平精度要求从0.5放宽到1.0。但放宽之后要自己承担风险因为EKF2可能会融合质量较差的GPS数据。6. 实战飞行中的经验与避坑6.1 起飞前的检查清单每次飞RTK之前我都会走一遍检查清单。第一确认基准站已经锁定位置并且开始发差分数据这个在基准站的指示灯或者配套App里能看到。第二确认移动站的fix_type已经到6并且稳定至少30秒。第三确认差分龄期在正常范围。第四确认EKF2的GPS融合状态正常没有报错。还有一点容易被忽略RTK模块的温度漂移。有些模块冷启动时精度差需要预热几分钟。特别是冬天户外飞行模块温度低刚开始固定解可能不稳定。我一般会提前通电让模块预热等固定解稳定了再起飞。6.2 飞行中的注意事项飞行中要时刻关注RTK状态。如果固定解丢失飞机的位置控制会降级这时候要减小机动动作尽快让飞机回到RTK信号好的区域。如果差分龄期持续增大说明数据链路有问题要考虑缩短飞行距离或者检查电台。航线飞行时转弯处的RTK表现要特别注意。飞机倾斜转弯时RTK天线也会倾斜如果天线倾角太大接收卫星信号的能力会下降。有些飞控有天线倾角补偿功能但补偿能力有限。转弯半径太小或者倾角太大时RTK可能会短暂降级。注意RTK的高度精度通常比水平精度差因为垂直方向的卫星几何分布不如水平方向。如果任务对高度精度要求高可以考虑用RTK气压计融合或者加装激光测高模块。6.3 我踩过的几个典型坑第一个坑是基准站坐标设错。有一次我把基准站架在一个大概位置手动输入了坐标结果移动站一直浮点解。后来用基准站自己定位了15分钟用平均坐标固定解马上就出来了。基准站坐标误差超过1米移动站就很难固定。第二个坑是电台频率干扰。有一次飞行场地附近有同频段的设备差分数据丢包严重差分龄期一直在3000ms以上。换了电台频率之后恢复正常。所以飞行前最好扫一下频段避开干扰。第三个坑是固件版本不匹配。有一次飞控刷了1.14.0RTK模块的固件还是旧的结果MAVLink消息格式对不上GPS数据时有时无。后来把RTK模块固件也升级到匹配版本才解决。所以升级飞控固件时别忘了检查外设固件版本。6.4 不同场景下的RTK配置建议测绘任务对精度要求最高必须固定解差分龄期要控制在1秒以内。建议用双天线方案基准站架在已知点上飞行速度不要太快给RTK足够的解算时间。植保任务对精度要求相对低一些浮点解也能用但固定解更稳。植保机飞行高度低RTK天线容易受地面反射影响建议把天线架高一点远离机身。巡检任务介于两者之间固定解最好浮点解也能接受。巡检经常在复杂环境飞行RTK信号容易被遮挡建议设置合理的降级策略固定解丢失后先降浮点不要直接掉单点。7. 关于RTK和PX4配合的一些个人体会RTK这东西硬件买回来只是第一步真正花时间的是调试和验证。我见过太多人以为插上就能用结果折腾好几天。其实核心就几件事基准站坐标要准、数据链路要稳、固件版本要匹配、EKF2参数要合理。把这四件事做好RTK固定解就是水到渠成的事。PX4的EKF2是个很强大的滤波器但它需要正确的参数和高质量的传感器数据才能发挥出来。RTK提供了高精度的位置观测但EKF2怎么用这个观测取决于参数配置。我建议每次改EKF2参数后都做一次悬停测试和航线测试用日志验证效果不要凭感觉调。固件版本这块我的原则是不追新不守旧。新版本刚出来等一两个补丁再上旧版本如果稳定就不急着升。升级前一定备份参数升级后一定重新校准。这些看起来是小事但关键时刻能省很多麻烦。最后说一个容易被忽略的点RTK模块的固件也要关注。有些模块厂商会不定期发布固件更新修复bug或者改善性能。升级模块固件通常用厂商提供的工具升级前看好说明别刷错版本。我有一次刷错了模块固件模块直接变砖返厂修了两周。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

华润集团智能制造数字化转型【附全文阅读】 2026/9/28 4:36:22

华润集团智能制造数字化转型【附全文阅读】

本 87 页 PPT 为央企集团智能制造数字化转型实战参考材料,适配制造类数字化投标、转型规划编制及企业内训授课。对标国家智能制造相关政策,结合华润多元产业实践,输出一套转型方法论、参照标准以及十大发展方向,包含成熟度评价工具…

阅读更多 →
2026最新网站建设mp4背景避坑指南:3个核心指标定生死 2026/9/28 4:36:22

2026最新网站建设mp4背景避坑指南:3个核心指标定生死

2026最新网站建设mp4背景避坑指南:3个核心指标定生死 找建站公司怕被坑高价?别急,先看看你的首页视频背景是不是在拖后腿。很多老板以为多放个MP4显得大气,结果打开网站加载慢得像蜗牛,跳出率飙升,钱白花不说,客户还嫌你不专业。…

阅读更多 →
RTThread学习记录12——RTThread的启动过程解析,与裸机的区别 2026/9/28 4:36:22

RTThread学习记录12——RTThread的启动过程解析,与裸机的区别

一、前言我们知道RTThread默认保底有3条线程,main线程,空闲线程,还有最近学的定时器线程,我们也知道,RTThread默认有很多链表:定时器链表、挂起链表、就绪链表的链表数组这些,以及优先级位图&am…

阅读更多 →
蓝牙AOA生态抱团出海:避开内卷,同道者共拓海外定位新蓝海 2026/9/28 4:36:22

蓝牙AOA生态抱团出海:避开内卷,同道者共拓海外定位新蓝海

蓝牙AOA生态抱团出海:避开内卷,同道者共拓海外定位新蓝海 核芯物联 核芯物联科技 2026年9月27日 08:00 上海 ,时长01:36 软件开发解决方案开发智能终端开发的伙伴们加入核芯蓝牙AOA蓝牙AOA生态抱团出海:避开内卷,同道…

阅读更多 →
工业遥控器定制周期全解析:从需求沟通到量产的流程与周期 2026/9/28 4:36:22

工业遥控器定制周期全解析:从需求沟通到量产的流程与周期

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
【2027精品大数据毕设】基于大数据的携程平台城市餐饮数据可视化分析(附源码资料)数据分析_毕设指导_数据挖掘_Hadoop_SPark 2026/9/28 4:36:16

【2027精品大数据毕设】基于大数据的携程平台城市餐饮数据可视化分析(附源码资料)数据分析_毕设指导_数据挖掘_Hadoop_SPark

💖💖作者:计算机毕业设计江挽 💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉