0

我定义了一条自定义消息:uint8[] data

自定义消息导入到我的 Node 类中没有问题:from my_shared.msg import MyMessage

在同一个节点中,我使用以下命令创建发布者:self.my_publisher = self.create_publisher(MyMessage, 'topic_in', 200)

我发布消息:self.my_publisher.publish(my_msg)

my_msg 的构建方式如下:

payload_bitstream = np.fromstring(my_data, np.uint8)
my_msg = payload_bitstream.tolist()

可悲的是,我得到一个TypeError: File "/opt/ros/eloquent/lib/python3.6/site-packages/rclpy/publisher.py", line 68, in publish raise TypeError() TypeError

如果你知道我做错了什么,你能帮忙吗?

在此先感谢,G。

4

1 回答 1

0

问题在于您对 的分配,它是包含文件中定义的属性my_msg的类的实例,即其类型为. 您确实获得了具有 uint8 值的本机 python int 列表,但您需要将其分配给属性。TL;博士:MyMessagemy_shared.msgmy_msg.datauint8[]payload_bitstream.tolist()data

my_msg.data = payload_bitstream.tolist()
于 2020-06-11T17:50:34.413 回答