GPS串口驱动的调试(NEMA协议的直接用nmea_navsat_driver功能包即可)

本文主要是介绍GPS串口驱动的调试(NEMA协议的直接用nmea_navsat_driver功能包即可),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

GPS串口的调试

这是用串口助手接收到的信息,这还是在室内的。

我这个GPS模块是NEMA协议的那么用这个功能包应该是可以的,所以就没必要单独找什么GPS的串口驱动了。我去Github搜了下搜不到法系这是个功能包,都不用下源码,直接apt-get install就可以了好像,那岂不是太方便了。还是有Github的  https://github.com/ros-drivers/nmea_navsat_driver.git

这个功能包并不叫GPS应该是用NMEA协议的不止GPS,这也是我前几天在《GPS卫星导航定位技术与方法》这本书里面看到的,具体页面是讲NMEA协议的地方,应该可以找到。

https://gitee.com/maxibooksiyi/gps_driver

https://blog.csdn.net/sinat_16643223/article/details/117339716

可以在launch里面更改波特率和串口号。

还是二进制安装方便,源码编译各种报错,python还是不方便

sudo apt-get install ros-melodic-nmea-navsat-driver (可以双击tap键看有哪些nmea开头的功能包,不看的话你可能就直接去装nmea_gps_driver那可能就找不到了这个功能包,幸亏我之前源码编译了下,知道它的源码工程名叫nmea-navsat-driver,所以选择了这个功能包)

roscore

rosrun nmea_navsat_driver nmea_serial_driver _port:=/dev/ttyACM0 _baud:=119200

rostopic echo /fix

可以看到经纬度,如果没有数据(比如在房间里)经纬度后面就显示nan。终端打印的消息如下。

header:

seq: 521

stamp:

secs: 1629554912nsecs: 999170064

frame_id: "/gps"

status:

status: -1

service: 1

latitude: nan

longitude: nan

altitude: nan

position_covariance: [9998.0001, 0.0, 0.0, 0.0, 9998.0001, 0.0, 0.0, 0.0, 39992.0004]

position_covariance_type: 1

fix (sensor_msgs/NavSatFix) 可以看到发布的/fix话题就是sensor_msgs/NavSatFix类型,和global_fusion功能包里globalOptNode.cpp里所订阅的GPS话题消息类型是一样的,这样等于可以直接用了!!!!!

GPS位置,一直发布即使GPS接受不到信号,发出的数据为无效(nan)

GPS模块不会一开始就有数据,会先等几分钟(回看了下录屏,大概两分多钟)。前几分钟发布的经纬度都收nan,看来GPS模块还是等数据稍微稳定了点才发布出来。

所以globalfusion功能包直接把收到第一个GPS经纬度作为原点也是可以的?

记得across的那篇GPS文章说过,GPS第一次在一个地方是需要等几分钟的,就算是无人机上的GPS也是要等一阵子灯才变绿对吧,估计也是那个时候才有经纬度数据输出,在那之前GPS模块不输出经纬度数据。不对,我前几天测试GPS灯没有变绿也是有经纬度数据的。算了,先不管这个了,总之都是要先等一阵子。

https://blog.csdn.net/sinat_16643223/article/details/118771602

 这是有经纬度数据了

2021.9.5

我在《ROS机器人编程实战》里面就看到专门一节说了GPS(NEMA协议的,用的ublox的GPS模块)接入ROS的功能包就是我用的这个,当然是NEMA协议的。

也是打印的/fix话题

这篇关于GPS串口驱动的调试(NEMA协议的直接用nmea_navsat_driver功能包即可)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/775794

相关文章

GO语言实现串口简单通讯

《GO语言实现串口简单通讯》本文分享了使用Go语言进行串口通讯的实践过程,详细介绍了串口配置、数据发送与接收的代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目录背景串口通讯代码代码块分解解析完整代码运行结果背景最近再学习 go 语言,在某宝用5块钱买了个

SpringBoot+Vue3整合SSE实现实时消息推送功能

《SpringBoot+Vue3整合SSE实现实时消息推送功能》在日常开发中,我们经常需要实现实时消息推送的功能,这篇文章将基于SpringBoot和Vue3来简单实现一个入门级的例子,下面小编就和大... 目录前言先大概介绍下SSE后端实现(SpringBoot)前端实现(vue3)1. 数据类型定义2.

SpringBoot整合Apache Spark实现一个简单的数据分析功能

《SpringBoot整合ApacheSpark实现一个简单的数据分析功能》ApacheSpark是一个开源的大数据处理框架,它提供了丰富的功能和API,用于分布式数据处理、数据分析和机器学习等任务... 目录第一步、添加android依赖第二步、编写配置类第三步、编写控制类启动项目并测试总结ApacheS

Python实现繁体转简体功能的三种方案

《Python实现繁体转简体功能的三种方案》在中文信息处理中,繁体字与简体字的转换是一个常见需求,无论是处理港澳台地区的文本数据,还是开发面向不同中文用户群体的应用,繁简转换都是不可或缺的功能,本文将... 目录前言为什么需要繁简转换?python实现方案方案一:使用opencc库方案二:使用zhconv库

Qt实现删除布局与布局切换功能

《Qt实现删除布局与布局切换功能》在Qt应用开发中,动态管理布局是一个常见需求,比如根据用户操作动态删除某个布局,或在不同布局间进行切换,本文将详细介绍如何实现这些功能,并通过完整示例展示具体操作,需... 目录一、Qt动态删除布局1. 布局删除的注意事项2. 动态删除布局的实现步骤示例:删除vboxLay

Spring Boot整合Redis注解实现增删改查功能(Redis注解使用)

《SpringBoot整合Redis注解实现增删改查功能(Redis注解使用)》文章介绍了如何使用SpringBoot整合Redis注解实现增删改查功能,包括配置、实体类、Repository、Se... 目录配置Redis连接定义实体类创建Repository接口增删改查操作示例插入数据查询数据删除数据更

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

使用EasyPoi快速导出Word文档功能的实现步骤

《使用EasyPoi快速导出Word文档功能的实现步骤》EasyPoi是一个基于ApachePOI的开源Java工具库,旨在简化Excel和Word文档的操作,本文将详细介绍如何使用EasyPoi快速... 目录一、准备工作1、引入依赖二、准备好一个word模版文件三、编写导出方法的工具类四、在Export

mybatis直接执行完整sql及踩坑解决

《mybatis直接执行完整sql及踩坑解决》MyBatis可通过select标签执行动态SQL,DQL用ListLinkedHashMap接收结果,DML用int处理,注意防御SQL注入,优先使用#... 目录myBATiFBNZQs直接执行完整sql及踩坑select语句采用count、insert、u

Java服务实现开启Debug远程调试

《Java服务实现开启Debug远程调试》文章介绍如何通过JVM参数开启Java服务远程调试,便于在线上排查问题,在IDEA中配置客户端连接,实现无需频繁部署的调试,提升效率... 目录一、背景二、相关图示说明三、具体操作步骤1、服务端配置2、客户端配置总结一、背景日常项目中,通常我们的代码都是部署到远程