ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

ArduPilot RTK 高精度定位实战:如何让无人机悬停稳到厘米级

ArduPilot RTK 高精度定位实战:如何让无人机悬停稳到厘米级 ArduPilot RTK 高精度定位实战如何让无人机悬停稳到厘米级【免费下载链接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilotArduPilot 是一套开源自动驾驶系统配合 RTK实时动态定位基站把改正数发给移动站、让移动站把位置锁到厘米级与 EKF扩展卡尔曼滤波多传感器融合可以把无人机的定位从米级提升到厘米级。下面讲清楚 RTK 高精度定位的原理、配置方法和排障思路。为什么它没法稳定悬停在 1 米内飞过多旋翼的人都碰过这个场景进 POSHOLD飞机在 1~2 米的圈里慢慢晃来阵风地面站的十字光标画个小椭圆。很多人第一反应是去调 PID但十有八九问题出在定位源头。给位置控制器喂位置的是 EKFExtended Kalman Filter扩展卡尔曼滤波说白了就是用多个带噪声的传感器读数推断最可信位置的一套数学方法它融合三个来源GPS、IMU惯性测量单元、气压计。GPS 本身有 2~5 米误差标尺在抖控制器调得再漂亮也是白搭。还有个更隐蔽的问题漂移。IMU 靠加速度推算位置误差像滚雪球一样累积几秒就能偏出去。没有足够准的 GPS 不断拽回来悬停就变成悬着飘。所以答案不复杂把标尺做准RTK再把各传感器的账算清楚EKF。定位精度等级速览GPS 定位是分等级的源码里就在 libraries/AP_GPS/ 的 AP_GPS_FixType.h。用大白话串一遍单点定位SPP只靠卫星伪距解算自己的位置。卫星轨道和钟都有误差落在 2~5 米。DGPS差分 GPS已知坐标的基站算出自己测量的误差再广播移动站减掉它能到 1~2 米。RTK思路变了——不再只测信号走了多远而是数载波相位卫星信号波形的第几个周期。一个周期只有几厘米问题在于不知道总共差了多少个整周期。这个整数模糊度没解出来时叫浮点解十几到几十厘米解出来叫固定解1~2 厘米。等级误差量级多久稳定适合干什么单点 3D2~5 米即时普通飞行、娱乐DGPS1~2 米数十秒低空巡检、测绘RTK 浮点20~50 厘米收敛后数秒精准降落、巡检RTK 固定1~2 厘米数秒到数分钟厘米级作业、精准降落一个现场细节浮点收敛到固定的那一刻地面站里飞机位置会啪地跳几十厘米。别慌那不是漂是模糊度解出来的瞬间位置从大概在这换成就是这。厘米级是怎么发生的基站与移动站的数据链路 把基站想象成整个定位网的坐标参照物。它架在已知精确坐标的地方测量控制点、已知坐标的固定台接收和移动站一模一样的卫星。既然我站在哪是精确已知的它就能反推出每颗卫星量出来的距离错了多少。这些改正打包成 RTCM3 报文行业通用的差分改正广播格式经数传链路发给移动站。移动站拿它去解载波相位的整数模糊度解开了位置就锁到厘米级。基站到移动站这条直线叫基线它决定了改正的可信度。基线越短越稳一般十几公里内可用再远收敛就变难。ArduPilot 里基站/移动站的驱动逻辑在 libraries/AP_GPS/RTCM3 报文解析看 RTCM3_Parser.cpp 就能明白数据是怎么进来的。顺带提醒两件事基站天线要开阔数传链路要稳。链路掉几秒移动站模糊度可能丢得重新收敛那段时间飞机又变回米级精度。EKF 调参前先懂原理多个传感器交叉对账有了厘米级量测不等于飞机每时每刻都稳——GPS 一个周期才刷新几次中间靠谁IMU。垂直方向靠气压计兜底。三者节拍不同、误差特性不同EKF 就是那个交叉核对口供的人预测两次量测之间先用 IMU 推算飞机现在应该在哪儿同时估计这一步可能推偏了多少。核对GPS、气压数据到了拿预测和量测比。对得上信心增加对不上按预先标定的噪声大小判断谁更可信往谁那边修正。输出给出综合后的最可能位置还附带一个我有多自信的估计——这套不确定性正是系统决定GPS 要不要信的依据。ArduPilot 的三代 EKF 实现在 libraries/AP_NavEKF3/。旁边还备着 GSF高斯和滤波估航向角时并行跑多个滤波器加权投票免得罗盘抽风一次就让航向跳变。也正因为如此调 EKF 不是凭感觉改数EK2_GPS_TYPE 决定GPS 的哪部分当证人位置、速度或都用EK2_GLITCH_RAD 决定GPS 和滤波器对不上多少就报警说它漂了。调的是你给每个证人的可信度不是滤波器的智商。10 分钟跑起来RTK 最小配置步骤假设你手上有 u-blox F9P/M9N 一类接收机和一台基站最小参数就几行。基站端GPS_TYPE 17 # 17 u-blox RTK 基站移动站端GPS_TYPE 18 # 18 u-blox RTK 移动站 GPS_INJECT_TO 1 # 把基站改正数据发给移动站 GPS_AUTO_CONFIG 2大白话17 告诉 ArduPilot这颗 GPS 是基站把改正发出去18 告诉它这是移动站等着收改正。配置完上电等移动站锁定后地面站里 fix type 应该显示 6RTK 固定。首次使用建议先用 WebTools 的 GPS 配置页把接收机自动配置跑一遍再飞。起飞前再看两个数移动站的基线年龄改正的时延应稳定在几百毫秒以内EKF 状态页里 GPS 一路绿灯、没有报 bad 标志说明滤波器真的在用这颗 GPS而不是嘴上说在用。定位漂移时的快速排障自检 出问题先别动 EKF 参数按这张表过一遍看到什么先怀疑谁先动手做什么一直浮点、就是不定基站自身坐标不准、链路丢包核对基站坐标查数传信号强度缩短距离收敛瞬间位置跳好几米基线太长、改正过时缩短基线提高数传带宽与稳定性固定了但悬停仍飘EKF 没在用这颗 GPS查 EKF 状态页核对 EK2_GPS_TYPE 与 glitch 门限固定一阵又掉回浮点多路径反射、链路受扰挪天线到开阔处避开金属反射面EKF 报 GPS 漂移卫星几何差HDOP 高HDOP精密度稀释度卫星几何对定位影响的数越低越好大于 2.5 就等卫星换布别硬飞边界在哪接下来看什么RTK 不是万能的它依赖基站在覆盖范围内通常十几公里、天线视野开阔、链路可靠。城市峡谷或树荫下链路一断精度立刻退回单点任务规划里要留好退路。值得留意的方向有两个多频段接收机让模糊度解得更快GNSS 加视觉融合在卫星失效时兜底——这两块在 ArduPilot 生态里都在持续演进。想深挖实现从 libraries/AP_GPS/ 和 libraries/AP_NavEKF3/ 两个目录读起最顺。【免费下载链接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表