如何在python中“追加”个性化ROS数组消息

2024-04-18 11:33:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我为ROS包定义了以下两个消息结构:

在点.msg在

float64 x
float64 y

在点.msg在

^{pr2}$

我在Python中实例化并填充一个点数组,如下所示:

point_list = points()
pt = point()
for element in self.points:
     pt.x = element[0,0]
     pt.y = element[1,0]
     point_list += (pt,)

这是我得到的错误:

unsupported operand type(s) for +=: 'points' and 'tuple'

PS:已尝试.append但仍不工作


Tags: 实例pt消息for定义msgros数组
2条回答

试试这个

point_list = []
pt = point()
for element in self.points:
     pt.x = element[0,0]
     pt.y = element[1,0]
     point_list += (pt,)

在告诉编译器point类是list对象之前,除非调用point方法,否则这是不可能的。通过将其设置为泛型列表([]),它可以采用任何类型。这是python的一个优点,您不需要总是指定对象类型。在

消息points不是point消息的直接列表,而是一个结构,它有一个名为points的成员,该成员是一个列表。在

要将元素添加到此列表中,必须访问成员,而不是包含结构:

point_list.points.append(pt)

相关问题 更多 >