使用RASPBERRY PI计算机和RTKLIB进行精确的GPS定位-导航

本文的目的是说明原则上如何实现精确的GPS定位。我假设基站和移动单元的配对和配置有效。这意味着两台Raspberry Pi都通过RasPiGNSS GPS接收器通过W-LAN相互连接。基站接收的GPS数据作为原始数据而不是RTCM3数据流发送到移动站。然后,移动站使用RTKRCV程序来计算其自身的精确位置,以实现机器人或本车(在这种情况下)的GPS精确定位。目前,我已经设置了固定基站,并在其旁边设置了路由器。移动单元安装在汽车中,GPS天线安装在中央车顶的后部。

图为接通后不久的结构。移动单元仍在汽车的车顶上。后来将其放在包裹架上。路由器在基站旁边稍微抬高。

RTK_RasPiGNSS_Basisstation_mobile_Einheit-300x225.jpg

首次测试GPS定位-001停车场(20.11.2016)

在Google地球上可以很好地看到这条路线。当时,RTKRCV程序尚未计算RTK解决方案。现有的解决方案是SBAS解决方案。尽管基站和移动单元收到了19颗卫星。我仍然认为我的位置计算配置还不理想。在这里,我必须继续处理rtkrover.conf文件中的设置。

记录的数据与行驶的路线几乎没有重大偏差。我认为照片的右上方的小拱门是我躲开了大而充满雨水的坑洞时创建的。否则,红线会非常准确地反映出汽车行驶的路线。

您可以在下图中看到此测试的结果。我将移动单位记录的路线记录为NMEA文件,转换为KMZ文件并显示在Google Earth中。


Test_001_Fahrstrecke-1-300x255.png


程序RTKRCV的状态显示如下图所示。已经确定了足够的卫星,并且实际上应该可以使用8颗有效卫星进行RTK定位。但这似乎不起作用,我在rtkrcv.conf文件中的配置仍然有问题

RTKRCV-Status-300x213.jpg


如果您对包含航路点的KMZ文件感兴趣,可以在下面下载。

[lv]链接:https://pan.baidu.com/s/1Y9XgSDxYp__0DhDnFHgT6A 
提取码:tcw6 
复制这段内容后打开百度网盘手机App,操作更方便哦
[/lv]


停车场中基站的设置如下图所示。基站的GPS天线固定在三脚架上,带有RasPiGNSS GPS模块的Raspberry Pi装在布袋中。

RTK_RasPiGNSS_Basisstation-300x225.jpg

第二次测试GPS定位-002草地(23.12.2016)

我修改了RTKRCV程序包含的rtkrover.conf配置文件,以便根据应如何接收和处理GPS数据来设置参数。在这里,我终于找到了获得FIX和FLOAT解决方案的设置。从现在开始,安装程序应该可以在几厘米的范围内工作。现在该检查一下了。

下图显示了我实现的FLOAT解决方案。

RTK_FLOAT_Solution_public-300x181.png

第二张图片显示了我的设置能够计算的FIX解决方案。

RTK_FIX_Solution_public-300x181 (1).png

我现在对“浮动和修复解决方案”非常满意,并将继续以稳定性为重点来测试设置。

拦截故障中止精确位置确定

在我使用RasPiGNSS解决方案进行测试的过程中,一次又一次地想到我丢失了精确的GPS位置,然后不再具有GPS定位功能,例如 B.可以拿我的机器人车。因此,错误处理将非常重要。B.可能包含一个额外的GPS接收器,该接收器至少可以确定NMEA的不精确位置。因为即使是不精确的NMEA GPS位置也总比没有位置好。如果发生错误,也可能不再从RasPiGNSS模块读取原始数据流,而是切换到NMEA数据流。该建议来自www.drfasching.at,我使用的RasPiGNSS模块来自该网站。

另一种可能性是继续为机器人汽车的运动提供现有的车轮传感器,加速度传感器和陀螺仪,从而确定相对位置,直到可以用RTK库再次确定绝对位置为止。

在这里,我仍然不确定哪种解决方案是最好的。可能是开头提到的各种选择的组合。

总结

在我最终获得了FLOAT和FIX解决方案的准确性之后,下一步就是增加设置的稳定性。如果我对此感到满意,那么我会将解决方案构建到一个机器人上,该机器人也可以在草地上行驶。



https://custom-build-robots.com/roboter/raspberry-pi-roboter-big-rob-bauanleitung/8134


sitemap