六自由度机械臂轨迹规划仿真

采用五次多项式插值法进行机械臂轨迹规划,基于matlab robotics toolbox平台进行关节空间轨迹规划,得到各关节角度、速度和加速度与时间关系曲线。
此外,每次重新启动matlab时都需要重新输入“startup_rvc”回车来启动这个工具箱。
本文所控对象为串联六r机械臂,其具体尺寸参数见于代码中的d-h表。
matlab代码
% modified dh% abb robot% lujingguihuaclear;clc;% %机器人建模th(1) = 0; d(1) = 0; a(1) = 0; alp(1) = 0;th(2) = 0; d(2) = 0; a(2) = 3.20; alp(2) = pi/2; th(3) = 0; d(3) = 0; a(3) = 9.75; alp(3) = 0;th(4) = 0; d(4) = 8.87; a(4) = 2; alp(4) = pi/2;th(5) = 0; d(5) = 0; a(5) = 0; alp(5) = -pi/2;th(6) = 0; d(6) = 0; a(6) = 0; alp(6) = pi/2;% dh parameters th d a alpha sigmal1 = link([th(1), d(1), a(1), alp(1), 0], 'modified');l2 = link([th(2), d(2), a(2), alp(2), 0], 'modified');l3 = link([th(3), d(3), a(3), alp(3), 0], 'modified');l4 = link([th(4), d(4), a(4), alp(4), 0], 'modified');l5 = link([th(5), d(5), a(5), alp(5), 0], 'modified');l6 = link([th(6), d(6), a(6), alp(6), 0], 'modified');robot = seriallink([l1, l2, l3, l4, l5, l6]); %seriallink 类函数robot.name='robot-6-dof';robot.display(); %显示d-h表%轨迹规划参数设置init_ang = [pi/6,0, 2*pi/3,pi/3, 0, 0];targ_ang = [pi/2,pi/6,0,0, -pi/2, pi/6];t =(0:0.1:5);%关节空间轨迹规划方法[q,qd,qdd] = jtraj(init_ang,targ_ang,t); %直接得到角度、角速度、角加速度的的序列%%显示figure(1);%动画显示subplot(1,2,1); title('动画过程');robot.plot(q);% 轨迹显示t=robot.fkine(q);%运动学正解rpy=tr2rpy(t); %t中提取位置(xyz)subplot(1,2,2);plot2(rpy);xlabel('x/mm'),ylabel('y/mm'),zlabel('z/mm');hold ontitle('空间轨迹');text(rpy(1,1),rpy(1,2),rpy(1,3),'a点');text(rpy(51,1),rpy(51,2),rpy(51,3),'b点');% 指定文件夹保存图片filepath=pwd; %保存当前工作目录cd('c:usersadministratordesktoppic') %把当前工作目录切换到图片存储文件夹print(gcf,'-djpeg','c:usersadministratordesktoppic1.jpeg'); %将图片保存为jpg格式,cd(filepath) %切回原工作目录%单个关节的位置title('关节1位置');figure(2);subplot(3,2,1);plot(t,q(:,1));xlabel('t/s'),ylabel('θ1/rad');hold onsubplot(3,2,2);plot(t,q(:,2));xlabel('t/s'),ylabel('θ2/rad');hold onsubplot(3,2,3);plot(t,q(:,3));xlabel('t/s'),ylabel('θ3/rad');hold onsubplot(3,2,4);plot(t,q(:,4));xlabel('t/s'),ylabel('θ4/rad');hold onsubplot(3,2,5);plot(t,q(:,5));xlabel('t/s'),ylabel('θ5/rad');hold onsubplot(3,2,6);plot(t,q(:,6));xlabel('t/s'),ylabel('θ6/rad');hold on% 指定文件夹保存图片filepath=pwd; %保存当前工作目录cd('c:usersadministratordesktoppic') %把当前工作目录切换到图片存储文件夹print(gcf,'-djpeg','c:usersadministratordesktoppic2.jpeg'); %将图片保存为jpg格式,cd(filepath) %切回原工作目录%单个关节的速度figure(3);subplot(3,2,1);plot(t,qd(:,1));xlabel('t/s'),ylabel('ω1/rad');hold onsubplot(3,2,2);plot(t,qd(:,2));xlabel('t/s'),ylabel('ω2/rad');hold onsubplot(3,2,3);plot(t,qd(:,3));xlabel('t/s'),ylabel('ω3/rad');hold onsubplot(3,2,4);plot(t,qd(:,4));xlabel('t/s'),ylabel('ω4/rad');hold onsubplot(3,2,5);plot(t,qd(:,5));xlabel('t/s'),ylabel('ω5/rad');hold onsubplot(3,2,6);plot(t,qd(:,6));xlabel('t/s'),ylabel('ω6/rad');hold on% 指定文件夹保存图片filepath=pwd; %保存当前工作目录cd('c:usersadministratordesktoppic') %把当前工作目录切换到图片存储文件夹print(gcf,'-djpeg','c:usersadministratordesktoppic3.jpeg'); %将图片保存为jpg格式,cd(filepath) %切回原工作目录%单个关节的加速度figure(4);subplot(3,2,1);plot(t,qdd(:,1));xlabel('t/s'),ylabel('α1/rad');hold onsubplot(3,2,2);plot(t,qdd(:,2));xlabel('t/s'),ylabel('α2/rad');hold onsubplot(3,2,3);plot(t,qdd(:,3));xlabel('t/s'),ylabel('α3/rad');hold onsubplot(3,2,4);plot(t,qdd(:,4));xlabel('t/s'),ylabel('α4/rad');hold on;subplot(3,2,5);plot(t,qdd(:,5));xlabel('t/s'),ylabel('α5/rad');hold onsubplot(3,2,6);plot(t,qdd(:,6));xlabel('t/s'),ylabel('α6/rad');hold on% 指定文件夹保存图片filepath=pwd; %保存当前工作目录cd('c:usersadministratordesktoppic') %把当前工作目录切换到图片存储文件夹print(gcf,'-djpeg','c:usersadministratordesktoppic4.jpeg'); %将图片保存为jpg格式,cd(filepath) %切回原工作目录
通过轨迹规划,不仅得到了机械臂末端执行器的空间轨迹,还可以得到其关节的角位移、角速度和角加速度。从上图 可以看出机械臂到达预定的位置,证明了该机械臂设计的合理性。
随着运动的进行, 各个关节的角度与时间关系的曲线, 可以看到其运动过程连续平滑。而且在图 中可以看出各关节的角速度和角加速度都是光滑变化的,没有出现跳变点。进一步地,在首末两点的速度以及加速度都可以有效地约束为零。

RT9259A应用电路及参数
中国EDA产业能否突围?
为了对抗华为,美国召开5G峰会?
小米6代言人明日揭晓,小米6发布会还会远吗?
电动机运行过热的原因及处理
六自由度机械臂轨迹规划仿真
大数据分析的重要性
详解自动化工厂的十大标配组成
集成电子元件晶体管的工作原理
后疫情时代 自连科技强势角逐医疗千亿蓝海
基于FPGA算法实现两路视频图像同步判别的研究分析
什么是主板硬件监控
宝藏好物 aigo国民好物高速足容固态硬盘p3000了解一下
由2片LM3886并联功放的电路制作
工业CT扫描检测软件可视化和检查CT数据
二极管的入门秘籍
虹科分享 | 6个关键差异告诉您如何在热电阻和热电偶之间做出选择
机器人随着时代的洪流而至 学会了在多场景自动规划路径的方法
聚灿光电上市首年业绩猛跌原因分析
用于汗液实时监测的全弹性可穿戴系统