力控机器人(触觉感知)阻抗控制性能

       在开启本博文之前呢,首先还是要回答以下几个问题,这样可以帮助我们更好的去理解力控机器人做阻抗控制时需要满足哪些性能指标/规范。

(1)什么是力控机器人?

力控机器人(force-controlled robot)是指一类具有力控制能力的机器人系统,它们能够通过感知和控制机械臂上的末端执行器(如手爪或工具)施加的力或扭矩来完成各种操作任务,而不是通过控制机械臂的轨迹来实现。力控机器人在很多工业应用领域中都具有重要的作用,如装配、加工、搬运等任务。与传统的位置控制机器人相比,力控机器人的优势在于能够适应不同的工件形状、尺寸和材料,同时还可以实现更高的精度和控制灵活性。

        机器人每个关节都带有力矩传感器!

(2)力控机器人有什么优点?在哪些场合或物理交互任务下更适合使用?研究力控机器人有什么理论与实际意义?

力控机器人是一种能够感知、控制和响应物体力学交互作用的机器人。相较于传统的速度控制机器人,力控机器人有以下优点:

  1. 更高的适应性:力控机器人能够在不同的物体形状和尺寸下进行物理交互,并能够对外部干扰做出快速响应和调整。

  2. 更高的精度和稳定性:力控机器人能够根据物体的特性和环境变化来调整力的大小和方向,从而实现更加精确的物理交互任务,并且在控制过程中具有较高的稳定性。

  3. 更加人性化的交互方式:力控机器人能够与人类进行自然的物理交互,例如紧握物体、拨动开关、移动物体等,从而使得与机器人的交互更加自然和易于操作。

力控机器人在以下场合或物理交互任务下更适合使用:

  1. 接触性任务:例如装配、拾取、插入等需要通过物体的接触和摩擦来实现的任务。

  2. 力度反馈任务:例如手术机器人、力反馈游戏手柄等需要感知物体的力学特性并做出相应响应的任务。

  3. 精细操作任务:例如制造业的高精度加工、组装等需要机器人能够以微小的力度进行操作的任务。

研究力控机器人不仅具有实际意义,也具有理论意义。在实际应用方面,力控机器人可以为工业自动化、医疗机器人、军事领域等提供更加高效和安全的解决方案。在理论方面,力控机器人的研究涉及到机器人感知、控制、优化等多个领域,对于智能机器人的发展和理论基础的构建都具有重要意义。

(3)研究力控机器人的关键科学问题有哪些?

传感器设计与数据处理:力控机器人需要使用高精度的传感器来获取实时的力量信息,同时还需要进行高效的数据处理,以保证控制系统的实时性和稳定性。

力控算法设计:力控机器人需要采用特定的算法来控制机器人运动和施加的力量,同时还需要考虑力学模型和控制模型之间的耦合关系。

模型参数估计:力控机器人需要使用准确的模型来描述机器人的动力学和控制特性,因此需要进行模型参数估计,包括惯性参数、摩擦力参数等。

环境感知与交互:力控机器人需要对周围环境进行感知,并根据感知结果进行适当的物理交互,因此需要研究环境感知技术和交互算法。

机器人设计与控制系统集成:力控机器人需要进行机械设计和控制系统设计,同时还需要进行系统集成和调试,确保机器人能够按照预期工作。

(4)力控通常分为哪些?

力限制控制(Force-Limited Control):控制机器人末端执行器的输出力不超过指定的最大值,可以保证机器人和人的安全性。

动力学控制(Impedance Control):通过控制机器人的末端执行器的阻抗(包括质量、阻尼和刚度)来控制机器人与环境之间的相互作用力。

接触力控制(Force Control):通过控制机器人与环境之间的相互作用力,使得机器人在执行物理交互任务时能够保持稳定的力学特性,比如保持一定的接触力、运动稳定等。

其他力控制方法:还有一些其他的力控制方法,比如逆向动力学控制、基于模型的控制、模糊控制等,都可以应用于机器人的力控制中。

(5)为什么力控通常采用阻抗控制?如何通俗的理解阻抗控制?

通常情况下,机器人力控制采用阻抗控制是因为阻抗控制能够更好地处理机器人与环境之间的相互作用。相比于位置控制和速度控制,阻抗控制可以实现更高级的控制策略,如力限制、力跟随、刚度控制和阻尼控制等。在机器人执行物理交互任务时,环境的不确定性和复杂性往往导致力的变化和机器人位置、速度的变化之间的相互影响,而阻抗控制可以通过模拟机器人与环境之间的交互阻抗来处理这些影响,从而实现更加精确的力控制。

阻抗控制的基本思想是将机器人与环境之间的交互视为一个复合系统,通过对系统的阻抗参数进行控制,从而实现机器人与环境之间的力交互。阻抗控制中的阻抗参数通常包括刚度和阻尼,刚度用于描述系统对于外部力的响应强度,而阻尼则用于描述系统对于外部力的响应速度。在阻抗控制中,机器人的运动受到环境的反作用力的影响,从而调整机器人的运动以适应环境的变化,实现精确的力控制。

可以用弹簧和阻尼器作为生动的比喻来理解阻抗控制。当你用手推动一个弹簧,弹簧的刚度决定了弹簧对你的推力的响应强度,而弹簧内的阻尼决定了弹簧对你的推力的响应速度。类比地,当机器人与环境进行物理交互时,阻抗控制通过模拟弹簧和阻尼器的行为来实现对机器人的力控制。

(6)阻抗控制存在哪些科学问题?限制阻抗控制性能优化的因素是什么?

环境建模问题:阻抗控制需要对环境进行建模,而实际环境往往非常复杂,涉及到不同的物体形状、材料、摩擦力等因素,这使得环境建模变得十分困难。

参数不确定性问题:阻抗控制需要估计环境参数,例如物体的质量、刚度等,但是这些参数通常存在不确定性,会影响控制性能。

稳定性问题:阻抗控制需要保证系统的稳定性,但是由于环境的不确定性和非线性,稳定性分析变得十分困难,这也是阻抗控制应用受限的主要原因之一。

除此之外,阻抗控制性能优化的因素也有很多,主要包括:

控制器设计问题:阻抗控制需要设计合适的控制器,包括控制增益、时域响应等方面,以实现良好的控制性能。

传感器选择问题:阻抗控制需要实时获取物体的位置、速度、力等信息,因此需要选择合适的传感器,并且需要对传感器进行校准,以保证测量的准确性。

扰动补偿问题:阻抗控制会受到环境扰动的影响,需要采取合适的扰动补偿策略,以保证控制性能。

(7)阻抗控制性能的评价准则是什么?量化指标可以用哪些?性能规范又是什么?

基于时间域的准则主要包括以下指标:

  1. 跟踪误差:描述实际输出与期望输出之间的偏差。通常使用均方根误差(RMSE)或最大误差等指标来衡量。

  2. 稳态误差:描述实际输出与期望输出在稳态下的偏差。通常使用静态误差增益(Static Error Gain)等指标来衡量。

  3. 稳定性:描述系统是否在有限时间内收敛到稳定状态。常见的评价指标包括峰值时间(Peak Time)、调节时间(Settling Time)和超调量(Overshoot)等。

基于频域的准则主要包括以下指标:

  1. 带宽:表示系统响应的频率范围,通常使用-3dB带宽来衡量。

  2. 相位裕量:描述系统相位响应的余量,通常使用相位裕量角度(Phase Margin)来衡量。

  3. 增益裕量:描述系统增益响应的余量,通常使用增益裕量(Gain Margin)来衡量。

(8)阻抗控制性能提升后对稳定性有怎样的影响?如何权衡阻抗控制性能与稳定性的关系?

当阻抗控制性能提升时,往往需要更高的控制增益来实现更快的响应和更小的跟踪误差。这会导致控制系统的稳定性受到挑战,因为高增益会导致系统出现振荡或不稳定的情况。因此,需要在性能和稳定性之间进行权衡。

一般来说,权衡性能和稳定性的最好方法是通过系统的频率响应特性进行分析。在频率域中,系统的增益和相位可以得到明确的量化,因此可以根据实际要求对控制增益进行优化。此外,也可以使用一些经典的控制方法,如根轨迹设计或Bode图设计,来平衡性能和稳定性。最终,选择合适的方法取决于具体应用场景和系统要求。

        阻抗控制一般可以通过一些实验进行验证,例如实验涉及阻抗控制的两个典型应用领域:机器人与人的稳定和安全交互,以及与未知、刚性但被动环境的接触。要求机器人对与刚体动力学、有效载荷或接触环境相关的模型不确定性具有鲁棒性。增强控制方法的鲁棒性、性能和通用性。通过输入变量与输出变量之间的关系来衡量性能。虽然交互性能的测量可能随着系统和任务的不同而变化,但它们最好由控制机器人的行为决定。当机器人被期望管理与几个不同或不确定性的环境的交互时,根据耦合系统的行为来指定性能(例如,固有频率、阻尼)可能是不切实际的。

阻抗控制的理解 \ref

机械阻抗是衡量结构在(谐波)力作用下抵抗运动的程度。阻抗的倒数是导纳。它是速度与力的比值。你可以想象用一定的频率推孩子的秋千。摆动的导纳越低,达到相同的摆动速度所需的力就越大。一个有很高导纳的秋千只需要轻轻推一下,孩子就会荡到天上。

当你用一定的力击打重袋子(纯质量)时,加速度与袋子的质量成正比。

假设袋子像弹簧一样运动,当你用一定的力击打袋子时,袋子表面的位移将与袋子材料的刚度成正比,直到拳头的力和弹簧的力达到平衡。

水里面打拳,则效果图下图所示

阻尼力与速度成正比!

通过控制阻抗,通过定义其刚度和阻尼来控制机器人在与环境交互过程中的行为。可以让它表现得像一个非常松散的弹簧,具有很高的顺应性!   当机器人被推时,它会向后移动,直到一段时间后到达它的初始位置。如果我们增加一些阻尼,末端执行器甚至可能在位移后回到它的初始位置,没有任何振荡。相反,机器人只会移动,如果环境中有很大的力,如果刚度很高。

在位置控制中,命令一个特定的位置,机器人无论如何都要到达该位置。如果它不能很容易地到达位置,它会施加很高的力,这可能会造成损坏。如果使用阻抗控制,可以间接控制力,从而避免这种破坏性的高力。如果有一些不确定因素,例如,钻孔稍微错位,这是特别好的。机器人会做出顺从的动作,也就是说,它会对接触做出轻微的反应。

如果机器人的末端执行器没有与另一个物体接触,力控制就会表现得很差,因为力会导致快速运动。想想爬楼梯,错误地认为最后还有一个台阶。抬起脚,试着推到台阶上。因为没有建立联系,能量就会流失,必须努力保持平衡。

以下是一个简单的单自由度机器人阻抗控制的 MATLAB 程序示例,其中机器人的动力学模型是简化为一个弹簧阻尼系统:

% 机器人阻抗控制程序

% 机器人参数
m = 1;          % 质量
k = 10;         % 刚度
c = 1;          % 阻尼

% 阻抗控制参数
Kp = 20;        % 位置控制增益
Kv = 5;         % 速度控制增益
M = 5;          % 质量控制增益
B = 1;          % 阻尼控制增益

% 目标参考位置和力/力矩
qr = 1;         % 参考位置
fr = 0.1;       % 参考力/力矩

% 初始状态
x0 = [0; 0];    % 位置和速度
f0 = 0;         % 初始力/力矩

% 阻抗控制循环
t = 0:0.01:10;  % 时间向量
x = zeros(2, length(t));     % 位置和速度
f = zeros(1, length(t));     % 力/力矩
x(:,1) = x0;    % 初始状态
f(1) = f0;

for i = 2:length(t)
    % 计算误差和误差导数
    e = qr - x(1, i-1);     % 位置误差
    de = -x(2, i-1);        % 速度误差
    
    % 计算控制力/力矩
    fc = Kp*e + Kv*de + M*(fr-f(1)) + B*(-x(2,i-1));
    
    % 更新状态
    a = (fc - c*x(2,i-1) - k*x(1,i-1))/m;
    x(2,i) = x(2,i-1) + a*0.01;
    x(1,i) = x(1,i-1) + x(2,i)*0.01;
    
    % 记录控制力/力矩和位置
    f(i) = fc;
end

% 绘图
subplot(2,1,1)
plot(t, x(1,:), 'b', t, qr*ones(size(t)), 'r--')
xlabel('时间 (s)')
ylabel('位置 (m)')
legend('位置', '参考位置')
title('单自由度机器人阻抗控制')

subplot(2,1,2)
plot(t, f, 'b', t, fr*ones(size(t)), 'r--')
xlabel('时间 (s)')
ylabel('力/力矩 (N/m)')
legend('控制力/力矩', '参考力/力矩')

结果如下:

       根据程序运行的结果和可视化图形可以看出,阻抗控制使得机器人的末端可以按照期望的阻抗响应,即在受到外界干扰时具有一定的柔性和减震性能,从而实现了对外部力的主动响应。通过调节阻抗控制器中的参数,可以使机器人末端的运动更加平滑和稳定。此外,对于单自由度机器人来说,阻抗控制器在保证稳定性的同时还能够提高系统的动态性能,使得机器人在对外界干扰响应时的响应速度更快,具有更好的跟踪性能。

然而,阻抗控制器中的参数调节比较困难,需要根据实际情况进行经验性调整,同时阻抗控制器也容易出现过冲和振荡等问题,因此需要综合考虑性能与稳定性之间的权衡关系,进行合理的参数设计。

参考文献:

【1】https://baike.baidu.com/item/%E5%8A%9B%E6%8E%A7%E6%9C%BA%E5%99%A8%E4%BA%BA/55623439?fr=aladdin

【2】https://blog.csdn.net/weixin_51367832/article/details/128000539?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168371888916800184138928%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=168371888916800184138928&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-2-128000539-null-null.blog_rank_default&utm_term=%E5%8A%9B%E6%8E%A7%E6%9C%BA%E5%99%A8%E4%BA%BA&spm=1018.2226.3001.4450

【3】https://robotics-explained.com/impedancecontrol

【4】Hogan, N. (1985). Impedance control: An approach to manipulation: Part II—Implementation.

【5】Anderson, R. J., & Spong, M. W. (1988). Hybrid impedance control of robotic manipulators. IEEE Journal on Robotics and Automation4(5), 549-556.