机器人学之运动学笔记【4】—— 逆向运动学(Inverse Kinematics)
机器人逆运动学问题:又称机器人运动学方程的逆解或间接位置求解,指给定机器人抹点执行器的位置和姿态,求解可到达给定位置和姿态的各关节的角度值。
1. 逆向求解概念
1.1 了解
假设手臂有六自由度,就有六个未知的 joint angles,根据逆运动学概念,我们已知的是{6}相对{0}的变换矩阵:
旋转矩阵部分有9个数字,表示三个自由度,说明里边有六个限制条件,其中三个条件是 X、Y、Z 都是单位向量,长度都是1;另外三个条件是两两垂直。
{6}的原点位置相对于{0}坐标系的三个数字是独立的,所以里边包含了三个自由度。
所以矩阵里边共有六个自由度,共有12个方程式,六个限制条件,求解六个未知数。
1.2 Reachable workspace & Dexterous workspace
Reachable workspace:手臂可以用一种以上的姿态到达的位置;
Dexterous workspace:手臂可以用任何的姿态到达的位置(例如下图右图中的原点)。
1.3 Subspace
Subspace:手臂在定义头尾的T所能达到的变动范围。
为末端点指定一个位置,则 x 和 y 确定,进而此时旋转矩阵也被唯一确定了,并且其中还有5个无法改变的量,说明可到达姿态是受限的。
2. 多重解
由于是 nonlinear transcendental equations(非线性超越方程组)问题,6未知数6方程式不代表具有唯一解。
2.1 举例理解
一个PUMA机械臂,让末端执行器到达一个指定姿态,会有8组不同的解。
- 前三轴不同的姿态组合会出现4组解:
- 每一个姿态中,具有两组手腕转动姿态,所以4*2=8组解:
- 若手臂本身有几何限制,并非每一种解都可以实现
2.2 多重解的选择方式
- 离目前状态最近的解
最快
最省能
…
- 避开障碍物
3. 求解方式
3.1 解析法 Closed-form solutions
- 用代数 algebraic 或 几何 geometric 方法
- 数值法
- 目前大多数机械臂设计成具有解析解
Pieper’s solution:相邻三轴相交一点
4. 例题
4.1 几何法求解
将空间几何切割成平面几何
量化计算走一遍流程:
4.2 代数法求解
5.三角函数方程式求解
变换方法:
例题:如何求解 acosθ + bsinθ = c 的 θ ?
6. Pieper’s solution
如果 6-DOF manipulator 具有三个连续的轴交在同一点,则手臂有解析解。
一般会把后三轴如此设计,前三轴用来产生移动,后三轴用来产生转动。因为后三轴交一点,所以:
这里的处理方法没有将 θ1、θ2、θ3 全部乘开展示出来,那样太复杂,而是将 θ3 包含在 f 中, θ2 和 θ3 包含在 g 中,θ1单独放在外面。
有如下关系:
乘开整理得:
令:
代入得:
这样 θ2 和 θ3 就重整为一个看起来很干净的形式,r 中消掉了 θ1 这个参数。
如果把 z 单独取出来,就是:
z 也是 θ2 和 θ3 的函数。
由此可见,原来的三条关系,三个变量,就变成了 r 和 z 这两条关系,包含 θ2 和 θ3 这两个变量。
k1、k2、k3、k4 里面包含θ3,θ2是外显在外面的
最后,求出θ2 和 θ1:
至此,移动部分就处理完了,下面来看转动部分:
7. 物件取放任务
现阶段任务:为使RRRRRR手臂能以下图姿态夹住杯子(任务的起始点C),手臂的6个 joint angles 需为何?
1. 定义DH表
2. 找出杯子的坐标系相对于世界坐标系的变换矩阵,再进一步找出 {6} 对 {0} 的 T,杯子相对于世界 = 杯子相对于桌子 * 桌子相对于世界
3. 层层分离,求θ1 - θ6