Scara机器人关节空间轨迹规划-机器人工具箱函数jtraj

【Scara机器人关节空间轨迹规划-机器人工具箱函数jtraj】1、前记:记录下scara机器人建模和轨迹规划。由于有移动关节的存在,稍微和六轴的有区别。

clc clear L1=Link([0 0 0 0 0],'modified'); L2=Link([0 0 200 pi 0],'modified'); L3=Link([0 0 150 0 1],'modified'); %移动关节最后一个参数为1 L4=Link([0 0.20 0 0 0],'modified'); Robot=SerialLink([L1 L2 L3 L4],'name','Scara'); Robot.qlim=[-125*pi/180 125*pi/180; -140*pi/180 140*pi/180; 0 200; -3*pi 3*pi]; %关节限制 Robot.plot([0 0 0 0], 'workspace',[-400 400 -400 400 -300 300]); %空间范围定义 % Robot.teach() q0=[0 0 0 0]; q1b=[pi/2 0 100 -3*pi]; q1=[pi/2 0 200 3*pi]; q2=[pi/2 0 0 pi]; q3=[0 0 0 0]; t=0:.04:2; sqtraj1=jtraj(q0,q1b,t); sqtraj2=jtraj(q1b,q1,t); sqtraj3=jtraj(q1,q2,t); sqtraj4=jtraj(q2,q3,t); hold on atj=zeros(4,4); view(3) hold on for i=1:1:51 atj=Robot.fkine(sqtraj1(i,:)); jta=transpose(atj); JTA(i,:)=jta.t; jta=JTA; plot2(jta(i,:),'r.') Robot.plot(sqtraj1(i,:)) plot2(JTA,'b') end for i=1:1:51 atj=Robot.fkine(sqtraj2(i,:)); jta=transpose(atj); JTA(i,:)=jta.t; jta=JTA; plot2(jta(i,:),'r.') Robot.plot(sqtraj2(i,:)) plot2(JTA,'b') end for i=1:1:51 atj=Robot.fkine(sqtraj3(i,:)); jta=transpose(atj); JTA(i,:)=jta.t; jta=JTA; plot2(jta(i,:),'r.') Robot.plot(sqtraj3(i,:)) plot2(JTA,'b') end for i=1:1:51 atj=Robot.fkine(sqtraj4(i,:)); jta=transpose(atj); JTA(i,:)=jta.t; jta=JTA; plot2(jta(i,:),'r.') Robot.plot(sqtraj4(i,:)) plot2(JTA,'b') end

效果(打孔、拧螺丝动作):
Scara机器人关节空间轨迹规划-机器人工具箱函数jtraj
文章图片

后记:在matlab2018a中,工具箱为10.3.其他版本报错可参考:https://blog.csdn.net/weixin_39090239/article/details/105022806
该演示Scara机器人建模参考:https://blog.csdn.net/qq_38023025/article/details/98777586?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
轨迹规划参考:https://blog.csdn.net/weixin_39090239/article/details/80962723


    推荐阅读