首页 理论教育 逆运动学分析简要介绍

逆运动学分析简要介绍

时间:2023-07-02 理论教育 版权反馈
【摘要】:此外,还提供了可采用符号变量进行逆运动学求解的函数ikine_sym。本小节主要举例说明解析方法函数ikine6s和数值方法函数ikine在机器人逆运动学计算中的应用。

逆运动学分析简要介绍

6.4.1小节主要展示了如何利用机器人工具箱进行机器人的正运动学计算,即在给定机器人的各关节转角时计算机器人末端的执行器的位姿。而在机器人运动学仿真等实际应用中,往往是给定机器人一个特定的位置移动任务,让机器人按照预定的轨迹路线进行移动,从而实现预定的位置控制目标,这涉及机器人的逆运动学问题。机器人的逆运动学主要研究如何在给定机器人末端执行器的笛卡尔坐标位姿矩阵T时求解关节向量q的值。对于n个关节的机械臂机器人,T和q的关系可以用数学表达式表述如下:

机器人的末端执行器的笛卡尔坐标系下的位姿矩阵可以视为由基座坐标系经过旋转变换R和平移变换P得到的齐次变换矩阵,可表述如下:

末端执行器在笛卡尔坐标系下的位姿矩阵也可由从基座坐标系到末端执行器之间各关节坐标系的齐次变换推导得出,如下式:

故对于n个关节的机械臂机器人,逆运动学的关键在于如何求解以下方程组:

通常来说,这个方程组求解比较复杂并且解并不唯一,有些类型的机械臂甚至没有解析形式的解而只能求出数值解。此外,解的存在与否取决于操作臂的工作空间,对于关节数n<6即机械臂的自由度少于6的机械臂机器人,由于其工作空间限制,从而在三维空间内不能到达全部位姿,导致部分位姿处无解。

目前为止,此非线性方程组的求解方法主要分为两大类:解析方法和数值方法。解析方法是计算解析形式的封闭解,主要包括代数法和几何法。数值方法则是对该运动方程进行迭代,得到符合一定精度的数值解,其相对于解析方法来说速度较慢。数值方法对计算机计算能力要求较高,解析方法(几何法、代数法)因为不需要列举大量数字让计算机去逼近求解,故求解速度比数值方法快。

MATLAB机器人工具箱(Robotic Toolbox for MATLAB)中提供了上述两类求解方法分别对应的函数接口,包括针对六轴球腕机器人和无腕三轴机器人的解析方法函数ikine6s和ikine3,以及适用于一般机械臂机器人的数值方法函数ikine,ikinem和ikunc。此外,还提供了可采用符号变量进行逆运动学求解的函数ikine_sym。本小节主要举例说明解析方法函数ikine6s和数值方法函数ikine在机器人逆运动学计算中的应用。

1.利用工具箱进行解析方法求解

对于任意一个多关节机械臂机器人,要想使用解析方法求解,必须满足Pieper准则的要求,即机器人的三个相邻关节轴交于一点或三轴线平行。机器人末端三个关节相交于一点的机构称为球腕,因此六轴球腕机器人符合Pieper准则的要求。机器人工具箱提供了适用于六轴球腕机器人的封闭解求解函数ikine6s,假设六轴球腕机器人的SerialLink对象为R,该函数的调用形式如下:

其中,输入参数T为4×4的末端执行器位姿的齐次变换矩阵;返回值q为由各关节转角组成的一维行向量。

下面以Staubli TX200机器人为例进行封闭解的求解。选取该机器人的初始位姿为关节坐标q=qz=[0-pi/2 pi 0 0 0],此时对应的机器人位形图如图6.12(a)所示,末端执行器的位姿矩阵在6.4.1小节已计算得到,假设已知此末端执行器的位姿矩阵(记为T),对该机器人进行逆运动学封闭解求解,使用SerialLink对象的ikine6s函数可得如下结果,对应位形如图6.13(a)所示。

图6.13 同一末端执行器位姿对应的不同位形解

(a)左肩位形解;(b)右肩位形解

对比发现,此时求得的关节坐标并不等于给定的初始位姿关节坐标,这也证明了逆运动学的解并不唯一,这两组不同关节坐标的机器人位形对应着相同的末端执行器位姿矩阵。使用ikine6s函数进行六轴球腕机器人的逆运动学封闭解求解时,除了输入末端执行器齐次变换下的位姿矩阵外,还可以添加config参数来按照位形参数输入进行封闭解计算结果的选取。config参数包含各种不同的运动学位形参数,分别如下:

左肩形态或右肩形态:‘l’,‘r’。

肘部在上或在下:‘u’,‘d’。

手腕翻转或不翻转:‘f’,‘n’。

如果不添加config参数,则默认为‘l’,‘u’,‘n’,即右手臂、肘部在上且手腕无翻转。

求得右肩形态的封闭解如下,机器人位形如图6.13(b)所示。

将这些位形参数组合起来,有23=8种位形,即理论上存在8种位形解,然而实际上考虑机械限制与连杆碰撞,以及奇异位形的存在,很难保证每个末端执行器位姿都可以通过逆解求解得到8种位形解,甚至在某些给定的末端执行器位姿下无法求出符合条件的有效逆解。例如上例中给定一个末端执行器位姿矩阵分别为:

使用ikine6s函数求解得到同样的关节坐标:

(www.xing528.com)

以此关节坐标进行正运动学计算,得到末端执行器的位姿矩阵:

显然并未达到想要得到的末端位姿。然而,根据几何关系可判断出机械臂末端执行器可以到达此位姿,故该位形为ikine6s函数求解的奇异位形,此时ikine6s求得的解是不符合实际的无效解。

2.利用工具箱进行数值方法求解

数值方法利用迭代的思想对非线性方程式(6-13)进行求解,利用计算机的高效运算速率也能达到较高的求解速度。机器人工具箱提供了用于机器人逆运动学的数值方法的求解函数ikine函数,假设构建机器人的SerialLink对象为R,则ikine函数的调用形式如下:

q=R.ikine(T)

q=R.ikine(T,q0,m,options)其中,输入参数T为4×4的末端执行器位姿的齐次变换矩阵;返回值q为各关节转角组成的一维行向量。另外,还可接受附加参数如初始关节转角向量q0的输入;当机器人关节自由度小于6时,需要添加掩膜向量m=[tx ty tz rx ry rz],掩膜向量中tx,ty,tz分别对应x,y,z方向的平移变换,rx,ry,rz分别对应x,y,z轴的旋转变换。根据末端位姿矩阵中某些自由度的有无,在掩膜向量中赋值0或1进行计算。

对于Staubli TX200机器人,已知关节坐标为q0=[0 pi/2-pi/4 0 0 0]时末端执行器的位姿矩阵为:

利用机器人工具箱中的ikine函数进行逆运动学数值解的求解:

对比发现数值解的结果具有较高的精度,但ikine函数并未包含求得多个逆解时可选择不同位形对应的逆解参数,因而在同一个末端执行器位姿矩阵对应多种可能位形时,难以选择想要的位形。

前例提到过的ikine6s函数对奇异位形处的求解失效,采用ikine函数尝试进行数值解的求解:

以此关节坐标向量进行正运动学计算,得到末端执行器的位姿矩阵为:

可见,ikine函数可以进行某些对于ikine6s函数来说为奇异位形处的求解。

除此之外,ikine函数还可以计算自由度少于6的关节型机械臂(也称欠驱动机械臂)的运动学逆解。例如,选取Staubli TX200前三个关节组成三自由度的关节型机器人,如图6.14所示,其D-H参数见表6.5。

图6.14 三关节机器人的三维模型

表6.5 三自由度机械臂机器人的标准D-H参数表

由于该机器人只有三个自由度,故在使用ikine函数求解时,需要添加额外的掩膜向量参数,末端执行器相对基座坐标系只有y轴的旋转和x,z方向的平移,故添加掩膜向量m=[1 0 1 0 1 0]。

假定期望的末端执行器位姿为:

求得其中一个位形的关节坐标解,并对该关节坐标进行正运动学计算:

可见该解是符合要求的一种机器人位形解。但对于自由度为4或5的多关节机器人,难以用这种方法求解,因为末端执行器具有的自由度由世界坐标系中的末端执行器位姿矩阵T指定,并且其具有的自由度是工具位置的函数。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈