ROS waitForMessage 有时会超时,获取rtk topic 失败问题的解决

在使用DJI OSDK ROS 的基础上进行应用开发时,遇到一个问题,当无人机飞离地面90米左右时,在采用waitForMessage获取最新的RTK_POSITION_AND_DRONE_YAW topic 时,偶发性的出现超时的问题。

问题出现的环境:

1. 系统 DJI M300 + Livox (IP: 192.168.1.3) + Xavier (IP: 192.168.1.10)

2.  WIFI router 提供局域网 连接Xavier 和 地面 Laptop进行通讯。 

3.  Xavier上运行Docker来启动所有的ROS 服务,并通过Laptop来出发服务来launch 任务, 或者landing结束任务。   

问题出现的现象:

1. 问题是偶发的,一担发生就很容易重现,需要换一个环境,在wifi干扰小的地方,或许可以正常工作。

2. RTK_POSITION_AND_DRONE_YAW topic 的publish是正常的,从rosbag play 来看,数据是正常发布的。

3. 就是在飞机飞离router大约90m距离时,waitForMessage段 3秒钟读取超时,获取数据失败。

4. 问题发生时,Livox node 的cpu占用率达到200%占用两个核。 

5. waitForMessage为了确保获得的数据是在调用时刻,刚发布的数据数据,因此,每次调用,都会重新建立一次数据的订阅subscribe,在获得数据后,调用unsubscribe取消订阅。 详细描述如下(

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值