RTK 差分定位的基本原理及漂移问题介绍

1. 引言

在户外空旷、卫星信号良好的条件下,实时动态定位(Real-Time Kinematic,简称 RTK)的定位精度通常可以达到厘米级,这也是行业对 RTK 的普遍认知与期望。然而在实际使用中,当环境发生变化------例如城市峡谷、树荫遮挡、桥梁下方或电磁干扰较强的区域------RTK 依然会出现精度下降、定位漂移甚至完全失锁等问题。这些"翻车"场景往往让初次接触 RTK 的开发者感到困惑:为什么公认厘米级的 RTK,在有些情况下却不稳定?

本文将从差分定位的基本原理出发,介绍 RTK 的核心组成与工作机制,并重点分析导致漂移、失锁等问题的深层原因及应对措施,帮助读者理解 RTK 的优势与边界,在工程实践中更好地规避和解决这些问题。

2. 从单点定位到差分定位

2.1 GNSS 单点定位的局限性

普通 GNSS 接收机通过测量信号传播时间得到卫星与接收机的距离(伪距),伪距中叠加了卫星钟差、电离层/对流层延迟、接收机钟差及多路径效应等误差,导致单点定位精度通常在 2--10 米量级,无法满足高精度场景需求。

2.2 差分 GNSS(DGNSS)的思路

差分 GNSS 的核心思想是:在已知准确坐标的位置架设一台基准站,它在接收卫星信号的同时计算出"应该接收到的信号"与"实际接收到的信号"之间的差异,再将这个差异通过通信链路播发给附近的流动站,流动站根据差异修正自己的定位结果,从而消除大部分公共误差。DGNSS 通常能达到亚米级精度。

3. RTK 的核心组成

一个典型的 RTK 系统由三部分组成:

  • 基准站(Base Station):架设在已知精确坐标点上,连续接收 GNSS 信号并计算观测值与理论值之间的校正量。
  • 流动站(Rover Station):安装在待定位目标上,同时接收卫星信号和来自基准站的差分改正数据,实时解算出高精度坐标。
  • 数据链路(Communication Link):将基准站的观测数据或改正数传递给流动站,常见方式包括无线电、4G/5G 网络、Wi-Fi 等。

有些高级系统还会使用多个基准站组成网络 RTK(Network RTK,NRTK),通过多个基准站联合内插生成虚拟参考站(VRS),在更大范围内提供均匀的高精度服务。

4. RTK 工作原理详解

4.1 观测量:载波相位

RTK 不依赖伪距的绝对精度,而是主要使用载波相位观测量。载波相位测量的是卫星信号到达接收机时其正弦波相位的小数部分,并能通过连续跟踪来累积整周数。载波相位测量的精度远高于伪距,通常可以达到毫米级,但存在一个"整周模糊度"的问题(即不知道初始时刻信号传播了多少个整周期)。

4.2 整周模糊度解算(Ambiguity Resolution)

载波相位虽然精度高,但接收机开机时并不知道自己与卫星之间隔着多少个整周期,这就是 4.1 结尾提到的"整周模糊度"问题。RTK 的核心挑战就是把每个卫星-接收机对的模糊度确定下来,一旦成功,定位精度就能从米级跃升到厘米级。常用的解算方法是 LAMBDA 算法 ,通过整数最小二乘搜索将模糊度固定为整数。当模糊度成功固定时,解算结果称为固定解(Fixed Solution) ,精度可达厘米级;若由于信号遮挡、多路径等原因无法可靠固定,就只能得到精度较低的浮点解(Float Solution),通常在分米到亚米量级。

4.3 双差观测:为模糊度解算消除误差

原始载波相位观测量中混杂着卫星钟差、接收机钟差和大气延迟等公共误差,直接用于模糊度解算会很困难。RTK 的做法是构造双差观测:先用基准站和流动站的载波相位做一次"单差"消去卫星钟差,再对两颗不同卫星的单差做"双差"消去接收机钟差。经过双差处理后,方程中只剩相对位置和整周模糊度项,为 4.2 的 LAMBDA 算法提供了干净的数学模型基础。

4.4 实时解算与动态跟踪

基准站和流动站之间一般以 1 Hz(每秒一次)或更高频率交换数据。流动站利用扩展卡尔曼滤波(EKF)等方法进行实时状态估计,不断跟踪位置、速度和载体姿态,并在卫星切换、信号遮挡等情况下重新初始化模糊度。RTK 的关键指标包括初始化时间和固定率,优秀的设备可在几秒内锁定整周模糊度。

5. 误差来源与应对措施

即使采用 RTK,残余误差依然存在。常见的主要误差与应对措施:

  • 多路径效应:信号被建筑物或水面反射后进入接收机,引起延迟。通常通过天线设计(扼流圈天线)、选址和后处理滤波算法抑制。
  • 电离层延迟:与大气电子密度相关,残余误差在双差后仍存在,尤其在太阳活动剧烈期间。网络 RTK 和双频/多频接收机可通过频间组合进一步消弱其影响。
  • 基线长度:基准站与流动站之间距离越长,空间相关性越弱,公共误差越难抵消。一般单基站 RTK 有效距离在 10--20 km 以内,更长的基线需要网络 RTK 或 PPP-RTK 来保证精度。

6. 实战:通过 NovAtel 报文监控 RTK 状态

在实际工程中,我们使用 NovAtel 接收机(通常搭载 SPAN 组合导航系统)获取定位与导航数据。接收机会通过串口或网络输出多种格式的报文,其中 INSPVAAGPGGA 是最常用的两种。有效解读这两个报文中的状态字段,是判断 RTK 工作是否正常、导航信息是否可信的关键。

6.1 INSPVAA ------ 组合导航输出报文

INSPVAA 是 NovAtel SPAN 系统的短格式组合导航报文(INS Position Velocity Attitude, Short),包含由 GNSS 和 IMU 融合解算得到的位置、速度、姿态以及相应的状态标志。其典型字段示意如下:

text 复制代码
#INSPVAA,com1,0,73.5,FINESTEERING,XXXX,334537.000,00000000,2b99,
  520113.5750, -1127296.0835, 4338750.6366, 0.015,  -0.023,   0.008,
  0.000,   0.010,   0.000,  270.123456789,   0.0,  1.5,
  INS_SOLUTION_GOOD*XX

关键状态字段解读:

  • Solution Status (如 INS_SOLUTION_GOOD):

    • INS_SOLUTION_GOOD:惯性解算收敛良好,位置、速度、姿态可用;
    • INS_SOLUTION_FREE:惯性解算已初始化,但质量一般;
    • INS_ALIGNING:正在进行初始对准,尚未输出有效导航信息;
    • INS_ALIGNMENT_COMPLETE:对准完成,正在进入导航模式;
    • INS_HIGH_VARIANCE:由于 IMU 精度或运动状态,估计方差较大;
    • INS_SOLUTION_NOT_GOOD:导航解不可用。
      在实际应用中,当状态不是 INS_SOLUTION_GOOD 时,应将定位结果标记为低置信度,避免误用。
  • Position Type (第 5 个字段,如 FINENARROW_INT 等):指示当前定位解的类型。对于 RTK 而言,重点关注:

    • NARROW_INT / NARROW_FLOAT:分别对应固定解与浮点解;
    • PSRDIFF:差分伪距解(DGNSS);
    • SINGLE:单点定位,无差分修正。
      通过该字段可以直观判断流动站是否处于 RTK 固定状态。
  • Attitude Status:类似的位置/姿态状态码,用于判断航向、俯仰、横滚的可信度。

  • Velocity Type:指示速度解算类型,通常与位置类型保持同步。

实用策略 :在工程代码中,先检查 solution_status 是否为 INS_SOLUTION_GOOD,再根据 position_type 判断是否为 NARROW_INTNARROW_FLOAT,只有两者同时满足才认为达到了 RTK 厘米级精度,其他情况按当前可用的等级降级处理(如使用浮点解或差分伪距解进行局部导航,但需降低置信权重)。

6.2 GPGGA ------ 标准 NMEA 定位信息

GPGGA 是 NMEA 0183 协议中的标准定位语句,几乎所有 GNSS 接收机均支持。NovAtel 接收机也会输出 GPGGA,其格式如下:

text 复制代码
$GPGGA,073538.00,2255.123456,N,11355.654321,E,4,12,1.0,100.0,M,0.0,M,,*6B

关键字段:

  • Fix Quality(第 6 字段):指示定位质量,取值:

    • 0:无效;
    • 1:单点定位;
    • 2:差分 GPS(伪距差分);
    • 4:RTK 固定解(Fix);
    • 5:RTK 浮点解(Float)。
      该字段是快速判断 RTK 状态的简明指标。在 NovAtel 系统中,通常与 INSPVAA 的 position_type 保持一致。
  • Number of Satellites(第 7 字段):用于参与解算的卫星数。卫星过少(如 < 5)可能导致固定困难或精度下降。

  • HDOP(第 8 字段):水平精度因子,数值越小几何分布越好。一般要求 HDOP < 2 才能期望厘米级精度。

  • AltitudeGeoid Separation:高度及其与椭球面的差值,辅助高度校验。

实用策略 :通过解析 GPGGA 的 Fix Quality,可以在不依赖接收机专有报文的情况下快速判定 RTK 状态。配合 HDOP 和卫星数,可以建立一个简单而有效的健康评估逻辑:当 fix4HDOP < 2、卫星数 ≥ 12 时,定位置信度最高;fix5HDOP < 3 时,仍可用于一般导航;fix < 2 时,必须触发降级报警并切换至备用导航源(如惯导推算)。

6.3 联合使用:构建导航状态机

INSPVAA 和 GPGGA 从不同层面描述了定位与导航的质量,将它们结合使用可以构建可靠的导航状态机:

  1. 快速判等(GPGGA) :以 Fix Quality 作为粗筛,识别 RTK 固定 / 浮点 / 差分 / 单点。
  2. 深度质量检查(INSPVAA) :确认组合导航解的状态(INS_SOLUTION_GOOD)以及位置/姿态的细化类型,防止 GPGGA 为固定解但惯性解已发散的情况。
  3. 统计指标监测:持续记录固定率、失锁次数、初始化时长等,触发异常告警。
  4. 降级策略
    • 当 INSPVAA 报告 INS_ALIGNINGINS_SOLUTION_NOT_GOOD,无论 GPGGA 质量如何,都应暂停依赖导航位姿的决策;
    • 当 GPGGA fix=4 但 INSPVAA position_typeNARROW_FLOAT,可能由于 IMU 估计波动导致组合解降级,此时应采用浮点解精度并适当扩大协方差;
    • 当两报文中断或出现不可信标志时,及时切换至纯惯导推算或其他辅助导航源,并向上层系统发送告警。

通过上述方法,工程人员能够准确地从 NovAtel 报文流中捕获 RTK 及导航状态的实时变化,避免因盲目信任"厘米级"标签而导致的定位事故。