ROS noetic moveit! 逆运动学碰到的问题

本人在应用胡春旭《ROS机器人开发实践》的10.9.2工作空间规划的moveit_ik_demo.py代码时发现如下问题:

Traceback (most recent call last):
  File "/home/ros-noetic/moveit_test/src/marm_planning/scripts/moveit_ik_demo.py", line 87, in <module>
    MoveItIkDemo()
  File "/home/ros-noetic/moveit_test/src/marm_planning/scripts/moveit_ik_demo.py", line 65, in __init__
    arm.execute(traj)
  File "/opt/ros/noetic/lib/python3/dist-packages/moveit_commander/move_group.py", line 671, 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 53, in msg_to_string
    msg.serialize(buf)
AttributeError: 'tuple' object has no attribute 'serialize'

问题出在:

# 规划运动路径

traj = arm.plan()

# 按照规划的运动路径控制机械臂运动

arm.execute(traj)

rospy.sleep(1)

traj为元组,

    def execute(self, plan_msg, wait=True):
        """Execute a previously planned path"""
        if wait:
            return self._g.execute(conversions.msg_to_string(plan_msg))
        else:
            return self._g.async_execute(conversions.msg_to_string(plan_msg))
def msg_to_string(msg):

    buf = StringIO()

    msg.serialize(buf)

    return buf.getvalue()

所以爆出如下错误:

AttributeError: 'tuple' object has no attribute 'serialize'

请问,哪位高人告知这该如何解决?使得代码正确可靠运行。

请参考 https://blog.csdn.net/m0_43422224/article/details/123047624

到此一游