moveit 逆运动学报错 ‘tuple‘ has no attribute ‘serialize‘

moveit 逆运动学报错 ‘tuple’ has no attribute ‘serialize’

在逆运动学教程中,运行文件 moveit_ik_demo.py 出现如下错误:
moveit 逆运动学报错 ‘tuple‘ has no attribute ‘serialize‘_第1张图片
在古月居博客上看了博主的问答贴,首先做如下更改:

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

保存后再次进行运行,出现了如下问题:
在这里插入图片描述
修改坐标值如下:

target_pose.pose.position.x = 0.2593
target_pose.pose.position.y = 0.0636
target_pose.pose.position.z = 0.1787
target_pose.pose.orientation.x = 0.70692
target_pose.pose.orientation.y = 0.1
target_pose.pose.orientation.z = 0.2
target_pose.pose.orientation.w = 0.70729

这样修改后,机械臂在 moveit 中可以成功规划并执行动作,然后修改

target_pose.pose.position.x = 0.3593
target_pose.pose.position.y = 0.1636
target_pose.pose.position.z = 0.2787

机械臂能正常运动。但任意修改四元素部分的值,就会再次出现如下的问题:

No motion plan found. No execution attempted

这样的错误。发现是修改后的四元数 “ 模 ” 不等于 “ 1 ” 的缘故,也就是说任意修改后的四元数不再是 “单位四元数” 了。
因此,对四元素进行如下更改,则机械臂可以正常运动。

target_pose.pose.orientation.x = 0.43368
target_pose.pose.orientation.y = 0.6514171
target_pose.pose.orientation.z = 0.5081903
target_pose.pose.orientation.w = 0.359611

这里再贴一个 欧拉角-四元数 在线转换网站,欧拉角进行转换后,用得到的四元数替换程序中四元数部分,即可实现机械臂不同姿态的控制。

你可能感兴趣的:(深度学习,自动驾驶,人工智能)