4.1 本章任务
本章是将思路逆转过来,已知机械臂的位置和姿态,计算关节角,由此即为逆运动学。
这个任务可以分为两个小问:第一,进行坐标系变换,求出相对于基坐标系{B}的腕部坐标系{W};然后,应用逆运动学求关节角。
4.2 解的存在性
首先,操作臂运动学方程是一个非线性问题,已知 N 0 T ^0_NT N0T,求出 θ 1 , θ 2 , θ 3 . . . , θ n \theta_1,\theta_2,\theta_3...,\theta_n θ1,θ2,θ3...,θn。
着重考虑如下方程:
对于具有6个自由度的操作臂来说,有12个方程,其中6个是未知的。然而,在由 6 0 T ^0_6T 60T的旋转矩阵分量生成的9个方程中,只有3个是独立的。将这3个方程与由 T 0 ^0_T T0的位置矢量分量生成的3个方程联立,6个方程中含有6个未知量。这些方程为非线性超越方程,难以求解。 而现实的问题可能要更复杂,因为连杆偏距、长度、 α i \alpha_i αi不一定为0。所以,我们需要考虑解的存在性,并且解决多解问题。
解的存在性
解的存在必须满足:被指定的目标点必须在工作空间(操作臂末端执行器所能到达的范围)内。
工作空间有两种,一是灵巧工作空间,指的是机器人的末端执行器能够从各个方向到达的空间区域。二是可达工作空间,指的是其末端执行器至少从一个方向能到达的区域。
上图操作臂的工作空间:
如果 l 1 = l 2 l_1=l_2 l1=l2,则可达工作空间是半径 2 l 1 2l_1 2l1的圆,而灵巧工作空间仅是单独的一点,这就是原点。
如果 l 1 ≠ l 2 l_1≠l_2 l1=l2,则不存在灵巧工作空间,可达工作空间为外径 l 1 + l 2 l_1+l_2 l1+l2、内径为 ∣ l 1 − l 2 ∣ \lvert{l}_1-l_2\rvert ∣l1−l2∣的圆环。在可达工作空间的内部,末端执行器有2种可能的方向,而在工作空间的边界上只有一种可能的方向。
需要注意的是这里的假设:所有关节能够旋转360°,但这并不常见。所以实际上能够成立的姿态会减少。而且,有一些运动范围是联动的。
操作臂少于6自由度时,它不能达到三维空间内一般的目标位置和姿态。上图的操作臂自由度被限制,不能伸出平面,Z坐标不为0的点都到达不了。我们只有这一种办法—逐个研究这种操作臂,弄清楚它的工作空间。还有就是,计算最近的可达目标点来研究操作臂可以执行近似操作的区域。
还有一个问题,那就是工具坐标系也决定了工作空间。作为技术人员可能更关心腕部坐标系{W}的计算,但是实际上工具执行的任务可能更为重要,如果腕部坐标系被工具坐标系的工作空间包含,那么至少存在一个解。
多解问题
3个旋转关节的平面操作臂已经可以从任何姿态到达工作空间的任何位置,赋予了其较大的灵巧工作空间,如下图所示:
虚线表示的是机械臂的第二个位形。此位形下,末端执行器(工具)可达位置和姿态与第一个位形相同。
多解问题,意味着选择。系统必须选择一个最终解作为执行目标,因此,我们需要讨论如何产生最优解。我们知道,机械臂应当选取最易到达的位姿进行解算,所以我们需要的是最近解。这牵扯到的问题即是如何定义最近解。
不同的机械臂可能有不同的机构设计,比如配备小连杆和大连杆两种连杆,这种情况下,当然是移动小连杆更经济。所以,我们需要对连杆大小加权计算,给小连杆更高的权重。这是理想的状况,现实是,小连杆移动的解可能造成碰撞。此时,我们需要选择备用解——也就是“较远”解。所以设计算法的时候,需要对全部解进行保留操作。
不只是关节数量影响了解的数量,连杆参数和关节运动范围也造成了影响。换言之,解是关节数量、连杆参数和关节运动范围的函数。PUMA 560机器人就是一个好的例子,末端执行器姿态、位置相同,但是机械臂可以以4种方式达到这一位姿。
θ 4 ′ = θ 4 + 180 ° \theta_4^{'}=\theta_4+180° θ4′=θ4+180°
θ 5 ′ = θ 5 \theta_5^{'}=\theta_5 θ5′=θ5
θ 6 ′ = θ 6 + 180 ° \theta_6^{'}=\theta_6+180° θ6′=θ6+180°
连杆的非零参数越多,到达某一特定目标的方式也越多。下图表示,解的最大数量和等于0的连杆参数的数量有关:不等于0的连杆参数的数量越多,解的最大数量就越多。
解法
非线性方程组没有通用的求解算法,所以,最好对操作臂“解”的形式加以定义。
解的求解程序必须是能够算出所有解,能够算出与已知位置和姿态相关的全部关节变量。这样,就可以说操作臂是可解的。
操作臂的全部求解方法分为两大类:封闭解和数值解,然而数值解具有迭代性质,它一般比相应封闭解的求解速度慢上许多。实际情况是封闭解往往更受青睐。
本章主要讨论封闭解方法,封闭解指的是基于解析形式的解法,对不高于4次的多项式,不需要迭代即可完全求解。
封闭解的求解方法又可以分为两类:代数法和几何法,而几何法引入了代数描述,所以这两种方法是相似的,或许仅仅是求解过程不同。
我们可以利用以下结论:所有包含转动关节和移动关节的串联型6自由度机构均是可解的。但是这种解一般是数值解。特殊情况下,可以产生解析解。存在解析解的机械臂具有以下特性:
存在几个正交关节轴或者有多个 α i \alpha_i αi为0或者 ± 90 ° ±90° ±90°。
最重要且最基本的,是保证封闭解存在。所以,目前的机械臂设计比较简单,这样能够保证得到封闭解。
具有6个旋转关节的操作臂存在封闭解的充分条件是相邻的三根关节轴相交于一点。
4.3 当n≤6时操作臂子空间的描述
对于一个n自由度操作臂(n<6),可达工作空间可看成是n自由度子空间的一部分。我们可以回想在图4.1中出现的机械臂,其工作空间是该平面的一个子集,即当 l 1 = l 2 l_1=l_2 l1=l2时为一个半径为 l 1 + l 2 l_1+l_2 l1+l2的圆。
确定n自由度操作臂子空间的一种方法就是给出腕部坐标系或工具坐标系的表达式,它是含有n个变量的函数。将这n个变量看作自由变量,其所有可能的取值构成了这个子空间。
对于具有n自由度操作臂的目标点进行定义,通常采用n个参数来确定这个目标点。也就是说,如果给定6个自由度的目标点,一般自由度n<6的操作臂无法到达这个目标点。此时,可以寻找近似解,尽可能“靠近”目标点。
对于少于6个自由度的操作臂来说,当确定一般目标点时,可以如此求解:
- 已知一般目标坐标系 G S T ^S_GT GST,计算一个修正的目标坐标系 G ′ S T ^S_{G^{'}}T G′ST,使得 G ′ S T ^S_{G^{'}}T G′ST位于操作臂子空间内,并且和 G S T ^S_GT GST尽可能“靠近”,应该预先确定“靠近”的标准。
- 将 G ′ S T ^S_{G^{'}}T G′ST作为期望目标,计算逆运动学来求关节角,注意,如果目标点不在操作臂工作空间内,将可能没有解。
先确定工具坐标系原点到期望目标点的位置,然后选择一个接近期望姿态的可达姿态。子空间的计算取决于操作臂的几何特征,对于每个操作臂必须单独考虑。
4.4 代数解法和几何解法
本节我们讨论运动学方程的两大求解方法。
代数解法
采用第三章介绍的三连杆平面操作臂,它的连杆参数如下图所示。
如果你忘了 α i \alpha_i αi、 a i a_i ai、 d i d_i di和 θ i \theta_i θi的含义,请你翻阅一下《机器人学导论》的第三章或直接翻开我的上一篇笔记:【机器人学导论笔记】三、操作臂正运动学,找到“3.4 连杆坐标系的定义”。
在这里, α i \alpha_i αi为0的原因是平面坐标系的 Z i ^ \hat{Z_i} Zi^轴都是垂直纸面的,也就不需要旋转。 a i a_i ai是连杆坐标系原点公垂线距离,此处是连杆长度。 d i d_i di为0的原因是因为沿 Z i ^ \hat{Z_i} Zi^轴 X ^ \hat{X} X^轴并没有移动(所有 Z i ^ \hat{Z_i} Zi^轴都处于一个平面上)。 θ i \theta_i θi是 X i ^ \hat{X_i} Xi^绕 Z i ^ \hat{Z_i} Zi^轴转过的角度,大小不一。
应用连杆参数,求得机械臂的运动学方程(还记得吗?连乘变换矩阵就能得到了):
为了集中讨论逆运动学问题,假设必要的变换已经完成,即 W B T ^B_WT WBT已经完成,使得目标点的位置由腕部坐标系相对基坐标系来确定,由于研究的是平面操作臂,因此,可以通过确定三个量—— x 、 y x、y x、y和 ϕ \phi ϕ很容易确定这些目标点的位置,其中 ϕ \phi ϕ是连杆3在平面内的姿态(与 + X ^ +\hat{X} +