伪距:速度慢、易于跟踪、固有的噪声较大
伪距测量是通过跟踪信号的独特码序列获得的,该码序列调制在基础载波信号(正弦波)之上。接收机将接收到的码序列与其内部的参考码序列进行比对,通过测量接收信号的延迟量来确定信号的传播时间,进而直接换算出距离。该码序列速率较低,易于跟踪且易于解读,但本质上存在噪声。 伪距测量会受到热噪声和多径效应(信号从附近的树木、建筑物及其他障碍物上反射)等不可预测的误差源的影响。
某些信号的码会重复,通常每毫秒左右重复一次。这些信号确实存在模糊性,但其范围可达数十万米。这些信号具有内置特性,使接收机无需外部帮助即可消除这种模糊性,而且有些码根本不会重复。因此,尽管从理论上讲存在码的模糊性,但在实际应用中这并不是一个问题。
即使应用了RTK校正来消除那些更易观测到的误差源——例如卫星时钟和位置预测误差(星历)以及电离层和对流层延迟等大气效应——仍会残留约1至2米的不确定性。 其中大部分不确定性源于跟踪误差。如果没有RTK,这种不确定性会更大,因为根据接收机掌握的其他信息情况,部分或全部可观测误差仍会存在。这就是为什么标准GNSS只能提供米级精度的原因。
载波相位:精确但模棱两可
载波相位测量则提供了更优的性能:毫米级精度。 接收机不再追踪速度较慢且存在噪声的码,而是追踪频率约为1.1–1.6 GHz的载波本身中速度快得多的正弦和余弦分量。GNSS信号在多个频率上传输,包括L1(1575.42 MHz)、L2(1227.60 MHz)和L5(1176.45 MHz),而L6则较少使用。 频率越高,波长越短。与码跟踪环路相比,载波跟踪环路能够更精确地定位信号,误差范围仅为波长的一小部分(根据频率不同,约为19至25厘米)。
问题在于模糊性。 你的接收器可以以毫米级的精度测得你处于某个载波周期的第0.3个周期处。但它无法确定你所测量的具体是哪个周期。你是处于第10,000,000个周期,还是第10,000,001个周期?又或者可能是第10,500,000个周期?单个周期的差异就意味着19厘米的误差,而卫星的位置相差却有数百万个周期之多。
遗憾的是,仅凭代码本身无法得到这个答案。以GPSC/A(粗略/捕获)码为例。它由称为“芯片”的值组成,接收机正是通过追踪这些芯片来生成伪距测量值。 单个C/A芯片包含1540个周期,一个完整的C/A序列则包含154万个周期。即使利用信号中内置的信息来区分各个芯片,跟踪环路通常也只能将该芯片的边界定位在1到2米范围内。即使应用RTK校正来消除大多数其他误差源,仅针对一颗卫星上的单个信号,仍需在5到10个载波周期中进行选择。
五到十个周期听起来似乎并不难。但如果将规模扩大到天空中有20至40颗卫星,且每颗卫星都有2到3个位于不同频率的信号,那么这个看似简单的搜索任务很快就会变成一个巨大的指数级难题。
这就是RTK定位的问题:同时确定每个信号的正确整数周期数,从而可以使用精确的载波相位测量值,而不是带有噪声的伪距测量值。
如果正确解开谜题,就能获得精确到厘米的位置;如果解错了,系统虽然会显示高置信度,但实际位置却会偏离几米。
关于“歧义问题”的详细探讨
您的接收机知道,自开始跟踪这颗卫星以来,载波相位已发生了1,247.3个周期的变化。
你的接收机无法确定起始点是第52,631,578个周期、第52,631,579个周期,还是完全不同的某个数字。仅仅差一个周期,就意味着你对该卫星位置的估计会偏差19至25厘米。这就是所谓的模糊度。
随后,这一项测量结果必须与其他所有卫星测量结果相结合。如果其中一些数据也有误,该怎么办?如何确定正确答案?
这对定位为何重要
如果你知道卫星与你的天线之间正好有1亿个L1波长,就可以计算出确切的距离:100,000,000 × 19 厘米 = 19,000 公里,且没有任何歧义。
只要对足够数量的卫星进行正确的处理,就能通过三角测量法以极小的误差确定您的位置。如果您的载波跟踪误差仅为0.5厘米(L1波长的3%),这将直接转化为非常精确的位置。
误差仅一个周期,就意味着测距结果会偏离19厘米;误差达到五个周期,则偏差将接近1米。当多个卫星的误差叠加时,即使系统显示置信度很高,位置估算值仍可能出现数米的误差。
搜索空间挑战赛
搜索空间的大小取决于你在开始校正时对当前位置的已知信息。
在完全不受限制且完全不知道自身位置的情况下,单颗卫星可能的周期计数数量高达数百万。一颗距离地球约19,000公里的卫星,其19厘米波长的周期数约为1亿。
实际上,你并不是从零开始。伪距测量结果能为你提供一个初步的粗略位置估计。有了这一约束条件,每颗卫星的未知周期数会大幅减少,通常仅剩数百或数千种可能性,而不是数百万种。
但即便存在这一初始限制,在所有可见卫星上进行扩展仍会产生一个过于庞大的问题,以至于无法通过暴力搜索来解决。
一颗卫星可能有数百甚至数千种可能的循环计数。当有8、10、12或15颗可见卫星,且每颗卫星有2至3个频率时,组合数呈指数级增长,导致在实时条件下对每种组合进行测试在计算上是不可能的。
一种天真的方法可能会尝试分别求解每个卫星,或者测试随机的组合,直到找到一个合适的为止。这两种方法在实践中都行不通,因为搜索空间过于庞大,无法满足实时运算的需求。
缩小搜索范围:RTK定位的实际工作原理
多传感器融合为解决该问题提供了必要的约束条件。
将伪距用作第一约束条件
该定位引擎整合了来自多个来源的信息:GNSS的伪距、IMU测量数据、车轮速度数据、摄像头和激光雷达等其他传感器提供的数据,以及引擎自身先前的位置估计值。
这些信息会被输入到RTK定位算法中,从而大幅缩小搜索空间。与指数级数量的可能组合相比,现在每颗卫星都有一个最有可能正确的窄值范围。引擎在进入定位过程时,其位置估计越准确,搜索空间就越小。
经过RTK校正后,伪距的精度约为1米。1米约等于5个载波相位周期,以波长为19厘米计算。
与其不受限制地搜索所有可能的周期计数,不如以伪距所指示的值为中心,在大约10个周期的范围内进行搜索。
其他信息来源
伪距并不是唯一的限制因素。导航滤波器会提供一个位置估计值,指示你大致的所在位置。计算机视觉技术可能也会提供位置信息。车轮转速和惯性测量单元(IMU)则能反映自上次定位以来你的移动轨迹。
搜索空间从指数级组合的可能性缩小到一个可控的范围。尽管计算量依然很大,但该算法现在可以在实时限制内收敛到正确答案。
一旦算法解决了这些歧义,你就确定了定位。
维持固定点:累积范围跟踪
一旦定位引擎确定了起始循环计数,它就能知道与该卫星之间的精确距离,并且只要信号保持锁定,就会一直保留这一信息。
工作原理
载波相位跟踪包括两个部分。首先,接收机以毫米级精度连续测量载波相位的累积变化,这被称为累积距离跟踪。
其次,还有未知的初始循环计数,这是RTK定位算法必须求解的数值。
一旦确定了这个初始数值,你就掌握了全貌。未知的偏移量加上经过精确追踪的变化量,就等于确切的范围。
哪些方面发生了变化,哪些方面保持不变
初始周期计数保持不变。即使您移动或卫星绕行,该整数偏移量也保持恒定。发生变化的是累积距离,即随着您与卫星之间距离的变化而增加的周期数。接收机对此进行了非常精确的测量。
一旦算法解决了定位模糊问题,它就会锁定该解,无需重新计算。此时,系统将提供厘米级距离测量数据,更新频率根据您的配置不同,分别为 10 Hz、20 Hz、50 Hz 或 100 Hz。
只要锁定足够数量的卫星,定位结果就能持续保持厘米级精度。
当RTK定位中断时
RTK定位结果不会永久保持。
当车辆驶过桥下时,来自某颗卫星的信号会中断半秒钟,从而失去对该卫星的载波相位锁定。进入隧道后,信号会完全中断,导致所有卫星的锁定状态均丢失。
在城市峡谷中,一栋建筑物遮挡了三颗卫星,还有七颗卫星可见。这可能足以维持对剩余卫星的定位,也可能不足以维持。
当失去对某颗卫星载波相位的锁定时,定位引擎必须重新解决该卫星的定位模糊度。
如果还有足够多的其他卫星保持定位,您的位置精度会下降,但不会完全失效。您仍会从那些未丢失的卫星接收厘米级精度更新。
如果失去锁定的卫星数量过多,定位模式将从RTK定位切换为浮动解。此时虽然仍在使用载波相位测量,但尚未解决定位歧义。根据具体情况,定位精度会降至数十厘米或数米。
周期单
即使信号并未完全丢失,载波相位跟踪仍可能出现偏差。由于干扰或信号短暂变弱,接收机可能会丢失几个周期。
预处理会检测到这些周期滑移。周期滑移监测旨在查找累积载波相位中的不连续点。一旦检测到,就需要对该卫星的模糊度进行重新求解。
重新审视绩效问题
以下几个问题将决定您的系统是在生产环境中运行,还是仅在露天测试赛道上运行:
驶出隧道后,你能在多快的时间内重新获得定位?在树木间断遮挡的情况下,你能保持定位吗?需要多少颗可见卫星才能实现定位?是六颗就够了,还是需要十二颗?
研究系统与生产系统之间的差异通常体现在重新定位所需的时间以及在卫星可见度不完整时的鲁棒性上。
有助于恢复性能的因素:
多传感器融合。 在GNSS信号中断期间,IMU和车轮速度传感器可维持位置估计值。当卫星信号恢复时,定位引擎对模糊性解析的搜索范围具有严格的约束条件。Point One的定位引擎利用这种多传感器环境,比仅依赖GNSS的系统更快地重新定位。
算法的复杂程度。先进的RTK定位算法采用统计方法,能够快速识别最可能的模糊度候选值。实现水平较低的系统可能需要30至60秒才能重新定位。而商用级系统可在5秒内完成定位。
卫星可见性管理。跟踪更多的卫星星座(GPS+GLONASS+伽利略+北斗)意味着可用的卫星更多。即使在城市峡谷中丢失三颗卫星,仍有另外12颗卫星可供使用。卫星数量越多,定位速度越快,抗干扰能力也越强。
导航滤波器环境下RTK定位
RTK定位并非孤立进行。
导航滤波器提供位置估计值,用于限定RTK定位的搜索空间。该滤波器综合利用所有传感器(GNSS、IMU、车轮转速及其他传感器)的数据,以缩小可能的周期计数范围。
一旦消除了多义性,固定的载波相位测量值就会反馈到滤波器中。但该算法究竟是如何消除多义性的呢?
算法的高层级原理:RTK定位利用最小二乘估计等统计方法,寻找最能拟合所有可用测量数据的整数模糊解。该算法生成候选解(可能的周期计数组合),根据观测数据评估每个候选解,并选择残差误差最小的解。 高级实现方案采用LAMBDA(最小二乘模数去相关调整)等技术,以高效地搜索解空间并验证解。其中涉及的数学运算包括矩阵运算、协方差分析和假设检验,但目标非常明确:找到能使所有测量结果保持一致的整数周期计数值。
一旦问题解决,该滤波器的测距精度将从米级提升至厘米级。定位精度因此得到显著提高。
这形成了一个反馈循环:定位精度越高,位置就越准确;位置越准确,维持定位所需的约束条件就越严格。
当某颗卫星失去锁定时,滤波器会利用惯性测量单元(IMU)和车轮转速来维持位置估计值。该维持的位置估计值有助于在失去锁定的卫星重新进入视野时更快地重新锁定它。
多传感器集成不仅仅是为了整合测量数据,更是为了让每个传感器都能帮助其他传感器发挥更好的性能。
实时实施面临的挑战
RTK定位必须快速完成:开机后数秒内完成,信号丢失后重新捕获时也需在数秒内完成。
为什么速度至关重要:自动驾驶车辆需要实时做出导航决策。在仓库中导航的配送机器人无法等待60秒以获取RTK定位结果,才能安全移动。田间作业的农业机器人则需要立即获得厘米级精度,以避免损伤农作物。定位耗时直接影响系统的可用性。初始化时间过长会导致操作员等待;信号丢失后重新定位时间过长,则会导致精度下降的状态持续更长时间。
不同的应用场景有不同的要求。静态测绘应用可以等待数分钟来解决定位模糊问题。而移动机器人、自动驾驶车辆和无人机为了实现实际运行,需要在10秒内完成定位。像赛车或播种季节的精准农业这样的高速应用,则需要更快的重新定位速度,理想情况下应在3秒以内。
当自动驾驶汽车正在做出导航决策时,你绝不能花哪怕一分钟的时间去寻找正确的歧义解析方案。你需要迅速解决问题,或者优雅地回退到精度较低的模式。
计算限制
在嵌入式系统中,处理能力是有限的。您需要与导航栈中的其他组件共享 CPU:测量建模、滤波器更新、动力学传播以及输出生成。
RTK定位算法需要在目标硬件上实时运行。这限制了搜索的彻底程度,从而在搜索的全面性和定位所需时间之间形成了权衡。
设计良好的RTK定位方案能在计算效率与定位可靠性之间取得平衡,通过采用智能搜索策略,在不牺牲精度的前提下快速收敛。
验证与置信度
你如何验证自己的答案是否正确?
定位引擎会运行统计测试来验证歧义解析结果,评估所选解是否显著优于其他候选解。
这些测试旨在检查以下内容:算法是否收敛到一个明确的优胜解,还是存在多个残差误差相近的合理解?残差误差是否足够小,足以表明修正结果正确?候选解之间是否区分明确,即正确答案能否与错误答案明显区分开来?
为何这很重要:对错误答案抱有高度信心,比承认不确定性更糟糕。如果算法以高置信度报告“定位成功”,却选择了错误的周期计数,那么你的位置可能偏差达数米之多,而系统却认为其精度达厘米级。在安全关键型应用中,错误的定位结果非常危险。
定位引擎需要置信度指标来判断该定位结果是否足够可靠以供使用、是否需要等待更多数据,还是应报告浮点解。
定位系统报告的是定位质量评分,而不仅仅是二进制的“已定位”或“未定位”状态。下游的自动驾驶软件在了解定位置信度后,能够做出更明智的决策——例如,当定位质量处于临界水平时,系统可以适当减速,而不是盲目信任一个置信度较低的定位结果。
部分修复场景
有时你可以锁定某些卫星,却无法锁定其他卫星。也许你与八颗卫星的几何位置关系良好,能够解决它们的定位模糊问题,而另外三颗卫星由于几何位置关系不佳或噪声较大,导致无法可靠地解决其定位模糊问题。
您的系统能否使用部分定位?生产系统可以。它们利用已确定位置的八颗卫星来提高定位精度,同时继续处理剩余的三颗卫星。即使没有获得完整定位,这种方法也能提供比纯浮点解更高的精度。
优雅降级至关重要。二元固定/浮动模式仅是研究中的概念。实际系统的工作状态存在一个连续谱:12颗卫星固定(最佳),8颗固定+4颗浮动(非常好),6颗固定+6颗浮动(可接受),全部浮动(性能下降但仍可用),无固定(回退至GNSS +IMU 推算导航)。
Point One 的定位引擎能够智能地处理这些场景,利用所有可用的信息,准确报告置信度,并在性能下降时平稳过渡,而非发生灾难性故障。
值得思考的问题
如果您正在开发或评估定位系统,特别是涉及RTK定位能力时:
- 从开机到获得RTK定位,需要多长时间?两秒?十秒?三十秒?首次定位所需的时间决定了系统在开机后多快就能投入使用。
- 信号丢失后,设备能多快恢复定位?如果开车穿过隧道,出来后需要多长时间才能恢复到厘米级精度?这决定了设备在城市环境中的可用性。
- 在卫星信号部分可见的情况下,能否保持定位?需要十二颗卫星,还是六颗就够了?城市峡谷和树木遮挡会导致信号可见度条件较差。
- 在市中心或“城市峡谷”环境中,您的定位成功率是多少?开阔地带的性能表现是基本要求。市中心的性能表现对于自动驾驶和机器人技术的部署至关重要。
- 您是报告修复质量,还是仅报告二进制“已修复”或“未修复”状态?置信度指标有助于下游系统做出更明智的决策。仅报告二进制状态会掩盖不确定性。
- 您能多快检测到周期滑移并从中恢复?能否在不完全丢失定位的情况下恢复?周期滑移的恢复速度会影响在严苛射频环境中的连续性。
- 您是否支持跨多个卫星系统进行定位?仅使用GPS,还是GPS +格洛纳斯+伽利略+北斗?卫星数量越多,冗余度越高,定位速度也越快。
接下来会发生什么
RTK定位可提供厘米级精度的距离测量数据。导航滤波器将这些数据与惯性测量单元(IMU)、车轮转速及其他传感器数据相结合。但导航系统远不止于此。
系统是如何处理不同的车辆动力学特性的?为什么汽车、无人机和机器人需要不同的模型?当惯性测量单元(IMU)因温度变化而产生漂移,或者轮胎气压变化导致车轮直径发生变化时,会发生什么情况?
在下一篇文章中,我们将介绍动力学建模、传感器误差学习,以及导航滤波器如何适应不同的平台和部署环境。
获得厘米级测量结果只是问题的一半。在传感器漂移和环境变化的情况下保持这种精度,则是问题的另一半。
这是我们关于定位系统架构系列文章的第4部分。第1部分介绍了时间同步,第2部分介绍了预处理和传感器策略,第3部分介绍了导航引擎和传感器融合。
免费试用我们的RTK网络
开始免费试用