逆向运动学
以台湾大学林沛群教授的机器人学课程为例,链接内容:https://www.bilibili.com/video/BV1v4411H7ez
定义说明
逆向运动学
正向运动学:机械臂几个关节从默认姿态分别旋转/移动多少角度,求出机械臂末端点的坐标变成了多少。
逆向运动学:机械臂末端点的坐标从默认姿态变成了某个坐标,求出机械臂几个关节相对于默认姿态分别旋转/移动多少角度。
视频非常好,下面是一些简单的笔记,需要配合视频看。
多重解
[4-1] 不用看,从 [4-2] 开始看就行。首先就是很显然,知道机械臂末端点的坐标,其实可以有多种姿态可以完成:

实际情况需要:最快、最省能;而且要注意避开障碍物(比如上面基座可能有个鼓包,这样右下角旋转有可能会碰到)。
第一个例子
然后是几个例子,其实上一章理解了,这里就很简单了。
4-2 小节讲了下图的例子,上方的 \(T(0, 3)\) 表示三个关键动的角度之后,其作用到端点的变换矩阵,在上一章已经推过了,即假设我各个关节分别旋转多少角度,能得到最终的变换矩阵;
下方的 \(T(0, 3)\) 是我们根据端点移动前和移动后,能算出一个变化矩阵,所以这个是已知的。

有如下说明:
- 这个矩阵只是上一章对 RRR 类型机械臂推导的矩阵,不同关节类型的机械臂不一样。
- 这里的 \(c_{123} = cos(\theta_1 + \theta_2 + \theta_3)\),同理 \(s_{123} = sin(\theta_1 + \theta_2 + \theta_3)\)。
- 我们最终要求的是 \(T(0, 3)\) 的三个角度,即 \(\theta_1, \theta_2, \theta_3\)。
有几何法和代数法,一开始讲几何法可以跳过,直接看代数法;其实也不用看,这种都是初中数学,不要抠细节,只知道是干什么的就行了。总之就是联立方程求解呗。
第二个例子
4-3 小节讲了另一个例子。上面的例子只有旋转,第二个例子是更复杂的例子,而且很常见的手臂,末端 \(Z4, Z5, Z6\) 有三种旋转。

具体做法还是同样的,先求正向的矩阵,也就是各个关节旋转或移动的参数,对目标的点 d 影响。然后像上面例子一样反推即可,无非复杂点而言,万变不离其宗。

第三个例子
其实还是用的上面的手臂,只是讲了应用场景,如下图所示,我们目标是算出机械臂夹住水杯时候的姿态。本质上还是上面的老一套,可以顺着视频快速过一遍,很棒的例子。
