当前位置:   article > 正文

【Apollo】【driver】【gnss】适配新的gps设备的方式与经验总结_apollo driver gnss

apollo driver gnss

接上一篇文章《【Apollo】【driver】【gnss】模块调试与分析》,这篇主要讲如何在gnss中适配新的gps设备与遇到的问题总结。

一般的步骤要以文件docs/howto/how_to_add_a_gps_receiver.md ,这里多介绍踩过的坑和相关经验

修改代码

新的设备需要有新的xxxx_stream.cppxxxx_parser.cpp
raw_stream机制:每次read 一条完整的信息然后将此信息publish给data_parser。
这里就会出现问题:以司南为例,使用的是usb转com通信,虽然stream中提供了serial通信方式serial_stream.cpp ,但由于serial通信中有可能出现一次读取多条或半条数据的情况,需要在基于serial通信方式上在再做一定的处理,使其符合一次size_t length = _data_stream->read(_buffer, BUFFER_SIZE);操作返回一条完整的数据.

data_parser机制:每次sub收到的一条信息后,进行解析,解析后publish出去
由于apollo适配的novatel设备,因此data_parser模块中的自用到的proto数据类型和发布出去topic数据类型,和novatel反馈回来的数据强相关。这就需要适配新的设备的数据到原始的xxxx.proto上面。
以司南为例,返回的都是NMEA-0183格式的数据:
- GPGGA : 经纬度信息,经纬度格式为ddmm.mmmmmm(度分格式)
- GPTRA &

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/414129
推荐阅读
相关标签
  

闽ICP备14008679号