在ROS中将一些姿态放入列表
我尝试使用类 'geometry_msgs.msg._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)
我希望列表中的位置是与z值从1到5对应的连续位置。然而结果是列表中的位置都是一样的……
我对Python和ROS都很陌生……所以能不能请大家帮帮我……谢谢!
1 个回答
1
看看这个Udacity的帖子:
出现这个问题的原因是你只有一个“Pose”,而列表中的所有元素都指向它(虽然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
这样就可以解决你的问题了。