第4章 机器人逆运动学

2020-03-01 163浏览

  • 1.第4章 机器人逆运动学 第4章 机器人学简明教程 机器人逆运动学 4.1 逆运动学问题的可解性 4.2 欧拉变换解 4.3 PUMA560逆运动学
  • 2.第4章 机器人逆运动学 4.1 逆运动学问题的可解性 1.解的存在性 逆运动学问题解是否存在完全取决于机械臂的工作空间。 所谓工作空间是指机械臂末 端执行器所能达到的空间位姿的集合。一般来说,对于给 定的机械臂,其工作空间是固定的。而对于少于6个自由度的 机械臂,它在三维空间内不能达到全部位姿。所以通用工业机 器人一般都设计成6个自由度。当期望位姿位于机械臂的工作 空间之外时,逆运动学问题无解。如图4-1所示期望平面机械 臂末端达到B点,显然该逆运动学问题是无解的。
  • 3.第4章 机器人逆运动学 图4-1 期望机械臂末端达到B点
  • 4.第4章 机器人逆运动学 2.多解问题 逆运动学求解的另一个问题是多解问题。如图4-2所示 的平面机械臂有两个解,虚线表示另外一个解。逆运动学解 的个数取决于机械臂关节的数量,同时与连杆参数和关节运 动范围有关。PUMA560工业机器人一般存在8个解。
  • 5.第4章 机器人逆运动学 图4-2 平面机械臂有两个解
  • 6.第4章 机器人逆运动学 3.逆运动学问题解法 前面强调,从运动学方程中求解关节变量θ1,θ2,…,θn是 一个非线性方程组求解问题。而非线性方程组求解方法分为 封闭(解析)解法和数值解法两大类。数值解法随着计算机 技术的发展已经成为非线性方程组求解的基本方法。然而, 对于逆运动学问题,数值解法并不适用,一是机械臂操作需 要频繁求解逆运动学问题,数值解法计算量比较大;二是数 值解法不能保证求出全部解。所以逆运动学问题一般只采用 封闭(解析)解法。
  • 7.第4章 机器人逆运动学 机器人逆运动学问题涉及一个复杂的非线性方程组求解, 而从数学角度分析一般的非线性方程组经常没有封闭(解析) 解。不过对于机械臂逆运动学问题存在合适的解决方案,因 为机械臂是人造机构,只需将其设计成存在封闭解的结构即 可解决该问题。理论上已经证明,对于6自由度机械臂,存 在封闭解的充分条件是有相邻的三个关节轴相交于一点。因 此,已经设计出来的6自由度机械臂几乎都有三个相交的关 节轴,例如PUMA560的4、5、6轴交于一点。 对于平面机械臂的逆运动学问题,可以采用3.3节介绍 的几何方法进行求解。下面首先介绍欧拉变换的求解方法, 然后以PUMA560为例介绍6自由度机械臂的逆运动学问题求 解方法。
  • 8.第4章 机器人逆运动学 4.2 欧拉变换解 式(2-43)给出了采用欧拉角表示的坐标变换,其逆 问题是给定旋转矩阵Rzyz,确定对应的欧拉角。假设给定 的旋转矩阵如下: nx ox ax  Rzyz  ny oy ay  nz oz ax 
  • 9.第4章 机器人逆运动学 根据欧拉变换方程式(2-40)可得如下9个方程:  nx  c c c  s s  n  s c c  c s  y  nz   s c ox  c c s  s c  o y   s c s  c c oz  s s  a  c s  x  a y  s s  az  c (4-1)
  • 10.第4章 机器人逆运动学 1.双变量反正切函数 在三角函数求解时,通常采用双变量反正切函数 atan2(y,x)来确定角度。atan2提供两个自变量,即纵坐标和 横坐标,见图4-3。当-π≤θ≤π时,由atan2反求角度过程中, 同时检查y和x的符号来确定其所在象限。该函数也能检验什 么时候x或y为0,并反求出正确的角度。atan2的精确程度对 其整个定义域都是一样的。高级编程语言如C和Matlab等提 供标准库函数供编程者调用。
  • 11.第4章 机器人逆运动学 图4-3 双变量反正切函数
  • 12.第4章 机器人逆运动学 2.欧拉变换解 根据式(2-39)和式(2-40)可知: Rot ( z,  )1 Rzyz  Rot ( y, ) Rot ( z, ) 即  c   s   0 s c 0 0   nx 0  n y 1   nz ox oy oz a x   c c a y    s az    s c c s c s s s  0  c  (4-2) 式中,矩阵两边对应(2,3)元素相等得
  • 13.第4章 机器人逆运动学 所以得  的两个解 =atan2(ay,ax),= + (4-3) 对应(1,3)和(3,3)元素相等得 s axc+ays,caz 所以有 =atan2(cax+say, az) (4-4) 对应(2,1)和(2,2)元素相等得 s -nxs+nyc,c-oxs+oyc 所以有 =atan2(-nxs+nyc, -oxs+oyc) (4-5) 因此,欧拉变换解计算过程并不复杂,根据以上计算过程我们知道该 问题一般存在两个解。应当指出,当 时,根据(4-1)知 ay=ax=0, 此时(4-3)将不能确定  的值。此时对应绕 Z 轴连续做两次旋转, 不能确定每次转的角度,属于欧拉角奇异情况。
  • 14.第4章 机器人逆运动学 4.3 PUMA560逆运动学 本节将研究PUMA560的逆运动学封闭解,一般的6自由 度工业机器人逆运动学问题可以参考该方法进行求解。已知 0 变换矩阵 6T ,计算各关节变量θ1,θ2,…,θ6。各连杆坐标系变 换关系如下: T  [ 01T (1 )][ 21T ( 2 )][ 23T (3 )][ 34T ( 4 )][ 45T (5 )][ 56T ( 6 )]  [ 01T (1 )]1[ 06T ]  61T 0 6
  • 15.第4章 机器人逆运动学 与欧拉角求解类似,根据第3章PUMA560运动学式(3 -21)和式(3-23)得  c1 s1 s c  1 1  0 0   0 0 0 0 1 0 0  r11 r12 0  r21 r22 0   r31 r32  1  0 0 r13 r23 r33 0 p x   1r11  p y   1r21  1 p z   r31   1  0 1 r12 1 r22 1 r32 0 1 r13 1 r23 1 r33 0 px   1 py  1 pz   1  1 (4-6)
  • 16.第4章 机器人逆运动学 式(3-22)的最后三个数如下:  1 px  a2 c2  a3c23  d 4 s23 1  p y  d3  1 pz   a3 s23  a2 s2  d 4 c23 (4-7) 令式(4-6)两边元素(2,4)相等,得到 -pxs1+pyc1=d3 (4-8) 为了求解式(4-8),做三角恒等变换 px=cos py=sin (4-9)
  • 17.第4章 式中, 机器人逆运动学    p2  p2  x y    atan2(p y , px ) 将式(4-9)代入式(4-8)得 c s1  s c1  所以 d3   sin(  1 )  cos(  1 )   因此 d3  1  d32 2  d3 1  d32   1  atan2  ,  2      
  • 18.第4章 机器人逆运动学 最后θ1的解可以写为 1  atan2(px , p y )  atan2(d3 ,  px2  py2  d32 ) (4-10) 式(4-10)的正负号表明θ1有两种解。现在θ1已知,因此式 (4-6)的左边均为已知。令式(4-6)两边的元素(1,4) 和(3,4)对应相等,得  pxc1  p ys1  a2c2  a3c23  d 4 s23 px  a3 s23  a2 s2  d 4c23 (4-11) 将式(4-8)和式(4-11)平方后相加,经复杂的运算得 a3c3  d4 s3  k (4-12)
  • 19.第4章 式中, 机器人逆运动学 k  ( px2  py2  pz2  a22  a32  d32  d42 ) /(2a2 ) 采用与解式(4-8)相同的方法可以得到θ3的两种解。 3  atan2(a3 ,d4 )  atan2(k ,  a32  d42  k 2 ) (4-13) 在θ1和θ3均已知,根据运动学关系可以得到下面等式 即 [ 03T ( 2 )]1[ 06T ]  36T  c1c23 s1c23 s23 a2c3  r11 r12 r13 c s s s c  r r r a 1 23 1 23 23 2 s3    21 22 23  s1 c1 0 d3  r31 r32 r33   0 0 0 1   0 0 0 px   c4c5c6  s4s6 c4c5s6  s4c6 c4s5 a3  py   s5c6 s5s6 c5 d4   pz  s4c5c6  c4s6 s4c5s6  c4c6 s4s5 0     1  0 0 0 1 (4-14)
  • 20.第4章 机器人逆运动学 令式(4-14)两端的元素(1,4)和(2,4)相等,得到 两个方程 c1c23 px  s1c23 p y  s23 pz  a2 c3  a3 c1s23 px  s1s23 p y  c23 pz  a2 s3  d 4 (4-15) 联立上述两个方程可以解出s23和c23,结果为 (  a3  a2 c3 ) pz  (c1 px  s1 p y )( a2 s3  d 4 ) s23  pz2  (c1 px  s1 p y ) 2 ( a2 s3  d 4 ) pz  ( a3  a2 c3 )(c1 px  s1 p y ) (4-16) s23  pz2  (c1 px  s1 p y ) 2
  • 21.第4章 机器人逆运动学 两式中分母相等,且为正值,因此可以得θ23的值: 23  atan2{(a3  a2c3) pz  (c1 px  s1 py )(a2s3  d4 ), (a2s3  d4 ) pz  (a3  a2c3)(c1 px  s1 py )} 因θ23=θ2+θ3,故可得θ2的值: 2=23-3 (4-17) 现在式(4-14)的左边均为已知。令式(4-14)两 边的元素(1,3)和(3,3)对应相等,得  r13c1c23  r23 s1c23  r33 s23  c4 s5  r13 s1  r23c1  s4 s5 (4-18)
  • 22.第4章 机器人逆运动学 若s5≠0,可以解出  4  atan2(  r13s1  r23c1 ,  r13c1c23  r23s1c23  r33s23 ) (4-19) 当θ5=0时,和欧拉角方程求解一样,属于奇异状态,可以任 意指定θ4的值。 [ 04T ]1[ 06T ]  46T (4-20) 令式(4-20)两边的元素(1,2)和元素(3,3)相等得  r13 (c1c23c4  s1s4 )  r23 ( s1c23c4  c1s4 )  r33 s23c4   s5  r13c1s23  r23 s1s23  r33c23  c5 可以确定θ5的值 (4-21) 5  atan2(s5 , c5 ) (4-22)
  • 23.第4章 机器人逆运动学 现在θ1~θ5均已知,根据运动学关系可以得到下面等式 [ 05T ]1[ 06T ]  56T ( 6 ) (4-23) 令式(4-23)两边元素(1,1)和(3,1)相等可以得到 θ6的解  6  atan2(s6 , c6 ) s6   r11 (c1c23 s4  s1c4 )  r21 ( s1c23 s4  c1c4 )  r31s23 s4 c6  r11[(c1c23c4  s1s4 )c5  c1s23 s5 ]  r21[( s1c23c4  c1s4 )c5  s1s23 s5 ]  r31 ( s23c4 c5  c23 s5 )
  • 24.第4章 机器人逆运动学 由于式(4-10)和式(4-13)的θ1和θ3各有两个解, 另外机械臂腕关节“翻转”可以得到θ4~θ6的另一组解  4'   4  180o  ' 5  5  6'   6  180o (4-26) 因此,PUMA560的逆运动学问题共有8组解。由于实际 系统关节运动范围的限制,其中一些解需要舍去,在余下的 有效解中,通常选取与当前机械臂关节角位置最近的解。