UR六自由度机械臂运动学正解、逆解及轨迹规划附带python和C源码+webots仿真

小小柚的小小龙 2024-08-09 14:35:02 阅读 74

UR六自由度机械臂运动学正解、逆解及轨迹规划附带python和C源码+webots仿真

(一) 准型DH参数建立坐标系(二) 运动学分析1. 运动学正解分析2. 运动学逆解分析

(三) 轨迹规划(四)源码

  前段时间做了两种类型的六轴机械臂,分别是UR型和PUMA型六轴机械臂。实践过程中,在运动学分析和轨迹规划中遇到了很多的坑。比如,运动学正、逆解的起始位姿和自己想要的不一样;逆解的时候遇到奇异解或者解不出来的解应该怎么避免等等;本文会对以上情况做一个总结。

  后续我还会写关于如何以STM32F407为核心板,通过运动学正、逆解和轨迹规划来控制UR型和PUMA型六轴机械臂完成作业任务。有舵机版本和步进电机版本。

  本文是以标准型DH法建立坐标系,若想了解改进型DH法建立坐标系,可以看我另一篇文章:六轴机械臂运动学正、逆解及轨迹规划带源码

(一) 准型DH参数建立坐标系

在这里插入图片描述

图1 机械臂起始位置图

在这里插入图片描述

图2 机械臂正视图

标准型DH建立坐标系方法:

z轴:与旋转轴共线。

x轴:Xi轴同时垂直于Zi轴和Zi-1轴。(x0可以任意选方向)

y轴:使用右手定则确定。(大拇指指向x轴、中指指向z轴,食指的指向为y轴方向)

标准型DH参数确定方法:

在这里插入图片描述

标准型 DH 参数表:

在这里插入图片描述

注:该表是以图 2 确定的 DH 参数。

θ

\theta

θ列代表着,第二关节、第四关节顺时针旋转 90°(以图 1 视角往里看顺时针旋转 90°),可以转换成图 1 所示姿态。

重点(建议先看后面的运动学正解和逆解,然后在返回来看):

求解运动学正解时,当给的各个关节角度分别为(0°,0°,0°,0°,0°,0°)时,求出的位姿对应的是图 1 的位姿。也就是说,通过标准 DH 参数法建立的坐标系,用运动学正解求解出的起始位姿为图 1 的位姿。如果想要转换成图 2 的位姿,则需要给各个关节角度分别为(0,-90,0,-90,0,0)。运动学逆解求出的角度值,也是基于图 1 起始位姿的角度值。比如,当你输入位姿:(-270.0, -100.59, 84.0, 1.5707963, -0.0, 0.0)时,运动学逆解求出的角度值为:(0°,0°,0°,0°,0°,0°);当你输入位姿:(0.0, -100.59, 504.0, -1.5707963, -0.0, 3.1415927)时,运动学逆解求出的角度值为:(0°,-90°,0°,-90°,0°,0°);

总结:当你在实际项目中时,肯定使用的是图 2 所示的起始位姿。那么需要转换 一 下 起 始 位 姿 。 当 求 解 运 动 学 正 解 时 , 输 入 格 式(th1,th2-90°,th3,th4-90°,th5,th6);th1 到 th6 为我们想要机械臂以图 2 的起始位姿旋转的角度值。当求解运动学逆解时,输入格式不变(x,y,z,gama,beta,alpha),输出时需要在求得的第二角度和第四角度上分别加上 90°。那么最终得到的角度值是以图 2 为起始位姿的角度值。

(二) 运动学分析

1. 运动学正解分析

在这里插入图片描述

2. 运动学逆解分析

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

如果在遇到运动学逆解求不出来的情况下,①遇到了奇异解,解不出来;②超出了机械臂的工作空间,解不出来;

解决办法

第一步:首先需要在运动学逆解函数Inverse_Kinematics(X, Y, Z, gama, beta, alpha)中,写判断语句。如果输入的位姿能够顺利的解出,那么函数返回八组(有可能不是八组,根据情况而定)角度值;如果输入的位姿无解,那么返回0;

第二部:可以通过加或者减位姿的值来避开运动学逆解无法求出的情况,比如:

       当(x,y,z,gama,beta,alpha) = (x0,y0,z0,gama0,beta0,alpha0)时出现逆解无法求解的情况。那么,我们只需要写一个判断语句,判断逆解函数Inverse_Kinematics(X, Y, Z, gama, beta, alpha)的返回值是否等于0,若等于0,那么代表此次传入的位姿,运动学逆解解不出来。这个时候可以给X、Y、Z三者中的任意一个参数加0,01。可以这样做:

(x0+0.01,y0,z0,gama0,beta0,alpha0)、(x0,y0+0.01,z0,gama0,beta0,alpha0)、(x0,y0,z0+0.01,gama0,beta0,alpha0)。虽然在数值上不同了,但是在现实生活中,0.01毫米的偏差肉眼根本看不出来。可以满足工业精度要求

(三) 轨迹规划

在这里插入图片描述

在这里插入图片描述

(四)源码

源码及仿真下载



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。