机器人交互/接触稳定性分析方法与程序实现

        机器人交互动态是非常重要的,那么本篇博文主要是进行稳定性分析。采用的主要工具是经典控制论中的稳定性分析方法。不稳定的交互可能会伤害人或环境。在保持有效的接触性能的同时保持接触稳定性仍然是一个相当大的挑战。当一个动态系统与一个稳定的动态环境耦合时,它的稳定性通常会受到损害。因此,当机器人与交互对象进行耦合时,那么耦合系统未必是稳定的,也就是说即使机器人本身系统是稳定的,环境本身也是稳定的,那么两者之间的耦合系统未必是稳定的,也就是会出现交互/接触不稳定性情况。

         在交互过程中,机器人的运动状态和力/扭矩输出将受到环境的影响,同时机器人的力/扭矩输出也会影响环境,导致机器人和环境之间出现相互作用和相互依赖的行为。因此,分析机器人与环境接触的交互稳定性非常重要。

         交互稳定性研究的主要目的是保证机器人在执行接触任务时能够保持稳定,避免不稳定的运动和过大的力/扭矩输出,以确保任务的顺利完成并保证人机安全。交互稳定性分析的方法和工具可以帮助设计机器人控制器和感知算法,以提高机器人的性能和稳定性。同时,分析交互稳定性还可以帮助开发更好的机器人和传感器设计,以实现更有效的机器人-环境交互。

        交互不稳定通常发生在机器人与环境之间的接触交互过程中。在这种情况下,机器人和环境之间的相互作用会产生不稳定性,可能导致机器人的运动不受控制,或者甚至导致机器人和/或环境的损坏。交互不稳定性的发生与接触力的不确定性、环境的不确定性、控制器的不确定性以及传感器误差等因素有关。

机器人与各种环境类型的物理接触都可能会导致交互不稳定,例如与软物体、非刚性物体、液体或不规则表面等物体接触时。这些情况下,环境物体的形变或运动可能会对机器人的运动造成不可预测的影响,从而导致交互不稳定。此外,机器人在高速运动时也容易出现交互不稳定的问题,因为快速变化的动力学和惯性效应可能导致控制系统无法及时调整,从而导致不稳定的交互行为。

       通过单自由度机械臂对上述分析进行了研究。大多数交互控制方法通过以下典型测试场景之一进行了实验验证;(1)简单的接触场景(自由到刚性表面接触),(2)约束运动场景(自由接触,然后在连续变化刚度的表面上滑动),(3)物体之间的过渡接触场景(不连续变化的接触刚度值)。

一般单自由度机械臂可以通过如下程序进行建模!

% 定义模型参数
m = 1;      % 质量
L = 1;      % 长度
g = 9.81;   % 重力加速度

% 建立模型
syms q dq ddq
I = m*L^2/12;       % 转动惯量
M = I*dq + m*L^2*ddq/3;
V = 0;
G = m*g*L/2*cos(q);
f = simplify(M + V + G);

        机器人跟踪期望轨迹与环境接触导致不稳定的可视化曲线通常表现为振荡或者失稳现象,具体形态取决于不稳定的机制和控制策略。一般来说,可视化曲线会显示出机器人执行的期望轨迹和实际轨迹之间的误差,这些误差会随着时间的推移不断增加,直到机器人无法再跟踪期望轨迹或发生意外情况。

以下是一个简单的MATLAB程序,用于演示机器人与环境交互不稳定时的可视化曲线,假设机器人和环境之间存在弹簧阻尼模型:

% 机器人和环境交互不稳定的可视化曲线

% 机器人和环境的弹簧和阻尼系数
k_robot = 10;
d_robot = 1;
k_env = 20;
d_env = 2;

% 期望轨迹
t = 0:0.01:10;
x_ref = sin(t);

% 初始状态
x0 = [0, 0];

% 控制器参数
Kp = 2;
Kd = 1;

% 模拟机器人与环境的交互
[t, x] = ode45(@(t,x) robot_env_interaction(t, x, x_ref, Kp, Kd, k_robot, d_robot, k_env, d_env), t, x0);

% 可视化曲线
figure
plot(t, x_ref, 'r--', 'LineWidth', 2)
hold on
plot(t, x(:,1), 'b', 'LineWidth', 2)
xlabel('Time')
ylabel('Position')
legend('Reference', 'Actual')
title('Robot-Environment Interaction Unstable Case')

function dx = robot_env_interaction(t, x, x_ref, Kp, Kd, k_robot, d_robot, k_env, d_env)
    % 机器人和环境的交互
    e = x_ref - x(1);
    de = -x(2);
    F = Kp * e + Kd * de;
    dx(1) = x(2);
    dx(2) = (F - k_robot * x(1) - d_robot * x(2) - k_env * x(1)) / (k_robot + k_env) - d_env * x(2) / (k_robot + k_env);
    dx = dx';
end

常见的交互不稳定物理表现:

  1. 振荡:机器人和环境之间的反馈可能导致振荡,使机器人在接触过程中来回摆动。

  2. 滑动和抖动:当机器人在表面上移动时,摩擦力会产生不稳定的力矩,导致机器人滑动或抖动。

  3. 接触力的不稳定性:由于机器人和环境之间的交互力,机器人在接触点处的力可能出现不稳定变化,导致机器人无法精确控制其位置和速度。

  4. 偏差:机器人与环境之间的交互可能会导致机器人在执行任务时偏离期望路径或位置。

  5. 失稳:在某些情况下,交互不稳定可能导致系统失稳,这意味着机器人无法控制其位置或速度,或者可能发生运动失控。

      Nyquist图可以用来分析系统的稳定性,包括机器人与环境的交互稳定性。

% 机器人与环境交互不稳定的Nyquist图绘制
s = tf('s');
% 定义机器人与环境的传递函数
G = 10/(s^2+1);
% 绘制Nyquist图
figure;
nyquist(G);
title('机器人与环境交互不稳定的Nyquist图');

        如果图形的曲线与虚轴相交,那么就说明系统是不稳定的。Nyquist图也可以显示系统的增益裕度和相位裕度等信息!

绘制两个稳定系统反馈互联后系统不稳定的情况:

% 系统1
num1 = [1];
den1 = [1 2 2];
sys1 = tf(num1, den1);

% 系统2
num2 = [1];
den2 = [1 1];
sys2 = tf(num2, den2);

% 系统反馈互联
sys = feedback(series(sys1, sys2), 1);

% 绘制Nyquist图
nyquist(sys);

仿真结果如下:

         执行该MATLAB程序后,可以看到绘制出的Nyquist图呈现出圆形路径,且绕点(-1,0)一圈,表明系统不稳定。

那么也就是说必须要两个绝对无源的系统,其耦合系统才是稳定的!

下面用一些例子来说明问题:

% 定义两个无源系统
sys1 = tf([1 2], [1 5 6]);
sys2 = tf([1 -1], [1 2 1]);

% 绘制两个系统的Nyquist图
figure;
nyquist(sys1);
hold on;
nyquist(sys2);

% 将两个系统反馈互联
sys_feedback = feedback(sys1*sys2, 1);

% 绘制反馈互联后系统的Nyquist图
figure;
nyquist(sys_feedback);

仿真结果如下:

         在Nyquist图上,无源系统的特点是整个曲线都位于虚轴下方或实轴左侧!

        在 Nyquist 图中,负实轴通常位于第三象限,也有些文献中将其归于第二象限。系统穿越Nyquist负实轴,通常是指系统的传递函数在Nyquist图上围绕Nyquist点逆时针穿越了Nyquist轨迹的负实轴。因为Nyquist图的负实轴在第三象限,所以系统穿越Nyquist负实轴是穿越第三象限。

反馈互联后,系统是稳定的情况!

       反馈互联后系统的Nyquist曲线没有通过(-1,0)点,因此系统是稳定的。

下面绘制出一个无源系统和一个非无源系统,二者反馈互联后系统是稳定的情况!

% 定义系统1和系统2的传递函数
G1 = tf([1],[1 2 2]);
G2 = tf([1],[1 2 0]);

% 绘制系统1和系统2的Nyquist图
figure;
nyquist(G1);
hold on;
nyquist(G2);

% 反馈互联系统1和系统2
H = feedback(G1*G2,1);

% 绘制反馈互联后系统的Nyquist图
figure;
nyquist(H);

        从结果可以看出,系统1和系统2分别在左半平面和右半平面内,都不经过Nyquist图的负实轴,因此它们分别是无源系统和非无源系统。反馈互联后系统的Nyquist图则位于左半平面内,因此反馈互联后系统是稳定的。

如果Nyquist图穿越了实轴,则需要考虑系统的相对阶数和奇偶性来确定是否稳定。但是如果Nyquist图位于右半平面,则表示系统是不稳定的。

参考文献:

{1} Duchaine, V., & Gosselin, C. (2009, May). Safe, stable and intuitive control for physical human-robot interaction. In 2009 IEEE International Conference on Robotics and Automation (pp. 3383-3388). IEEE.

{2} Kazerooni, H. (1990). Human-robot interaction via the transfer of power and information signals. IEEE Transactions on systems, Man, and Cybernetics20(2), 450-463.