新闻资讯 首页 > 新闻资讯

机械臂的逆运动学求解有统一的方法吗还是每个机械臂的求解方式不一样?

发布时间:2023-12-26 22:24:26   来源:安博电竞

  逆运动学求解一般方法就是解析解和数值方法,比如牛顿迭代法,来龙去脉基本是下面这样:

  同样对于开链机器人和闭链机器人,其相应的逆运动学是不同的,分割线前是开链机器人,后是闭链机器人,还有一些基础知识可以来看这篇读书笔记

  对于正运动学表示为T(\theta),\theta\in R^n一般的n自由度开链机器人,其逆运动学可以表示为给定一个线性变换X\in SE(3),解出\theta满足T(\theta)=X,为了突出逆运动学的主要特征,依旧选用2R平面机器人为例。

  假设L_1L_2,那么机器人的工作空间就是一个L_1-L_2到L_1+L_2的圆环,给出一些末端执行器的坐标(x,y),很容易看出给出坐标是在圆环的外部,边界,或内部,对于一个末端执行器坐标有两个解时,第二个关节处的角度可以是正的,也可以是负的,对应的两种情况就被称为lefty和righty,也被称为elbow-up和elbow-down。

  求出给定坐标x,y所对应的\theta_1和\theta_2是不难的,在这之前需要引入atan2函数,它返回的是原点至点(x,y)的方位角,即与 x 轴的夹角,也能够理解为复数 x+yi 的辐角,返回值的单位为弧度,取值范围为(-\pi,\pi],因此,atan2有时被称为四象限反正切。

  通过上面的例子我们大家可以看出,对于开链机器人,逆运动学问题可能有多个解,这和正运动学有很大不同,三连杆平面开链机器人对于工作空间内部的点(x, y)有无限个解,在这种情况下,开链机器人具有一个额外的自由度,称为运动学冗余。

  接下来来考虑空间6自由度开链机器人的逆运动学,对于the PUMA and Stanford robot arms,逆运动学解是有限的并且可以很容易地得到,但对于一般的开链机器人,一般使用牛顿迭代法来求解逆运动学问题,算法再迭代中收敛至解析解。

  当arm处于0位置时,两个肩关节轴在一个公共点上正交相交,与关节轴1的z方向对齐,与关节轴2的-y方向对其,关节轴3(肘关节)位于x-y平面,与关节轴2平行,关节轴4、5和6(腕关节)在一个共同点(腕关节中心)上正交相交,形成一个正交的腕关节,这些关节轴在z,y,x方向上对齐,连杆2和3的长度记为a_2,a_3,肩部可能有一个偏移量如下图,PUMA型臂的逆运动学问题可以解耦成逆位置和逆方位问题。

  先来考虑图3中的情况,在定系中表达所有的向量,那么腕部中心的坐标向量表示为p\in R^3,p=(p_x,p_y,p_z),那么向量p在x-y平面上的投影夹角为:

  一般,有偏移量的6R PUMA-type arm有四个可能的逆运动学解,如下图,上侧两个是lefty解,下面是righty解:

  上面叙述的都是逆运动学有有限解的特殊情况,接下来我们介绍一般运动学的求法:数值方法。

  如果逆运动学方程没有解析解,就可以应用数值方法,即使在解析解存在的情况下,也经常使用数值方法来提高解的精度。

  给出一个接近\theta_d的初值\theta^0,那么可以用泰勒展开表达出下式:

  上面我们的讨论过程是针对末端执行器的坐标雅克比矩阵进行的,那么如果是space Jocobian或者body Jocobian呢?末端执行器的位置将表示为T_{sd}\in SE(3),这样就需要把坐标雅克比矩阵换成空间或体雅可比矩阵,那么问题就变成了,找到一个body twistV_b,让末端执行器从T_{sb}(\theta^i)运动至目标位置T_{sd},那么就有:

  对于任何包含一个环或者多个环的运动链就称为闭链,很典型的例子就是下图的Stewart–Gough platform和the Delta robot :

  它们就是典型的并联机构的例子,由一组“腿”连接固定和移动平台组成封闭链,“腿”可以使开链也可以是闭链。Stewart-Gough platform常用于作运动模拟器和六轴力扭矩传感器,Delta robot则是一个三自由度机构,其移动平台的移动方式始终保持与固定平台一致,它可以实现非常快的运动。

  闭链机器人相比于开链机器人具有更大的设计多样性,因此其运动学和静力分析也更加复杂,产生这种复杂性的原因是对于闭链而言,不是所有的关节都是驱动的,关节变量也必须满足一定数量的 loop-closure约束方程,因为无驱动(或被动)关节的存在,有时驱动关节的数量被故意设计超过机构的运动自由度,这样的机构称为被冗余驱动(redundantly actuated),这样就会使得闭链得运动学分析更具挑战性,即会出现开链中不存在的新类型的奇点。

  与开链机器人得正逆运动学不同,一般的闭链机器人很难写出像开链机器人正运动学那样的显示方程X=T(\theta),所以更有效的方法就是尽可能地利用机构的运动对称性和特殊特性。

  依旧沿用我们之前的思路,从特殊到一般,我们首先聚焦一些著名的并联机构,最终推广建立一系列运动学分析工具和方法,用于处理更一般的闭链。

  在这之前,我们先来看看串联机构和并联机构的特点,对于串联机构来说,它的正运动学通常是较容易的,而逆运动学可能是复杂的,开链机器人就是很典型的串联机构,而对于并联机构,就反过来,逆运动学可能较为简单,但是正运动学却很复杂,举个例子,给定一个平台的姿态,确定关节角度可能不难,但是要是给出关节角度,那么平台的姿态就多种多样了。

  介绍完上面,来看两个经典的并联机构, 3xRPR Planar并联机构和3xSPS Stewart–Gough platform,通过对它们的分析进而可以用于更一般的并联机构的分析。

  如图1,这是一个3xRPR Planar并联机构,定系S和动系b如图所示,它的3个移动关节通常是驱动的,而6个转动关节是被动的,记三条leg的长度为s_i,i=1,2,3,长度和定系别混了这里,那么对于它的正运动学问题就很清晰了,即对于给定的值s=(s_1,s_2,s_3),求出动系b的位置和方向,反过来考虑,逆运动学问题就是从动系的位置和方向T_{sb}\in SE(2)求出leg的长度s。

  和之前的符号使用一致,用向量p表示动系b在定系S中的坐标系原点,\phi表示动系的x轴与定系x轴的夹角,再定义如图中所示的向量a_i,b_i,d_i,i=1,2,3,那么,就有如下关系:

  从上面的式子中就能够准确的看出,b_i是在动系中被表示的,但是运算要统一坐标系,那么利用旋转矩阵

  根据上面的描述,逆运动学就很容易计算了,给出(p_x,p_y,\phi),就可以很方便的求出腿长s=(s_1,s_2,s_3),但是反过来,通过腿长计算(p_x,p_y,\phi)就不那么容易了,我们先用万能公式对三角函数做一下处理:

  化简为t的一个六阶多项式,这就说明了3xRPR Planar并联机构可能有6个正运动学解,但是这六个解是否都具有物理意义,就需要验证。

  下图展示了3xRPR Planar并联机构在每条腿长度相同且尽可能短的情况下的奇点,这种结构下,伸展腿可能会引起平台逆时针旋转或顺时针旋转。

  那么3xRPR Planar并联机构正运动学的解可能是怎样的呢,下图为所有移动关节伸展都相同时,正运动学的两个解:

  固定平台和移动平台通过六个串联的SPS结构连接,移动关节驱动球形关节,它的运动学方程的推导和上面的3xRPR Planar并联机构差不多,记定系为S,动系为b,d_i为A_i指向B_i的向量,i=1,.....,6,那么就有:

  到这里,逆运动学就很清晰了,给定向量p和旋转矩阵R,就可以直接算出腿长s,但是正运动学依旧令人头疼,给定腿长s,我们就得求解一个3维向量p和一个旋转矩阵R,有6个约束方程,并且要满足六个受到R^TR=I限制的方程,那么就有12个未知数,相应的就要有12个方程(9个用于描述旋转,3个用于描述位置)。

  推导了上面两个经典的并联机构,其实一般并联机构的描述方法也就呼之欲出了:

  上述两个式子各有12个方程(9个用于描述旋转,3个用于描述位置),由于R^TR=I的限制,旋转的9个方程可以简化成3个方程,因此在24个约束方程中,12个是独立的, 有n+m+p个未知变量,那么机构的自由度d=n+m+p-12。

  那么上述机构的正运动学就是,给定关节变量(\theta,\phi,\psi)的自由度d,就能够最终靠loop-closure求出关节变量的值,可能有多个解,但是如果已知任何一个开链腿的关节值,就可以计算该腿的正运动学,以确定闭链的正运动学。

13916152339