机器人阻抗控制的原理,应用和实现(下)

阻抗控制的应用:

利用阻抗控制最成功的当属kuka的iiwa机器人了,比如:

柔顺控制和曲面跟踪: http://v.youku.com/v_show/id_XOTQ2MTg3Mzcy.html?from=y1.2-1-105.3.3-1.1-1-1-2-0

演示(拖拽牵引)示教:http://v.youku.com/v_show/id_XODE3MzQ0MTk2.html

碰撞顺应

力保持控制,曲面跟踪,打磨

装配

更多的视频可以看我的另一篇博文。《kuka iiwa 机器人是怎么控制的》:http://blog.csdn.net/xpqhqy1314/article/details/50827842


阻抗控制的实现:

力的传感信息可以来自于关节力矩传感器,或者是末端六维力传感器。这里采用的是末端六维力传感器。
传感器的输出力信号存在着噪声,需要做滤波处理。经过尝试,移动平均值滤波法可以达到满意的效果。

阻抗算法实现的代码很简单,根据阻抗控制的公式,设初始加速度,速度和位移均为0,先求出加速度,再积分求速度,再积分求位置,发送位置指令给机器人。

x_dd=(1/M)*(K*xr+fil_e-B*x_d-K*endCur[2]);
x_d:=x_d+x_dd*t_time;
x_theta:=x_theta+x_d*t_time;


式中:xdd是加速度,xd是速度,x_theta是位置,M,B,K,阻抗三个参数。endCur[2]:机器人TCP坐标系Z方向的当前的位置。 t_time是累计的时间。


顺应控制

顺应控制就是在机器人运动过程中,假如有人介入其中,那么机器人能表现出顺应性,防止对人造成伤害。

表现的效果是按期望轨迹运动,外力介入会朝外力方向运动,撤力后会会到规划的期望轨迹上继续运动。


实现方式只要在原有的公式中,在位置项上加一项期望轨迹项就可以了。

 x_dd=(1/M)*(K*xr+fil_e-B*x_d-K*(endCur[2])-traj);

traj是:你轨迹中实时的期望位置点


自适应阻抗力控制:

令目标刚度K=0时,机器人可以实现力控制。从而达到和目标接触的期望力。而期望轨迹是根据力的误差实时产生的。

在机器人位置控制方向,则K不为0,机器人有设定的期望轨迹,在运动时假如有外力介入就表现出期望的刚度。

K=0的情况,对于任意刚度的平面表面,环境位置Xe是一个常数。所以Fe=Fd是一个稳态。机器人对于任意刚度平面实现力控制,表现出了一定的鲁棒性。

但是当fdXe,和deltaXe是时变函数,那么力的跟随误差就会出现。比如对于一个Fd是一个斜坡函数,则力的跟随误差会一直存在。如果是抛物线函数,力的误差会成无穷大.

所以就需要一种自适应的阻抗控制算法解决这个问题。


机器人阻抗控制的原理,应用和实现(下)_第1张图片

机器人阻抗控制的原理,应用和实现(下)_第2张图片


斜面跟踪实验,来回移动,红色曲线是力的变化情况,前半部分是普通的阻抗控制,而后段是自适应的控制效果。期望力F=10N,可以看到当斜面斜率较大时,普通的阻抗方法已经没法跟上斜面高度的变化。而自适应能较好的跟踪。

机器人阻抗控制的原理,应用和实现(下)_第3张图片 

斜面斜率较小时

机器人阻抗控制的原理,应用和实现(下)_第4张图片

斜面的斜率较大时

你可能感兴趣的:(机器人,阻抗控制)