rospy rosaria AttributeError:“list”对象没有属性“x”

2024-06-26 17:41:31 发布

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

我试图用RosAria向一个先驱P3-AT发送命令(编辑:3-AT或P3-AT,这两个名称都使用)。 我知道RosAria是工作的,因为当我在终端时,我可以使用以下命令移动机器人:

rostopic pub /RosAria/cmd_vel geometry_msgs/Twist '{linear: {x: 0.9, y: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}'

我现在正在尝试使用rospy脚本来移动机器人。 这是我发布velocity命令的地方:

^{pr2}$

以下是错误消息(最重要的部分):

Traceback (most recent call last):
File "robotControl.py", line 32, in startServer
  test = topic.publish(linear, angular)
packages/geometry_msgs/msg/_Twist.py", line 71, in serialize
buff.write(_get_struct_6d().pack(_x.linear.x, _x.linear.y, _x.linear.z, _x.angular.x, _x.angular.y, _x.angular.z))

AttributeError: 'list' object has no attribute 'x'

当我使用集合或numpy数组时也会出现同样的错误。 如果我尝试以另一种格式(而不是两个列表)发布值,则会出现一个错误,即该格式不是预期的格式。 另外,在任一列表中添加或删除条目都不能解决此错误。在

所以我现在的问题是为什么它说我没有x值? 是否需要使用向量(因为它们指定了x、y和z值)?在


Tags: inpy命令格式错误lineatangular
1条回答
网友
1楼 · 发布于 2024-06-26 17:41:31

解决方法:以前我用了两个列表,但是我查了一下,geometry_msgs/Twist需要两个geometry_msgs/Vector3变量。我添加了这个导入:

from geometry_msgs.msg import Vector3

并将线性和角度声明改为:

^{pr2}$

相关问题 更多 >