ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

山区GPS定位误差分析与优化:从信号质量评估到多路径抑制

山区GPS定位误差分析与优化:从信号质量评估到多路径抑制 同样是GPS模块在开阔地里误差能压到3米以内一进山区就飘到三四十米有时候轨迹直接穿山而过。这事儿我刚做的时候也觉得是信号不好四个字就能解释真去拆信号链路才发现山区GPS问题根本不是单一原因卫星几何分布、多路径、对流层残余误差、接收机选型、时间同步每个环节都可能成为定位误差的放大器。这篇总结是我在山区环境做信号分析与定位优化的完整记录覆盖了信号采集、质量评估、误差分解、优化手段、时间同步和嵌入式集成几个层面适合正在做车载测试、无人机定位、手持设备开发或者传感器融合的同行参考哪怕你只是需要在山区用手机记录轨迹里面关于信号质量判断和工具使用的部分也能直接帮上忙。1. 进山之前先搞清楚GPS信号到底死在哪个环节1.1 卫星几何分布山谷两侧的山体吃掉了你的GDOPGPS定位的基本原理是测距交会接收机至少同时看到4颗卫星才能解算出三维位置和时间。但看到4颗和能定位是两回事更关键的是这4颗卫星在天空中的分布形状。如果4颗卫星几乎挤在同一片天空它们对位置解的约束方向高度重合就会导致定位结果对测距误差特别敏感——这就是几何精度因子GDOP的直观含义。在开阔地可观测卫星通常有20多颗卫星分布在整个半球GDOP能低到1.5左右测距误差被放大的倍数很小。但在山区尤其是深切河谷或者峡谷路段两侧山脊直接把低仰角卫星全部遮死你能看到的只有头顶上窄窄一条天空缝隙里的卫星。如果这些卫星恰好又集中在同一方向GDOP可能飙升到5以上甚至到两位数。GDOP意味着什么它等于各项误差的放大倍率。30米的多路径误差遇上GDOP6最终位置误差直接翻到180米量级这基本等于轨迹彻底不可用。我见过不少项目组在山谷里测试只看卫星颗数——显示12颗觉得信号应该没问题。但打开卫星分布图一看这12颗有10颗集中在两个方位真正的有效几何约束非常差。颗数管能不能定位DOP管定位准不准这两个指标必须一起看缺一个都会误判。1.2 多路径效应山体回波比直射信号更难缠GPS信号从卫星传到地面除了直达路径还会被山体、水面、道路护栏甚至车厢顶反射后到达接收机。反射信号走的路径更长导致码相位和载波相位都产生偏差这就是多路径效应。山区环境里多路径有它的特殊性。开阔地主要是地面反射信号从下方来大部分天线有扼流圈或地面平面设计去抑制低仰角信号问题不大。山区不一样山体反射的来向和高度角非常随机可能是侧面来的、上方来的而且反射体距离远反射信号和直达信号之间的延迟差大伪距测量偏差可以达到10~30米动态情况下还会剧烈变化。多路径一个最阴险的特点就是它不好通过长时间平均来消除。热噪声是零均值的平均10秒就能压制下去多路径是非零均值偏差你站在原地不动它可能一直固定偏个几米甚至十几米怎么平均都消不掉。这就是为什么很多人用手机GPS在山区道路上停车位置会稳定地偏在路一侧而且偏的方向和大小还随着车头朝向在变——因为反射路径跟着车身姿态换。1.3 对流层与电离层延迟海拔变化让误差模型失效对流层延迟的量级在湿分量上可达几米到十几米它和大气温度、湿度、气压直接相关核心特征是高程越高大气越稀薄延迟越小。GPS接收机内部的模型通常以海平面标准大气为基准做投影修正这在平原地区问题不大但在山区几百米甚至上千米的高程变化会让模型修正量和实际偏差出现系统性差异。电离层延迟误差在天顶方向大约2~10米在低仰角方向能放大到几十米。它的强度和太阳活动周期、当地时间、纬度都有关系正午前后最强夜间会弱很多。双频接收机通过L1和L5两个频率的载波相位差可以直接估计并消除电离层延迟这也是为什么在山区场景我强烈建议至少上双频设备。对于单频接收机还有个实际问题标准电离层模型参数通过导航电文下发有一定更新周期山区海拔陡变的情况下这个残余误差很难准确建模也没有规律可循。它和多路径叠加在一起就是你看到的位置跳变。2. 用数据说话信号采集与质量评估的完整链路2.1 怎么把GPS数据完整取出来做信号分析的前提是拿到原始观测数据。很多人第一步就没走对拿个导航软件看个经纬度就开始分析这等于拿着结论找原因。正确做法是先把原始NMEA语句或接收机厂商的二进制观测数据完整记录下来。我用过几条路成熟度从低到高手机场景Android上的GPS工具箱是老牌工具能实时显示卫星分布、C/N0、DOP值和经纬度也能记录轨迹。它导出的KML文件适合快速看轨迹质量但拿来做精细信号分析不够因为NMEA原始语句在部分版本里是可以直接记录日志导出的导出后在电脑上逐行解析最靠谱。专业场景u-blox接收机配u-center软件可以记录完整的UBX二进制协议数据包含每颗卫星的C/N0、伪距、载波相位、多普勒频移信息密度比NMEA高一个量级是分析多路径和信号遮挡的首选。嵌入式场景如果再接STM32一般直接通过串口拿NMEA或者厂商私有协议TXD/RXD直接接记录到MicroSD卡或者通过ESP32发到上位机。无论哪种方式我都建议记录日志时把时间戳一起打上最好精确到毫秒。后续分析中你要把GPS轨迹和其他传感器数据对齐时间戳是生命线丢掉时间戳的数据基本就是废数据。2.2 SNR/C/N0到底怎么看GPS信号强度行业标准术语叫载噪比C/N0单位是dBHz。很多手机App界面显示的是SNR实际上读的也是C/N0。它是接收机对某颗卫星信号的解调质量打分直接决定了测距精度和锁定稳定性。我常用的经验区间如下C/N0范围信号状态对定位的影响45 dBHz以上很好测距噪声小伪距精度高适合要求严格的采集35~45 dBHz正常常规定位可用水平误差在正常范围内28~35 dBHz弱信号定位可以维持但误差开始明显增大容易跳点20~28 dBHz临界频繁失锁重捕位置会出现大幅跳变20 dBHz以下失锁该卫星基本不可用进入半死状态在山区峡谷里我见过C/N0从46掉到25再跳回40的剧烈波动。如果只看最终定位结果你只能看到点位在跳根本不知道是哪颗卫星在拖后腿。把C/N0按卫星逐颗打出来配合卫星高度角看能找到绝大多数问题的源头。抓C/N0数据有个技巧u-center里直接看接收机状态图能直观看到每颗卫星的颜色和信号强度如果是自己写代码解析NMEA的$GPGSV和$GBGSV语句里带每颗卫星的C/N0注意这个值是dBHz的整数且只在有信号时输出缺失值就说明这颗卫星已经不可用了。2.3 从轨迹数据里反推信号质量的几个土办法不是所有人都有u-center和专业接收机有时候只有手机里的一段轨迹文件怎么判断信号质量有几个不依赖专业工具的土办法实用度极高。第一个是速度向量检查。把轨迹数据按时间间隔差分得到速度正常行驶状态下相邻点的速度变化是有限的按车辆动力学约束基本不可能出现1秒内速度突变20m/s的情况。如果轨迹上频繁出现这类跳变基本可以断定这一段信号质量很差。第二个是轨迹发散度检查。同一路段来回走两次或者停在原地静止1分钟把静止时候的点画出来。正常情况静止点应该聚成一团半径不超过2~3米如果静止点撒成一个10米以上的圆说明多路径或噪声严重。第三个是航向角突变检查。还是在固定路线或直道上GPS输出的航向角应该平稳变化。如果在直道上航向频繁跳转90度以上那是位置解在噪声区间里反复跳动。这些土办法在野外没有专业设备的时候特别有用。我自己的习惯是两个结合专业设备做预处理评估手机App做现场快速验证两边的结论对得上才继续后面的采集任务。3. 定位误差解析分清哪些误差能优化哪些不能3.1 DOP值计算与实例DOP的本质是把卫星几何构型对位置解的放大效应量化。工程上最常用的几个GDOP三维位置时间的综合放大倍数PDOP三维位置放大倍数HDOP水平位置放大倍数VDOP高程放大倍数这几个值之间满足关系PDOP² HDOP² VDOP²GDOP² PDOP² TDOP²。我拿一次实测数据举例。在某山谷折返路段接收机看着8颗卫星但两侧山脊高度角约30度实际可用卫星主要集中在天顶附近。软件输出的各项指标如下PDOP4.8HDOP2.6VDOP4.0。估算一下定位精度如果伪距测量误差含多路径是10米HDOP2.6意味着水平位置误差约26米VDOP4.0意味着高程误差约40米。这组数据就能解释为什么这段路的轨迹会偏出路基很远。反过来看如果在开阔地HDOP能到1.0以下同样的10米伪距误差水平误差压缩到10米以内。这个对比直接说明了山区定位优化的第一优先级改善卫星可见几何。具体手段后面细说。3.2 高程误差为什么在山区特别突出GPS的高程解算精度天然比水平差这是几何结构决定的。卫星基本都在头顶方向对水平位置约束很充分对高程的方向余弦很小。VDOP一般约为HDOP的1.5倍山区VDOP常常上到5以上高程误差被进一步放大。山区还有另一个麻烦高程基准。GPS输出的椭球高是WGS-84椭球面到接收机的距离而工程上用的海拔高是以大地水准面为基准的两者之间有起伏通常需要EGM96或者更高精度的大地水准面模型来转换。山区的大地水准面起伏比平原剧烈如果拿GPS的椭球高直接当海拔用在不做模型修正的情况下几十米的误差都不奇怪。做山区测绘或者海拔监测的哥们儿这个坑基本都踩过。所以高程问题在山区往往是三重叠加VDOP大、椭球高转海拔高偏差、多路径对载波相位的干扰。GPS官方能力边界在那里摆着不要期待单点在山区高程做到厘米级。3.3 误差来源的权重分解做一次完整的误差分析我习惯把定位误差拆成下面这个表误差源典型量级开阔地山区放大情况能否优化卫星钟差2~3米不变无可优化接收机已修正轨道误差1~2米不变可用星历改进电离层延迟2~10米略有增强双频可消除对流层延迟2~15米高海拔处系统偏差大模型实测气象修正多路径1~5米10~30米天线选型布局可优化接收机噪声0.3~1米弱信号区变大选高质量接收机几何放大DOP1.5~24~10多星座位置选择可优化这个表做完优化优先级就出来了山区场景里多路径和几何放大是最主要的两个误差来源而且都有可操作空间。把这两个问题解决掉单点定位精度能有一个数量级的提升。4. 定位优化的实操方案从硬件到算法4.1 天线选型和放置位置决定信号质量的上限GPS天线的选择是山区定位优化里性价比最高的一步很多人把注意力全放在接收机或者算法上忽略了天线才是信号进入系统的第一个环节。内置陶瓷天线灵敏度一般在山谷里基本只能收到天顶方向的卫星稍微偏斜的信号就被衰减了。我建议山区作业至少用有源外置天线增益在25~35dB之间天线本身带滤波和低噪声放大器能把弱信号提上来对抗线缆损耗。如果对防水和抗振有要求选带磁吸底座或者螺栓固定的平板天线实测效果比贴片天线强很多。天线放置位置的经验在山区尤其重要几条我在野外验证过的原则天线尽量放高。车顶上比放在引擎盖上平均C/N0能高5~8dBHz原因很简单抬高一点就多看到几颗低仰角卫星。天线放在无遮挡的顶部中央远离金属物。车内的后视镜、雨刮器、车顶行李架都是反射源别让天线贴在金属件旁边。对移动测量来说确保天线接收面的上半球视野尽量开阔。车顶正中是所有位置里对四方向遮挡最均衡的。如果实在只能放在车内放前挡风玻璃下方玻璃对GPS信号损耗大约3~6dB属于可以接受的代价但要注意前挡贴了金属防爆膜的话信号衰减会巨大基本废了。4.2 多频多星座接收机的选择接收机选型直接决定了可用的卫星数量。单GPS模块在开阔地能见12~16颗GPS卫星进山区打5折可用卫星所剩无几。多星座接收机把GPS、BDS北斗、GLONASS、Galileo加在一起在开阔地轻松拉满30颗以上山区即便被遮挡也能凑出十几颗。多频是另一层优化。L1/L5双频接收机可以通过频率不同的观测量直接估计并消除电离层延迟这在正午或太阳活动剧烈的时段对定位精度的提升明显。我的建议是预算允许就上双频多星座比如u-blox F9P或者同级产品支持RTK时精度能到厘米级在开阔地作为基准站或者流动站都够用。但选型不能只看参数。山区作业对接收机动态范围和弱信号跟踪能力要求高同样标称灵敏度实际弱信号表现差异很大。我实测过几款价格差3倍弱信号下跟踪卫星数和C/N0表现差了一倍。别迷信参数表找靠谱渠道拿样机实测数据说话。4.3 高程约束、平滑滤波与RTK差分硬件和天线解决信号收得好不好的问题但多路径这类非高斯误差还得靠算法兜底。最简单有效的是约束和平滑。如果已知载体在道路上运动可以施加高程约束——用数字高程模型或者道路已知高程把解算结果向合理的高程面拉拢这样能把VDOP放大带来的高程漂移压住同时因为高程和水平在解算里是耦合的约束高程也能顺带稳定水平位置。对车载场景这个步骤实现成本低、效果立竿见影。平滑滤波方面卡尔曼滤波是标配。状态量取位置、速度和加速度观测用GPS位置和速度配合IMU做预测。在GPS信号差的时段滤波器靠运动模型外推能撑住几秒到十几秒的稳定输出。不过要提醒一点如果直接把待优化的GPS位置喂给滤波器GPS噪声已经混入状态里了后面很难干净分离。正确做法是把伪距、载波相位这些原始观测值作为滤波器的输入让滤波器自己解算位置这样多路径噪声可以被模型吸收不会被错误信任。RTK差分在山区的作用要分场景看。开阔或半开阔路段基站差分可以把信号误差里与距离相关的部分大幅压缩定位精度从米级提升到厘米级对自动驾驶测绘这类场景帮助巨大。但在深谷路段流动站难以同时看到足够的共同卫星RTK固定解经常丢失退化成float甚至单点定位这时候RTK反而成了负担。我的经验是RTK方案必须和惯性导航组合用IMU航位推算衔接固定解丢失的区间否则数据连续性很难保证。4.4 与camera/lidar/imu融合时的质量评估多传感器融合系统里GPS不只是输出一个点位置它同时承担了绝对基准和长漂移抑制的角色。融合系统对GPS数据质量非常敏感不能不加甄别地全盘接受GPS解。我现在做融合时会针对四类传感器各做一套专属质量评估指标再按权重融合传感器关键质量指标评估要点GPS卫星数、PDOP/HDOP、C/N0、RTK固定状态、位置残差卫星数少于8、C/N0均值低于32dBHz、PDOP高于4时应降权IMU零偏稳定性、温漂、加速度方差通电后初始对准阶段数据不可用LiDAR点云帧率、反射强度均值、ICP匹配残差帧率骤降或匹配残差突增说明退化环境Camera曝光时间、清晰度评分、光流一致度逆光、运动模糊时特征不稳定在融合算法权重设计里GPS在开阔路段给一个较高的位置观测权值在山区识别到信号质量恶化时自动把权值降下来主要靠IMU和LiDAR维持位姿。这个动态权值切换是整个融合系统鲁棒性的关键比单独调某个滤波参数的效果明显得多。质量评估的实时性和延迟也要注意。GPS输出的位置本身有延迟典型接收机输出频率10Hz但内部处理延迟可能几十到几百毫秒。融合时必须做时间对齐把IMU积分到GPS观测时间戳再更新否则差几百毫秒车辆高速运动下直接引入好几米的系统偏差。5. 时间同步GPS授时被忽视的坑5.1 chronyc锁定GPS时间同步的完整配置多传感器融合对时间同步的要求往往是各家时间戳必须在同一时间基准上。GPS输出自带UTC时间但它是一条异步串口消息接收机和上位机之间通信延迟不确定直接用串口消息里的UTC时间校正系统时钟精度只能到几十毫秒根本喂不饱紧耦合融合。GPS模块通常还有一个PPS每秒脉冲引脚其上升沿与整秒时刻对齐精度在几十纳秒量级。用PPS作为硬件时钟基准配合串口输出的UTC时间做整秒对齐系统时间精度能稳定做到微秒级这才是融合系统该有的时间源配置。Linux系统下我常用chrony做时间同步。在/etc/chrony/chrony.conf里加这样一段refclock SHM 0 offset 0.5 delay 0.2 refid GPS precision 1e-9 poll 3 refclock PPS /dev/pps0 refid PPS precision 1e-9 poll 3第一行里SHM 0对应gpsd的共享内存接口offset 0.5表示串口消息和PPS脉冲之间通常有约0.5秒的对齐偏置这个值要根据实际设备情况微调调不对会直接导致系统时间出现永久性固定偏差。第二行PPS行是直接用内核PPS驱动的设备节点。配置完重启chrony查看状态chronyc sources -v chronyc trackingsources里如果能看到GPS和PPS都进入状态并且sourcestats里的offset稳定在纳秒或微秒量级说明时间同步已经建立。tracking里看System time值如果长期在微秒量级跳动证明PPS已经有效接管了系统时钟。5.2 时间同步效果的验证每次系统配置完我都会做一次时间闭环验证把接收机的PPS接回一个数据采集IO同时在系统里记录时间戳连续采集10秒计算相邻PPS时间戳的间隔抖动。正常情况抖动应远小于1毫秒如果出现几十毫秒的跳变基本可以断定PPS没有真正驱动到系统时钟多半是refclock配置里的offset偏差或者驱动没有加载。时间同步这个环节特别容易在实验室一切正常一进山就现原形的场景里踩坑。山区的弱信号环境下GPS可能偶发丢帧串口UTC时间更新延迟变大如果系统只依赖串口消息做时间同步时钟会慢慢漂移。PPS的好处是它和定位解算相对独立只要接收机还能输出脉冲时间基准就不会断。这个特性在融合系统里非常重要因为时间比位置更基础位置可以断时间不能乱。6. 嵌入式场景STM32接GPS的实战记录6.1 硬件连接与供电系统设计STM32和GPS模块的硬件连接看起来很简单——串口对接就行但实际坑不少。GPS模块常见电平是3.3V但有些老模块是5V。STM32的GPIO是3.3V如果直接拿5V模块去怼STM32的串口引脚轻则数据乱码重则烧引脚。最稳妥的做法是中间加电平转换芯片哪怕判断模块标称3.3V也建议确认一下参考设计。波特率的坑更隐蔽。GPS模块出厂默认常见9600或者115200STM32的UART外设配置必须一致。很多人在这上面吃过亏模块输出NMEA数据正常上电后串口助手能看到数据但是STM32里配错波特率收进来全是乱码。我建议初始化时连续解析几帧nmea头验证波特率对了再进入主循环。供电是另一个容易被忽视的地方。GPS接收模块对电源纹波敏感大功率设备比如4G模块、电机和GPS共用电源时纹波干扰会直接反映到C/N0上。我实测过电机启动瞬间GPS的C/N0普遍掉4~6dBHz就是共地干扰和电源跌落导致的。解决方法是GPS模块单独用一路低噪声LDO供电模拟地和数字地单点连接必要时加磁珠隔离。6.2 NMEA解析的坑STM32上解析NMEA可能是我遇到的坑最多的地方之一。网上搜到的解析代码一大堆但真到山里去跑各种边缘情况全冒出来了。第一个是缓冲区截断问题。NMEA语句最长82个字符但多星座接收机输出的语句拼接起来一次串口中断可能收到半条语句或者好几条语句连在一起。简单粗暴的做法是中断服务函数里只收字节流攒到环形缓冲区里主循环再按行分割。第二个是语句类型选择问题。老代码只认$GPGGA现在多星座接收机输出的是$GNGGAGGA前面的Talker ID从GP变成了GN意味着多系统融合解。继续用旧解析逻辑去匹配$GPGGA会解析不到数据。正确做法是按语句类型判断不要按Talker ID判断$GNGGA、$GPGGA、$BDGGA都应当纳入处理。第三个是定位状态标志的坑。$GNGGA语句里有定位质量标识0表示未定位1表示单点定位2表示差分定位。很多人只解析经纬度不看这个标志导致在隧道里或者严重遮挡时系统用上一次的无效定位数据继续输出最新位置这比没有定位数据更危险。融合系统里这个标志就是GPS质量评估最基础的一环。给个简单的字符串提取关键字段的参考逻辑STM32上常见做法是先用逗号分割再按字段位置取值比如GGA语句下标// 以 $GNGGA,092751.000,3121.1143,N,12134.9872,E,1,8,1.0,23.5,M,... 为例 // 分割后: 0$GNGGA 1UTC时间 2纬度 3N/S 4经度 5E/W // 6定位质量 7卫星数 8HDOP 9海拔 if (strstr(buffer, $GNGGA) ! NULL) { char *p strtok(buffer, ,); int field 0; while (p ! NULL) { switch(field) { case 6: fix_quality atoi(p); break; case 7: sat_num atoi(p); break; case 8: hdop atof(p); break; case 9: altitude atof(p); break; } p strtok(NULL, ,); field; } }6.3 低功耗场景的配置技巧手持设备或长期在外的采集节点对功耗敏感GPS模块的连续定位模式功耗通常在几十毫安如果是电池供电这是大头。很多u-blox模块支持不同功耗模式全功率、节能、备份模式。在山区环境可以根据载体的运动状态动态切换静止时进入备份模式用IMU判断运动检测到移动再唤醒GPS重新定位。重新定位要经历冷启动首次定位时间可能几十秒所以在需要连续采集的场景下我一般不开这个功能功耗和应用场景要平衡着看。7. 山区实测案例复盘一次真实的数据采集任务7.1 实验设计与设备配置某次山区道路测量任务路线全长约9公里海拔在300米到900米之间来回起伏中间经过两段深谷和一段半边靠山的弯道区。目标是把这段路的轨迹和道路边界数据采集回来用于地图标注。设备清单u-blox F9P接收机有源外置天线吸在车顶正中数据输出配置成5Hz同时输出UBX和NMEA。STM32板子做数据记录时间用PPS同步到系统。另外放了一部手机用GPS工具箱同步记录轨迹做对比验证。出发前先在开阔地对设备做了静态校验静止10分钟点位散布半径约1.5米说明设备和天线工作正常。这个基线校验很重要否则后面的数据质量退化就分不清是环境还是设备的问题。7.2 数据结果与逐段分析整条路线数据回放之后分了三段第一段是半开阔丘陵路段卫星数在18~24颗之间PDOP在1.8~2.5之间C/N0均值约42dBHz。这段轨迹和实际道路贴合很好横向偏差基本在1米以内。第二段是深谷路段两侧山脊高度角超过40度卫星数跌到8~12颗PDOP直接跳到4.5以上C/N0均值掉到32dBHz部分低仰角卫星低至25dBHz。轨迹图上出现明显锯齿形抖动位置在车道上左右漂移最严重时横向偏差约15米。这正好对应前面分析的几何放大和多路径叠加的效果。第三段是盘山弯道道路一侧是山体另一侧是空旷谷地。有意思的是靠山一侧行驶时GPS误差明显大于靠谷地一侧C/N0也低4~6dBHz。这就是典型的半边遮挡多路径天线虽然放在车顶但山体方向来的反射信号仍然大量进入天线旁瓣。7.3 踩坑记录从入门到放弃之间的大坑这次任务踩的坑足够写一部GPS从入门到放弃了挑几个最有代表性的天线吸盘因为车速快颠簸松了后半程天线偏到车顶边缘多路径明显加重。后来我都是每次停车检查一下吸盘紧固程度这个动作三十秒省回来的数据排查时间可能是半天。接收机的NMEA和UBX输出优先级配置没调好记录文件里UBX报文缺失严重只能用NMEA做位置解算精度打了折扣。正确的配置是让接收机在输出UBX的同时保证10Hz的定位解算NMEA只是辅助校验。STM32记录端的SD卡写入延迟导致偶尔丢帧原因是FATFS写入时用了逐字节写入改成块写入后丢帧问题消失。这也是嵌入式采集系统的经典问题日志写入不能阻塞采集流程。时间同步配置里offset参数一开始没调准导致chrony跟踪不上PPS系统时间一直在微秒和毫秒级之间跳。最后重新摸底PPS和串口消息的时序关系把offset调准后问题解决。7.4 优化前后的量化对比用同一段数据我做了纯单点解算和优化后的对比。优化手段包括多星座解算GPSBDSGalileo、双频电离层修正、高程约束、动态观测权值调整。在同一条深谷路段优化后轨迹的水平误差统计从均值14米降到了4.2米最大偏差从31米降到11米。看数据时最直观的感受是轨迹不再穿山拐弯处的路径切弯也干净了。这套流程我现在每次进山都会先走一遍开阔地做基线验证、按路段记录信号指标、分析C/N0和DOP退化位置、针对性调整天线和接收机配置。本来要反复跑很多次的采集任务现在基本一次就能拿到干净数据。最后再提醒一句GPS在山区不是转个方向就能好那么玄学所有误差源都在NMEA那几行字符串里写得明明白白把数据捞出来、拆开、定位到具体路段和卫星优化方向自然就浮出水面了。
返回列表