机械臂的控制-------------控制器

1.位置控制

机器人最传统,最常用的控制方式就是位置控制,它能以0误差来达到指定位置或以0误差跟随指定轨迹。

普通的位置控制,是控制机器人末端到指定的地点(让机械臂向前运动1cm,就是运动1cm)。这种控制在涉及到接触作业时就会产生麻烦,因为现实环境是充满各种误差的,位置上很小的误差,经过大刚度的放大会产生很大的接触力,误差被放大。在位置精度要求高的且环境刚度很大时,位置出现误差,环境刚度也很大,就会出现硬碰硬,例如机械臂去开门,若门和机械臂的硬度都很大,此时开门的位置也就是机械臂达到的位置,出现误差,两者对抗,硬碰硬,要么机械臂断,要么门掉。

所以,在接触作业时,位置控制是有局限性的!

如何让机器不那么生硬死板?----人工智能(思想)

2.柔顺控制

对于接触作业种,实现的是环境交互,柔性就是联系两者的媒介

引入柔性的物件来进行过渡

在机械臂开门时,在机械臂末端加一个弹簧,实现柔性的定性,而在空间中,六个自由度,加六个弹簧不就实现了吗?

六个弹簧的柔顺控制属于被动的柔顺控制,虽然说机械臂有弹簧相助,但是弹簧的尴尬都也不能按需调节,很难做到各向异性(在不同你方向上有不同的刚度)。

而我们希望的是用控制算法(弹簧或者其他柔性材料)让机械臂表现出想要得柔性来,用控制器来控制,进行进一步得定量,量化。

在动力学上,最简单的有弹性,而且不会永久震荡的系统就是mass(质量块)-spring(弹簧)-damper(阻尼器);

目标也就转换到对其的控制,实现目标的不同路线,

强化学习 机械臂控制_建模

用公式描述:

强化学习 机械臂控制_单片机_02


对于公式的理解:

胡克定律F=kx

1)弹簧因为形变而产生力

2)因力而产生形变(不是形变而是弹簧自己的力)

柔顺控制包括 阻抗控制和导纳控制,和混合力控制。

阻抗控制不直接控制机械臂末端与环境接触力,通过分析 ‘机械臂末端与环境之间的动态关系‘,将力控制和位置控制综合起来考虑,用相同的策略实现力控制和位置控制。

对于上面不同的思考,有解读方式:

1)

强化学习 机械臂控制_机械臂_03


测量当前位置和目标位置的差,调整末端产生的力(一般通过调整各关节力矩实现)。这种通常称为impedance control或stiffness control. 阻抗控制或者刚度控制2)

强化学习 机械臂控制_机械臂_04


测量末端受到的力,调整末端的速度。这种常称为admittance control. 导纳控制

对于第一种方法中,可以认为机器人本身是一个Admittance(输入是力矩,输出是运动),而控制器是一个Impedance(输入是位置,输出是力矩)。在第二种方法中,机器人本身是Impedance (输入是速度,输出是对外的力),而控制器是Admittance(输入是外力,输出是运动)。其实这是必然的,因为admittance和impedance需要相间出现。

两种方法各有利弊。

第一种方法与环境接触时稳定性好,但是无接触时对位置实际上是开环的,因此对于建模的要求比较高。如果建模误差大,则位置的精度会受影响。

第二种方法无接触时位置精度比较高,但是当机器人本身刚性很大又与刚性环境接触时,系统容易不稳定。

强化学习 机械臂控制_机械臂_05


如果纯粹从实现角度上讲,

理解→→阻抗控制是根据力生成关节力矩来控制机械臂。导纳控制是根据力生成末端位移再生成关节位移来控制机械臂。

柔顺控制根据测量量,反馈量,可调节参数,定义空间等实现不同的方式,具体选取哪个根据需求和硬件调节有关,可让机械臂能够与环境更加平顺的交互。