RTK 入门

什么是 RTK?

RTK 是 Real-Time Kinematic 的缩写,中文一般叫「实时动态差分定位」。 它让一台几百块钱的 GNSS 模块,从「大概在这栋楼里」变成「就是这块砖的中间」,水平精度从米级跨到厘米级。 这一页把它为什么能做到、边界在哪、以及你拿不到固定解时该查什么,一次讲清楚。

厘米级定位 载波相位 整周模糊度 RTCM 3.x NTRIP

一句话说清 RTK

一台普通的 GNSS 接收机,靠自己算出来的位置,水平误差通常在 1~5 米。 如果旁边有一台「位置已经精确知道」的接收机(基准站),把它观测到的误差实时发给流动站, 流动站用这些改正数修正自己的解算,就能把误差压到 1~2 厘米。 这套「基准站改正 + 实时传输 + 流动站解算」的组合,就是 RTK。

关键在于——它修正的不是坐标,而是观测量里的误差;而且必须用载波相位这种「尺子更细」的观测量, 才能把精度推进到厘米。这也是 RTK 和普通差分(DGPS)最本质的区别。

基准站坐标已知 · 固定不动
观测 → 算改正数
→
数据链路电台 / 4G / NTRIP
RTCM 3.x 二进制流
→
流动站接收改正数
解算 → 固定解

为什么普通 GPS 只有米级

GNSS 定位的基本原理是「测距 + 交会」:接收机测量信号从卫星到自己的传播时间,乘上光速得到距离(伪距), 再用至少 4 颗卫星的距离交会出三维位置和接收机钟差。问题在于,这个「距离」里的误差项非常多:

误差来源量级是否随距离变化能否靠差分消除
卫星钟差几纳秒几乎不随距离变化星历/钟差改正后可忽略
卫星轨道误差1~2 m随距离缓慢变化短基线下大部分可抵消
电离层延迟1~30 m随距离、时段、太阳活动变化短基线下大部分可抵消
对流层延迟0.2~2 m随高度角、湿度变化短基线下大部分可抵消
多路径厘米~数米与站址强相关不能,只能靠天线和选址
接收机噪声厘米~分米与站址相关不能,靠硬件

前四项误差有个共同点:对相距不远的两个测站来说,它们的数值几乎一样。 这就是「空间相关性」,也是差分定位能成立的全部物理基础。

差分的核心:把共模误差减掉

基准站的坐标是精确已知的,所以它能算出「自己观测到的距离」和「真实距离」之间的差—— 这个差里包含了卫星、大气、轨道等一切共模误差。把这个差值实时播发出去, 流动站对自己的观测做同样修正,共模误差就被大幅抵消。

实际算法里通常用「双差」:先在卫星之间做差消掉接收机钟差,再在两站之间做差消掉卫星钟差和大部分大气延迟。 两次做差之后,剩下的主要就是整周模糊度和随机噪声。

和 DGPS(码差分)差在哪

很多老设备标称支持「差分」,其实是 DGPS / RTD:它只修正伪距,精度 0.3~1 米。 RTK 修正的是载波相位——载波频率约 1.2~1.6 GHz,波长只有 19~25 厘米, 测量精度可达波长的 1/100,也就是毫米级。这就是为什么同样的硬件,用相位就能做到厘米级。

代价是相位观测存在一个「整周未知数」:接收机只能测到不足一周的相位小数部分, 不知道信号从卫星到接收机中间走了多少个完整的周。这个未知数必须是一个整数, 解算它就是「模糊度固定」。

整周模糊度:Float 与 Fixed

RTK 的解算状态通常分三种,你的手簿或 App 上一定会显示:

状态含义典型精度
单点 / Single 没有收到差分数据,纯伪距单点定位 1~5 m
浮动解 / Float 收到了改正数,相位也在用,但模糊度只解到小数(未取整) 0.1~0.5 m
固定解 / Fixed 模糊度搜索成功并验证通过,取为整数 1~2 cm

从 Float 到 Fixed 通常需要几秒到几十秒,取决于卫星数量、基线长度和大气活跃程度。 一旦卫星失锁或信号被遮挡,模糊度要重新搜索,状态会掉回 Float——这就是为什么过树下、过桥洞时精度会抖。

经验判断:固定解不是「一直有」或「一直没有」,而是持续几秒以上才可信。 刚上电那一两秒的 Fixed 有可能是误固定,最好等 10 秒以上、卫星数稳定后再取点。

精度能到多少,能撑多远

主流厂商给出的 RTK 标称精度大致是:水平 8 mm + 1 ppm,垂直 15 mm + 1 ppm。 这个 1 ppm 表示「每公里基线增加 1 毫米误差」,所以:

基线长度水平精度(估算)说明
1 km约 9 mm基本等于标称精度
10 km约 18 mm常用作业距离,稳定
20 km约 28 mm双频可用,固定率开始下降
30 km 以上3 cm 以上电离层去相关明显,固定变慢甚至失败

单频接收机(只有 L1)的可用基线一般限制在 10 km 以内; 双频(L1+L2 或 L1+L5)可以到 30~40 km。 太阳活动高年、正午前后、地平线附近,电离层梯度大,可用距离要再打折。

一套 RTK 系统由什么组成

部分作用关键点
基准站 提供改正数 坐标必须精确(厘米级);天线要稳、要防多路径;坐标错了,所有成果整体偏移
数据链路 把 RTCM 送到流动站 电台(UHF/4G 数传)、Wi-Fi、或互联网 + NTRIP Caster
流动站 解算自己的厘米级坐标 要能和基准站用同一套星座/频率;天线高要量准并正确输入

三者缺一不可。很多「搭了基站还是拿不到固定解」的问题,最后都出在链路或坐标上,而不是接收机不够好。

从电台到互联网:NTRIP 与 CORS

传统 RTK 用电台传改正数,距离受功率和地形限制。现在更常见的是走互联网: 基准站把 RTCM 推到一个服务器,流动站再用 4G 从服务器拉流。这套协议叫 NTRIP (Networked Transport of RTCM via Internet Protocol),本质是「基于 HTTP 的流式传输」。

NTRIP Server基站侧
把 RTCM 推上去
→
NTRIP Caster中心分发
鉴权 + 一对多
→
NTRIP Client流动站/手簿
按挂载点拉流

Caster 上每一路数据流叫一个挂载点(mountpoint),通常用 4 个字符或站点名标识。 流动站只要知道「地址 + 端口 + 挂载点 + 账号密码」这四项,就能拿到改正数。 覆盖多个省市的公共基准站网络,就是大家常说的 CORS(连续运行参考站系统)。

本站地图上展示的,就是全球各个公共 Caster 的挂载点分布。你可以先去 基准站地图 看一眼自己附近有没有可用的免费源。

RTCM 差分电文速查

RTCM 3.x 是二进制格式,一条消息叫一个 message,用编号区分内容。看到源表里写 1005(10),1074(1),1087(1),1097(1),1124(1),1033(30), 意思是「1005 每 10 秒发一次,1074 每秒一次……」。

编号内容作用
1004GPS L1/L2 观测值老式 GPS 观测,MSM 之前的做法
1005基准站坐标(ECEF)告诉流动站基站在哪,必需
1006基准站坐标 + 天线高同上,额外带天线参考点高度
1012GLONASS L1/L2 观测值GLONASS 观测
1013系统时间偏移各星座系统时间对齐
1033接收机 / 天线描述只用于显示,不影响解算
1074 / 1077GPS MSM4 / MSM7新版多系统观测,MSM7 含信噪比和精细伪距
1084 / 1087GLONASS MSM4 / MSM7同上
1094 / 1097Galileo MSM4 / MSM7同上
1124 / 1127北斗 MSM4 / MSM7同上
1230GLONASS 码相位偏差GLONASS 频分多址必须的改正

兼容性提醒:基站发 MSM7、流动站只认 MSM4 时,可能连上了却不出固定解。 国内设备常见做法是同时打开 1005 + 1074 + 1084 + 1094 + 1124 + 1033, 兼顾老设备;只服务自家流动站时用 MSM7 精度更好、带宽更高。

为什么你只有浮动解

按出现频率从高到低排,逐条排查:

现象可能原因怎么处理
一直是 Single根本没收到差分数据查网络、端口、挂载点名、账号密码;看 Caster 日志有没有你的连接
有 Float 不 Fixed基线太长 / 电离层活跃缩短距离,或换附近的挂载点;避开正午和太阳活动高发期
有 Float 不 Fixed基站电文不全(缺 1005 或观测类型不匹配)看源表里的电文串,确认有坐标电文和对应星座的 MSM
偶尔 Fixed 又掉多路径、遮挡、天线不稳选址抬高、远离金属和水面、加扼流圈天线
Fixed 但坐标整体偏基准站坐标本身错了用 PPP 或已知点重新解算基站坐标
Fixed 但高程差很多天线高没输入 / 高程异常没处理量准天线高;分清椭球高和正常高

还有一个常被忽略的点:基准站和流动站必须用同一个坐标框架。 基站坐标是 CGCS2000、流动站却按 WGS84 出结果,两者差几十厘米到一两米, 精度再好也没意义。国内工程测量尤其要注意这一点。

RTK 用在哪些地方

测绘与放样

地形图测绘、界址点、施工放样,厘米级是硬指标。

农机自动驾驶

直线行驶误差 2.5 cm 内,播种、喷药不重不漏。

无人机航测

带 RTK 的无人机可直接输出高精度 POS,少布像控点。

变形监测

边坡、大坝、桥梁的毫米级位移趋势,通常配合静态后处理。

精准农业与水利

平地、开沟、渠道断面,依赖稳定的固定解。

车辆与机器人

园区无人车、港口 AGV 的高精度定位与循迹。

Next

自己搭一台基准站

看懂原理之后,下一步是把它落地:选硬件、定坐标、推流、让流动站拿到固定解。

→ 去看 RTK 基站搭建