Robotics Toolbox實例學習_第1頁
Robotics Toolbox實例學習_第2頁
Robotics Toolbox實例學習_第3頁
Robotics Toolbox實例學習_第4頁
Robotics Toolbox實例學習_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、PUMA560的MATLAB仿真要建立PUMA560的機器人對象,首先我們要了解PUMA560的D-H參數,之后我們可以利用Robotics Toolbox工具箱中的link和robot函數來建立PUMA560的機器人對象。其中l(wèi)ink函數的調用格式:L = LINK(alpha A theta D)       L =LINK(alpha A theta D sigma)       L =LINK(alpha A theta D sigma offse

2、t)       L =LINK(alpha A theta D, CONVENTION)       L =LINK(alpha A theta D sigma, CONVENTION)       L =LINK(alpha A theta D sigma offset, CONVENTION)參數CONVENTION可以取standard和modified,其中standard代表

3、采用標準的D-H參數,modified代表采用改進的D-H參數。參數alpha代表扭轉角 ,參數A代表桿件長度,參數theta代表關節(jié)角,參數D代表橫距,參數sigma代表關節(jié)類型:0代表旋轉關節(jié),非0代表移動關節(jié)。另外LINK還有一些數據域:       LINK.alpha       %返回扭轉角       LINK.A    &

4、#160;   %返回桿件長度       LINK.theta       %返回關節(jié)角       LINK.D        %返回橫距       LINK.sigma   

5、;  %返回關節(jié)類型       LINK.RP            %返回R(旋轉)或P(移動)       LINK.mdh      %若為標準D-H參數返回0,否則返回1      

6、0;LINK.offset      %返回關節(jié)變量偏移       LINK.qlim         %返回關節(jié)變量的上下限 min max       LINK.islimit(q)     %如果關節(jié)變量超限,返回 -1, 0, +

7、1       LINK.I         %返回一個3×3 對稱慣性矩陣       LINK.m        %返回關節(jié)質量       LINK.r   

8、60;     %返回3×1的關節(jié)齒輪向量       LINK.G        %返回齒輪的傳動比       LINK.Jm      %返回電機慣性       LINK.B

9、0;       %返回粘性摩擦       LINK.Tc       %返回庫侖摩擦       LINK.dh              return legacy DH r

10、ow       LINK.dyn         return legacy DYN row其中robot函數的調用格式:       ROBOT                  

11、60;  %創(chuàng)建一個空的機器人對象       ROBOT(robot)              %創(chuàng)建robot的一個副本       ROBOT(robot, LINK)       %用LINK來創(chuàng)建新機器人對象來代替ro

12、bot       ROBOT(LINK, .)         %用LINK來創(chuàng)建一個機器人對象       ROBOT(DH, .)             %用D-H矩陣來創(chuàng)建一個機器人對象   

13、0;   ROBOT(DYN, .)             %用DYN矩陣來創(chuàng)建一個機器人對象利用MATLAB中Robotics Toolbox工具箱中的transl、rotx、roty和rotz可以實現用齊次變換矩陣表示平移變換和旋轉變換。下面舉例來說明:A 機器人在x軸方向平移了0.5米,那么我們可以用下面的方法來求取平移變換后的齊次矩陣:>> transl(0.5,0,0)ans =  

14、  1.0000         0         0    0.5000         0    1.0000         0&#

15、160;        0         0         0    1.0000         0        

16、0;0         0         0    1.0000B 機器人繞x軸旋轉45度,那么可以用rotx來求取旋轉后的齊次矩陣:>> rotx(pi/4)ans =    1.0000         0 &#

17、160;       0         0         0    0.7071   -0.7071         0     

18、60;   0    0.7071    0.7071         0         0         0         

19、;0    1.0000C 機器人繞y軸旋轉90度,那么可以用roty來求取旋轉后的齊次矩陣:>> roty(pi/2)ans =    0.0000         0    1.0000         0     

20、0;   0    1.0000         0         0   -1.0000         0    0.0000     

21、;    0         0         0         0    1.0000D 機器人繞z軸旋轉-90度,那么可以用rotz來求取旋轉后的齊次矩陣:>> rotz(-pi/2)ans =  &

22、#160; 0.0000    1.0000         0         0   -1.0000    0.0000         0     

23、60;   0         0         0    1.0000         0         0    

24、0;    0         0    1.0000當然,如果有多次旋轉和平移變換,我們只需要多次調用函數在組合就可以了。另外,可以和我們學習的平移矩陣和旋轉矩陣做個對比,相信是一致的。 3 軌跡規(guī)劃利用Robotics Toolbox提供的ctraj、jtraj和trinterp函數可以實現笛卡爾規(guī)劃、關節(jié)空間規(guī)劃和變換插值。其中ctraj函數的調用格式:    

25、   TC = CTRAJ(T0, T1, N)       TC = CTRAJ(T0, T1, R)參數TC為從T0到T1的笛卡爾規(guī)劃軌跡,N為點的數量,R為給定路徑距離向量,R的每個值必須在0到1之間。其中jtraj函數的調用格式:       Q QD QDD = JTRAJ(Q0, Q1, N)       Q QD QDD = JTRAJ(Q0,

26、 Q1, N, QD0, QD1)       Q QD QDD = JTRAJ(Q0, Q1, T)       Q QD QDD = JTRAJ(Q0, Q1, T, QD0, QD1)參數Q為從狀態(tài)Q0到Q1的關節(jié)空間規(guī)劃軌跡,N為規(guī)劃的點數,T為給定的時間向量的長度,速度非零邊界可以用QD0和QD1來指定。QD和QDD為返回的規(guī)劃軌跡的速度和加速度。其中trinterp函數的調用格式:TR = TRINTERP(T0, T1, R)參數TR為在T0

27、和T1之間的坐標變化插值,R需在0和1之間。要實現軌跡規(guī)劃,首先我們要創(chuàng)建一個時間向量,假設在兩秒內完成某個動作,采樣間隔是56ms,那么可以用如下的命令來實現多項式軌跡規(guī)劃:t=0:0.056:2; q,qd,qdd=jtraj(qz,qr,t);其中t為時間向量,qz為機器人的初始位姿,qr為機器人的最終位姿,q為經過的路徑點,qd為運動的速度,qdd為運動的加速度。其中q、qd、qdd都是六列的矩陣,每列代表每個關節(jié)的位置、速度和加速度。如q(:,3)代表關節(jié)3的位置,qd(:,3)代表關節(jié)3的速度,qdd(:,3)代表關節(jié)3的加速度。  4 運動學的正問題

28、利用Robotics Toolbox中的fkine函數可以實現機器人運動學正問題的求解。其中fkine函數的調用格式:TR = FKINE(ROBOT, Q)參數ROBOT為一個機器人對象,TR為由Q定義的每個前向運動學的正解。以PUMA560為例,定義關節(jié)坐標系的零點qz=0 0 0 0 0 0,那么fkine(p560,qz)將返回最后一個關節(jié)的平移的齊次變換矩陣。如果有了關節(jié)的軌跡規(guī)劃之后,我們也可以用fkine來進行運動學的正解。比如:t=0:0.056:2; q=jtraj(qz,qr,t); T=fkine(p560,q);返回的矩陣T是一個三維的矩陣,前兩維是4×4的矩

29、陣代表坐標變化,第三維是時間。 5 運動學的逆問題利用Robotics Toolbox中的ikine函數可以實現機器人運動學逆問題的求解。其中ikine函數的調用格式:       Q = IKINE(ROBOT, T)       Q = IKINE(ROBOT, T, Q)       Q = IKINE(ROBOT, T, Q, M)參數ROBOT為一個機器人對

30、象,Q為初始猜測點(默認為0),T為要反解的變換矩陣。當反解的機器人對象的自由度少于6時,要用M進行忽略某個關節(jié)自由度。有了關節(jié)的軌跡規(guī)劃之后,我們也可以用ikine函數來進行運動學逆問題的求解。比如:t=0:0.056:2; T1=transl(0.6,-0.5,0); T2=transl(0.4,0.5,0.2); T=ctraj(T1,T2,length(t); q=ikine(p560,T);我們也可以嘗試先進行正解,再進行逆解,看看能否還原。Q=0 pi/4 pi/4 0 pi/8 0; T=fkine(p560,q); qi=ikine(p560,T); 6 動

31、畫演示有了機器人的軌跡規(guī)劃之后,我們就可以利用Robotics Toolbox中的plot函數來實現對規(guī)劃路徑的仿真。puma560;T=0:0.056:2; q=jtraj(qz,qr,T); plot(p560,q);當然,我們也可以來調節(jié)PUMA560的六個旋轉角,來實現動畫演示。drivebot(p560)Matlab Robotic Toolbox工具箱學習筆記根據Robot Toolbox demonstrations目錄,將分三大部分闡述:1、General(Rotations,Transformations,Trajectory)2、Arm(Robot,Animation,Fo

32、rwarw kinematics,Inverse kinematics,Jacobians,Inverse dynamics,Forward dynamics,Symbolic,Code generation)3、Mobile(Driving to a pose,Quadrotor,Braitenberg,Bug,D*,PRM,SLAM,Particle filter)General/Rotations%繞x軸旋轉pi/2得到的旋轉矩陣(1)r = rotx(pi/2);%matlab默認的角度單位為弧度,這里可以用度數作為單位(2)R = rotx(30, 'deg') *

33、roty(50, 'deg') * rotz(10, 'deg');%求出R等效的任意旋轉變換的旋轉軸矢量vec和轉角theta(3)theta,vec = tr2angvec(R);%旋轉矩陣用歐拉角表示,R = rotz(a)*roty(b)*rotz(c)(4)eul = tr2eul(R);%旋轉矩陣用roll-pitch-yaw角表示, R = rotx(r)*roty(p)*rotz(y)(5)rpy = tr2rpy(R);%旋轉矩陣用四元數表示(6)q = Quaternion(R);%將四元數轉化為旋轉矩陣(7)q.R; %界面,可以是“rpy”,“eluer”角度單位為度。(8)tripleangle('rpy');General/Transformations%沿x軸平移0.5,繞y軸旋轉pi/2,繞z軸旋

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論