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

接上一篇文章《【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 &

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值