硬件:ATGM332D + 串口调试工具 + GPS 天线
软件: ubunutu 18.04 + ros
1. 串口 读取数据
sudo apt install cutecom
sudo cutecom //设置 波特率9600 可以看到反馈的数据
2. nmea_navsat_driver 包的使用
sudo apt-get install ros-melodic-nmea-navsat-driver libgps-dev
注意:nmea_navsat_driver提供四个节点:nmea_topic_driver,
nmea_serial_driver,nmea_topic_serial_reader和nmea_socket_drivernmea_topic_serial_reader节点
此节点从串口读入GPS数据,然后封装为nmea_msgs/Sentence数据格式,发布话题nmea_sentence。
nmea_topic_driver节点
此节点订阅话题nmea_sentence,然后根据NMEA0184协议解析,并发布解析后的数据,发布话题为:经纬度/fix,速度/vel,gps时间/time_reference和航向角/heading。
nmea_serial_driver节点
此节点从串口读数据,直接解析发布数据,相当于nmea_topic_driver节点和nmea_topic_serial_reader节点的结合体。
github源码:https://github.com/ros-drivers/nmea_navsat_driver
3. 打开新Terminal窗口打开ROS系统(相关ROS环境创建、ROS包编译等基础知识务必先在网上查清楚),输入
roscore
再打开一个新Terminal窗口发布(Publish)定位模块的信息,输入
rosrun nmea_navsat_driver nmea_topic_serial_reader _port:=/dev/ttyUSB0 _baud:=9600
发布定位模块信息时,窗口中不会像cutecom中那样不停显示最新的定位数据,会提示SyntaxWarning: The publisher should be created with an explicit keyword argument 'queue_size'.,忽略即可。该ROS包把数据通过/nmea_sentence这个Topic发布出来,为了验证定位数据发布成功,我们再打开一个新Terminal窗口读取/nmea_sentence中的信息,输入
rostopic echo /nmea_sentence
4. 运行nmea_serial_driver 节点;
需要关闭第3 节中所有的终端,
roscd nmea_navsat_driver/launch/
sudo vim nmea_serial_driver.launch
如下修改修改波特率为9600
打开一个终端 usb赋值,启动launch文件
sudo chmod 777 /dev/ttyUSB0
roslaunch nmea_navsat_driver nmea_serial_driver.launch
新开一个终端,查看当前的gps信息
rostopic echo /fix
1. 要点初见:通过ROS包nmea_navsat_driver读取GPS、北斗定位信息(C/C++)_m0_37857300的博客-CSDN博客
2. #调用传感器数据_ROS传感器之GPS实践_glietwx的博客-CSDN博客
3.(1)GNSS驱动nmea_navsat_driver 功能包的使用_Qi Xiang 齐翔的博客-CSDN博客
4. week50 nmea_navsat_driver读取GNSS定位信息 - 简书