Matlab Robitic Toolbox學習筆記Day2

1.對於之前已經建立好的SCARA機器人模型,進行動畫演示。9.10版本的工具箱中原來的drivebot函數替換爲teach函數,用來生成可修改關節變量q的演示圖。值得注意的是,在使用teach函數之前,必須在建立各個杆件的時候設置好關節變量q的範圍,即qlim;以及設置好所顯示圖形的範圍,即workspace。如果沒有設置好,則teach函數會報錯。

代碼如下所示:

clc, clear, close all;
deg = pi/180;
% Joints setting
L1 = Link('d', 3.3, 'a', 0, 'alpha', 0, 'qlim', [-105 105]*deg,'modified');
L2 = Link('d', 0, 'a', 3.25, 'alpha', 0, 'qlim', [-150 150]*deg,'modified');
L3 = Link('theta', 0, 'a', 2.75, 'alpha', pi,'qlim', [0 2.1],'modified');
L4 = Link('d', 0, 'a', 0, 'alpha',0, 'qlim', [-360 360]*deg,'modified');
bot = SerialLink([L1 L2 L3 L4], 'name', 'SCARA');
% Initial position/Starting position
q = [0 0 1 0];
q1=[90*deg 0 2 0]
a=7;
W = [-a a -a a -a/2 a];
bot.plot(q,'workspace', W);

圖形界面如圖所示


之前在網上搜索的實例大多是puma560機器人,由於該機器人全部關節均爲轉動關節,所以在進行仿真的時候可以不必添加workspace的選項,而scara機器人的第三關節是移動關節,所以在使用teach函數的時候必須規定好workspace的大小。

2.jtraj函數。jtraj函數用來生成軌跡

q = [0 0 1 0];
q1=[90*deg 0 2 0];
a=7;
W = [-a a -a a -a/2 a];

c = jtraj(q , q1 , 40 );
bot.plot(c,'workspace', W);

使用robotic toolbox自帶的plot函數畫出的圖形都爲動圖,如果需要得到一個靜態圖,則可以使用哪個plot3函數,具體的使用方法如下。

plot3函數與plot函數用法十分相似,其調用格式爲:
plot3(x1,y1,z1,選項1,x2,y2,z2,選項2,…,xn,yn,zn,選項n)
其中每一組x,y,z組成一組曲線的座標參數,選項的定義和plot函數相同。當x,y,z是同維向量時,則x,y,z 對應元素構成一條三維曲線。當x,y,z是同維矩陣時,則以x,y,z對應列元素繪製三維曲線,曲線條數等於矩陣列數。
  例  繪製三維曲線。
程序如下:
t=0:pi/100:20*pi;
x=sin(t);
y=cos(t);
z=t.*sin(t).*cos(t);
plot3(x,y,z);
title('Line in 3-D Space');
xlabel('X');ylabel('Y');zlabel('Z');
(參考來源:http://www.ilovematlab.cn/thread-243883-1-1.html)

3.在進行模型的動力學分析的時候,用serialLink.rne函數求得力矩。

rtbdemo中的puma560的實例如下:

t = [0:.056:2]; % create time vector 

 [q,qd,qdd] = jtraj(qz, qr, t); % compute joint coordinate trajectory 

tau = p560.rne(q, qd, qdd); % compute inverse dynamics
%  Now the joint torques can be plotted as a function of time
 plot(t, tau(:,1:3)); xlabel('Time (s)'); ylabel('Joint torque (Nm)')

4.尚不明確的地方:

五次三項式的插值函數?關於第三第四關節的簡化中,實際力矩的求解?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章