ROS包nmea

编程入门 行业动态 更新时间:2024-10-07 14:32:31

<a href=https://www.elefans.com/category/jswz/34/1768665.html style=ROS包nmea"/>

ROS包nmea

硬件: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源码:

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

<launch><!-- A simple launch file for the nmea_serial_driver node. --><arg name="port" default="/dev/ttyUSB0" /><arg name="baud" default="9600" /><arg name="frame_id" default="gps" /><arg name="use_GNSS_time" default="False" /><arg name="time_ref_source" default="gps" /><arg name="useRMC" default="False" /><node name="nmea_serial_driver_node" pkg="nmea_navsat_driver" type="nmea_serial_driver" output="screen"><param name="port" value="$(arg port)"/><param name="baud" value="$(arg baud)" /><param name="frame_id" value="$(arg frame_id)" /><param name="use_GNSS_time" value="$(arg use_GNSS_time)" /><param name="time_ref_source" value="$(arg time_ref_source)" /><param name="useRMC" value="$(arg useRMC)" /></node>

打开一个终端 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定位信息 - 简书

更多推荐

ROS包nmea

本文发布于:2024-02-13 10:23:52,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1758084.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:ROS   nmea

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!