引言

柔顺控制作为一种机器人力接触类控制算法,因为其本身自带的柔顺性,被广泛应用到人机交互,机器人-环境交互的任务中。今天我们再一次就柔顺控制相关基础问题进行讲解。在前面的章节中,我们从认识的角度讲解了姿态导纳控制相关问题---机器人柔顺控制及其姿态转换

从大的分类来看,机器人柔顺控制主要分为阻抗控制和导纳控制两类。对于阻抗控制来说,其输入是位置信息,输出是机器人实际控制力;而导纳控制则正相反,其输入是机器人与环境之间的接触力,而输出则是机器人的位置信息。

(以下图来源于网络和自己绘制)

阻抗控制

我们首先要明确一个点:阻抗和导纳控制都是系统对于接触力做出的反应,阻抗控制是直接调整接触力,导纳控制是调整期望位置

我们从动力学的角度来看受力和运动的关系:

给出阻抗控制控制率:

当我们在t时刻得到当前位置量以及接触力后,我们就可以通过调节F来使加速度达到我们期望的数值。而我们期望的数值,其实就是根据外力Fext产生的柔顺作用。这样就说得通了。那么根据上面的阻抗控制公式,我们就可以得到加速度增量为:

再把它带入动力学方程,得到F的值:

控制框图如下:

导纳控制

我们需要知道的是,不管是导纳控制还是阻抗控制,实际上其本质都是位置控制,在位置控制的基础上进行的柔顺操作,并不是力控制。那这么看来,其实两者都需要一个期望的位置,在阻抗控制中,它通过接触力进而调节加速度最终达到调节期望位置的作用,而导纳控制对于位置控制来说,透明度就比较高了。它是由Fext直接得到期望的位置(这里的期望位置,就是在初始规划的基础上进行调整后得到的新的期望位置),而后经过单独的力控制环境来跟踪期望位置。

导纳控制率和阻抗控制率相同,不同的是,阻抗控制是根据Fext和已有的偏差,控制F,来达到跟随偏差的目的,进而产生柔顺效果;而导纳控制,则是通过Fext调节期望位置,也就说并不关心当前实际位置。

当求得期望位置后,再由力控模块得到F的值。

控制框图如下:

May the force be with you!