虽然没钱买实体机器人玩,但是在V-REP里边仿真也能体验到虚拟的快感(请大佬跳过),或许这就是穷学生的人生吧(没人比我更懂穷学生)。从今天开始,本菜要白嫖点高端的装装逼,从知乎大佬的论文开始吧!

本例程原料包括:

主料 -- 

 大佬论文《Adaptive Variable Impedance Control for Dynamic Contact Force Tracking in Uncertain Environment》

辅料 -- LBR/iiwa场景文件

炊具 -- V-REP,MATLAB

下面,进入本菜的厨房开始烹饪吧!

要想菜做得好,对主料一定要有深入的理解。由于本菜水平有限,对于大佬的论文定有诸多理解不到位之处,让各位食客难以下咽,还望海涵。

话不多说,打开论文直接翻到实验部分,力跟踪的效果看起来很不错,作者还有视频为证---羡慕嫉妒恨呀。再回到标题:自适应变阻抗,动态接触力,位置环境。也就是说阻抗模型中的参数是会根据反馈变化的,所跟踪的接触力可以是变化的(不一定是恒定的),环境的刚度,摩擦之类的一概不知。大佬的题目都是这么猛的么?好奇心驱使本菜鸡一路狂奔,掉了一地鸡毛,撸完全文。总结起来,就是如下这么个小小的控制器(摘自大佬论文):

以接触处只有单自由度运动为例:

简而言之,就是根据反馈的接触力信息去自适应地改变阻尼值,同时根据阻抗模型,计算出机器人与环境接触处的期望加速度,然后按照下式可进一步地得到期望的速度和位置,再通过雅克比的逆直接得到关节期望值或者通过其他复杂的末端速度或位置跟踪控制器进行控制,按照本菜的尿性,就弄个雅克比逆完事儿。

至于稳定性和收敛的证明,各位食客请自行咀嚼。我感觉这个控制器就是变了个形式的PI力跟踪控制,因为有I,所以有用...

下面开始做菜。

1. 制作场景文件

我们先调节关节位置值,使得末端关节轴竖直向下。然后,利用任何你熟悉的三维建模软件做一个连接件,再做一个上面倾斜的桌面,都保存为STL格式,通过V-REP的File->Import->Mesh导入,再通过Add->Primitive shape->Disc添加一个圆盘作为滑轮(以便与桌面接触时减小摩擦力)。最后,调整好三个新部件的位姿,并添加一个力传感器A连接机械臂和连接件的一端,再添加一个力传感器B连接连接件的另一端与滑轮。成品如下:

2. 编写控制代码

整体的控制流程是:

在与桌面发生接触之前,控制末端坐标系竖直向下匀速运动,姿态保持不变;当下降到桌面附近时,末端坐标系沿竖直方向的运动采用基于导纳的恒定力跟踪控制器计算该方向的目标速度,前进方向匀速运动,侧向坐标保持不变,姿态保持不变(这里严格讲应该是垂直桌面方向做力跟踪,切向做匀速运动,不过大佬的论文说了该控制器有一定抗扰能力而且给出的实验貌似也是竖直方向做力跟踪,好吧我编不下去了,我懒);当前进到足够距离,机械臂竖直运动方向由力跟踪切换为速度跟踪,姿态保持不变,匀速上升到足够距离结束。全程关节驱动器采用位置控制模式。

3. 运行

这个没什么好说的。

4. 数据处理

----------------------------------------------------

本例程源文件链接(切记只可用于学习,科研等非商业用途)

-----------------------------------------------------

做人呐,最重要的就是开心喽。能帮到别人是最大的快乐,希望本菜鸡能对小白们有所帮助,希望大佬们的批评能帮助本菜鸡成长!