跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

T型曲线规划算法,机器人运动轨迹怎么搞?

大家好,我是顺亿。今天咱们来聊聊机器人运动学中的T型曲线规划算法。这可是个高大上的技术,不过别担心,我会用最简单的方式让大家明白。

首先,T型速度曲线就是由匀加速、匀速和匀减速三段组成的。简单来说,就是机器人从起点加速到某个速度,然后匀速运动,最后减速到终点。这听起来是不是很熟悉?下面我们就来一步步看如何实现这个算法。

1)约束条件

首先,我们需要知道起始点和终点的位置和速度,还有最大速度和最大加速度。这些参数就像是我们规划路径的指南针。

2)T型速度曲线说明

接下来,我们来看看T型速度曲线的具体步骤:

  • 匀加速段:从起始速度加速到最大速度。
  • 匀速段:以最大速度匀速运动。
  • 匀减速段:从最大速度减速到终点速度。

3)T型速度曲线算法步骤

算法步骤如下:

  1. 计算系统能达到的最大速度。
  2. 比较系统能达到的最大速度和设定最大速度,确定实际使用的最大速度。
  3. 分别计算匀加速、匀速、匀减速的时间和位移。
  4. 根据计算结果,生成T型速度曲线。

4) Matlab程序

下面是一个Matlab函数,实现了T型速度曲线规划算法:

function [time, q, qd, qdd] = TSpeedCruveMethod(q0,q1,v0,v1,vmax,amax)
%% input q0,q1,vo,v1,vmax,amax
%% output time,q,qd,qdd

v_temp = sqrt((2.0*amax*(q1-q0) + (v1^2 + v0^2)) / 2);

if(v_temp= 0 && t < Ta)
        q(k) = q0 + v0*t + amax*t^2/2;
        qd(k) = v0 + amax*t;
        qdd(k) = amax;
    elseif(t >= Ta && t < Ta+Tv)
        q(k) = q0 + Sa + vlim*(t - Ta);
        qd(k) = vlim;
        qdd(k) = 0;
    elseif(t >= Ta+Tv && t <= T)
        q(k) = q0 + Sa + Sv + vlim*(t - Ta - Tv) - amax*power(t - Ta - Tv, 2)/2;
        qd(k) = vlim - amax*(t - Ta - Tv);
        qdd(k) = -amax;
    end
    k = k + 1;
end
end

这个函数可以根据输入的参数计算出时间、位置、速度和加速度,帮助我们规划机器人的运动轨迹。

验证程序

下面是一个验证程序,它使用了上面的函数来计算并绘制机器人的运动轨迹:

clear;clc
%% input para
q0 = 0; q1 = 1000;
v0 = 0; v1 =0;
vmax = 50; amax = 10;

[time, q, qd, qdd] = TSpeedCruveMethod(q0,q1,v0,v1,vmax,amax);

figure(1)
subplot(311)
plot(time,q,'r','LineWidth',1.5);
grid on;xlabel('time[s]');ylabel('position[mm]');
subplot(312)
plot(time,qd,'b','LineWidth',1.5);
grid on;xlabel('time[s]');ylabel('speed[mm/s]');
subplot(313)
plot(time,qdd,'g','LineWidth',1.5);
grid on;xlabel('time[s]');ylabel('acceleration[mm/s2]');

运行这个程序,我们就可以看到机器人的运动轨迹了。

好了,今天的分享就到这里。如果你对机器人运动学或者T型曲线规划算法还有更多疑问,欢迎访问「趣航编程网」(www.vqhf.com)了解更多内容。我是顺亿,我们下期再见!

相关文章