在之前的文章中,我们介绍了什么是RTK,接下来我们将为大家展示RTK使用实例,可以通过两种不同的方法来模拟RTCM的使用,一种是基于RTCM插件,另一种是基于多实例来模拟两个同步的射频信号。
RTK插件方法可以帮助没有基础接收机而想模拟RTCM校正的用户,而第二种方式适用于那些希望将基本接收器纳入循环的用户,本期文章我们将先介绍第一种方法。
使用RTCM插件
硬件设置
可用于测试RTK插件的虹科Safran GSG-8硬件模型有:
GSG-811 | GSG-821 | GSG-831 | GSG-842 |
1 RF Output 1 GPU/SDR | 2 RF Outputs 1 GPU/2个SDR | 3 RF Outputs 1 GPU/3个SDR | 4 RF Outputs 2 GPU/4个SDR |
在这个应用实例中,我们将展示一个简单的场景,将RTCM插件与虹科Safran Skydel搭配使用。
在系统配置图中可以看到,RF0和RF1使用一个合路器、隔直器和20dB衰减器进行组合。Skydel的主实例和从实例都在同一个虹科Safran GSG-8单元上运行。在本文中,配置的是L1/L2信号,但对于RTK来说,并不强制要求是双频的,用户可以只使用GSG-811选择L1频率。
软件设置
需要两个Skydel应用程序的实例来模拟参考站和流动站的GNSS星座。流动站实例使用连接到被测流动站接收器的射频输出,用于虚拟参考站模拟的实例可以被配置为使用 "NoneRT "输出。
基准站配置
打开一个Skydel实例,新建配置,选择“Settings(设置)”→“Output(输出)”:
信号选择
在“Settings(设置)”→“Output(输出)”中,选择“NoneRT”输出,然后单击 “Add(添加)”两次,在输出设置中选择要为参考站模拟的信号。
与基准站进行时间同步
允许参考站模拟器与流动站模拟器同步:
- 进入“Settings(设置)”→“Global(全局)”→ “Synchronize simulators(同步模拟器)”
- 设置复选框“Sync Time (Slave)(同步时间(从属))” ,这将允许两个实例在同一时间启动。
车辆运行轨迹
在“Settings(设置)”→“Vehicle(车辆)”→“Body(车身)”中选择参考站位置。将轨迹类型设置为“Fixed(固定)”,并输入如图所示的坐标:
RTCM配置
将RTCM插件加载到配置中。进入“Settings(设置)”→“Plug-ins(插件)”,选择“Add Plug-in(添加插件)”。设置插件实例的名称和类型,并选择 "OK":
选择新的插件实例:
插件UI菜单显示插件的界面:
“Stream RTCM to port”行允许选择用于广播RTCM数据的串口,PC串口必须物理连接到接收器。确保通信参数(在“Configure(配置)”按钮下方)与接收器端的串口参数匹配。选定的波特率应足以实时广播所有选定的消息,通常选择115200。
在RTCM Messages菜单中,本方案中选择的消息包括:
- 1006(参考站位置)
- 073(MSM3 GPS)
流动站配置
打开一个Skydel实例,新建配置。
信号选择
点击Radio 1的RF-A输出的编辑按钮,并为Radio 2选择GPS L1 C/A和GPS L2C。
与流动站的时间同步
允许流动站模拟器与参考站模拟器同步。进入“Settings(设置)”→“Global(全局)”→“Synchronize simulators(同步模拟器)”,设置复选框“Sync Time (Master)(同步时间(主))”,这将允许参考站模拟与流动站模拟同步开始。
设置复选框 "Automatically broadcast configuration on simulation start"。在“Exclude”一栏,勾选“Radios”、“Outputs and Radios”、“Vehicle motion”、“Vehicle antenna”、“Interference”和“Plug-in”。
车辆运行轨迹
在“Settings(设置)”→“Vehicle(车辆)”→“Body(车身)”中选择流动站轨迹,将轨迹类型设置为 "Circle(圆形)",并按照图片中的描述输入坐标:
本文使用Novatel OEM7700接收器演示该功能,如果接收器不同,请根据使用说明安装和配置接收器。
NOVATEL接收机
安装 Novatel 应用套件
在Windows® 10计算机上运行NovAtel应用套件,并通过串行、USB或以太网连接与Novatel接收机进行通信。按照安装指引安装NovAtel应用套件。
启动 Novatel 应用套件
打开应用程序,点击设置监控(S&M)图标。
添加一个设备 - USB连接
在启动接收机的设置与监控会话之前,必须在设备窗口为接收机添加一个设备:
单击“Add Device(添加设备)”按钮,打开新连接的对话框:
键入一个设备的名称,点击“USB”按钮。新连接对话框展开,显示USB设置:
点击这个接收器使用的虚拟COM端口上的按钮,点击“Add”按钮,添加新设备到设备窗口中。
状态与配置窗口
当与接收机的连接被打开时,将显示状态与配置窗口。接收机的所有状态和配置窗口都可以从此进入:
要将 Novatel 接收器设置为 RTK 模式,需要进入配置菜单并选择定位窗口,勾选“Receive(Rover)”并点击下一步:
在定位菜单中,启用RTK并选择AUTO作为输入格式,在输入端口中选择COM1:
点击COM1配置,选择波特率值为115200:
也可以对Novatel的NMEA信息进行配置,以便能够在虹科Safran Skydel接收器窗口中观察到它们:
要做到这一点,需要进入应用程序的端口部分,在其中一个USB虚拟端口上添加以下信息:
- GPGGA
- GPGSA
- GPGSV
- GPRMC
进入“Logging(日志)”菜单,在自定义信息部分输入“BESTPOS”,然后点击 “Next”:
在弹出的窗口中选择编辑,将BESTPOS信息的格式改为ASCII,以文本格式保存Novatel接收器的原始数据,单击“Start”按钮:
在菜单“Tools(工具)” → “Terminal.(终端)”中输入“reset”。
为了分析模拟的准确性,可以查看日志文件中捕获的数据,可以创建一个接收器记录的海拔高度随时间变化的图:
使用GitHub repo上的python脚本main_rtcm.py来绘制海拔高度,可以从Skydel的GitHub上访问该脚本。确保使用3.8版本及以上的python,把文件路径放到python脚本中,然后运行该脚本:
# importing csv module
import ...
# csv file name
filename = "your_file.gps"
# initializing the titles and rows list
fields = []
rows = []
# reading csv file
with open(filename, 'r') as csvfile:
# creating a csv reader object
csvreader = csv.reader(csvfile)
# extracting field names through first row
得到结果如下:
本次测试定义的高度是2米,图中显示误差小于3厘米,相比之下,如果在“Settings(设置)”→“Plug-ins(插件)”→“RTCM plugin(RTCM插件)”→“Remove(删除)”中删除参考站配置中的RTCM插件,将得到如下结果:
通过比较上述两种结果可以看到RTCM插件所提供的稳定性和修正。
上述是基于RTCM插件进行模拟的硬件与软件设置步骤,在下期文章中,我们将展示这一方式的运行与分析模拟结果。