我有一个发布者发送一个从 0 到 6 或无的数字。所以我在发送之前将其转换为字符串,以确保它可以发送“无”值。
self.pub = rospy.Publisher("jugada", String, queue_size=1)
self.pub.publish(str(col))
然后我希望订阅者收到它:
class clicker(object):
def __init__(self):
self.jugada_sub = rospy.Subscriber("jugada",String, self.callback)
def callback(self, data):
jugada = data
print(jugada)
而不是打印:
3
相反,它打印
数据:“3”
这分解了我需要该数字(或无)的其余代码。我尝试 str(data) 然后尝试编辑字符串以删除“数据:”部分,但这不起作用。我试着用谷歌搜索了一个小时,但不知道如何摆脱“数据:”或如何更改消息类型以仅发送字符串。
PS稍后在我做的代码中:
if jugada != "None":
jugada = int(jugada)
我得到了错误:int() 参数必须是一个字符串
如果我在开头做 jugada = str(data) ,我得到错误: int() 的无效文字,基数为 10:'data:"3"'