关于大疆雷达MID100 ROS转发topic丢失数据的问题

3 篇文章 0 订阅

关于大疆雷达的通讯问题

这部分比较主要,因为当时卡在这个问题上了好久,主要问题是大疆雷达在rviz实时显示的时候,livox/lidar这个topic的数据其实是很全的,但是我在转发的时候(单纯的转发,没做任何处理操作),这个时候就发现,我转发的数据会丢失,效果图如下:在这里插入图片描述
彩色的部分是/livox/lidar原话题的数据,白色的是我直接转发的数据,但是发现有的时候有个雷达的数据没有,而且是闪烁性的,随机性的.不是真完整的源数据,花了好长时间在搞这个问题,为了方便转发过程,写的是简单的代码,如下:

 point_date_sub = n.subscribe("/livox/lidar", , &callback);
 raw_point_pub = n.advertise<sensor_msgs::PointCloud2>("/raw_Point", 1);

因为我们在平时对回调函数处理的时候都是将回调函数的队列长度设置为1,这样才能处理队列缓存中最新的消息.所以开始我也是按照这么处理的,但是实际上确实产生了数据丢失的问题,我查看了下/livo/lidar和我转发的数据的topic的频率,如下:
在这里插入图片描述上面的图是我转发数据topic的p频率,大约26,下面的是源数据的topic,大约30,从图上我们可以看出其实数据是有丢失的,所以才产生了最开始图的现象,期间尝试了好多方法都不可以.最终尝试了种种方法,与大疆的工程师也做了沟通,最后将队列缓存区域的长度改为>3的情况,就会好很多,如下:

 point_date_sub = n.subscribe("/livox/lidar", 3, &callback);
 raw_point_pub = n.advertise<sensor_msgs::PointCloud2>("/raw_Point", 3);

设置完之后我们在运行一下程序,效果图如下:在这里插入图片描述
频率基本保持一致.
在这里插入图片描述实际输出的图也几乎是一直的,到此这个问题暂时解决了.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值