Python 在ROS列表中放置一些姿势

Python 在ROS列表中放置一些姿势,python,ros,Python,Ros,我尝试使用“geometry\u msgs.msg.\u Pose.Pose”类,并通过python在列表中放置一个连续的姿势。以下是我的工作: from geometry_msgs.msg import Pose pose = Pose() list = [] for i in range(5): pose.position.z = pose.position.z + 1 list.append(pose) 所以我希望列表中的姿势是一个连续的姿势,对应于从1到5的z值。然而,

我尝试使用“geometry\u msgs.msg.\u Pose.Pose”类,并通过python在列表中放置一个连续的姿势。以下是我的工作:

from geometry_msgs.msg import Pose
pose = Pose()
list = []
for i in range(5):
    pose.position.z = pose.position.z + 1
    list.append(pose)
所以我希望列表中的姿势是一个连续的姿势,对应于从1到5的z值。然而,结果是列表中的姿势相同

我对python和ros都是新手。。。。。谁能帮帮我吗。。。。。谢谢大家!

查看此帖子:

发生这种情况的原因是,您只有一个“姿势”,列表中的所有元素都指向它(python假装没有指针,但它确实有)。要解决此问题,需要为列表中的每个元素生成新姿势

比如:

from geometry_msgs.msg import Pose
list = []
for i in range(5):
    pose = Pose()
    if i > 0:
        pose.position.z = list[i - 1].position.z + 1
    list.append(pose)

for item in list:
    print item.position.z

会对你有用的。

是的,很有用!关于python中的指针,您的意思是pose实际上是指针吗。所以我把那个指针附加到列表?对。姿势实际上是指向场景后面的姿势对象的指针。我发布的链接中有一些很好的例子,说明了这是如何工作的,以及如何测试变量是否是引用。