一. GPS接口类型
GPS接口大体可以分为两类,一是单独的GPS接收器,通常为USB接口;二是与其他传感器集成,例如激光雷达或者imu,大多是USB或者网络接口,本文主要介绍USB接口实例。
二. 概念
这里有三个概念,需要明确下:驱动,SDK和ROS驱动。以USB GPS为例,GPS驱动是作为操作系统层面的驱动程序,一般需要事先安装,安装成功后,接入GPS设备时,会出现相应的设备文件,
通常为/dev/ttyUSBx,x是一个数字,代表设备号,与主机接入的设备个数和顺序有关。在驱动安装完成之后,我们就获得了设备文件。GPS SDK是一套应用层程序,可以从设备文件中获取设备数据,驱动和SDK一般都由厂家提供。
ROS驱动通常是基于SDK进行ROS封装而成,目前有不少传感器厂商和ROS社区提供了常用传感器的ROS驱动。
三.GPS ROS驱动获取
当我们拿到一个GPS之后,可以首先查下这款GPS有没有ROS驱动,可以咨询厂商或者到ros wiki查询,链接:
Sensors - ROS Wikiwiki.ros.org如果没有现成的ROS驱动,可以基于厂商提供的SDK自己封装,可以参考同类型ros驱动设计。
四. nmea_navsat_driver
nmea_navsat_driver是一套用于获取并解析GPS数据的ROS驱动包,使用Python语言实现。GPS设备使用此包的条件是:遵守或者兼容NMEA0184协议。nmea_navsat_driver提供四个节点:nmea_topic_driver,
nmea_serial_driver,nmea_topic_serial_reader和nmea_socket_driver。
1. 文件结构
执行以下指令:
roscd nmea_navsat_driver
sudo apt install tree
tree -L 4
执行效果如图: