
最近项目里要用到高精度定位我拿和芯星通的UM982模块搭了一套厘米级RTK定位系统。说实话刚开始接触RTK时我也有点犯怵模块怎么选、基准站和流动站怎么配、数据链路怎么搭、为什么老是拿不到固定解……这些问题我全部踩过一遍。这篇就把从零搭建UM982 RTK系统的完整流程和避坑经验写下来希望能帮正打算做高精度定位的朋友节省几周时间。这套系统解决的痛点很直接普通GNSS模块只有米级精度而农用机械导航、工程放样、人员/设备高精度定位、无人机PPK这类场景都需要厘米级坐标。UM982是双频多系统的RTK板卡集成度高串口直接出数据非常适合做终端设备和学习验证。全文按“整体设计—硬件准备—基准站配置—流动站实测—踩坑实录”的顺序展开你既可以按步骤复现也可以直接跳到对应章节查问题。1. 认识UM982与整套RTK系统的搭建思路1.1 UM982模块的核心特性UM982在和芯星通的低功耗高精度板卡系列里定位很明确双频多系统内置RTK解算引擎适合做对体积和功耗有要求的终端设备。我手里这块模块尺寸比硬币大不了多少底面是LGA封装正面有屏蔽盖支持串口、SPI、I2C等接口差分数据走RTCM3协议定位结果以NMEA格式或二进制格式输出。模块支持GPS、BDS、GLONASS、Galileo多系统至少覆盖L1/L2对应BDS的B1/B2这是实现RTK固定的硬件基础。单点定位精度一般在1.5米左右RTK模式下水平定位精度可以做到1cm1ppmppm代表每公里引入的误差所以基线10公里时精度约为2厘米级别。这个精度对大多数应用都够用关键是功耗和成本比成套RTK接收机低很多。还有一个容易被忽略的点UM982内置了天线馈电控制。有源天线需要供电时可以由模块内部LDO输出省掉了外置偏置器。这个功能默认不一定开启后面我会专门讲配置方法。模块还有惯导组合的版本可选如果你要做车载组合导航选带IMU的型号会更加合适。1.2 从米级到厘米级RTK到底做了什么为什么普通手机定位只有几米误差而RTK能做到厘米级先说背景GNSS卫星信号在传播过程中会穿过电离层和对流层产生延迟误差卫星钟差、星历误差也会叠加进来。如果只用单台接收机靠伪距定位误差很难压到米级以下。RTK的思路是引入差分基准站架在已知坐标的点上接收卫星信号并把载波相位观测值和坐标信息通过差分数据链路发给流动站。流动站拿自己的观测数据与基准站的观测数据做差分因为两个站的接收机在同一片天空下卫星钟差、电离层延迟、对流层延迟等公共误差高度相关相减之后这些误差基本被消除剩下的就是载波相位模糊度整周解算的问题。一旦解对模糊度相位观测精度相当于毫米级流动站坐标自然就拉到了厘米级。用一句通俗的话说普通定位是“看表估计”RTK是“两个人对表把公共误差抹掉剩下的差别就是两站之间的真实相对位置”。所以RTK系统一定要有两端基准站负责发差分数据流动站负责接收并解算。单靠一个模块永远只能是米级。1.3 系统整体架构和数据链路选择一套完整的UM982 RTK系统由下面几部分组成基准站UM982模块 测量型天线 供电 差分发射链路电台或4G公网流动站UM982模块 天线 显示或采集终端Android/PC/串口屏差分数据链路保证基准站数据能送到流动站数据链路常见有两种模式。一种是电台模式基准站通过数传电台广播RTCM数据流动站用同频电台接收。电台模式的好处是无需公网延迟低一对多广播方便缺点是功率受限距离一般在几公里内加大功率模块又会带来功耗和认证问题。另一种是网络模式基准站把RTCM数据推送到NTRIP服务器流动站通过4G或者Wi-Fi以NTRIP客户端方式拉取。这种方式覆盖范围大但需要网络基础设施而且延迟受网络质量影响。如果你是一个人做测试或小范围使用我个人建议先用电台模式链路最简单问题也好排查。等需要跨城市或者固定基准站长期运行时再上NTRIP。这个选择会影响后续串口分配和配置所以一开始就要想清楚。2. 硬件准备与天线馈电方案2.1 核心硬件清单我实际搭建时的完整清单如下你可以直接参考部件型号/规格说明GNSS模块UM982开发板或核心板开发板自带USB转串口调试方便基准站天线有源测量型天线支持GPS L1/L2、BDS B1/B2最好带多路径抑制盘流动站天线有源小尺寸天线或普通测量天线视场景而定车载用螺旋天线也行射频馈线SMA公头转SMA公头长度越短越好每增加1米馈线信号衰减明显串口工具USB转TTL如果开发板没带、杜邦线注意电平UM982是3.3V TTL供电5V稳压电源模块或电池实测电流约200-400mA长期运行建议用低纹波LDO或高品质DC-DC电台/NTRIP设备数传电台一对 或 4G DTU根据链路方案选型调试电脑笔记本一台串口助手或厂商配置软件客户端软件名各家略有不同开发板方案是最快的。直接买一块带USB口、引脚引出的UM982评估板上电就能用。如果做产品再用最小系统自己做底板省钱但需要处理晶振、天线匹配、电源纹波这些细节。新手强烈建议先用开发板把流程跑通。2.2 天线选型与馈电配置天线是整个系统里最容易被低估的环节。RTK需要载波相位观测普通贴片陶瓷天线也能收到卫星但相位中心不稳定、多路径抑制差很难稳定固定。我踩过的坑就是刚开始用手头现成的单频有源天线搜星数量还行但RTK固定成功率很低换了测量型天线之后才稳定下来。选型上注意三点第一必须双频至少覆盖L1/L2和B1/B2单频天线会丢失L2载波观测值RTK基本没法固定第二尽量选有源天线内置LNA可以弥补馈线损耗UM982需要给天线供电第三如果是固定基准站选带抑径盘的大地测量型天线能抑制低仰角多路径信号这是基准站数据质量的关键。UM982给天线馈电需要软件打开内部LNA电源。在厂商配置软件里找到天线馈电控制选项打开后模块会从天线端口输出一个3.3V左右的直流电压。如果没有打开有源天线不工作表现就是某个频段的卫星信号明显偏弱或者搜不到星。注意有些天线需要的电流比较大如果模块输出能力不足还是外置偏置器稳一点。2.3 供电设计与安装位置UM982推荐供电电压是3.3V也可以接受5V输入取决于你的底板设计核心是电压纹波不能太大。电源纹波会影响内部振荡器和射频前端严重时导致失锁或固定率下降。实测用普通USB 5V转3.3V的AMS1117模块电压纹波稍大在强多路径环境下比用低噪声LDO时固定率低一些。如果要长期架站供电部分认真对待。天线安装位置对定位质量影响大于很多人的想象。天线周围2米以内不要有大的金属反射面比如铁皮房、车顶、大面积水面。基准站天线尽量架设在周围无遮挡、地势较高的位置比如楼顶注意避让避雷针和高压线。流动站如果装在车上天线最好吸在车顶正中别放在车斗里否则会有严重的多路径效应。相位中心的问题也提一下测量型天线会标定天线相位中心偏差UM982可以用配置文件里的天线参数来修正。一般应用可以忽略但测量测绘类应用一定要设置否则几十厘米甚至更大的系统性偏差就出来了。2.4 接口连接与电平匹配UM982的串口有至少两组UART1和UART2。我的用法是UART1接基准站差分数据输出UART2接电脑/终端做调试和查看定位结果。如果开发板上没有电平转换芯片一定要用3.3V TTL电平的USB转串口模块直接插5V的RS232电平板子会烧模块。接线还要注意共地。模块、天线馈电、电台、电脑都要共地否则串口通信会出现随机乱码。这是很多初学者遇到“数据断断续续”的隐性原因。如果使用外部电台把电台的地线跟模块底板接一起再一起接到电源负极。3. 基准站配置与差分数据链路搭建3.1 基准站初始化与串口参数基准站的目标很简单把RTCM3格式的差分数据发出去。UM982在RTK模式下基准站和流动站的角色可以在配置软件里设置也可以用串口命令切换。我习惯在电脑上先把模块接到串口工具设置波特率1152008N1。开机后先观察串口输出确认NMEA语句正常刷屏。UM982默认会输出GNGGA、GNRMC这些语句同时也能看到当前定位状态。搜星正常后设置基准站坐标这一步很关键。基准站坐标来源有两种做法一种是架在已知控制点上直接输入准确的经纬度和高程另一种是不知道精确坐标让模块先进行2到5分钟的静态单点定位取平均值作为基准站坐标。后者操作简单但基准站坐标误差会在流动站结果里以系统性偏差的形式存在。对一般导航应用问题不大对测量应用则必须用已知点。3.2 配置RTCM3输出基准站要输出RTCM3格式的观测数据包括GPS、BDS、GLONASS、Galileo对应的消息类型。户外实测常用的消息有1004/1012GPS/GLONASS差分改正数1074/1077、1084/1087、1094/1097、1124/1127各系统双频观测值消息1005/1006基准站坐标1019/1020卫星星历1008/1033天线描述在配置软件里勾选这些消息类型后还要设置差分数据输出频率。对慢速或静态场景1Hz就够车辆导航建议5Hz或10Hz无人机等高速运动场景最好到10Hz以上。输出频率越高数据量越大对链路带宽要求也越高但流动站解算越流畅。设置完成后串口上应该能持续看到以0xD3开头的RTCM报文。如果全是NMEA而没有RTCM多半是输出口没对准或者消息类型被关闭。这一步可以用串口软件抓包确认。3.3 电台模式链路搭建电台模式是自建链路最直接的方式。基准站UM982的UART输出接到数传电台的DATA接口电台以广播模式发射流动站数传电台接收后把DATA输出接到流动站UM982的UART输入。数传电台频率常见有433MHz/915MHz/2.4GHz433MHz在开阔地传播好但天线较长2.4GHz天线短但绕射差适合视距。功率方面常见500mW到5W不等实测野外开阔地500mW电台配全向天线流动站距离基准站3-5公里还能稳定拿到RTCM如果地形有起伏距离会明显下降。不要迷信功率天线高度对传输距离影响更大基准站天线架高两米效果往往比功率翻倍更明显。这里有个细节电台的透传模式和自定义协议模式要分清。透传模式就是把串口收到的数据原样发出另一端原样输出最适合RTCM。如果用了一些电台指定的GPS协议模式可能对帧做格式转换导致UM982解析不了。3.4 NTRIP和CORS模式网络模式适合固定基准站的长期运行。思路是基准站UM982通过串口或网口把RTCM数据送到一个NTRIP Server程序服务器软件在公网VPS上运行流动站通过NTRIP Client程序拉取数据流。NTRIP的账号、挂载点、端口这些概念做一次就能理解。流动站的NTRIP客户端软件把差分数据流直接写到虚拟串口UM982只需要从这个串口读RTCM流动站内部自动完成差分解算对用户来说跟电台模式没有任何区别。手机上可以用一些成熟的地图采集App配合很多App自带NTRIP拉流能力。如果不想自建基准站和服务器很多省市都有CORS连续运行参考站系统服务向测绘单位购买账号后流动站直接连CORS挂载点不需要基准站设备。这种模式适合单台设备流动范围很大又不想带基准站的场景但CORS覆盖不到的边缘地区信号质量会变差。3.5 基准站坐标校核与天线高设置很多RTK系统明明链路正常、固定也正常但坐标跟已知点差几十厘米问题就出在基准站坐标和天线高。基准站坐标如果是自采平均值只能保证内部自洽流动站位置的绝对值不会准。如果是测量用途必须用控制点坐标。天线高是指天线相位中心到地面标记点的垂直距离不同天线改正方式不一样。UM982配置软件里一般有天线高输入项填错了整体高程会差几十厘米。有抑径盘的测量天线相位中心一般在天线底面往上约几十毫米处具体值查天线说明书。另外基准站坐标一旦确定后不要让它再变化。有些模块默认在启动后先单点定位单点坐标跳来跳去导致流动站频繁重新初始化。基准站开固定坐标模式或者设置“平滑观测N秒后使用平均值”才能保证差分源稳定。4. 流动站配置与厘米级定位实测4.1 流动站端接线与初始配置流动站的UM982接线相对简单天线接到射频口UART接到显示终端供电。如果使用电台链路电台的DATA输出接到模块的UART输入使用NTRIP链路则把手机或PC的NTRIP虚拟串口接到模块UART。启动后先在串口上确认NMEA语句正常重点关注GNGGA里的定位质量指示字段。这个字段的含义很直接数值1表示单点定位数值4表示RTK固定解数值5表示RTK浮点解。还没收到差分数据时看到的往往是1没有解算意义。当基准站的RTCM数据开始进入模块后一般几十秒内会走到浮点解再过几秒到固定解。整周模糊度解算需要时间开机后的收敛速度和卫星数、链路质量、多路径环境都有关系。模块内部也可以查询RTK状态很多UM982固件支持输出RTK状态语句显示基站距离、差分龄期、观测卫星数和模糊度固定状态。差分龄期就是流动站收到最后一个差分数据包到现在的时间单位一般是秒。如果这个值持续增大说明链路已经断了。4.2 串口数据解析与NMEA关键字段流动站最需要关注的是GPGGA/ GNGGA语句。它一行里面携带了经纬度、定位质量、卫星数、高程和差分龄期。我做了个简单的解析示例GNGGA语句典型格式以常见配置为例$GNGGA,092636.00,3018.1234567,N,12011.9876543,E,4,24,0.7,12.345,M,7.890,M,0.8,0000*5A字段依次是UTC时间、纬度、北纬标识、经度、东经标识、定位质量4为固定解、卫星数、水平精度因子、高程、高程单位、大地水准面差距、差分龄期和差分站ID。厘米级定位时经纬度有效位数能到第7位小数对应的平面分辨率大概是1厘米级别。很多终端程序不需要自己解析整行NMEA直接让模块输出GNGGA给高精度地图SDK即可。但如果你想自己写解析器建议优先解析GNGGA里的质量指示和差分龄期状态判断就够用了。4.3 坐标基准与投影转换UM982输出的是CGCS2000/WGS84框架下的经纬度和椭球高。日常地图用的通常是GCJ-02或UGCCS2000平面坐标这里有个典型混淆点拿着WGS84经纬度直接画到网络地图上会因为坐标偏移显示不准。解决办法也不是模块的事而是业务层做坐标转换。如果是工程测量和放样需要把经纬度投影成平面坐标通用做法是用高斯-克吕格投影或UTM投影设置好中央经线和带宽再配合CGCS2000椭球参数。高程方面UM982输出的是椭球高不是正常高海拔。多数工程使用正常高两者之差叫高程异常一般需要当地格网模型或者至少一个已知高程点来算校正值否则平面坐标可能很准高程却差十几米。对设备端工程师来说如果只做相对定位比如车辆保持车道、农机循迹WGS84经纬度直接用就可以了。要是涉及落地工程务必提前确认数据规范和坐标系不然后面返工很痛。这个坑我见过太多项目进了末期才发现只能加一层补丁转换。4.4 静态测量与动态跑测配置完成后建议先在开阔场地做一次静态测试。把流动站天线固定在一个已知点上连续观测10分钟记录GNGGA中的定位质量和高程。如果始终在固定解且坐标标准差小于2厘米说明系统链路和解算都是正常的。接下来做动态测试人拿着天线沿着操场跑道走一圈或者装在车上跑一段路。重点是观察定位轨迹是否有跳变。跳变的常见原因有三个树荫和楼宇导致卫星失锁RTK重收敛时需要时间链路差导致差分数据有缺口天线位置在多路径复杂的区域。动态轨迹上偶尔出现1-2米的大跳点往往是失锁后还在用单点解需要在应用层增加状态过滤只接受定位质量4的输出。如果你后续要做数据后处理UM982也可以输出原始观测数据RINEX导出功能用PPK技术事后解算可以得到更高精度的轨迹。这在无人机和手持采集设备里很实用因为PPK不依赖实时链路。4.5 精度验证方法判断系统有没有达到厘米级可以用两种方式验证。一是静态验证天线不动连续采集1000个固定解坐标算标准差。正常情况下水平标准偏差应该在几毫米到2厘米内高程标准偏差稍大一些。如果标准差到了分米级多半没真正固定或者在快速跳动。二是动态已知轨迹验证沿着一条画好的直线走几趟看轨迹与直线的横向偏差。注意RTK给出的轨迹是天线相位中心的位置如果人手持天线左右晃动偏差里混合了人为晃动和定位误差。装在移动平台上测试会更接近真实工况。还有一个细节固定解不代表绝对位置准只代表模块内部解算收敛。绝对精度依赖基准站坐标和坐标系统转换。可以用两台UM982组成短基线在已知点上互相验证这是评估整套系统精度最稳妥的办法。5. 避坑指南与常见问题排查实录5.1 常见问题速查表现象原因排查思路一直单点定位收不到差分链路未通、RTCM消息没配置在流动站侧看差分龄期是否持续增长抓包确认基站是否发出RTCM一开始固定几分钟后掉了多路径或链路丢包检查天线位置查看遥控信号强度确认差分龄期波动搜星数量少天线馈电没开、天线损坏或遮挡查NMEA语句中GSA字段确认每个系统卫星数换个天线对比测试坐标跳变几米失锁后进入浮点或单点状态应用层强制只使用固定解数据分析跳变时刻是否经过树荫或建筑群固定解但绝对位置偏了几十厘米基准站坐标不准、坐标系没转对用已知控制点校核检查转换参数和天线高设置模块发烫或工作不稳定供电电压不稳或天线短路测量供电端电压纹波检查射频口是否短路串口输出乱码波特率不对、电平不匹配、没共地统一波特率检查TTL电平为3.3V所有设备共地电台距离达不到标称天线高度不够、环境遮挡、天线性别没配对架高天线换成增益高的玻璃钢天线测试点避开城市峡谷5.2 电源和天线相关的坑UM982的功耗不高但是对电源质量敏感。我第一次用12V铅酸电池直接接了一个明纬开关电源给开发板供电结果固定率忽高忽低后来拿示波器看开关电源的高频纹波直接叠加到了射频供电上。换成低噪声LDO之后问题马上消失。天线馈电这里很容易误操作打开UM982内置LNA馈电后如果天线被短路或损坏模块会检测到天线短路并在状态标志里报错。遇到搜星异常先把馈电关掉用万用表量天线射频口的直流电阻正常有源天线正负极之间不是直接短路阻值一般几百欧到几千欧。如果量出来阻值接近0天线里的LNA可能已经烧了。射频馈线长度也需要控制。UM982天线口的信号非常微弱每一米劣质馈线可能带来1dB以上的插损在弱信号环境就可能导致卫星失锁。基准站如果必须拉长馈线建议选择低损耗射频线并加装射频放大器远端馈电模块。5.3 基准站架设的位置问题基准站容易踩的坑是架在窗边、铁皮屋顶、空旷停车场中央。窗边虽然能看见一部分天空但玻璃里的金属镀层会反射信号多路径严重铁皮屋顶更是直接造成大面积反射。基准站一定优先直接放室外天线固定在专用脚架或杆子上周围没有反射物。如果基准站放在楼顶注意避开避雷针和楼顶金属设备。避雷针会导致天线附近电场畸变对载波相位观测会造成不可预测的误差。天线离任何金属物体至少保持1米以上距离并选择在当地遮蔽角最小的位置。城市里做基准站宁可多跑几趟找一个开阔点也别图省事放在阳台。5.4 差分链路异常排查电台模式下差分链路问题主要集中在电台配置和天线位置。两台电台如果频率一致但没对好信道表现为启动时偶尔能通、很快断开。用串口抓包看RTCM报文如果链路正常流动站串口里一定会有连续、有规律的0xD3开头帧如果只能看到零散帧大概率是电台信号弱或者收发天线没有相对视距。网络模式下流动站NTRIP客户端常见的坑是挂载点选错。同一个CORS服务器上可能有多个挂载点不同挂载点输出的坐标系、消息格式可能不同。选错挂载点最典型的表现是连接正常、软件显示OK但UM982一直解不到固定解。先确认挂载点与基准站距离近再看看输出消息是否包含你需要的双频观测值。还有一种场景是公网延迟过大。流动站距离CORS基站几十公里时RTCM数据从服务器到流动站经历公网转发延迟可能达到数百毫秒。差分龄期超过5秒后整周模糊度可能变得难以固定即使固定了解算精度也会下降。所以网络RTK适合慢速或静态应用对高速运动场景最好把基站放在靠近作业区的位置。5.5 固定率提升的实操技巧实测下来有几个小技巧能明显提升固定率和精度开机后先静止30秒左右让模块充分收敛不要一上电就移动刚开机的模糊度收敛需要一个过程。尽量避免在城市峡谷、高架桥下、隧道口附近作业头顶视野受遮挡时卫星的几何分布很差固定率会断崖式下降。流动站天线的辐射面要朝上不要侧倾超过30度。手持时尽量让天线保持水平倾斜严重时载波相位观测质量下降。每隔一段时间检查天线和射频接头的拧紧程度户外振动环境里SMA接头很容易松动。如果长时间无法固定尝试关闭某个系统的信号有时候某些系统处于异常状态反而拖累整体解算关闭后固定率反而提升。固件版本及时更新UM982新固件对弱信号场景的固定算法有优化同类硬件在不同固件版本上的固定率差距很明显。5.6 环境对定位精度的影响环境是RTK系统最大的隐形变量。电磁干扰会直接破坏载波相位观测值基站附近如果有大功率电台、高压线或者雷达设备差分数据质量会显著下降。流动站附近如果有大电流电机、高频逆变器也需要警惕尤其在农业机械上做定位时车辆本身的电磁噪声会干扰接收机。天气影响也不可忽略。强对流天气时电离层闪烁活跃RTK固定时间明显变长甚至频繁失锁。早晚电离层扰动比正午弱做高精度测量最好安排在天气平缓的时间段。卫星分布上一天内某些时段卫星几何结构好某些时段差可以查看朴素的卫星星历图或借助观测软件提前规划作业时间。多路径效应是厘米级应用最大的敌人。周边环境如果有大面积水域、玻璃幕墙、铁皮房反射信号会被天线同时接收到并与直射信号混叠。抑径圈地针天线能有效衰减低仰角反射信号这也是基准站天线贵的原因。仅靠软件算法无法完全消除多路径所以天线安装位置的功课一定要做足。6. 我的实操体会UM982这套方案最大的价值在于用几百元级别的模块配合常规外设就能搭出一套性能可靠的厘米级定位系统。它不像整套专业RTK那样开箱即用需要自己处理硬件和链路但这恰恰是学习RTK原理和工程化落地的最好方式。我做完这套系统后再去看市面上的高精度定位终端心里基本有底了。如果你打算直接照抄这套方案我最后再给两条建议第一不要把基准站架设和坐标校核当成“先跑起来再说”它是整套系统精度的锚点必须认真对待第二摸清自己的应用场景农作物导航和城市测量对链路、固件、坐标转换的要求完全不同别指望一套配置通吃所有场景。如果你想继续扩展可以考虑把UM982与树莓派或STM32结合做车载航位推算或者把原始观测数据存下来做PPK后处理实现无链路的高精度定位。这套系统的可玩性很高后续我可能还会写一篇关于UM982动态轨迹记录的实战文章欢迎关注交流。