前言

本人之前的文章已经对与机器人正逆运动学等进行了总结,同时也利用matlab对六自由度机器人、3R码垛机器人的运动进行了解算。也就是我可以知道关节角度下对应的末端姿态,也可以求解末端姿态下电机的转角。

但是这自然就产生了新的问题,机器人的运动总是连续的,那关节的运动速度是如何映射到末端运动角速度与线速度呢?由于数学关系理解起来很复杂,下文主要对雅可比矩阵定义、求法和用法等容易理解的方式循序渐进来讲。

 前序内容

1. 什么是雅可比矩阵?

雅可比矩阵,顾名思义一定是一个矩阵形式,在数学中它其实是一阶偏导数以一定方式排列成的矩阵。假设某函数从映到, 其雅可比矩阵是从的线性映射,其重要意义在于它表现了一个多变数向量函数的最佳线性逼近。(这里不懂没关系,知道它由一阶偏导组成即可。)

在机器人学中,雅可比矩阵Jacobian Matrix)其实是关节空间速度末端操作空间速度传递的映射矩阵,本质是描述关节与末端执行器瞬时运动关系的映射,因此雅可比矩阵是与时间相关的。其实它就是描述任意的关节变化\Delta Q时,末端变化\Delta X与其有着怎样的关系,这个\Delta代表了瞬时运动的一个微小量,也可以理解为微分运动。(实际就是雅克比矩阵主要是用来求末端执行器的角速度和线速度)

2.雅可比矩阵如何得到?

求解雅可比矩阵有位置求导法、矢量积法、微分变换法和速度递推法,常用的是前两种。

2.1 位置求导法

上面讲雅可比矩阵是关节空间速度映射到末端操作空间速度的映射矩阵,那我们先来理解一下什么是关节空间、关节空间速度、操作空间、操作空间速度。

  • 关节空间:其实就是由各个关节角度(转动副)或位移(移动副)构成的向量,这里统一用q来表示关节变量,所以n维关节空间为:q=\left [ q_1,q_2,\cdots ,q_n \right ]^{T}(注意这里是关节变量,比如转角的大小,移动的距离,并不是关节的速度)
  • 操作空间:即末端的位姿状态(末端坐标,转角)构成的向量,m维操作空间记为:X=\left [ x_1,x_2,\cdots ,x_m \right ]^{T}(注意这里的操作空间也只是描述的位置,并不是速度的空间)
  • 两者关系:这里的每一个位姿状态x_i都由n个关节来共同决定,所以满足一定函数关系:x_i=f_i\left ( q_1,q_2,\cdots q_n \right ),因此机器人m维操作空间Xn维关节空间位移关系就是:

上面式子两边对时间求导(位置对时间求导为速度),那么就可以得到操作空间的速度关节速度还有他们之间的关系:

式中:\dot{x}_{i},{i}\in \left ( 1,m \right )为末端操作空间的速度,\dot{q}_{j},{j}\in \left ( 1,n \right )为关节空间速度。

进一步地,可以对上式写成矩阵形式:

\dot{X}=J\dot{q},\dot{X}=\begin{bmatrix} \dot{x_{1}}\\ \cdots \\ \dot{x_{m}} \end{bmatrix},\dot{q}=\begin{bmatrix} \dot{q_{1}}\\ \cdots \\ \dot{q_{n}} \end{bmatrix}

\boldsymbol{J} = \begin{bmatrix} \frac{\partial x_1}{\partial q_1} & \cdots & \frac{\partial x_1}{\partial q_n} \\ \vdots & \cdots & \vdots \\ \frac{\partial x_m}{\partial q_1} & \cdots & \frac{\partial x_m}{\partial q_n} \end{bmatrix}_{m \times n}

上式:J就是m*n形式的雅可比矩阵,其中的每一项都是操作空间参数对于各个关节变量的偏导数。

 举个例子——平面2R机器人

下面是一个2R的平面机器人,有两个转动自由度,那么如何求机器人的雅可比矩阵呢?

这里的操作空间与关节空间分别为:X=\left [ x\: y \right ]^{T}q=\left [ \theta _{1}\: \theta _{2} \right ]^{T},我们先来写一下操作空间与关节空间的关系式:(就是把末端位姿和关节联系起来)

接下来上方程组等号左右两边对时间求导:

对上式子写为矩阵形式为:

\dot{\boldsymbol{X}} = \boldsymbol{J}\dot{\boldsymbol{q}}, \quad \dot{\boldsymbol{X}} = \begin{bmatrix} v_x \\ v_y \end{bmatrix}, \quad \dot{\boldsymbol{q}} = \begin{bmatrix} \dot{\theta}_1 \\ \dot{\theta}_2 \end{bmatrix}

\boldsymbol{J} = \begin{bmatrix} -l_1 \sin\theta_1 - l_2 \sin(\theta_1 + \theta_2) & -l_2 \sin(\theta_1 + \theta_2) \\ l_1 \cos\theta_1 + l_2 \cos(\theta_1 + \theta_2) & l_2 \cos(\theta_1 + \theta_2) \end{bmatrix}

至此求出了这一机器人对应的雅可比矩阵。

可以对映射关系改写,令\boldsymbol{J_1}\boldsymbol{J_2}分别为雅可比矩阵\boldsymbol{J}的第一矢量与第二矢量,则:

\dot{\boldsymbol{X}} = \boldsymbol{J}_1 \dot{\theta}_1 + \boldsymbol{J}_2 \dot{\theta}_2

\boldsymbol{J_1}\boldsymbol{J_2}分别表示为单位关节速度在末端位置产生的速度分量的传递比(贡献)。

2.2 矢量积法

实际上这一方法核心方法,就是将机器人各关节在末端产生的速度进行叠加,进而得到操作空间的速度。

  • 对于移动关节

对末端产生的角速度的矢量表达为{\omega}_i{\omega}_i ={0}

对末端产生的线速度的矢量表达为v_iv_i=\dot{q_{i}}z_i\dot{q_{i}}为关节速度值,z_i为关节单位向量,一般沿着关节轴向)

所以写成矩阵形式就是:

\begin{bmatrix} \boldsymbol{v}_i \\ \boldsymbol{\omega}_i \end{bmatrix} = \boldsymbol{J}_i \dot{\boldsymbol{q}}_i, \quad \boldsymbol{J}_i = \begin{bmatrix} \boldsymbol{z}_i \\ \boldsymbol{0} \end{bmatrix}

所以上面\quad \boldsymbol{J}_i为对应移动关节的一列雅可比矩阵。

  • 对于旋转关节

对末端产生的角速度的矢量表达为{\omega}_i{\omega}_i =\dot{q_{i}}z_i\dot{q_{i}}为关节转速值,z_i为关节单位向量)

对末端产生的线速度的矢量表达为v_iv_i=\dot{q_{i}}\, z_i\times r_i{r_{i}}为转轴中心到末端点的矢径)

所以写为矩阵形式是:

\begin{bmatrix} \boldsymbol{v}_i \\ \boldsymbol{\omega}_i \end{bmatrix} = \boldsymbol{J}_i \dot{\boldsymbol{q}}_i, \quad \boldsymbol{J}_i = \begin{bmatrix} \boldsymbol{z}_i \times \boldsymbol{r}_i \\ \boldsymbol{z}_i \end{bmatrix}

上面\quad \boldsymbol{J}_i为对应转动关节的一列雅可比矩阵。

总结上面雅可比矩阵各列的形式为:

因此按照运动副的类型,从始端一直到末端的顺序写出各项,就能够构造出机器人的雅可比矩阵:

所以①雅可比矩阵J的每一列都代表了第 i 个关节速度对于末端线速度与角速度的传递比;

②前三行代表对末端线速度v的传递比;

③后三行代表对末端角速度\omega的传递比。

 实例分析1

到这里是不是还是有一些混乱,让我们继续用上一个2R机器人来举例。这里我们以转轴轴线方向为Z轴方向:

所以两个转动关节的关节向量为:

\boldsymbol{z}_1 = \boldsymbol{z}_2 = \begin{bmatrix} 0 & 0 & 1 \end{bmatrix}^T

然后列写原点到末端点的矢径表达式(矢量叠加):

\boldsymbol{r}_1 = \begin{bmatrix} l_1 \cos\theta_1 + l_2 \cos(\theta_1 + \theta_2) & l_1 \sin\theta_1 + l_2 \sin(\theta_1 + \theta_2) & 0 \end{bmatrix}^T \\ \boldsymbol{r}_2 = \begin{bmatrix} l_2 \cos(\theta_1 + \theta_2) & l_2 \sin(\theta_1 + \theta_2) & 0 \end{bmatrix}^T

应为是旋转关节,所以对应的雅可比列应满足下面这个式子:

\quad \boldsymbol{J}_i = \begin{bmatrix} \boldsymbol{z}_i \times \boldsymbol{r}_i \\ \boldsymbol{z}_i \end{bmatrix}

有两个转动关节,所以列写两列,每一列都满足上面这个式子,然后把列写的矢径r与单位向量z代入可以得到下面的结果:(注意叉乘具有方向性,注意分辨)

所以计算每一列后,然后列写到一起就可以得到最后的雅可比矩阵了。这里的J雅可比矩阵说明这个机器人只有xy方向的移动,还有绕着z轴的转动。

 实例分析2

这里再以SCARA机器人为例(前三轴为转动,最后一轴为移动),用矢量积法来构造这个机器人对应的雅可比矩阵。

这里以第一个转轴轴向为固定坐标系的Z轴向,然后其余三轴的轴向也为对应坐标系的Z轴(注意移动轴的Z向为向下)。所以可以列写四个关节单位向量为:

\boldsymbol{z}_1 = \boldsymbol{z}_2 = \boldsymbol{z}_3 = \begin{bmatrix} 0 & 0 & 1 \end{bmatrix}^T, \quad \boldsymbol{z}_4 = \begin{bmatrix} 0 & 0 & -1 \end{bmatrix}^T

然后是列写三个转动副的矢径:

\boldsymbol{r}_1 = l_1 + l_2 + \boldsymbol{r}_3

\begin{bmatrix} l_1 \cos\theta_1 \\ l_1 \sin\theta_1 \\ 0 \end{bmatrix} + \begin{bmatrix} l_2 \cos(\theta_1 + \theta_2) \\ l_2 \sin(\theta_1 + \theta_2) \\ 0 \end{bmatrix} + \begin{bmatrix} 0 \\ 0 \\ -d \end{bmatrix} = \begin{bmatrix} l_1 \cos\theta_1 + l_2 \cos(\theta_1 + \theta_2) \\ l_1 \sin\theta_1 + l_2 \sin(\theta_1 + \theta_2) \\ -d \end{bmatrix}

r_2

\boldsymbol{r}_2 = l_2 + \boldsymbol{r}_3 = \begin{bmatrix} l_2 \cos(\theta_1 + \theta_2) \\ l_2 \sin(\theta_1 + \theta_2) \\ 0 \end{bmatrix} + \begin{bmatrix} 0 \\ 0 \\ -d \end{bmatrix} = \begin{bmatrix} l_2 \cos(\theta_1 + \theta_2) \\ l_2 \sin(\theta_1 + \theta_2) \\ -d \end{bmatrix}

r_3

\boldsymbol{r}_3 = \begin{bmatrix} 0 & 0 & -d \end{bmatrix}^T

通过公式计算各列可以得到:

最终列写到一起就是最终的雅可比矩阵了:

\boldsymbol{J} = \begin{bmatrix} \boldsymbol{J}_1 & \boldsymbol{J}_2 & \boldsymbol{J}_3 & \boldsymbol{J}_4 \end{bmatrix}

3. 雅可比矩阵各个元素都代表了什么?

以上介绍了雅可比矩阵是什么,两种常用的雅可比矩阵求解方法,其实也在文章体现了各行各列的代表意义,本节主要对其进行总结。对于下面的一个映射关系来讲,雅可比矩阵就是那个红框大矩阵:

**可以看出雅可比矩阵的行列意义分别为:

第 i 行:各关节的关节速度为单位值时,对末端构件的广义速度的第 i 分量的传递比;

j 列:第 j 个关节的关节速度为单位值时,对末端构件的广义速度的各分量的传递比;

i行第j列:第j个关节的关节速度\boldsymbol{\dot{q}}_j为单位值时,引起的末端构件的广义速度的第i分量\boldsymbol{v}_i


本文参考燕山大学-机器人技术课程,用于共同学习。如有遗漏错误,还望批评指正。

主页专栏中《机器人学-学习笔记》系列文章会持续更新,如有兴趣麻烦点个关注~

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐