@
目录简介
简单介绍下Ntrip
什么是CORS
CORS(Continuously Operating Reference Stations)就是网络基准站,通过网络收发GPS差分数据。用户访问CORS后,不用单独架设GPS基准站,即可实现GPS流动站的差分定位。
访问CORS系统,就需要网络通讯协议。NTRIP( Networked Transport of RTCM via Internet Protocol)是CORS系统的通讯协议之一。
什么是Ntrip
Ntrip (Networked Transport of RTCM via Internet Protocol). (通过互联网进行RTCM网络传输的协议) 是在互联网上进行RTK(Real - time kinematic实时动态)数据传输的协议。所有的 RTK数据格式(NCT,RTCM,CMR,CMR+等等)都能被传输。
什么是RTK
RTK(Real - time kinematic,实时动态)载波相位差分技术,是实时处理两个测量站载波相位观测量的差分方法,将基准站采集的载波相位发给用户接收机,进行求差解算坐标。
这是一种新的常用的卫星定位测量方法,以前的静态、快速静态、动态测量都需要事后进行解算才能获得厘米级的精度,而RTK是能够在野外实时得到厘米级定位精度的测量方法,它采用了载波相位动态实时差分方法,是GPS应用的重大里程碑。
挂载点
RTD mountpoint:RTCM23_GPS、RTCM32_GGB、NRTD_RTCM23
Ntrip系统的组成
使用NTRIP通讯协议的CORS系统,其组成请参考下图
- NtripSource 用来产生GPS差分数据,并把差分数据提交给NtripServer
- NtripServer 负责把GPS差分数据提交给NtripCaster
- NtripCaster 差分数据中心,负责接收、发送GPS差分数据
- NtripClient 登录NtripCaster后,NtripCaster把GPS差分数据发送给它
- NtripSource 和 NtripServer: 一般已经集成到一台GPS基准站内,GPS基准站产生差分数据(扮演着NtripSource的角色),然后再通过网络发送给NtripCaster(扮演着NtripServer的角色)
- NtripSource 和 NtripServer也可以分开:GPS基准站产生差分数据,然后通过串口发送给一个程序,这个程序再把差分数据发送给NtripCaster。这里GPS基准站扮演着NtripSource的角色,程序扮演着NtripServer的角色。
NtripCaster一般就是一台固定IP地址的服务器,它负责接收、发送差分数据。给NtripClient发送差分数据时有两种方案:
- 是直接转发NtripSource产生的差分数据;
- 是通过解算多个NtripSource的差分数据,为NtripClient产生一个虚拟的基准站(即VRS)。
NtripClient一般就是GPS流动站。登录NtripCaster后,发送自身的坐标给NtripCaster。NtripCaster选择或产生差分数据,然后发送给NtripClient。这样GPS流动站即可实现高精度的差分定位。
NtripClient
NtripClient访问NtripCaster,一般有两个目的:获取源列表、获取差分数据
获取源列表
多个NtripServer给NtripCaster发送差分数据,这样NtripCaster获得的差分数据就有多个。
NtripClient在获取差分数据之前,
需要知道差分数据有几个?
分别是什么格式的?
差分GPS
差分GPS(differential GPS-DGPS,DGPS)是首先利用已知精确三维坐标的差分GPS基准台,求得伪距修正量或位置修正量,再将这个修正量实时或事后发送给用户(GPS导航仪),对用户的测量数据进行修正,以提高GPS定位精度。
差分GPS分为单基准站差分、多基准站的局部区域差分和广域差分三种类型。
获取源列表流程如下:
-
DTU请求与NtripCaster建立TCP连接
-
DTU发送源节点列表请求
GET / HTTP/1.0
User-Agent: NTRIP QX NTRIPClient/20131124
Accept: /
Connection: close
Authorization: Basic cXhuaXBvMDAxOjMwYmI0NTk= -
NrtipCaster响应数据如下
SOURCETABLE 200 OK
Server: POP_GW_Ntrip_1.0_1562252421/1.0
Via: n25_130
Date: 2019/07/09 14:38:09
Content-Type: text/plain; charset=UTF-8
Content-Length: 390
Connection: close
STR; RTCM30_GG; RTCM30_GG; RTCM3X; 1005(10), 1004-1012(1), 1033(10); 2; GNSS; POPNet; CHN; 0.00; 0.00; 1; 1; POP Platform; none; B; N; 500; POP
STR; RTCM23_GPS; RTCM23_GPS; RTCM2X; 1(1), 31(1), 41(1), 3(10), 32(30); 2; GNSS; POPNet; CHN; 0.00; 0.00; 1; 1; POP Platform; none; B; N; 500; POP
STR; RTCM32_GGB; RTCM32_GGB; RTCM3X; 1005(10), 1074-1084-1124(1); 2; GNSS; POPNet; CHN; 0.00; 0.00; 1; 1; POP Platform; none; B; N; 500; POP
ENDSOURCETABLE
STR; RTCM23; RTCM23; RTCM 2.3; 1(1), 3(10), 18(1), 19(1); 2; GPS; SGNET; CHN; 31; 121; 1; 1; SGCAN; None; B; N; 0; ; ↙
STR; CMR; CMR; CMR; CMR; 2; GPS; SGNET; CHN; 31; 121; 1; 1; SGCAN; None; B; N; 0; ; ↙
STR; CMRP; CMRP; CMR+; CMR; 2; GPS; SGNET; CHN; 31; 121; 1; 1; Trimble GPSNet; None; B; N; 0; ; ↙
STR; DGPS; DGPS; RTCM 2.1; RTCM 2.1; 2; GPS; SGNET; CHN; 31; 121; 1; 1; SGCAN; None; B; N; 0; ; ↙
STR; RTCM3X; RTCM3X; RTCM 3. X; 1004(1), 1005/1007(5), PBS(10); 2; GPS; SGNET; CHN; 31; 121; 1; 1; SGCAN; None; B; N; 0; ; ↙
源列表数据以SOURCETABLE开头,以ENDSOURCETABLE结尾。
源列表数据中,一行表示一个挂载点。每行以分号分隔,
序号 | 示例 | 说明 |
---|---|---|
1 | STR | 类型STR/CAS/NET,这里只对STR进行说明 |
2 | RTCM23 | 挂载点(Mountpoint) |
3 | RTCM23 | identifier |
4 | RTCM 2.3 | 差分数据格式 |
5 | 1(1), 3(10) | 数据1(1秒输出一次) 数据3(10秒输出一次) |
6 | 2 | 载波相位数据 0—无1—单频2—双频 |
7 | GPS | 导航系统,如:GPS、GPS+GLO、EGNOS |
8 | SGNET | 网络 |
9 | CHN | 国家 |
10 | 31 | 纬度 |
11 | 121 | 经度 |
12 | 1 | 是否需要发送NMEA。 0—不需要1—需要 |
13 | 1 | 基站类型:0—单基站1—网络 |
14 | SGCAN | 产生此数据流的软件名称 |
15 | None | 压缩算法 |
16 | B | 访问保护 N—None B—Basic D—Digest |
17 | N | Y/N |
18 | 0 | 比特率 |
19 | 0 | NtripCaster给NtripClient发送差分数据时分两种情况: 1、直接转发NtripSource产生的差分数据。在这种情况下,NtripClient只要指定挂载点即可; 2、通过解算多个NtripSource的差分数据,为NtripClient产生一个虚拟的基准站。在这种情况下,NtripClient不仅要指定挂载点,还要发送自身的坐标给NtripCaster,NtripCaster根据这个坐标才能产生虚拟基准站。 NtripClient给NtripCaster发送自身坐标,用到的就是NMEA里的GGA数据。上表的第12个数据说明了是否需要给NtripCaster发送GGA数据,0表示不需要,1表示需要。 |
- NrtipCaster请求TCP连接断开
获取差分数据流程
-
DTU请求与NtripCaster建立TCP连接
-
发送信息
GET /RTCM23_GPS HTTP/1.0\r\nAuthorization: Basic cXhuaXBvMDAxOjMwYmI0NTk=\r\n -
响应
ICY 200 OK
200 OK表示一切正常。
注意:有的服务器只返回200 OK,其余数据行不返回;有的服务器返回的200 -
发送经纬度
$GPGGA, 125954, 4100.00, N, 02429.043, E, 4, 10, 1, 200, M, 1, M, 3, 0*58
没有响应