机器人运动学轨迹规划(二)----T型曲线规划算法
摘要:本文重点介绍T型速度曲线轨迹规划的matlab算法
T型速度曲线一般包括匀加速、匀速、匀减速。下图是典型的T型速度曲线图。

1) 约束条件
q0和v0分别是起始点的位置和速度, q1和v1分别是终点的位置和速度。vmax, amax分别是是规划的最大速度和最大加速度。
2)T型速度曲线说明
- 匀加速段 0<= t < Ta
以恒定的加速度amax加速,使速度从v0增加到vmax;
- 匀速段 Ta <= t < Ta + Tv
以恒定的速度vamx匀速运动;
- 匀减速段 Ta + Tv <= t < Ta + Tv + Td
以恒定的加速度-amax减速,使速度从vmax减小到v1;
3)T型速度曲线算法步骤
a) 首先计算系统所能达到的最大速度。由

则临界速度

b) 分类讨论系统所能达到的最大速度和设定最大速度的大小
若vtemp < vmax,则
![]()
否则,
![]()
c) 分别计算匀加速、匀速、匀减速的时间和位移

d) T型速度曲线各阶段计算公式

4) 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<vmax)
vlim = v_temp;
else
vlim = vmax;
end
Ta = (vlim-v0)/amax;
Sa = v0*Ta+amax*Ta^2/2;
Tv = (q1-q0-(vlim^2-v0^2)/(2*amax)-(v1^2-vlim^2)/(2*-amax))/vlim;
Sv = vlim*Tv;
Td = (vlim-v1)/amax;
Sd = vlim*Td - amax*Td^2/2;
T = Ta + Tv +Td;
td = 0.001;
k = 1;
for t = 0:td:T
time(k) = td *k;
if(t >= 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]');
matlab运行结果如下:

当q1=100,其他参数不变,结果如下:

结论:本算法很好地展现了T型速度曲线的轨迹规划算法,在单轴运动学电机控制可以运用。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)