01MATLAB做機器人仿真,新手入門踩坑第一講,成功調用link函數
很多時候,我們新接觸一個行業,會遇到各種各樣的問題,這個坑,那個坑的,整理筆記留給後來新學的人。關於這個MATLAB中的link函數問題,我查了很多文檔,也沒有找到合適的解釋,摸索了一個下午,終於解決了,就給大家做個共享吧。
雖然在MATLAB界面還會出現一些紅色的警告,但是感覺已經很欣慰了,很高興了。
02版本說明
安裝 的MATLAB是2019b,破解版本的,自行安裝MATLAB Robotic box是不行的,需要重新再安裝,添加路徑進行安裝才行。
我的MATLAB自帶的robotic庫是無法使用link函數的。這困擾了我很久。終於找到問題的原因了。
成功運行的界面圖
03源碼
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;
困擾很久的問題,終於搞定了,滿滿的自信和成就感!這個周末很愉快。
04link函數調用錯誤原因和解決方法
link函數調用的話,會提示這樣的錯誤:link函數不支持,或者link函數不支持的double類型,其根本原因就是MATLAB仿真機器人的庫沒有安裝,我們要自行下載和安裝哦。
安裝成功後在界面輸入ver進行版本的查看即可,如上圖。
學無止境,我在研究機器人仿真,請加入我一起學習吧,需要安裝包的可以跟我聯繫,免費贈送哦。