这段时间因为各种事情耽误了,好久没有进行更新了,惭愧!
前段时间在研究cartographer的定位建图模块,在停更的时间主要再研究如何改善定位建图的效果,也有一定的成效,但是缺乏有效的外部传感器去作为全局范围的评价标准,所以把目光放在了GPS上,利用GPS提供的经纬度信息,将其转为平面投影坐标,然后利用GPS的室外测绘信息,比较同个回环下改进前与改进后移动机器人回到原点的能力差距(通过定位距离偏差大小来进行评价)。
为了更好的了解GPS的数据格式,我们先来了解下GPS数据协议,然后了解下ROS中的gps_common功能包,了解gps常用数据格式,方便后面根据相应数据格式进行开发工作。
一、GPS数据协议
GPS数据一般采用NMEA-0183协议,该协议是由美国国家海洋电子协会为海用电子设备指定的标准格式,目前已成为GPS导航设备统一的标准协议。
$GPGGA 全球定位数据
$GPGSA 卫星PRN数据
$GPGSV 卫星状态信息
$GPRMC 运输定位数据
$GPVTG 地面速度信息
$GPGLL 大地坐标信息
$GPZDA UTC时间和日期
因为最近在用司南RTK收集GPS数据,收集到的数据格式为GPGGA格式和GPRMC格式。因为接下来我需要在ubuntu系统上写串口驱动解析GPGGA数据格式,所以简单介绍下GPGGA的数据格式。
以实际格式为例进行说明:
$GPGGA,041126.00,3010.9782040,N,12009.2327844,E,2,10,0.5,14.7799,M,0.000,M,1.0,2573*76
看到这么一串数据时,我当时是处于一个头两个大的状态,因为不懂,所以感到心烦。但是当了解GPGGA的数据格式后,看起来就没这么麻烦。
首先是GPGGA代表类型,紧接着:
<1>041126.00

本文介绍了作者在研究Cartographer定位建图时,如何利用GPS数据改善效果。重点探讨了NMEA-0183协议中的GPGGA数据格式,解释了各字段含义,并详细阐述了ROS中的gps_common功能包,特别是GPSFix和GPSStatus数据结构。作者还分享了如何在Ubuntu上解析GPGGA数据,并提供了安装gps_common包的步骤。
最低0.47元/天 解锁文章
1190





