机器人轨迹生成:类正弦周期参考轨迹的复合变化与MATLAB程序实现

机器人轨迹生成对于运动学分析、运动控制是非常重要的,机器人参考轨迹也就是机器人需要按照这个轨迹命令执行所需的任务,因此,本次博客介绍下常见的控制中需要周期性实现任务的参考复合轨迹生成!

机器人轨迹生成是指通过控制机器人的运动,使其按照预定的轨迹进行移动。生成合适的轨迹对于实现机器人的任务和动作非常重要。下面是一种常见的方法来生成机器人轨迹:

  1. 描述轨迹形状:确定所需轨迹的形状和特征。这可以是直线、曲线、圆弧等。根据实际需求,选择适合的轨迹形状。

  2. 参数化轨迹:将轨迹进行参数化表示。例如,可以使用时间作为参数,将轨迹的位置、速度和加速度等信息表示为时间的函数。

  3. 轨迹规划算法:根据机器人的运动能力和任务要求,选择合适的轨迹规划算法。常用的算法包括线性插值、样条插值、最小加速度规划等。这些算法可以生成平滑的轨迹,并考虑机器人的运动限制。

  4. 控制机器人运动:根据生成的轨迹,通过控制机器人的关节或末端执行器,使机器人按照预定的轨迹进行移动。这可能涉及到位置控制、速度控制、力控制等技术手段。

  5. 实时调整:在运动过程中,可能需要根据实际情况对轨迹进行实时调整。例如,处理障碍物、调整速度或改变运动方向等。

跟踪正弦参考轨迹在机器人控制中具有多种意义和应用。下面列举了一些常见的原因和优势:

  1. 运动规律的灵活性:正弦参考轨迹具有周期性和连续性,可以实现平滑的运动。机器人可以通过跟踪正弦轨迹来执行优雅、连续的动作,提高整体运动的舒适度和美观度。

  2. 高精度的位置和速度控制:正弦参考轨迹的运动规律是连续可微的,机器人可以通过精确的位置和速度控制来实现对轨迹的准确跟踪。这对于需要高精度定位和运动的应用场景非常重要。

  3. 自适应能力:正弦参考轨迹的周期性特征使机器人能够自适应不同工作环境和任务要求。通过调整正弦参考轨迹的频率、振幅和相位等参数,机器人可以适应不同的工件尺寸、工作空间要求和运动速度。

  4. 运动平滑和减震:正弦参考轨迹具有平滑的变化特性,可以减少机器人在运动过程中的冲击和振动。这有助于提高机器人的稳定性和工作效率,并减少对周围环境的干扰。

  5. 仿真和优化:正弦参考轨迹是一种常见的运动模式,在机器人的仿真和优化过程中被广泛使用。通过在仿真环境中生成和跟踪正弦参考轨迹,可以评估机器人的性能、调整控制参数,并进行优化设计。

下面的参考轨迹发生了相位移动,也就是说当每次触发状态时,都会进行新参考相对于上一次或原参考的初相位移动,这个就是复合参考在线生成的主要目标!

部分代码如下:

% 时间范围
t = linspace(0, 5*pi, 100);  % 0到2π之间等间隔采样100个点

% 正弦轨迹
trajectory = amplitude * sin(frequency*t);
% 绘制正弦轨迹
figure;
plot(t, trajectory, 'b', 'LineWidth', 2);hold on;

问题描述:机器人在自由空间中按照一定的正弦参考轨迹sin(t)运动,当遇到障碍物时,其接触状态发生变化,测得触发状态变化的时间后,根据每次触发状态的时间定义为每次触发状态事件,每次触发后新参考轨迹相对于上一次的参考轨迹的初相位均发生向左移动某些单位时间,具体移动量,也就是初相位的变化量,其新的初相位为半个周期内纵坐标相等的时间之差,需要用数学语言进行描述。

假设机器人按照正弦参考轨迹sin(t)运动,参考轨迹可以表示为:

x(t) = sin(t)

其中,x(t)表示机器人在时间t时的位置。

当机器人遇到障碍物并触发状态变化时,记录触发状态事件的时间t_trigger。

根据问题描述,每次触发后新参考轨迹相对于上一次的参考轨迹的初相位均发生向左移动某些单位时间,具体移动量为半个周期内纵坐标相等的时间之差。设半个周期内纵坐标相等的时间为Δt。

以下是一种可能的实现方法:

  1. 确定正弦参考轨迹:定义正弦参考轨迹的周期、幅度和初始相位。这可以根据具体需求来确定。

  2. 运动控制:通过控制机器人的关节或末端执行器,使其按照正弦参考轨迹进行运动。可以使用位置控制或速度控制等方法来实现。

  3. 检测障碍物触发状态:使用传感器或其他检测手段,检测机器人是否遇到障碍物并触发状态变化。记录每次触发状态事件的时间。

  4. 计算初相位变化量:根据每次触发状态事件的时间,计算新参考轨迹相对于上一次参考轨迹的初相位变化量。根据问题描述中的要求,可以计算半个周期内纵坐标相等的时间之差,然后将其作为初相位的变化量。

  5. 更新参考轨迹:根据计算得到的初相位变化量,更新参考轨迹的初始相位。将新的参考轨迹用于后续的机器人运动控制。

涉及程序如下:

% 参数设置
ts0 = [1, 3, 5, 7, 9, 11];  % 触发状态事件的时间

amplitude = 1;               % 振幅
frequency = 1;               % 频率

% 时间范围
t = linspace(0, 5*pi, 100);  % 0到2π之间等间隔采样100个点

% 正弦轨迹
trajectory = amplitude * sin(frequency * t);

% 绘制正弦轨迹
figure;
plot(t, trajectory, 'b', 'LineWidth', 2);
hold on;

% 每次触发状态后移动正弦轨迹
for i = 1:length(ts0)
    if i > 1
        % 计算相位移动量
        phase_shift = pi - 2 * (ts0(i) - ts0(i-1));
    else
        phase_shift = pi - 2 * ts0(i);
    end
    
    % 更新相位向右移动的轨迹
    shifted_trajectory = amplitude * sin(frequency * t + phase_shift);
    plot(t, shifted_trajectory, 'r--', 'LineWidth', 2);
end

% 设置图形参数
xlabel('时间');
ylabel('轨迹');
legend('初始正弦轨迹', '触发后移动的轨迹');
title('机器人轨迹生成');

hold off;

新参考相位所需变化如下:

机器人在黑色虚线处开始触发状态,新参考为当前参考的向左移动。

参考文献:

【1】Yadav, G. K., Jaiswal, S., & Nandi, G. C. (2020, February). Generic walking trajectory generation of biped using sinusoidal function and cubic spline. In 2020 7th International Conference on Signal Processing and Integrated Networks (SPIN) (pp. 745-750). IEEE.

【2】Vallery, H., Van Asseldonk, E. H., Buss, M., & Van Der Kooij, H. (2008). Reference trajectory generation for rehabilitation robots: complementary limb motion estimation. IEEE transactions on neural systems and rehabilitation engineering17(1), 23-30.

【3】Shi, H., Zhou, B., Zeng, H., Wang, F., Dong, Y., Li, J., ... & Meng, M. Q. H. (2022). Reinforcement learning with evolutionary trajectory generator: A general approach for quadrupedal locomotion. IEEE Robotics and Automation Letters7(2), 3085-3092.