UR机械臂正逆运动学求解

       最近有个任务:求解UR机械臂正逆运动学,在网上参考了一下大家的求解办法,众说纷纭,其中有些朋友求解过程非常常规,但是最后求解的8组解,只有4组可用。在这里我介绍一个可以求解8组解析解的方法,供大家参考。

       以UR5机械臂结构和尺寸参数为例进行正逆运动学求解,下图分别是UR5结构图和标准DH系参数:

1. 正运动学求解

正运动学是已知关节六个角度求变换矩阵T

其中:

整理得:

带入DH参数,求解:

        

最终变换矩阵:

正运动学求解完毕。

2. 逆运动学求解

逆运动学是已知变换矩阵T,求六个关节角度 。逆运动学求解有解析法,几何法,迭代法,这里采用解析法求解。

2.1 两个简单的数学方法

2.1.1 求角度

 这个逆运动学算法求解的角度范围是

因为标准的反正切arctan的值域是

所以不能使用,这里介绍一个改进的反正切求法 Atan2(y, x)(Matlab里有这个函数),它的值域可以满足要求。

2.1.2 解方程

首先进行三角恒等变换,令

其中:

然后带入原方程:

2.2 约定

为了简化书写,约定:

2.3 求解1,5,6关节角度

已知:

其中:

等式左边:

等式右边:

2.3.1 求关节角1

利用等式左右两边第3行,第4列对应相等求关节角1。

整理得:

设:

则  

根据前面介绍的解方程的方法:

2.3.2 求关节角5

利用等式左右两边第3行,第3列对应相等求关节角5。

解得:

2.3.3 求关节角6

利用等式左右两边第3行,第1列对应相等求关节角6。

设:

根据前面介绍的方法:

其实可以通过化简得到式中

2.4 求解2,3,4关节角度

已知:

其中:

等式左边等于

等式右边等于

2.4.1 求解关节角3

利用等式左右两边第1行,第4列对应相等,第2行,第4列对应相等,求关节角3。

为了简化,设:

将m,n带入上式得

式子③④平方和为

因为

所以

2.4.2  求解关节角2

将③④展开得:

将关节角3带入⑤⑥,求关节角2得

2.4.3  求解关节角4

的第2行第2列,第1行第2列求 

2.5 总结

2.5.1 求解公式

2.5.2 奇异位置

1.肩关节奇异位置

此时末端执行器参考点O6位于轴线z1和z2构成的平面内,关节角1无法求解。

2.肘关节奇异位置

此时关节角2无法求解。

3.腕关节奇异位置

此时轴线z4和z6平行,关节角6无法求解。

2.6 实例

利用Matlab机器人库 ur5 DH参数:


alpha1 = pi/2;          a1=0;                 d1=89.459;

alpha2 = 0;              a2=-425;           d2=0;

alpha3 = 0;              a3=-392.25;      d3=0;

alpha4 = pi/2;           a4=0;               d4=109.15;

alpha5 = -pi/2;          a5=0;               d5=94.65;

alpha6 = 0;               a6=0;               d6=82.3;

取 theta1 = 1;  theta2 = 1;  theta3 = 1;  theta4 = 1;  theta5 = 1;  theta6 = 1;  (不要纠结theta选这6个数值是否有实际意义,这里只验证算法的有效性)

  • 将theta带入正运动学公式,求T:

  • 将T带入逆运动学公式, 反求theta

theta = 

  • 再将8个theta带入正运动学公式,反求8个T:

8个T均等于

验证了算法的有效性

在Unity中实现机械臂逆运动学可以通过以下步骤完成: 1. 创建机械臂模型:在Unity中,首先需要创建机械臂的模型。可以使用Unity的3D建模工具或导入外部模型文件创建机械臂。 2. 定义机械臂关节:根据机械臂的结构,定义每个关节的类型和参数。例如,旋转关节可以使用`HingeJoint`组件来表示,平移关节可以使用`SliderJoint`组件。 3. 实现逆运动学算法:逆运动学算法用于计算机械臂关节的角度或位置以实现特定的目标位置或姿态。常见的逆运动学算法包括解析解法和数值解法。 - 解析解法:对于简单的机械臂结构,可以使用解析解法求解逆运动学问题。这涉及到数学计算和公式推导,可以根据机械臂的结构和要求手动推导出关节角度的表达式。 - 数值解法:对于复杂的机械臂结构或无法求得解析解的情况,可以使用数值解法求解逆运动学问题。这涉及到迭代计算和数值优化算法,通过不断调整关节角度来逼近目标位置或姿态。 4. 实现运动控制:在逆运动学算法的基础上,将计算得到的关节角度或位置应用到机械臂模型上,实现机械臂的运动控制。可以通过修改关节的旋转角度或位置来控制机械臂姿态。 需要注意的是,机械臂逆运动学是一个复杂的问题,涉及到数学和物理知识。具体的实现方式和算法选择会根据机械臂的结构和需求而有所不同。以上是一个简单的概述,具体的实现细节可能需要根据具体情况进行调整和优化。
评论 74
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值