ROS包nmea_navsat_driver读取GPS、北斗定位信息笔记

硬件: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_driver

nmea_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定位信息 - 简书

你可能感兴趣的:(系统配置,自动驾驶,人工智能,GPS,读取)