ROS:Inbound TCP/IP connection failed: ‘int‘ object has no attribute ‘peer_subscribe‘解决方法

一、遇到的问题

最近在用 ROS 作开发,遇到了这个问题。

有个Topic,如果只是发布的话,则人畜无害,无事发生。

如果另一个节点订阅的话,则会持续输出以下警告信息:

[WARN] [1670378208.090744]: Inbound TCP/IP connection failed: 'int' object has no attribute 'peer_subscribe'

同时订阅的话题接收到的消息也是断断续续的。

二、解决方法

搜了好久,终于在网上扒到了一篇教程:这篇

按照这篇教程,在 1 前面加上 queue_size= 即可

改之前的代码:

pub=rospy.Publisher("/all_targets",AllTargets,1)

改后的代码:

pub=rospy.Publisher("/all_targets",AllTargets,queue_size=1)

之后就正常了

三、思考

这个问题主要是因为 rospy 中的 Publisher 函数与 roscpp 中的不太一样。因为我用习惯了 C++ ,所以就想当然地认为 Python 中的函数接口也是一样的。。。(太丢脸了呜呜呜呜呜~ 这么简单的错误浪费了我那么多的时间去排查,差点就要把所有代码推倒重写了 TvT)

rospy 中的 Publisher 函数的第三个参数是 subscribe_listener ,queue_size 是最后一个参数。因此需要指定数字1给的是 queue_size

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值