机械臂的逆向运动学
3.1 运动学逆解的目标#
运动学逆解的目标是给定一个可能的末端位姿 EST,求出对应的各个关节变量 q.
T−1:SE(3)→Q求解逆过程相比于求解正过程一般都是更加困难的一个过程(例如积分相较于微分困难),求运动学逆解也不例外。不似正向运动学,给定了关节变量的值,就一定可以确定末端位姿。求解运动学逆解,需要考虑几个问题
将方程 EST(q)=r11r21r310r12r22r320r13r23r330pxpypz1 拆开,可以得到 6 个非线性超越方程(末端位姿是 6 自由度的),而需要求解 N 个关节变量(N 通常取 6,4,5或7等)
3.2 解的存在性#
为了解决解是否存在的问题,定义工作空间为机械臂的末端执行器能够到达的空间范围,即
W={EST(q)∈SE(3)∣∀q=q1q2⋮qn∈Q}十分自然地,可以得出解的存在性结论
解的存在性: 只有当给定的机械臂末端位姿 EST 位于工作空间中时运动学逆解才存在

有时我们关注的更多的是给定末端坐标然后求解对应的关节变量的情形,此时也可以定义工作空间,不过这个工作空间就变成了末端坐标的集合了。
3.3 多解性或解唯一性#
- 具有冗余自由度的机械臂 (N>6) 的机械臂有无穷解
- 通常对于一个给定位姿,逆解不止一个
- 一般当末端位姿位于工作空间的边界上时,逆解是唯一的(例如机械臂完全伸展开)

3.4 求解运动学逆解#
求解运动学逆解的方法主要分为解析法和数值法。需要指出的是数值法才是主流的求解逆解的方法,因为大部分机械臂很难有闭式解。不过闭式解的结果肯定是比数值法计算要快且准确的。
3.4.1 数值解法#
设末端位姿 T=r11r21r310r12r22r320r13r23r330pxpypz1 已知,方程为
T= EST(q)可以使用 Newton 方法等数值优化方法进行方程求解(需要给定初始猜测、关节变量等的取值范围约束条件、收敛依据等)
q∈Qmin∥EST(q)−T∥2这里不做赘述
3.4.2 解析解法#
解析解法一般是通过建立与原始方程等价的代数或几何方程进行求解(一般是从中间关节处的运动学信息出发建立新的方程)
下面将给出一些经典的机械臂的例子
平面 3R 机械臂#
这是一个自由度为 3 (两个位置坐标,一个角度朝向) 的机构,其工作空间是 SE(3) 的一个3维子空间

根据前向运动学,可以得到其末端位姿关于三个旋转关节的旋转角度的方程为
EST(θ1,θ2,θ3)=cos(θ1+θ2+θ3)sin(θ1+θ2+θ3)00−sin(θ1+θ2+θ3)cos(θ1+θ2+θ3)000010L1cosθ1+L2cos(θ1+θ2)+L3cos(θ1+θ2+θ3)L1sinθ1+L2sin(θ1+θ2)+L3sin(θ1+θ2+θ3)01假设
EST(θ1,θ2,θ3)=cosϕsinϕ00−sinϕcosϕ000010xy01其中 L1,L2,L3 均已只,则有
⎩⎨⎧ϕ=θ1+θ2+θ3x=L1cosθ1+L2cos(θ1+θ2)+L3cos(θ1+θ2+θ3)y=L1sinθ1+L2sin(θ1+θ2)+L3sin(θ1+θ2+θ3)代数求解#
构造
{x′=x−L3cos(θ1+θ2+θ3)y′=y−L3sin(θ1+θ2+θ3)则有
⎩⎨⎧ϕ=θ1+θ2+θ3x′=L1cosθ1+L2cos(θ1+θ2)y′=L1sinθ1+L2sin(θ1+θ2)于是,有
x′2+y′2=L12+L22+2L1L2cosθ2可以求得
cosθ2=2L1L2x′2+y′2−L12−L22∈[−1,1]这里需要检测 cosθ2 范围是否在 [−1,1] 内,如果不在,说明该逆解不存在。
接着可以由此求出 θ2
sinθ2θ2=±1−cosθ22(多解性)=atan2(sinθ2,cosθ2)接下来,展开 x′,y′,有
{x′=(L1+L2cosθ2)cosθ1−L2sinθ2sinθ1y′=(L1+L2cosθ2)sinθ1+L2sinθ2cosθ1取 r=(L1+L2cosθ2)2+(L2sinθ2)2,并令
cosγsinγ=rL1+L2cosθ2=rL2sinθ2则
{x′=r(cosγcosθ1−sinγsinθ1)=cos(θ1+γ)y′=r(cosγsinθ1+sinγcosθ1)=sin(θ1+γ)由此可以求出
θ1=atan2(x′,y′)−atan2(L2sinθ2,L1+L2cosθ2)其中 γ=atan2(L2sinθ2,L1+L2cosθ2)
最后可以求得 θ3
θ3=ϕ−θ1−θ2需要指出的是这里求解 θ2 的代数方法的斧凿痕迹很明显,如果换用几何方法(余弦定理与角度加减)是可以很清楚的看出构造过程的。
