【发布时间】:2014-11-24 14:01:43
【问题描述】:
我正在尝试通过 python 订阅 ROS 中的 4 个不同的发布者。我使用以下代码:
def callback(data):
rospy.loginfo (" Publisher1 Value %s ", custom_msg1.custom_string1)
rospy.loginfo (" Publisher2 Value %s ", custom_msg2.custom_string2)
rospy.loginfo (" Publisher3 Value %s ", custom_msg3.custom_string3)
rospy.loginfo (" Publisher4 Value %s ", custom_msg4.custom_string4)
rospy.loginfo (" float_publisher value %f ", data.Float64)
def python_code():
rospy.init_node("python_code")
rospy.Subscriber("float_publisher",Float64,callback)
rospy.Subscriber("publisher1", custom_msg1,callback)
rospy.Subscriber("publisher2", custom_msg2,callback)
rospy.Subscriber("publisher3", custom_msg3,callback)
rospy.Subscriber("publisher4", custom_msg4,callback)
rospy.loginfo(" Test: start spinning!")
rospy.spin()
rospy.loginfo("node has shutdown!")
其中 custom_msg1.msg 包含定义为字符串的 custom_string1,其方式与 custom_msg2.msg、custom_msg3.msg 相同strong> 和 custom_msg4.msg
我想知道我是否正确使用了 float 消息以及 custom messages。 输出如下:
Publisher1 Value <member 'custom_string1' of 'custom_msg1' objects>
Publisher2 Value <member 'custom_string2' of 'custom_msg2' objects>
Publisher3 Value <member 'custom_string3' of 'custom_msg3' objects>
Publisher4 Value <member 'custom_string4' of 'custom_msg4' objects>
以错误结束:
rospy.loginfo (" float_publisher value %f ", data.Float64)
AttributeError: 'Custom_msg4' object has no attribute 'Float64'
我不知道这里出了什么问题
【问题讨论】:
-
@jonrsharpe 我得到一个输出,这是错误的,也是一个错误消息。
-
您的回溯与您发布的代码不匹配。另外,请注意
callback的最后一行与前四行不太一样。 -
我更改了代码。我使用导入函数来导入浮点数并且错过了在我发布的代码中更新它。我会更新的。