ros与底盘串口通讯缓存数据及解析C++

63 篇文章 106 订阅 ¥9.90 ¥99.00
45 篇文章 131 订阅 ¥9.90 ¥99.00
本文介绍了在自动驾驶ros包调试中遇到的tf树更新延迟问题,分析可能是由于串口数据处理不及时导致。为解决此问题,采用了C++实现的队列数据结构`queue<unsigned char> bufferq`作为串口缓冲区,确保新接收的数据能被有效存储。当数据被解析处理后,从队列中移除已处理的元素,以保持数据流的畅通。
摘要由CSDN通过智能技术生成

在调试底盘ros包的过程里,出现tf树更新不及时问题,以为是串口堵塞,没有及时处理底盘发送的数据,因此创建了一个串口缓冲区,用的是队列

queue <unsigned char> bufferq;

其中主要注意的是新来的数据写入queue,已处理的数据在queue中pop出

数据的获取


/********************************************************
函数功能:从下位机读取数据
入口参数:无
出口参数:bool
********************************************************/
bool readSpeed()
{
    //获取串口数据
    unsigned char gedtnum = ser.available();
    if(ser.available())
    {
        // ROS_INFO_STREAM("Read serial port");
        se
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kobesdu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值