已知
q
0
=10
o
,
q
f
=90
o
,
v
0
= 0
,
v
f
= 0
求:1)用三次多项式规划轨迹
2)增加加速度约束
a
0
= 0
,
a
f
= 0
,
用五次多项式规划轨迹
3)增加约束
v
max
=10,
a
max
=1,用三段二次函数规划轨迹
4)增加约束
j
max
=0.1,用最小时间法规划轨迹
画出关节位置、速度和加速度随时间的变化函数曲线。
三次多项式
参考:MATLAB机械臂轨迹规划:在关节空间中生成多项式轨迹以及 jtraj函数(内容超详细讲解)_matlab多点轨迹规划_Onino_plus的博客-CSDN博客
% https://blog.csdn.net/qq_40969179/article/details/124841559
%% a)三次项多项式
clear;close all;clc;
figure('name','三次多项式');
q3_s = 10; q3_f = 90;%;起始点start角度值为10,终止点final角度值为90
t3_s=0; t3_f = 1;%;整个运动时间t=1s
v3_s = 0;v3_f = 0;%已知起始点和终止点的角速度为0
%计算系数
a0_3 = q3_s;
a1_3 = 0;
a2_3 = (3/t3_f^2)*(q3_f - q3_s);
a3_3 = (-2/t3_f^3)*(q3_f - q3_s);
j = 1;
for tc = 0: 0.01: 1
q_3(j) = a0_3 + a1_3*tc + a2_3*tc^2 + a3_3*tc^3; %角度变化函数
qd_3(j) = a1_3 + 2*a2_3*tc + 3*a3_3*tc^2;%角速度
qdd_3(j) = 2*a2_3 + 6*a3_3*tc;%角加速度
qddd_3(j) = 6*a3_3;%加速度变化率
j = j + 1;
end
subplot(4,1,1),plot([0:0.01:1], q_3,'r'),xlabel('时间(t)'),ylabel('角度(°)');grid on;
subplot(4,1,2),plot([0:0.01:1], qd_3,'b'),xlabel('时间(t)'),ylabel('速度(°/s)');grid on;
subplot(4,1,3),plot([0:0.01:1], qdd_3,'g'),xlabel('时间(t)'),ylabel('加速度(°/s^2)');grid on;
subplot(4,1,4),plot([0:0.01:1], qddd_3,'k'),xlabel('时间(t)'),ylabel('加速度变化率');grid on;
五次多项式
参考:MATLAB机械臂轨迹规划:在关节空间中生成多项式轨迹以及 jtraj函数(内容超详细讲解)_matlab多点轨迹规划_Onino_plus的博客-CSDN博客
%% b五次多项式
figure('name','五次多项式');
a_array1 = 0;a_array2 = 0;%起止加速度值
t_array1=0;t_array2=1;%起止时间值
q5_s=10;q5_f=90;%起止角度值
v_array1=0;v_array2=0;%起止速度值
T=t_array2-t_array1;
a0=q5_s;
a1=v_array1;
a2=a_array1/2;
a3=(20*q5_f-20*q5_s-(8*v_array2+12*v_array1)*T-(3*a_array1-a_array2)*T^2)/(2*T^3);
a4=(30*q5_s-30*q5_f+(14*v_array2+16*v_array1)*T&