前面介绍了机器人的逆运动学解法又几何法和代数法得到的都是机器人逆运动学的解析解,但是由于解析解可能不存在,所以需要寻求新的方法。这里介绍速度级的雅克比方法(Jacobian)。雅克比方法求机器人的运动学逆解对于不同类型的机械臂求解过程是相同的,而且不要求机械臂的逆解的解析解存在,通用性较强。然而,它的缺点是计算量大、速度慢。
雅克比矩阵是多维形式的导数。如假设有6个函数,每个函数都有6个独立的变量:
在机器人运动学中雅可比矩阵的数学意义是,表示机器人关节速度到机器人操作速度的广义传动比或映射关系。
对于任意机器人的雅可比矩阵可以写成如下形式:
(n即是关节数)
机器人雅可比矩阵的计算方法有矢量积方法、微分变换法等(具体参见,战强-机器人学P102,https://blog.csdn.net/hitgavin/article/details/107504032)
这里给出的是矢量积方法公式(适用于标准DH参数建模),对于旋转关节(这里不考虑移动关节时的情形):
这个问题需要理解透,因为在机器人动力学中拉格朗日建模是根据每个连杆的动能和势能去建立拉格朗日方程,这样就需要得到每个连杆的速度。而每个连杆的速度是可以通过雅克比矩阵推导得到的,这样对于6个连杆的机器人6个连杆的速度需要6个雅可比矩阵。
下面以一个二连杆为例来说明雅克比矩阵的求解:
以上是对于二连杆系统而言对于连杆末端的雅可比矩阵;下面分析一下对于连杆1而言其雅可比矩阵:
以上是关于连杆末端的速度到关节速度的映射,对于连杆质心速度到关节速度的映射,分析方法是一样的,只是多了一个质心坐标系。
以上还涉及到一个矢量叉积与反对称矩阵的关系。
两个向量之间的叉积可以变为矩阵之间的乘积;
上面的二连杆例子的基座与{0}坐标系不重合,而我们通常的建系中他们是重合的,下面也举个这样的例子;
利用标准DH参数建模得参数如下:
得各连杆的齐次变换矩阵:
对于标准DH参数建模基坐标系就是{0}坐标系的情况时,z0和p0的取值来至于;
注意:这里雅克比矩阵是相对于基坐标系而言的即{0}坐标系,所以所有的z和p都要是在{0}坐标系下表示的量。
有上面的、、可得:
对于二连杆机械臂其雅克比矩阵J的列数为2,即J1、J2;
根据雅克比矩阵的公式可得:
连杆i的速度可以用矢量和表示。
由于机械臂是一个链式结构,每一个连杆都能相对于与之相邻的连杆运动。由于这种结构我们可以由基坐标系开始依次计算各连杆的速度。连杆i+1的速度就是连杆i的速度加上由关节i+1产生的新的速度。
对于转动关节速度的传递关系为:
由这个表达式可以得到末端坐标系速度和关节速度的关系;不过由上面的公式得到的雅克比矩阵是在{i+1}坐标系下的如果要转换到基坐标系下还需要进行变换。
具体可参见:机器人学导论书籍第5章雅克比,这种方式有利于利用牛顿-欧拉方式的动力学公式推导的理解;
由上面的说明我们基本可以求得一个链式机械臂的雅克比矩阵,对于一个多轴的机械臂它的雅克比矩阵将会是比较复杂的,那么如何去验证我们得到的这个雅克比矩阵它是正确的呢?
下面以六轴机械臂为例来进行说明(建模方式与上面实例2相同):
通过标准DH参数建立机械臂的模型,然后得到末端到基坐标系的齐次矩阵:
根据雅克比矩阵的求解公式可得:
由这个公式很明显的可以看出其下面部分(对于6轴机械臂而言是下3行)为对应的z轴,而上面部分为关节速度所引起的坐标系原点的速度变化。
由雅克比矩阵的本质(本质是偏微分方程)可以通过的、、对其进行验证 ;其实就是、、对θ1、θ2、θ3、θ4、θ5、θ6求偏导。
即:
在MATLAB中可以利用jacobian()函数直接验证;
J1=jacobian([T06(1:3,4)],[th1 th2 th3 th4 th5 th6])
注意:这里验证的是J中的上三行;