力控机器人物理交互(直接力、阻抗、导纳)控制框架与性能分析

         

        力控机器人是一种能够基于外部力量进行控制和交互的机器人系统。与传统的位置控制机器人相比,力控机器人更加灵活和适应性强,能够实现与环境和人类操作者的安全交互。

        力控机器人的核心思想是通过传感器测量机器人与环境之间的力和力矩,并将其作为控制输入进行实时调整。它可以感知和响应外部力的大小和方向,从而能够适应不同的工作环境和任务需求。

力控机器人的控制框架通常包括以下几个关键组件:

  1. 力传感器:用于测量机器人与环境之间的力和力矩。常见的力传感器包括压力传感器、力敏电阻、应变计等。

  2. 控制算法:力控机器人的控制算法根据传感器反馈的力信息,实时计算出机器人的控制指令。常见的控制算法包括PID控制、阻抗控制和导纳控制等。

  3. 执行器:力控机器人的执行器根据控制指令对机器人进行力和力矩的调整。常见的执行器包括电机、液压驱动器等。

  4. 交互界面:力控机器人通常需要与人类操作者进行交互,因此需要设计友好的交互界面,方便操作者监控和调整机器人的行为。

力控机器人的性能评估可以从多个方面进行,其中一些常见的性能指标包括:

  1. 动态响应:力控机器人的动态响应能力是评估其控制性能的重要指标。它可以通过观察机器人对外部力的实时调整情况来评估,包括响应速度、稳定性和准确性等。

  2. 接触感知和控制:力控机器人的接触感知和控制能力是评估其与环境交互的重要指标。它包括对接触力大小和方向的准确感知以及对接触力的合理调整和控制能力。

  3. 安全性:力控机器人的安全性是评估其在与人类操作者和环境进行交互时的重要指标。它包括机器人对外部力的感知和应对能力,以及对意外碰撞和异常情况的安全反应能力。

  4. 精度和稳定性:力控机器人的精度和稳定性是评估其执行力控制任务的重要指标。它包括机器人在施加和维持特定力和力矩时的准确性和稳定性。

通过对力控机器人的性能分析和评估,可以进一步优化其控制算法和系统设计,以提高其交互性能和适应性。

         常见的力控机器人如下:

Franka Emika机器人:https://www.franka.de/

力控机器人常采用柔顺控制算法与人/环境/机器人之间进行直接或间接的物理交互,那么,柔顺控制能够操纵被控系统的柔性特性和动态行为,实现方式可以分为被动柔顺和主动柔顺,具体分类如下图所示:

力控机器人交互控制框架是用于实现机器人与外部环境或操作者之间的力互动的控制系统。在力控机器人交互控制中,主要涉及直接力控制、阻抗控制和导纳控制三种主要方法。下面是这些控制方法的框架及其性能分析:

  1. 直接力控制框架:
    • 力/力矩传感器:用于测量机器人与环境之间的力和力矩。
    • 力/力矩控制器:根据传感器测量值和期望的力/力矩指令,生成控制指令以实现期望的力互动。
    • 运动控制器:用于控制机器人的关节或末端执行器,以实现所需的运动轨迹。
    • 环境建模与识别:用于对环境进行感知和识别,以帮助机器人适应环境变化。

性能分析:

  • 力跟踪性能:评估力控制器的能力,以实现期望的力跟踪。
  • 运动轨迹跟踪性能:评估运动控制器的能力,以实现期望的运动轨迹跟踪。
  • 动态响应性能:评估系统对外部力变化的响应速度和稳定性。
  • 力/位置误差分析:分析力控制和位置控制之间的误差,以评估系统的精度和稳定性。
  • 稳定性分析:通过线性稳定性分析或Lyapunov稳定性分析等方法,评估力控制系统的稳定性。
  1. 阻抗控制框架:
    • 力/力矩传感器:用于测量机器人与环境之间的力和力矩。
    • 阻抗控制器:根据传感器测量值和期望的力/力矩指令,生成控制指令以实现期望的阻抗互动。
    • 运动控制器:用于控制机器人的关节或末端执行器,以实现所需的运动轨迹。
    • 环境建模与识别:用于对环境进行感知和识别,以帮助机器人适应环境变化。

性能分析:

  • 阻抗响应性能:评估阻抗控制器对外部力变化的响应速度和稳定性。
  • 阻抗参数分析:分析阻抗控制器中的参数对系统性能的影响,如阻尼、刚度和质量等参数。
  • 阻抗稳定性分析:评估阻抗控制系统的稳定性,包括阻抗稳定性边界和阻抗参数的稳定性范围。
  • 动态性能分析:分析阻抗控制器对不同频率的外部力变化的动态响应性能。
  • 阻抗控制精度分析:评估阻抗控制器在实现期望的阻抗响应时的精度和稳定性。

以下为阻抗控制简单实现的MATLAB程序:

% 定义阻抗控制参数
M = 5;
B = 10;
K = 20;

% 定义初始位置和速度
x = 0;
xdot = 0;

% 定义时间步长和仿真时间
dt = 0.01;
T = 5;

% 初始化位置和速度数组
x_arr = zeros(1, T/dt);
xdot_arr = zeros(1, T/dt);

% 进行阻抗控制仿真
for i = 1:T/dt
    % 计算外部力
    F_ext = 10 * sin(i*dt);
    
    % 计算加速度
    xddot = (F_ext - B*xdot - K*x) / M;
    
    % 更新位置和速度
    xdot = xdot + xddot*dt;
    x = x + xdot*dt;
    
    % 存储位置和速度
    x_arr(i) = x;
    xdot_arr(i) = xdot;
end

% 绘制位置和速度图像
t = 0:dt:T-dt;
subplot(2,1,1)
plot(t, x_arr)
title('Position')
subplot(2,1,2)
plot(t, xdot_arr)
title('Velocity')

仿真结果如下:

对于二连杆机械臂的阻抗控制,需要考虑机械臂的动力学模型。需要更多的信息来确定机械臂的参数和控制目标:

% 定义阻抗控制参数
Md = diag([5, 5]);
Bd = diag([10, 10]);
Kd = diag([20, 20]);

% 定义机械臂质量和初始位置
m1 = 1;
m2 = 1;
l1 = 1;
l2 = 1;
q = [0; 0];
qdot = [0; 0];

% 定义时间步长和仿真时间
dt = 0.01;
T = 5;

% 初始化位置数组
q_arr = zeros(2, T/dt);

% 进行阻抗控制仿真
for i = 1:T/dt
    % 计算外部力矩
    tau_ext = [10 * sin(i*dt); 5 * cos(i*dt)];
    
    % 计算关节惯量矩阵
    M = [(m1+m2)*l1^2 + m2*l2^2 + 2*m2*l1*l2*cos(q(2)), m2*l2^2 + m2*l1*l2*cos(q(2));
         m2*l2^2 + m2*l1*l2*cos(q(2)), m2*l2^2];
    
    % 计算离心力与科氏力矩阵
    C = [-m2*l1*l2*sin(q(2))*qdot(2), -m2*l1*l2*sin(q(2))*(qdot(1)+qdot(2));
          m2*l1*l2*sin(q(2))*qdot(1), 0];
    
    % 计算重力矩阵
    G = [(m1+m2)*l1*9.8*cos(q(1)) + m2*l2*9.8*cos(q(1)+q(2));
         m2*l2*9.8*cos(q(1)+q(2))];
    
    % 计算期望加速度
    qddot_d = Md \ (tau_ext - Bd*qdot - Kd*q);
    
    % 计算控制力矩
    tau = M*qddot_d + C*qdot + G - Bd*qdot - Kd*q;
    
    % 更新位置和速度
    qddot = M \ (tau + tau_ext - C*qdot - G);
    qdot = qdot + qddot * dt;
    q = q + qdot * dt;
    
    % 存储位置
    q_arr(:,i) = q;
end

% 绘制位置图像
t = 0:dt:T-dt;
subplot(211)
plot(t, q_arr(1,:))
title('Joint 1 Position')
subplot(212)
plot(t, q_arr(2,:))
title('Joint 2 Position')

仿真结果如下:

  1. 导纳控制框架:
    • 力/力矩传感器:用于测量机器人与环境之间的力和力矩。
    • 导纳控制器:根据传感器测量值和期望的力/力矩指令,生成控制指令以实现期望的导纳互动。
    • 运动控制器:用于控制机器人的关节或末端执行器,以实现所需的运动轨迹。
    • 环境建模与识别:用于对环境进行感知和识别,以帮助机器人适应环境变化。

性能分析:

  • 导纳响应性能:评估导纳控制器对外部力变化的响应速度和稳定性。
  • 导纳参数分析:分析导纳控制器中的参数对系统性能的影响,如导纳刚度和导纳阻尼等参数。
  • 导纳稳定性分析:评估导纳控制系统的稳定性,包括导纳稳定性边界和导纳参数的稳定性范围。
  • 动态性能分析:分析导纳控制器对不同频率的外部力变化的动态响应性能。

单自由度机械臂导纳控制实现的MATLAB程序:

% 定义导纳控制参数
Md = 5;
Bd = 10;
Kd = 20;

% 定义机械臂质量和初始位置
m = 1;
x = 0;
xdot = 0;

% 定义期望位置和速度
xd = 1;
xdot_d = 0;

% 定义时间步长和仿真时间
dt = 0.01;
T = 5;

% 初始化位置数组
x_arr = zeros(1, T/dt);

% 进行导纳控制仿真
for i = 1:T/dt
    % 计算外部力
    F_ext = 10 * sin(i*dt);
    
    % 计算期望加速度
    xddot_d = (F_ext - Bd*(xdot-xdot_d) - Kd*(x-xd)) / Md;
    
    % 计算控制力
    F = m * xddot_d - Bd * xdot - Kd * x;
    
    % 更新位置和速度
    xdot = xdot + (F + F_ext) / m * dt;
    x = x + xdot * dt;
    
    % 存储位置
    x_arr(i) = x;
end

% 绘制位置图像
t = 0:dt:T-dt;
plot(t, x_arr)
title('Position')

仿真结果如下:

通过对力控机器人交互控制框架的性能分析,可以评估和优化系统的稳定性、精度、响应性能和适应性,以实现与外部环境或操作者的高效、安全和可靠的力互动。

        阻抗控制与导纳控制框图分别如图(a)与(b)所示:

Variable Admittance Control for Human–Robot Interaction | Encyclopedia MDPI

以及传递函数形式的控制框架如下图所示:

参考文献链接:Series admittance–impedance controller for more robust and stable extension of force control | ROBOMECH Journal |

具有末端力传感器的机器人如下图所示:

在物理人机交互控制中,常用的性能量化指标包括:

  1. 动作准确性(Action Accuracy):衡量人机交互中实际动作与期望动作之间的误差。准确性高表示实际动作与期望动作的一致性好,控制系统能够准确感知和执行人的意图。

  2. 动作平滑性(Action Smoothness):表示实际动作的连续性和流畅性。平滑性好的动作具有较小的抖动和突变,能够提供更加自然和舒适的人机交互体验。

  3. 动作响应时间(Action Response Time):指控制系统对于人的指令或动作请求作出反应所需的时间。较短的响应时间能够提供更实时的交互体验。

  4. 动作力度(Action Force):表示实际施加的力或力矩的大小。力度的合适性取决于具体任务需求,过大或过小的力度都可能影响交互效果和安全性。

  5. 负载适应能力(Load Adaptation):表示控制系统对于不同负载情况的适应能力。在物理人机交互中,人体肌肉的力量和运动范围可能存在差异,控制系统需要能够根据不同的负载情况自适应地调整控制策略。

  6. 稳定性(Stability):指控制系统在面对外部扰动或参数变化时的稳定性能。稳定性的评估可以采用频域分析或时域分析方法,例如判断系统的稳定边界、判定系统是否满足稳定条件等。

  7. 交互效率(Interaction Efficiency):表示控制系统实现人机交互任务的效率。较高的交互效率意味着控制系统能够以更高的速度和准确度完成交互任务。

  8. 用户满意度(User Satisfaction):评估用户对于交互过程和结果的满意程度。用户满意度可以通过问卷调查、主观评价或行为观察等方式进行评估。

这些性能量化指标可以根据具体的物理人机交互任务和应用场景进行选择和定制,以评估控制系统的性能和交互效果,并为控制器设计和优化提供参考。

在阻抗控制中,常用的性能量化指标包括:

  1. 接触力准确性(Contact Force Accuracy):衡量实际接触力与期望接触力之间的误差。准确性高表示实际接触力能够与期望接触力保持一致,控制系统能够准确感知和控制接触力。

  2. 阻抗响应时间(Impedance Response Time):指控制系统对于外部力或力矩的变化作出反应所需的时间。较短的响应时间能够提供更快速、稳定的阻抗调节,使得机器人能够及时适应不同的环境和任务要求。

  3. 阻抗稳定性(Impedance Stability):表示控制系统在面对外部扰动或参数变化时的稳定性能。稳定性的评估可以通过频域分析或时域分析方法,例如判断系统的稳定边界、判定系统是否满足稳定条件等。

  4. 阻抗控制精度(Impedance Control Accuracy):衡量实际阻抗与期望阻抗之间的误差。精度高表示实际阻抗能够与期望阻抗保持一致,控制系统能够准确调节机器人的刚度、阻尼和质量参数。

  5. 动作平滑性(Action Smoothness):表示实际动作的连续性和流畅性。平滑性好的动作具有较小的抖动和突变,能够提供更加自然和舒适的物理交互体验。

  6. 能量传递效率(Energy Transfer Efficiency):衡量机器人对于外部力或力矩的响应和能量传递的效率。较高的能量传递效率意味着机器人能够有效地吸收、分散或反馈外部力,以实现稳定的物理交互。

参考文献:

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

【2】https://zhuanlan.zhihu.com/p/126338809

【3】李正义. 机器人与环境间力/位置控制技术研究与应用[D].华中科技大学,2011.

【4】杨振. 基于阻抗控制的机器人柔顺性控制方法研究[D].东南大学,2005.