Matlab Robotic Toolbox工具箱學(xué)習(xí)筆記_第1頁
Matlab Robotic Toolbox工具箱學(xué)習(xí)筆記_第2頁
Matlab Robotic Toolbox工具箱學(xué)習(xí)筆記_第3頁
Matlab Robotic Toolbox工具箱學(xué)習(xí)筆記_第4頁
Matlab Robotic Toolbox工具箱學(xué)習(xí)筆記_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Matlab Robotic Toolbox工具箱學(xué)習(xí)筆記(一)軟件:matlab2013a工具箱:Matlab Robotic Toolbox v9.8Matlab Robotic Toolbox工具箱學(xué)習(xí)筆記根據(jù)Robot Toolbox demonstrations目錄,將分三大部分闡述:1、General(Rotations,Transformations,Trajectory)2、Arm(Robot,Animation,Forwarw kinematics,Inverse kinematics,Jacobians,Inverse dynamics,Forward dynamics,S

2、ymbolic,Code generation)3、Mobile(Driving to a pose,Quadrotor,Braitenberg,Bug,D*,PRM,SLAM,Particle filter)General/Rotations%繞x軸旋轉(zhuǎn)pi/2得到的旋轉(zhuǎn)矩陣(1)r = rotx(pi/2);%matlab默認(rèn)的角度單位為弧度,這里可以用度數(shù)作為單位(2)R = rotx(30, 'deg') * roty(50, 'deg') * rotz(10, 'deg');%求出R等效的任意旋轉(zhuǎn)變換的旋轉(zhuǎn)軸矢量vec和轉(zhuǎn)角theta(

3、3)theta,vec = tr2angvec(R);%旋轉(zhuǎn)矩陣用歐拉角表示,R = rotz(a)*roty(b)*rotz(c)(4)eul = tr2eul(R);%旋轉(zhuǎn)矩陣用roll-pitch-yaw角表示, R = rotx(r)*roty(p)*rotz(y)(5)rpy = tr2rpy(R);%旋轉(zhuǎn)矩陣用四元數(shù)表示(6)q = Quaternion(R);%將四元數(shù)轉(zhuǎn)化為旋轉(zhuǎn)矩陣(7)q.R; %界面,可以是“rpy”,“eluer”角度單位為度。(8)tripleangle('rpy');General/Transformations%沿x軸平移0

4、.5,繞y軸旋轉(zhuǎn)pi/2,繞z軸旋轉(zhuǎn)-pi/2 (1)t = transl(0.5, 0.0, 0.0) * troty(pi/2) * trotz(-pi/2)%將齊次變換矩陣轉(zhuǎn)化為歐拉角(2)tr2eul(t)%將齊次變換矩陣轉(zhuǎn)化為roll、pitch、yaw角(3) tr2rpy(t)General/Trajectoryclear;clc;p0 = -1;% 定義初始點(diǎn)及終點(diǎn)位置p1 = 2;p = tpoly(p0, p1, 50);% 取步長(zhǎng)為50figure(1);plot(p);%繪圖,可以看到在初始點(diǎn)及終點(diǎn)的一、二階導(dǎo)均為零p,pd,pdd = tpoly(p0, p

5、1, 50);%得到位置、速度、加速度%p為五階多項(xiàng)式,速度、加速度均在一定范圍內(nèi)figure(2);subplot(3,1,1); plot(p); xlabel('Time'); ylabel('p');subplot(3,1,2); plot(pd); xlabel('Time'); ylabel('pd');subplot(3,1,3); plot(pdd); xlabel('Time'); ylabel('pdd');%另外一種方法:p,pd,pdd = lspb(p0, p1, 50);

6、figure(3);subplot(3,1,1); plot(p); xlabel('Time'); ylabel('p');subplot(3,1,2); plot(pd); xlabel('Time'); ylabel('pd');% 可以看到速度是呈梯形subplot(3,1,3); plot(pdd); xlabel('Time'); ylabel('pdd');%三維的情況:p = mtraj(tpoly, 0 1 2, 2 1 0, 50);figure(4);plot(p)%對(duì)于齊次變

7、換矩陣的情況T0 = transl(0.4, 0.2, 0) * trotx(pi);% 定義初始點(diǎn)和目標(biāo)點(diǎn)的位姿T1 = transl(-0.4, -0.2, 0.3) * troty(pi/2) * trotz(-pi/2);T = ctraj(T0, T1, 50);first=T(:,:,1);%初始位姿矩陣tenth=T(:,:,10);%第十個(gè)位姿矩陣figure(5);tranimate(T);%動(dòng)畫演示坐標(biāo)系自初始點(diǎn)運(yùn)動(dòng)到目標(biāo)點(diǎn)的過程Matlab Robotic Toolbox工具箱學(xué)習(xí)筆記(二)Arm/Robots機(jī)器人是由多個(gè)連桿連接而成的,機(jī)器人關(guān)節(jié)分為旋轉(zhuǎn)關(guān)節(jié)和移動(dòng)關(guān)節(jié)

8、。創(chuàng)建機(jī)器人的兩個(gè)最重要的函數(shù)是:Link和SerialLink。1、Link類一個(gè)Link包含了機(jī)器人的運(yùn)動(dòng)學(xué)參數(shù)、動(dòng)力學(xué)參數(shù)、剛體慣性矩參數(shù)、電機(jī)和傳動(dòng)參數(shù)。操作函數(shù):%A               連桿變換矩陣%  RP            關(guān)節(jié)類型: 'R' 或 '

9、;P'%  friction      摩擦力%  nofriction    摩擦力忽略%  dyn           顯示動(dòng)力學(xué)參數(shù)%  islimit       測(cè)試關(guān)節(jié)是否超出軟限制%  isrevo

10、lute    測(cè)試是否為旋轉(zhuǎn)關(guān)節(jié)%  isprismatic   測(cè)試是否為移動(dòng)關(guān)節(jié)%  display       連桿參數(shù)以表格形式顯示%  char          轉(zhuǎn)為字符串運(yùn)動(dòng)學(xué)參數(shù):%  theta    關(guān)節(jié)角度%

11、0; d        連桿偏移量%  a        連桿長(zhǎng)度%  alpha    連桿扭角%  sigma    旋轉(zhuǎn)關(guān)節(jié)為0,移動(dòng)關(guān)節(jié)為1%  mdh      標(biāo)準(zhǔn)的D&H為0,否則為1%&

12、#160; offset   關(guān)節(jié)變量偏移量%  qlim     關(guān)節(jié)變量范圍min max動(dòng)力學(xué)參數(shù):%  m        連桿質(zhì)量%  r        連桿相對(duì)于坐標(biāo)系的質(zhì)心位置3x1%  I     

13、0;  連桿的慣性矩陣(關(guān)于連桿重心)3x3%  B        粘性摩擦力(對(duì)于電機(jī))1x1或2x1%  Tc       庫(kù)侖摩擦力1x1或2x1電機(jī)和傳動(dòng)參數(shù):%  G        齒輪傳動(dòng)比%  Jm     

14、;  電機(jī)慣性矩(對(duì)于電機(jī))2、SerialLink類操作函數(shù):%  plot          以圖形形式顯示機(jī)器人%  teach         驅(qū)動(dòng)機(jī)器人%  isspherical   測(cè)試機(jī)器人是否有球腕關(guān)節(jié)%  islimit   &#

15、160;   測(cè)試機(jī)器人是否抵達(dá)關(guān)節(jié)極限%  fkine         前向運(yùn)動(dòng)學(xué)求解%  ikine6s       6旋轉(zhuǎn)軸球腕關(guān)節(jié)機(jī)器人的逆向運(yùn)動(dòng)學(xué)求解%  ikine3        3旋轉(zhuǎn)軸機(jī)器人的逆向運(yùn)動(dòng)學(xué)求解%  ikine 

16、;        采用迭代方法的逆向運(yùn)動(dòng)學(xué)求解%  jacob0        在世界坐標(biāo)系描述的雅克比矩陣%  jacobn        在工具坐標(biāo)系描述的雅克比矩陣%  maniplty      可操縱性度%  

17、jtraj         關(guān)節(jié)空間軌跡%  accel         關(guān)節(jié)加速度%  coriolis      關(guān)節(jié)柯氏力%  dyn           顯示連桿的動(dòng)力學(xué)屬性%

18、60; fdyn          關(guān)節(jié)運(yùn)動(dòng)%  friction      摩擦力%  gravload      關(guān)節(jié)重力%  inertia       關(guān)節(jié)慣性矩陣%  nofriction  

19、;  設(shè)置摩擦力為0%  rne           關(guān)節(jié)的力/力矩%  payload       在末端坐標(biāo)系增加負(fù)載%  perturb       隨機(jī)擾動(dòng)連桿的動(dòng)力學(xué)參數(shù)屬性:%  links    

20、  連桿向量(1xN)%  gravity    重力的方向gx gy gz%  base       機(jī)器人基座的位姿(4x4)%  tool       機(jī)器人的工具變換矩陣 T6 to tool tip (4x4)%  qlim       關(guān)

21、節(jié)范圍qmin qmax (Nx2)%  offset     偏置(Nx1)%  name       機(jī)器人名字(在圖形中顯示)%  manuf      注釋, 制造商名%  comment    注釋, 總評(píng)%  plotopt   

22、0;options for plot() method (cell array)%  n           關(guān)節(jié)數(shù)%  config      機(jī)器人結(jié)構(gòu)字符串, 例如 'RRRRRR'%  mdh         運(yùn)動(dòng)學(xué)中約定的布爾數(shù) (0=DH,

23、1=MDH)怎樣創(chuàng)建一個(gè)機(jī)器人?  %Link調(diào)用格式: %             (1) L = Link() 創(chuàng)建一個(gè)帶默認(rèn)參數(shù)的連桿             (2)L = Link(L1)復(fù)制連桿L1        

24、60;    (3)L = Link(OPTIONS) 創(chuàng)建一個(gè)指定運(yùn)動(dòng)學(xué)、動(dòng)力學(xué)參數(shù)的連桿            OPTIONS可以是:            % 'theta',TH   joint angle, if not specified joint is re

25、volute            % 'd',D        joint extension, if not specified joint is prismatic            % 'a',A   &#

26、160;    joint offset (default 0)            % 'alpha',A    joint twist (default 0)            % 'standard'   

27、defined using standard D&H parameters (default).            % 'modified'   defined using modified D&H parameters.            % 'offset',O

28、0;  joint variable offset (default 0)            % 'qlim',L     joint limit (default )            % 'I',I    

29、    link inertia matrix (3x1, 6x1 or 3x3)            % 'r',R        link centre of gravity (3x1)            % &#

30、39;m',M        link mass (1x1)            % 'G',G        motor gear ratio (default 0)          

31、60; % 'B',B        joint friction, motor referenced (default 0)            % 'Jm',J       motor inertia, motor referenced (default 0)  

32、;          % 'Tc',T       Coulomb friction, motor referenced (1x1 or 2x1), (default 0 0)            % 'revolute'   for a rev

33、olute joint (default)            % 'prismatic'  for a prismatic joint 'p'            % 'standard'   for standard D&H parameters

34、 (default).            % 'modified'   for modified D&H parameters.            % 'sym'        consider all

35、 parameter values as symbolic not numeric            注:不能同時(shí)指定“theta”和“d”               連桿的慣性矩陣(3x3)是對(duì)稱矩陣,可以寫成3x3矩陣,也可以是Ixx Iyy Izz Ixy Iyz Ixz    

36、;           所有摩擦均針對(duì)電機(jī)而不是負(fù)載               齒輪傳動(dòng)比只用于傳遞電機(jī)的摩擦力和慣性矩給連桿坐標(biāo)系。 %SerialLink調(diào)用格式: %            &

37、#160;(1)R = SerialLink(LINKS, OPTIONS),OPTIONS可以是:'name'、'comment'、'manufacturer'         'base'、'tool'、'gravity'、'plotopt'        (2)R = SerialLink(DH, OPTION

38、S),矩陣DH的構(gòu)成:每個(gè)關(guān)節(jié)一行,每一行為theta d a alpha         (默認(rèn)為旋轉(zhuǎn)關(guān)節(jié)),第五列(sigma)為可選列,sigma=0(默認(rèn))為旋轉(zhuǎn)關(guān)節(jié),sigma=1為移動(dòng)關(guān)節(jié)               (3) R = SerialLink(OPTIONS) 沒有連桿的機(jī)器人     

39、;          (4)R = SerialLink(R1 R2 ., OPTIONS) 機(jī)器人連接, 將R2的基座連接到R1的末端.               (5)R = SerialLink(R1, options) 復(fù)制機(jī)器人R1% L1 = Link('d', 0, 'a', 1, '

40、;alpha', pi/2);%定義連桿1,沒有寫theta說明theta為關(guān)節(jié)變量 L1.a;%查看a的值 L1.d;%查看d的值%還可以L1.RP,L1.display,L1.mdh,L1.isprismatic,L1.isrevolute等等,這樣就可以查看一些默認(rèn)值 L2 = Link('d', 0, 'a', 1, 'alpha', 0); bot = SerialLink(L1 L2, 'name', 'my robot'); bot.n;%查看

41、連桿數(shù)目 bot.fkine(0.1 0.2);%前向運(yùn)動(dòng)學(xué) bot.plot(0.1 0.2);%繪制機(jī)器人定義完連桿和機(jī)器人便可以求機(jī)器人前和逆向運(yùn)動(dòng)學(xué)、動(dòng)力學(xué)等等。L1.參數(shù)或?qū)傩?):查看連桿的參數(shù)或?qū)傩訪1.操作函數(shù)(參數(shù)):操作連桿參數(shù)bot.屬性():查看機(jī)器人的屬性bot.操作函數(shù)(參數(shù)):操作機(jī)器人,可以進(jìn)行前向、逆向運(yùn)動(dòng)學(xué)求解等實(shí)例:Stanford ManipulatorD-H參數(shù)表:clear;clc; L1 = Link('d', 0, 'a', 0, 'alpha', -pi/2);%定義

42、連桿 L2 = Link('d', 1, 'a', 0, 'alpha', pi/2); L3 = Link('theta', 0, 'a', 0, 'alpha', 0); L4 = Link('d', 0, 'a', 0, 'alpha', -pi/2); L5 = Link('d', 0, 'a', 0, 'alpha', pi/2); L6 = L

43、ink('d', 1, 'a', 0, 'alpha', 0); bot = SerialLink(L1 L2 L3 L4 L5 L6);%連接連桿 bot.display();%顯示D-H參數(shù)表 forward_kinematics=bot.fkine(-0.2 0.1 10 0.1 1 2)%前向運(yùn)動(dòng)學(xué)求出末端的齊次變換矩陣:clear;clc; L1 = Link('d', 0, 'a', 0, 'alpha', -pi/2,'sym')

44、;%定義連桿 L2 = Link('d', 'd2', 'a', 0, 'alpha', pi/2,'sym'); L3 = Link('theta', 0, 'a', 0, 'alpha', 0,'sym'); L4 = Link('d', 0, 'a', 0, 'alpha', -pi/2,'sym'); L5 = Link('d'

45、;, 0, 'a', 0, 'alpha', pi/2,'sym'); L6 = Link('d', 'd6', 'a', 0, 'alpha', 0,'sym'); bot = SerialLink(L1 L2 L3 L4 L5 L6);%連接連桿 syms theta1 theta2 d3 theta4 theta5 theta6; forward_kinematics=bot.fkine(theta1 theta2 d3

46、theta4 theta5 theta6)%前向運(yùn)動(dòng)學(xué) Stanford arm的運(yùn)動(dòng)學(xué)逆解:clear;clc;clear L%             th    d       a    alphaL(1) = Link( 0     0 &#

47、160;     0   -pi/2     0);%定義連桿L(2) = Link( 0     1       0    pi/2     0);L(3) = Link( 0     0 

48、0;     0    0        1);L(4) = Link( 0     0       0   -pi/2     0);L(5) = Link( 0     0&#

49、160;      0    pi/2     0);L(6) = Link( 0     1       0    0        0);bot = SerialLink(L, 'name'

50、, 'Stanford arm');%連接連桿T=transl(1,2,3)*trotz(60,'deg')*troty(30,'deg')*trotz(90,'deg')inverse_kinematics=bot.ikine(T,'pinv');%逆向運(yùn)動(dòng)學(xué)theta1=inverse_kinematics(1);theta2=inverse_kinematics(2);d3=inverse_kinematics(3);theta4=inverse_kinematics(4);theta5=inverse_ki

51、nematics(5);theta6=inverse_kinematics(6);forward_kinematics=bot.fkine(theta1 theta2 d3 theta4 theta5 theta6)%前向運(yùn)動(dòng)學(xué),驗(yàn)證結(jié)果的準(zhǔn)確性.%求解結(jié)果為T與forward_kinematics一致。正確。求解Stanford arm在世界坐標(biāo)系描述的雅克比矩陣clear;clc;clear L%             th   

52、 d       a    alphaL(1) = Link( 0     0       0   -pi/2     0);%定義連桿L(2) = Link( 0     1    

53、60;  0    pi/2     0);L(3) = Link( 0     0       0    0        1);L(4) = Link( 0     0  &#

54、160;    0   -pi/2     0);L(5) = Link( 0     0       0    pi/2     0);L(6) = Link( 0     1   

55、60;   0    0        0);bot = SerialLink(L, 'name', 'Stanford arm');%連接連桿syms theta1 theta2 d3 theta4 theta5 theta6;J0=vpa(bot.jacob0(theta1 theta2 d3 theta4 theta5 theta6),4)求平面二自由度機(jī)器人在世界坐標(biāo)系描述的雅克比矩陣D-H參數(shù)表:clear;clc;clear LL(1) = Link('d',0,'a','a1','alpha',0,'sym');%定義連桿L(2) = Link('d',0,'a','a2','alpha',0,'sym');bot = SerialLink(L, 'name', 'Planar 2-dof

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論