当前位置:网站首页>ROS包nmea_navsat_driver读取GPS、北斗定位信息笔记
ROS包nmea_navsat_driver读取GPS、北斗定位信息笔记
2022-04-23 05:50:00 【ppipp1109】
硬件: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节点的结合体。
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博客
版权声明
本文为[ppipp1109]所创,转载请带上原文链接,感谢
https://ppipp.blog.csdn.net/article/details/123002038
边栏推荐
- 【踩坑】Win11 WSL2 中 meld 无法正常使用问题修复
- The waterfall waterfall flow of uview realizes single column and loads more
- 爬取小米有品app商品数据
- PHP junior programmers, take orders and earn extra money
- A solution to replace not in in SQL
- 【UDS统一诊断服务】二、网络层协议(1)— 网络层概述与功能
- Protection of shared data
- [untitled]
- 圆整 round 的一点点小细节
- Matlab calibration board corner detection principle
猜你喜欢
【UDS统一诊断服务】二、网络层协议(1)— 网络层概述与功能
Cross domain issues - allow origin header contains multiple values but only one is allowed
[UDS] unified diagnostic service (UDS)
gcc ,g++,gdb的安装
Swagger2 generates API documents
在visual stdio中运行qt程序
Opencv uses genericindex for KNN search
类和对象的初始化(构造函数与析构函数)
【UDS统一诊断服务】一、诊断概述(3)— ISO 15765体系结构
[UDS unified diagnosis service] i. diagnosis overview (3) - ISO 15765 architecture
随机推荐
Opencv uses genericindex for KNN search
爬虫效率提升方法
[UDS unified diagnosis service] i. diagnosis overview (2) - main diagnosis protocols (K-line and can)
sqlite编译
C语言实现2048小游戏方向合并逻辑
Rust: Tcp 服务器与客户端的一个简单例子
【UDS统一诊断服务】一、诊断概述(4)— 基本概念和术语
【UDS统一诊断服务】五、诊断应用示例:Flash Bootloader
C语言的运算符
猜数字游戏
Cross domain issues - allow origin header contains multiple values but only one is allowed
The waterfall waterfall flow of uview realizes single column and loads more
【无标题】
Matlab calibration board corner detection principle
Class inheritance and derivation
C语言进阶要点笔记4
拷贝构造函数
爬取彩票数据
C语言输入和输出(printf和scanf函数、putchar和getchar函数)
[UDS unified diagnostic service] IV. typical diagnostic service (2) - data transmission function unit