机器人逆运动学
4.1 本章任务
本章是将思路逆转过来,已知机械臂的位置和姿态,计算关节角,由此即为逆运动学。
这个任务可以分为两个小问:第一,进行坐标系变换,求出相对于基坐标系{B}的腕部坐标系{W};然后,应用逆运动学求关节角。
4.2 解的存在性
首先,操作臂运动学方程是一个非线性问题,已知,求出。
着重考虑如下方程:
对于具有6个自由度的操作臂来说,有12个方程,其中6个是未知的。然而,在由的旋转矩阵分量生成的9个方程中,只有3个是独立的。将这3个方程与由的位置矢量分量生成的3个方程联立,6个方程中含有6个未知量。这些方程为非线性超越方程,难以求解。 而现实的问题可能要更复杂,因为连杆偏距、长度、不一定为0。所以,我们需要考虑解的存在性,并且解决多解问题。
解的存在性
解的存在必须满足:被指定的目标点必须在工作空间(操作臂末端执行器所能到达的范围)内。
工作空间有两种,一是灵巧工作空间,指的是机器人的末端执行器能够从各个方向到达的空间区域。二是可达工作空间,指的是其末端执行器至少从一个方向能到达的区域。
上图操作臂的工作空间:
如果,则可达工作空间是半径的圆,而灵巧工作空间仅是单独的一点,这就是原点。
如果,则不存在灵巧工作空间,可达工作空间为外径、内径为的圆环。在可达工作空间的内部,末端执行器有2种可能的方向,而在工作空间的边界上只有一种可能的方向。
需要注意的是这里的假设:所有关节能够旋转360°,但这并不常见。所以实际上能够成立的姿态会减少。而且,有一些运动范围是联动的。
操作臂少于6自由度时,它不能达到三维空间内一般的目标位置和姿态。上图的操作臂自由度被限制,不能伸出平面,Z坐标不为0的点都到达不了。我们只有这一种办法—逐个研究这种操作臂,弄清楚它的工作空间。还有就是,计算最近的可达目标点来研究操作臂可以执行近似操作的区域。
还有一个问题,那就是工具坐标系也决定了工作空间。作为技术人员可能更关心腕部坐标系{W}的计算,但是实际上工具执行的任务可能更为重要,如果腕部坐标系被工具坐标系的工作空间包含,那么至少存在一个解。
多解问题
3个旋转关节的平面操作臂已经可以从任何姿态到达工作空间的任何位置,赋予了其较大的灵巧工作空间,如下图所示:
虚线表示的是机械臂的第二个位形。此位形下,末端执行器(工具)可达位置和姿态与第一个位形相同。
多解问题,意味着选择。系统必须选择一个最终解作为执行目标,因此,我们需要讨论如何产生最优解。我们知道,机械臂应当选取最易到达的位姿进行解算,所以我们需要的是最近解。这牵扯到的问题即是如何定义最近解。 不同的机械臂可能有不同的机构设计,比如配备小连杆和大连杆两种连杆,这种情况下,当然是移动小连杆更经济。所以,我们需要对连杆大小加权计算,给小连杆更高的权重。这是理想的状况,现实是,小连杆移动的解可能造成碰撞。此时,我们需要选择备用解——也就是“较远”解。所以设计算法的时候,需要对全部解进行保留操作。
不只是关节数量影响了解的数量,连杆参数和关节运动范围也造成了影响。换言之,解是关节数量、连杆参数和关节运动范围的函数。PUMA 560机器人就是一个好的例子,末端执行器姿态、位置相同,但是机械臂可以以4种方式达到这一位姿。
连杆的非零参数越多,到达某一特定目标的方式也越多。下图表示,解的最大数量和等于0的连杆参数的数量有关:不等于0的连杆参数的数量越多,解的最大数量就越多。
解法
非线性方程组没有通用的求解算法,所以,最好对操作臂“解”的形式加以定义。
解的求解程序必须是能够算出所有解,能够算出与已知位置和姿态相关的全部关节变量。这样,就可以说操作臂是可解的。
操作臂的全部求解方法分为两大类:封闭解和数值解,然而数值解具有迭代性质,它一般比相应封闭解的求解速度慢上许多。实际情况是封闭解往往更受青睐。
本章主要讨论封闭解方法,封闭解指的是基于解析形式的解法,对不高于4次的多项式,不需要迭代即可完全求解。
封闭解的求解方法又可以分为两类:代数法和几何法,而几何法引入了代数描述,所以这两种方法是相似的,或许仅仅是求解过程不同。
我们可以利用以下结论:所有包含转动关节和移动关节的串联型6自由度机构均是可解的。但是这种解一般是数值解。特殊情况下,可以产生解析解。存在解析解的机械臂具有以下特性:
存在几个正交关节轴或者有多个为0或者。
最重要且最基本的,是保证封闭解存在。所以,目前的机械臂设计比较简单,这样能够保证得到封闭解。
具有6个旋转关节的操作臂存在封闭解的充分条件是相邻的三根关节轴相交于一点。
4.3 当n≤6时操作臂子空间的描述
对于一个n自由度操作臂(n<6),可达工作空间可看成是n自由度子空间的一部分。我们可以回想在图4.1中出现的机械臂,其工作空间是该平面的一个子集,即当时为一个半径为的圆。
确定n自由度操作臂子空间的一种方法就是给出腕部坐标系或工具坐标系的表达式,它是含有n个变量的函数。将这n个变量看作自由变量,其所有可能的取值构成了这个子空间。
对于具有n自由度操作臂的目标点进行定义,通常采用n个参数来确定这个目标点。也就是说,如果给定6个自由度的目标点,一般自由度n<6的操作臂无法到达这个目标点。此时,可以寻找近似解,尽可能“靠近”目标点。
对于少于6个自由度的操作臂来说,当确定一般目标点时,可以如此求解:
- 已知一般目标坐标系,计算一个修正的目标坐标系,使得位于操作臂子空间内,并且和尽可能“靠近”,应该预先确定“靠近”的标准。
- 将作为期望目标,计算逆运动学来求关节角,注意,如果目标点不在操作臂工作空间内,将可能没有解。
先确定工具坐标系原点到期望目标点的位置,然后选择一个接近期望姿态的可达姿态。子空间的计算取决于操作臂的几何特征,对于每个操作臂必须单独考虑。
4.4 代数解法和几何解法
本节我们讨论运动学方程的两大求解方法。
代数解法
采用第三章介绍的三连杆平面操作臂,它的连杆参数如下图所示。
如果你忘了、、和的含义,请你翻阅一下《机器人学导论》的第三章或直接翻开我的上一篇笔记:【机器人学导论笔记】三、操作臂正运动学,找到“3.4 连杆坐标系的定义”。
在这里,为0的原因是平面坐标系的轴都是垂直纸面的,也就不需要旋转。是连杆坐标系原点公垂线距离,此处是连杆长度。为0的原因是因为沿轴轴并没有移动(所有轴都处于一个平面上)。是绕轴转过的角度,大小不一。
应用连杆参数,求得机械臂的运动学方程(还记得吗?连乘变换矩阵就能得到了):
为了集中讨论逆运动学问题,假设必要的变换已经完成,即已经完成,使得目标点的位置由腕部坐标系相对基坐标系来确定,由于研究的是平面操作臂,因此,可以通过确定三个量——和很容易确定这些目标点的位 置,其中是连杆3在平面内的姿态(与相关)。因此,假定变换矩阵具有以下形式:
所有可达目标点必须位于上式描述的子空间上,令式(4.6)和(4.7)相等,从而求得4个非线性方程,进而求出、和:
使用代数方法求解(4.8)-(4.11),将(4.10)和(4.11)同时平方,然后相加得到:
利用公式:
由(4.12)求解,得到:
上式有解的条件是式(4.14)右边的值必须在-1~1.在这个解法中,这个约束条件可以用来检查解是否存在。从物理结构上看,如果约束条件不满足,则目标点位置太远,操作臂不可达。
假定目标点在工作空间内,的表达式为
最后,应用双变量反正切公式计算,得:
式(4.15)的符号选择对应于多解,我们可选择“肘部朝上”解或“肘部朝下”解。确定时,再次应用循环方法来求解运动学参数,即常用的先确定期望关节角的正弦和余弦,然后应用双变量反正切公式的方法。这样确保得出所有的解,且所求的角度是在适当的象限里。
求出了,可以根据式(4.10)和式(4.11)求出。将式(4.10)和式(4.11)写成如下形式:
式中
为了求解这种形式的方程,可进行变量代换,实际上是改变常数和的形式。
如果
并且
则
式(4.17)和式(4.18)可以写成(三角变换)
因此
利用双变量反正切公式,得
从而
注意,符号的选取将导致符号的变化,因此影响到。
式(4.20)和式(4.21)比较重要,经常出现在运动学求解问题中,即式(4.10)和(4.11)的求解方法。当然,因为(4.27)是正切定义,所以细心地注意到如果,式子会失去定义。此时,可以取得任意值。
由(4.8)、(4.9)求出、、的和:
从而,可以求解。
代数方法求解的过程,本质上是将给定的方程转换到解已知的形式。
几何解法
将操作臂的空间几何参数分解成平面几何问题,用这种方法求解操作臂比较容易。当时尤为如此。
代数解法中,我们讨论的机械臂是一个平面机械臂( 轴的特殊性),继续举这个例子再好不过了。我们可以直接利用平面几何关系求解。
上图说明了机械臂还有一种对称的方式到达末端执行器的位置。利用余弦定理,求解实线的情况:
现在,替换 为更简单的 ,式子变成了:
观察这个式子。上面的三角形成立的条件是 (可回忆一下机械原理中的连杆机构的知识),用计算方法对目标点的这个条件进行验证,以便证明该解的存在性。目标点超出运动范围则不满足。再仔细一些会发现 的问题:它应该是一个 之间的角度数。另一个可能的解(虚线三角形)可以通过对称关系 得到。
求完了 ,紧接着让我们来看 怎么求:首先,需要建立 和 的表达式。首先, 可以位于任意象限,这是由 和 的符号决定的。应用双变量反正切公式定义 :
利用余弦定理,求出 :
求出反余弦,使得 ,这样(4.32)在数值上便是成立的。接着可得:
式中,当 时,取 号,当 时,取 号。
同样进行加和操作从而求 出 :
几何解法结束。
4.5 简化成多项式的代数解法
实际求解过程中比较难处理的是超越方程。然而,并不是全无办法———我们可以使用关于三角函数的多项式进行几何变换。如下三个式子需要牢记(以单一变量 表示):
在原 书的附录中列出了更多的变换关系和三角恒等式帮助我们求解。感兴趣的可以自己去翻翻~
借原书的例子来求解一下:
有一超越方程如下:
正弦和余弦皆在,那么转化为一个正切函数是比较好的。我们使用(4.35)的变换式,上式乘以 得:
取 的幂次排序:
由一元二次方程求解公式得:
因此