python 回调中的广告整数

Advertising integer on python callback

我在基于 python 的 ROS 中编写一个插件,所以当我 运行 包并在我的 GUI 中按下一个按钮时,它会在 [= =19=]回调,信号为真。我将回调定义为:

def getqueue_cb(self):

self.get_queue_pub.publish(1)

及以上代码我有:

self.get_queue_pub = rospy.Publisher('get_queue', int(1), queue_size=10)

当我运行 ROS 中的包时,它出现故障。当我注释掉我在此处编写的代码的第二部分时,会弹出 GUI 的其余部分并且 运行 没问题。我觉得我的问题是整数的语法。如果可以的话,让我知道我做错了什么。

您不能直接发布整数,但您必须使用 std_msgs 中定义的 "integer messages" 之一。请尝试以下操作:

from std_msgs.msg import Int32
self.get_queue_pub = rospy.Publisher('get_queue', Int32, queue_size=10)

Publisher 的第二个参数需要消息类型,而不是实际值。)