概述
运动学逆解是指已知机器人末端位姿,求解各运动关节的位置,它是机器人运动规划和轨迹控制的基础。
以机械臂为例,其运动学逆解的求法主要有两类:数值解和解析解。
数值解法只能求出方程的特解,不能求出所有的解。
它的优点是计算简单,不需要进行矩阵操作;缺点是由于使用了迭代法(如牛顿迭代),实时性较差。
这里主要介绍解析解法。
研究发现,如果串联机械臂在结构上满足下面两个充分条件中的一个,就会有解析解。这两个充分条件也被称为Pieper准则,即:
- 三个相邻关节轴线交于一点
- 三个相邻关节轴线相互平行
现代绝大多数工业机械臂都满足Pieper准则的第一个充分条件,即机械臂末端的三个关节的轴线相交于一点,该点通常称为腕点。
满足第二个充分条件的机器人较少,最典型的例子是SCARA机器人。之前我所在的公司应用SCARA构型的机器人进行工件的上下料。
假设机械臂满足Pieper准则的第一个充分条件,则机械臂的运动学方程可以写为 6 0 T = 3 0 T 6 3 T {^0_6}T={^0_3}T{^3_6}T 60T=30T63T其中, 3 0 T \ {^0_3}T 30T规定了腕点的位置, 6 3 T \ {^3_6}T 63T规定了腕部的方位。因此,运动学逆解也分为两步,先求解 θ 1 \theta_1 θ1、 θ 2 \theta_2 θ2、 θ 3 \theta_3 θ3(腕点位置),再求解 θ 4 \theta_4 θ4、 θ 5 \theta_5 θ5、 θ 6 \theta_6 θ6(腕部方位)。
求解腕点位置
将固连在机械臂腕部的三个坐标系{4}、{5}、{6}的原点设在腕点,则腕点相对于基坐标系{0}的位置为: 0 P 6 o = 0 P 4 o = 1 0 T 2 1 T 3 2 T 3 P 4 o {^0}P_6o= {^0}P_4o={^0_1}T{^1_2}T{^2_3}T {^3}P_4o 0P6o=0P4o=10T21T32T3P4o其中, 3 P 4 o \ {^3}P_4o 3P4o即为变换矩阵 4 3 T \ {^3_4}T 43T的第4列,即 0 P 4 o = 1 0 T 2 1 T 3 2 T [ a 3 − d 4 s i n θ 3 d 4 c o s θ 3 1 ] (n) {^0}P_4o={^0_1}T{^1_2}T{^2_3}T \left[ \begin{matrix} a_3\\ -d_4 sin\theta_3\\ d_4 cos\theta_3\\ 1 \end{matrix} \right] \tag{n} 0P4o=10T21T32T⎣⎢⎢⎡a3−d4sinθ3d4cosθ31⎦⎥⎥⎤(n)令 [ f 1 ( θ 3 ) f 2 ( θ 3 ) f 3 ( θ 3 ) 1 ] = 3 2 T [ a 3 − d 4 s i n θ 3 d 4 c o s θ 3 1 ] (n) \left[ \begin{matrix} f_1(\theta_3) \\ f_2(\theta_3) \\ f_3(\theta_3) \\ 1 \end{matrix} \right] \tag{n}={^2_3}T \left[ \begin{matrix} a_3\\ -d_4 sin\theta_3\\ d_4 cos\theta_3\\ 1 \end{matrix} \right] ⎣⎢⎢⎡f1(θ3)f2(θ3)f3(θ3)1⎦⎥⎥⎤=32T⎣⎢⎢⎡a3−d4sinθ3d4cosθ31⎦⎥⎥⎤(n)则有, f 1 ( θ 3 ) = a 3 c o s θ 3 + d 4 s i n θ 3 s i n α 3 + a 2 f_1(\theta_3)=a_3 cos\theta_3 +d_4 sin\theta_3sin\alpha_3 +a_2 f1(θ3)=a3cosθ3+d4sinθ3sinα3+a2 f 2 ( θ 3 ) = a 3 s i n θ 3 c o s α 2 − d 4 c o s θ 3 c o s α 2 s i n α 3 − d 4 s i n α 2 c o s α 3 − d 3 s i n α 2 f_2(\theta_3)=a_3 sin\theta_3 cos\alpha_2-d_4 cos\theta_3 cos\alpha_2 sin\alpha_3 -d_4 sin\alpha_2 cos\alpha_3 -d_3 sin\alpha_2 f2(θ3)=a3sinθ3cosα2−d4cosθ3cosα2sinα3−d4sinα2cosα3−d3sinα2 f 3 ( θ 3 ) = a 3 s i n θ 3 s i n α 2 − d 4 c o s θ 3 s i n α 2 s i n α 3 + d 4 c o s α 2 c o s α 3 + d 3 c o s α 2 f_3(\theta_3)=a_3 sin\theta_3 sin\alpha_2-d_4 cos\theta_3 sin\alpha_2 sin\alpha_3 +d_4 cos\alpha_2 cos\alpha_3 +d_3 cos\alpha_2 f3(θ3)=a3sinθ3sinα2−d4cosθ3sinα2sinα3+d4cosα2