当前位置:   article > 正文

MATLAB机器人工具箱【2】—— 轨迹规划_matlab机器人工具箱轨迹规划

matlab机器人工具箱轨迹规划

MATLAB机器人工具箱【2】—— 轨迹规划

本文在参考B站up主刘海涛大佬的视频分享基础上,结合自己学习的机器人学知识,利用MATLAB机器人工具箱加深理解和运用,机器人工具箱安装教程见Robotic toolbox 工具箱的安装和初步了解,安装了工具箱后就可以用来愉快的学习啦。

1. 关节空间轨迹规划

关节空间轨迹规划是对机械臂的每个关节的运行进行插值,以保证机械臂的各个关节运动的连续性和稳定性。
在这里插入图片描述

%%改进D-H模型
%       关节角   连杆偏距    连杆长度  连杆转角   
%       theta(i) d(i)        a(i-1)   alpha(i-1)  offset
SL1=Link([0      0           0        0           0     ],'modified');
SL2=Link([0      0.14909     0        -pi/2       0     ],'modified');
SL3=Link([0      0           0.4318   0           0     ],'modified');
SL4=Link([0      0.43307     0.02032  -pi/2       0     ],'modified');
SL5=Link([0      0           0        pi/2        0     ],'modified');
SL6=Link([0      0           0        -pi/2       0     ],'modified');
p560=SerialLink([SL1 SL2 SL3 SL4 SL5 SL6],'name','puma560');%SerialLink 类函数

%定义轨迹规划初始关节角度(First_Theta)和终止关节角度(Final_Theta),步数100
First_Theta = [0     0     0     0     0     0];
Final_Theta = [-pi/2    -pi/3    -pi/4    pi/3    pi/5   pi/6];
step = 100;
[q,qd,qdd] = jtraj(First_Theta,Final_Theta,step);
p560.plot(q)

figure(2);
subplot(2,2,1);
i = 1:6;
plot(q(:,i));
grid on;
title('关节位置');

subplot(2,2,2);
i = 1:6;
plot(qd(:,i));
grid on;
title('关节速度');

subplot(2,2,3);
i = 1:6;
plot(qdd(:,i));
grid on;
title('关节加速度');
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

在这里插入图片描述
在这里插入图片描述

2. 笛卡尔空间轨迹规划

笛卡尔空间轨迹规划常用于焊接,切割等场合,即对规定好的轨迹进行绘制,即保证机械臂末端的以确定的姿态在规定轨迹上运动。
在这里插入图片描述
利用匀加速、匀减速运动来规划轨迹

%%改进D-H模型
%       关节角   连杆偏距    连杆长度  连杆转角   
%       theta(i) d(i)        a(i-1)   alpha(i-1)  offset
SL1=Link([0      0           0        0           0     ],'modified');
SL2=Link([0      0.14909     0        -pi/2       0     ],'modified');
SL3=Link([0      0           0.4318   0           0     ],'modified');
SL4=Link([0      0.43307     0.02032  -pi/2       0     ],'modified');
SL5=Link([0      0           0        pi/2        0     ],'modified');
SL6=Link([0      0           0        -pi/2       0     ],'modified');
p560=SerialLink([SL1 SL2 SL3 SL4 SL5 SL6],'name','puma560');%SerialLink 类函数

%根据 First_Theta 和 Final_Theta 正运动学得到初始和终止位姿矩阵
T0 = puma560_fk(0,0,0,0,0,0);
Tf = puma560_fk(-pi/2,-pi/3,-pi/4,pi/3,pi/5,pi/6);
%利用 ctraj 在笛卡尔空间规划轨迹
step = 100;
Tc = ctraj(T0,Tf,step);
Tjtraj = transl(Tc);
plot2(Tjtraj,'r');
grid on;
title('T0到Tf笛卡尔空间轨迹');

for A = 1:100
    qq(:,A) = puma560_ik(Tc(:,:,A));
end
p560.plot(qq');
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/314731
推荐阅读
相关标签
  

闽ICP备14008679号