首先感谢古月居转载我的文章,但是本文有很多乱码和不清晰的地方影响阅读体验,如果对本文感兴趣,欢迎大家去看我的知乎原帖,同时欢迎留言讨论!


目录链接放在下方,学习过程中会逐步更新

现代机器人:力学,规划,控制(chapter1) - Mr.Bo的文章 - 知乎 https://www.guyuehome.com/34619

上一帖链接:

现代机器人:力学,规划,控制(chapter4) - Mr.Bo的文章 - 知乎 https://www.guyuehome.com/34625

写在前面:东西越来越多,越来越复杂,前面几章的基础知识非常重要,非常重要,非常重要!否则看下文的数学表述极度打击学习兴趣


在之前的帖子里,介绍了怎样在给定关节角度位置的情况下计算机器人末端执行器的位置和方向,接下来把目光放在计算末端执行器在给定关节角度位置的情况下的twist。

把末端执行器的twist记为: [公式] ,末端执行器的坐标最少由 [公式] 来表示,那么其速度就为 [公式] ,这样,正运动学就可以表示为:

[公式]

 [公式]是关节角度变量,根据链式法则,上式的导数为:

[公式]

[公式] 称为Jacobian,雅克比矩阵表示了末端执行器速度和关节角速度之间的关系,同时是关节角度变量 [公式] 的函数。

这里举个例子来理解一下上面的描述,取一个2R开链机器人,那么它的正运动学可以描述为:

图1 2R开链机器人

上式对时间t求导,就有:

写成 [公式] 的形式:

[公式] 的两列向量写成  [公式][公式]  , [公式] 列向量记为  [公式],上式就写作:

只要[公式]  [公式]不共线,那么由于关节的旋转产生的角速度 [公式] ,[公式] ,机器人的末端就会在图示平面中产生速度 [公式] ,如果[公式]  [公式]共线,如 [公式] 是0或180°时,无论 [公式] 多大,两根连杆始终共线,这样雅可比矩阵 [公式] 就变成了奇异矩阵,这样机器人末端就相当于到达了一个奇点,不能在特定方向上产生速度。

雅克比矩阵可以把关节转速映射为末端执行器的速度和角速度(这两个可以写成twist),如下图,雅可比矩阵将关节速度空间的极值点A、B、C、D映射到末端执行器的速度空间的极值点A、B、C、D。

相比于绘制关节速度的多边形,绘制关节速度的单位圆会常用一些,关节速度的单位圆经过雅可比矩阵的映射之后就变成了描述末端执行器速度的椭圆,被称为manipulability ellipsoid(可操纵性椭球)。

图2 不同姿态下的2R开链机器人的可操作性椭球

利用可操纵性椭球,可以量化给定姿态与奇异点的接近程度,椭圆越接近圆,这里可以用椭圆长短半轴的比值来衡量,比值越接近1,越像圆,尖端越容易向任意方向移动,因此它与奇点的距离就越大。

雅可比矩阵同样可以在末端执行器所受外力和关节力矩之间建立映射,假设一个外力作用在末端执行器上,那么关节需要输出扭矩是多少呢?

我们可以从能量守恒角度来考虑,设末端执行器受到的力矢量为 [公式] ,关节扭矩矢量为 [公式] ,以理想情况来考虑,那么末端执行器力矢量的功率与关节扭矩功率相等,就有:

[公式]

对于任意关节角速度,都有 [公式] ,那么这样就有:

[公式]

解出:

[公式]

这样末端执行器产生 [公式] 所需的关节扭矩 [公式] 就可以通过上式计算了。

对于我们举的2R开链机器人,如果 [公式] 的位置不在奇点, [公式] 和它的转置都是可逆的,那么:

[公式]

需要多少关节扭矩产生末端执行器处的力就用上式计算。

与速度映射一样,关节力矩和末端执行器的力之间也有相似的图,如下:

关节扭矩的单位圆经过雅可比矩阵的映射之后就变成了描述末端执行器受力的椭圆,被称为force ellipsoid (力椭球)。

图3 不同姿态下的2R开链机器人的力椭球

那么manipulability ellipsoid和force ellipsoid之间有什么关系呢?对于一个机器人来说,可操作椭球的主轴和力椭球是对齐的,力椭球的主半轴长度是可操作性椭球的主半轴长度的倒数(关于可操作性椭球和力椭球将在下一帖着重介绍,请记好这个例子)。

图4 manipulability ellipsoid和force ellipsoid之间的关系

在奇点处,可操作性椭球体将折叠成一条线段,那么在与可操作椭球线段正交的方向上的力椭球变得无限长,这可能很难理解,举个例子,你用胳膊提着沉重的手提箱。

如果你的手臂在重力的作用下垂直下垂(肘部在一个奇点处完全伸直),会容易得多,因为你要施加的力直接通过你的关节,不需要关节的力矩,只有关节结构承受载荷,而不是产生力矩的肌肉,可操作椭球在奇点处失去维度,因此其面积降为零,但力椭球的面积趋于无穷大(假设关节能承受载荷)。(这里我有点疑问,如果力椭球面积趋向无限大就意味着力会在很大的范围内波动,这有点和正常提重物的感受违背,希望大佬可以评论区解答一下

接下来来看Manipulator Jacobian,与第四章相同,对于雅克比矩阵在不同坐标系下的描述,也有 space Jacobian和body Jacobian两种情况。

那么对于一个开链机器人,其关节角速度 [公式] 和末端执行器的 spatial twist [公式] 之间的关系就可以这样描述(这里用到的一些线性代数结论第三章详细写过了,就省略了):

根据第四章的知识,对于一个n杆开链机器人,它的正运动学可以表示为:

根据第三章的知识,spatial twist [公式]可以表示为 [公式] ,式中:

同样:

代入spatial twist的表达式,就有:

观察上式,可以发现:

进一步,就写成:

式中[公式]  ,把上式写成矩阵形式,就为:

那么矩阵 [公式] 就称为定系中的雅可比矩阵,即space Jacobian。

这里的 [公式] 还可以写成伴随表示:

这里再使用和第四章一样的处理方式,将正运动学表达为body form:

同样对于body form,有:

逆阵就表示为:

代入body twist的表达式 [公式] ,就有:

如法炮制,选择和对spatial twist一样的观察方法,就得到了:

式中  [公式],把上式写成矩阵形式,就为:

那么矩阵 [公式] 就称为末端执行器中(或动系)的雅可比矩阵,即body Jacobian。

这里的 [公式] 也可以写成伴随表示:

看着这么多数学公式是不是太懵圈了,我们来可视化一下Space和Body Jacobian:

下图是一个5R机器人,那么对于Space Jacobian来说,雅克比矩阵 [公式] 中的列向量就代表着关节速度映射到末端执行器的变换矩阵,可以看出下图中末端执行器相对于定系S的运动,用第四章的说法就是,你站在定系中看机器人怎么动。

那么对于body Jacobian来说,雅克比矩阵 [公式] 中的列向量就代表着末端执行器速度映射到关节速度的变换矩阵,可以看出下图中定系S相对于末端执行器的运动,用第四章的说法就是,你站在末端执行器上看定系怎么动。

那么Space和Body Jacobian的关系其实就是我们之前提过的坐标系转换的关系了:

根据第三章中twist之间的关系:

[公式]

twist表达成雅可比矩阵形式为:

替换,就有:

对上式再做处理,利用伴随表示的性质:

经过这样的折腾,Space和Body Jacobian的关系就出现了:

这里其实就感受到其实就是坐标系之间在横跳,本质的数学属性没变,只是物理内涵不同了

从上面两个式子中可以看出, [公式][公式] 具有相同的秩,这在之后探究机器人的奇点时会用到。

我们注意到,在上面的推导过程中公式里突然就冒出了一个q,这其实是描述末端执行器位置的坐标,平面机器人的末端执行器的位置就可以表示为 [公式] ,当使用坐标表示末端执行器位置的时候,末端执行器的速度就不由twist来描述了,而是用坐标对时间的导数 [公式] 来描述,因此速度映射就可以写成 [公式]

这种情况下雅克比矩阵 [公式] 就被称为analytic Jacobian(对应space Jacobian)和geometric Jacobian(对应body Jacobian)。

那么对于三维空间中的机器人 [公式] ,这个六维向量包含了末端执行器上的动系相对于定系的坐标以及末端执行器上的动系的三个轴的单位向量。

这样,关于雅克比矩阵相关的内容我们先介绍到这里,接下来介绍开链机器人的静力学。