很多时候,我们新接触一个行业,会遇到各种各样的问题,这个坑,那个坑的,整理笔记留给后来新学的人。关于这个MATLAB中的link函数问题,我查了很多文档,也没有找到合适的解释,摸索了一个下午,终于解决了,就给大家做个共享吧。
虽然在MATLAB界面还会出现一些红色的警告,但是感觉已经很欣慰了,很高兴了。
安装 的MATLAB是2019b,破解版本的,自行安装MATLAB Robotic box是不行的,需要重新再安装,添加路径进行安装才行。
我的MATLAB自带的robotic库是无法使用link函数的。这困扰了我很久。终于找到问题的原因了。
成功运行的界面图
编辑搜图
请点击输入图片描述
x1=-pi/2; a1=121.16; d1=191.99;
x2=0; a2=850.94; th2=82.19*pi/180;
x3=0; a3=482.6;
x4=pi/2; a4=133.35;
x5=-pi/2; a5=0; th5=pi/2;
x6=0; d6=380.9;
L(1)=Link([0 d1 a1 x1]); L(1).qlim=[-pi,pi];
L(2)=Link([0 0 a2 x2]); L(2).qlim=[-pi/6,pi/2];
L(3)=Link([0 0 a3 x3]); L(3).qlim=[-pi/2,pi/2];
L(4)=Link([0 0 a4 x4]); L(4).qlim=[-pi/2,pi/2];
L(5)=Link([0 0 a5 x5]); L(5).qlim=[-pi/2,pi/2];
L(6)=Link([0 d6 0 x6]); L(6).qlim=[-pi,pi];
robot6=SerialLink(L,'name','robot6','offset',[0 -th2 th2 0 -th5 0]);
编辑搜图
请点击输入图片描述
%% 轨迹规划-圆
Th=0:pi/60:2*pi;R=400;
for I=1:length(Th)
j=1:length(Th);
x(1,j)=1500;
y(1,j)=R*sin(Th);
z(1,j)=0+R*cos(Th);
end
for ko=1:length(Th)
TTr=[x(ko),y(ko),z(ko)];
TO(:,:,ko)=transl(TTr)*trotz(-90,'deg')*troty(0,'deg')*trotx(-90,'deg');
end
qz=ikine(robot6,TO,'pinv');
plot3(x,y,z,'r','LineWidth',2);
hold on;
plot(robot6,qz,'loop');
hold off;
困扰很久的问题,终于搞定了,满满的自信和成就感!这个周末很愉快。
编辑搜图
请点击输入图片描述
link函数调用的话,会提示这样的错误:link函数不支持,或者link函数不支持的double类型,其根本原因就是MATLAB仿真机器人的库没有安装,我们要自行下载和安装哦。
编辑搜图
请点击输入图片描述
安装成功后在界面输入ver进行版本的查看即可,如上图。
学无止境,我在研究机器人仿真,请加入我一起学习吧,需要安装包的可以跟我联系,免费赠送哦。
想了解更多精彩内容,快来关注微信公众号:哈尔滨工业制造联盟