解决报错 AttributeError: ‘tuple‘ object has no attribute ‘serialize‘

在运行moveit_ik_demo.py时报错如下所示

  File "/home/young/rm_eng/src/eng_arm_planing/scripts/moveit_ik_demo.py", line 88, in 
    MoveItIkDemo()
  File "/home/young/rm_eng/src/eng_arm_planing/scripts/moveit_ik_demo.py", line 66, in __init__
    arm.execute(traj)
  File "/opt/ros/noetic/lib/python3/dist-packages/moveit_commander/move_group.py", line 691, in execute
    return self._g.execute(conversions.msg_to_string(plan_msg))
  File "/opt/ros/noetic/lib/python3/dist-packages/moveit_commander/conversions.py", line 50, in msg_to_string
    msg.serialize(buf)
AttributeError: 'tuple' object has no attribute 'serialize'

琢墨了一会后发现是move_group中plan函数的返回值有四个,分别为plan_success   traj          planning_time   error code

因此,把源码中的

traj = arm.plan()

修改为

plan_success,traj,planning_time,error_code=arm.plan()

即可

再运行时不再报错

你可能感兴趣的:(c++,python)