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

下載本文檔

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

文檔簡介

1、MatlabRoboticToolbox工具箱學(xué)習(xí)筆t己(一)軟件:matlab2013a工具箱:MatlabRoboticToolboxv9.8MatlabRoboticToolbox工具箱學(xué)習(xí)筆記根據(jù)RobotToolboxdemonstrations目錄,將分三大部分闡述:1、General(Rotations,Transformations,Trajectory)2、Arm(Robot,Animation,Forwarwkinematics,Inversekinematics,Jacobians,Inversedynamics,Forwarddynamics,Symbolic,Code

2、generation)3、Mobile(Drivingtoapose,Quadrotor,Braitenberg,Bug,D*,PRM,SLAM,Particlefilter)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)theta,vec=tr2angvec(R);%旋轉(zhuǎn)

3、矩陣用歐拉角表示,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ù)表示一個(gè)有固定點(diǎn)的剛體通過繞該點(diǎn)的某個(gè)軸轉(zhuǎn)過特定角度可達(dá)到任何姿態(tài)轉(zhuǎn)軸的方向可以表示成一個(gè)單位矢量:*1n=cos«-i+cos'、j+cosy*k則描述該轉(zhuǎn)動(dòng)的四元數(shù)可以表示成:0.e.q=cos-Fsin一n220000=coxI-sincosa-i+sin-cos/?/+sin-cosyk2222,0sincomy2四元數(shù)

4、既反映了轉(zhuǎn)動(dòng)的方向又反映了轉(zhuǎn)動(dòng)的幅值.4=4+隼+2/+Pk1I£43I一一標(biāo)量部分尸J+片j+p*k-矢量部分包括一個(gè)實(shí)數(shù)單位I和三個(gè)虛數(shù)單位i,j,k另一種表示法:4=("?),P代表矢量部分%將四元數(shù)轉(zhuǎn)化為旋轉(zhuǎn)矩陣q.R;%界面,可以是“rpy,”“elue角度單位為度。(8)tripleangle('rpy');UGeneral/Transformations%沿x軸平移0.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)

5、 tr2eul(t)%將齊次變換矩陣轉(zhuǎn)化為roll、pitch、yaw角General/Trajectoryclear;clc;p0=-1;%定義初始點(diǎn)及終點(diǎn)位置pl=2;p=tpoly(p0,p1,50);%取步長為50figure(1);plot(p);%繪圖,可以看到在初始點(diǎn)及終點(diǎn)的一、二階導(dǎo)均為零p,pd,pdd=tpoly(p0,p1,50);%得到位置、速度、加速度%p為五階多項(xiàng)式,速度、加速度均在一定范圍內(nèi)figure(2);subplot(3,1,1);plot(p);xlabel('Time');ylabel('p');subplot(3,1,

6、2);plot(pd);xlabel('Time');ylabel('pd');subplot(3,1,3);plot(pdd);xlabel('Time');ylabel('pdd');aT/-Uftk一一-*'F-"°.6LLL,'I工J"工0%1011a30»IMBO%另外一種方法:p,pd,pdd=lspb(p0,p1,50);figure(3);subplot(3,1,1);plot(p);xlabel('Time');ylabel('p&#

7、39;);subplot(3,1,2);plot(pd);xlabel('Time');ylabel('pd');%可以看到速度是呈梯形subplot(3,1,3);plot(pdd);xlabel('Time');ylabel('pdd');%三維的情況:p=mtraj(tpoly,012,210,50);figure(4);plot(p)01020304050%對(duì)于齊次變換矩陣的情況T0=transl(0.4,0,2,0)*trotx(pi);%定義初始點(diǎn)和目標(biāo)點(diǎn)的位姿T1=transl(-0.4,-0.2,0.3)*trot

8、y(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)的過程MatlabRoboticToolbox工具箱學(xué)習(xí)筆記(二)Arm/Robots機(jī)器人是由多個(gè)連桿連接而成的,機(jī)器人關(guān)節(jié)分為旋轉(zhuǎn)關(guān)節(jié)和移動(dòng)關(guān)節(jié)。創(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é)類

9、型:'R'或'P'%friction摩擦力%nofriction摩擦力忽略%dyn顯示動(dòng)力學(xué)參數(shù)%islimit測試關(guān)節(jié)是否超出軟限制%isrevolute測試是否為旋轉(zhuǎn)關(guān)節(jié)%isprismatic測試是否為移動(dòng)關(guān)節(jié)%display連桿參數(shù)以表格形式顯示%char轉(zhuǎn)為字符串運(yùn)動(dòng)學(xué)參數(shù):%theta關(guān)節(jié)角度%d連桿偏移量%a連桿長度%alpha連桿扭角%sigma旋轉(zhuǎn)關(guān)節(jié)為0,移動(dòng)關(guān)節(jié)為1%mdh標(biāo)準(zhǔn)的D&H為0,否則為1%offset關(guān)節(jié)變量偏移量%qlim關(guān)節(jié)變量范圍minmax動(dòng)力學(xué)參數(shù):%m連桿質(zhì)量%r連桿相對(duì)于坐標(biāo)系的質(zhì)心位置3x1%I連桿的慣性

10、矩陣(關(guān)于連桿重心)3x3%B粘性摩擦力(對(duì)于電機(jī))1x1或2x1%Tc庫侖摩擦力1x1或2x1電機(jī)和傳動(dòng)參數(shù):%G齒輪傳動(dòng)比%Jm電機(jī)慣性矩(對(duì)于電機(jī))2、SerialLink類操作函數(shù):%plot以圖形形式顯示機(jī)器人%teach驅(qū)動(dòng)機(jī)器人%isspherical測試機(jī)器人是否有球腕關(guān)節(jié)%islimit測試機(jī)器人是否抵達(dá)關(guān)節(jié)極限%fkine前向運(yùn)動(dòng)學(xué)求解%ikine6s6旋轉(zhuǎn)軸球腕關(guān)節(jié)機(jī)器人的逆向運(yùn)動(dòng)學(xué)求解%ikine33旋轉(zhuǎn)軸機(jī)器人的逆向運(yùn)動(dòng)學(xué)求解%ikine采用迭代方法的逆向運(yùn)動(dòng)學(xué)求解%jacob0在世界坐標(biāo)系描述的雅克比矩陣%jacobn在工具坐標(biāo)系描述的雅克比矩陣%maniplty可

11、操縱性度%jtraj關(guān)節(jié)空間軌跡%accel關(guān)節(jié)加速度%coriolis關(guān)節(jié)柯氏力%dyn顯示連桿的動(dòng)力學(xué)屬性%fdyn關(guān)節(jié)運(yùn)動(dòng)%friction摩擦力%gravload美節(jié)重力%inertia關(guān)節(jié)慣性矩陣%nofriction設(shè)置摩擦力為0%rne關(guān)節(jié)的力/力矩%payload在末端坐標(biāo)系增加負(fù)載%perturb隨機(jī)擾動(dòng)連桿的動(dòng)力學(xué)參數(shù)屬性:%links連桿向量(1xN)%gravity重力的方向gxgygz%base機(jī)器人基座的位姿(4x4)%tool機(jī)器人的工具變換矩陣T6totooltip(4x4)%qlim關(guān)節(jié)范圍qminqmax(Nx2)%offset偏置(Nx1)%name機(jī)器人

12、名字(在圖形中顯示)%manuf注釋,制造商名%comment注釋,總評(píng)%plotoptoptionsforplot()method(cellarray)%n關(guān)節(jié)數(shù)%config機(jī)器人結(jié)構(gòu)字符串,例如RRRRRR'%mdh運(yùn)動(dòng)學(xué)中約定的布爾數(shù)(0=DH,1=MDH)怎樣創(chuàng)建一個(gè)機(jī)器人?%Link調(diào)用格式:%(1) L=Link()創(chuàng)建一個(gè)帶默認(rèn)參數(shù)的連桿(2) L=Link(L1)復(fù)制連桿L1(3) L=Link(OPTIONS)創(chuàng)建一個(gè)指定運(yùn)動(dòng)學(xué)、動(dòng)力學(xué)參數(shù)的連桿OPTIONS可以是:%'theta',THjointangle,ifnotspecifiedjointi

13、srevolute%'d',Djointextension,ifnotspecifiedjointisprismatic%'a',Ajointoffset(default0)%'alpha',Ajointtwist(default0)%'standard'definedusingstandardD&Hparameters(default).%'modified'definedusingmodifiedD&Hparameters.%'offset',Ojointvariableoffs

14、et(default0)%'qlim',Ljointlimit(default)%'I',Ilinkinertiamatrix(3x1,6x1or3x3)%'r',Rlinkcentreofgravity(3x1)%'m',Mlinkmass(1x1)%'G',Gmotorgearratio(default0)%'B',Bjointfriction,motorreferenced(default0)%'Jm',Jmotorinertia,motorreferenced(default

15、0)%'Tc',TCoulombfriction,motorreferenced(1x1or2x1),(default00)%'revolute'forarevolutejoint(default)%'prismatic'foraprismaticjoint'p'%'standard'forstandardD&Hparameters(default).%'modified'formodifiedD&Hparameters.%'sym'considerallparame

16、tervaluesassymbolicnotnumeric注:不能同時(shí)指定“thetair"d”連桿的慣性矩陣(3x3)是對(duì)稱矩陣,可以寫成3x3矩陣,也可以是IxxIyyIzzIxyIyzIxz所有摩擦均針對(duì)電機(jī)而不是負(fù)載齒輪傳動(dòng)比只用于傳遞電機(jī)的摩擦力和慣性矩給連桿坐標(biāo)系。%)%SerialLink調(diào)用格式:%(1)R=SerialLink(LINKS,OPTIONS),OPTIONS可以是:'name'、'comment','manufacturer''base'、'tool'、'gravi

17、ty'>'plotopt'(2) R=SerialLink(DH,OPTIONS),矩陣DH的構(gòu)成:每個(gè)關(guān)節(jié)一行,每一行為thetadaalpha(默認(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ī)器人(4) R=SerialLink(R1R2.,OPTIONS)機(jī)器人連接,將R2的基座連接到R1的末端.(5) R=SerialLink(R1,options)復(fù)制機(jī)器人R1%L1=Link('d',0,'a',1,&

18、#39;alpha',pi/2);%定義連桿1,沒有寫theta說明theta為關(guān)節(jié)變獸里L(fēng)1.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(L1L2,'name','myrobot');bot.n;%查看連桿數(shù)目bot.fkine(0.10.2);%前向運(yùn)動(dòng)學(xué)bot.plot(0.1

19、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í)例:StanfordManipulatorLinkdi心仇100-90伊2去i0+90/3凝000400-90500+90尹6遢00小clear;clc;L1=Link('d',0,'a',0,'alpha',-pi/2);%定義連桿L2=Link('d',1,'

20、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=Link('d',1,'a',0,'alpha',0);bot=SerialLink(L1L2L3L4L5L6);%連接連桿bot.

21、display();%顯示D-H參數(shù)表forward_kinematics=bot.fkine(-0.20.1100.112)%前向運(yùn)動(dòng)學(xué)bot=robot(6axis,RRPRRR,stdDH)+|j|theta|d|a|alpha+-11|qi|0-1,57112)q2|1)0;1.57113|0|q31Q014|q&iel0f1.57115q5|00)1.57116|q6|i|0|0一+一1+-grav-0base=1000001009.8100100001tool=1000010000109001forwardkinematics=-0.09710.91990.379800.4

22、533-0.38060.806000.8860-0.09390.454002.06310.687810.40411.0000求出末端的齊次變換矩陣:clear;clc;L1=Link('d',0,'a',0,'alpha',-pi/2,'sym');%定義連桿L2=Link('d','d2','a',0,'alpha',pi/2,'sym');L3=Link('theta',0,'a',0,'alpha'

23、,0,'sym');L4=Link('d',0,'a',0,'alpha',-pi/2,'sym');L5=Link('d',0,'a',0,'alpha',pi/2,'sym');L6=Link('d','d6','a',0,'alpha',0,'sym');bot=SerialLink(L1L2L3L4L5L6);%連接連桿symstheta1theta2d3theta

24、4theta5theta6;forward_kinematics=bot.fkine(theta1theta2d3theta4theta5theta6)%J向運(yùn)動(dòng)學(xué)Stanfordarm的運(yùn)動(dòng)學(xué)逆解:clear;clc;clearL%thdaalphaL(1)=Link(000-pi/20);%定義連桿L(2)=Link(010pi/20);L(3)=Link(00001);L(4)=Link(000-pi/20);L(5)=Link(000pi/20);L(6)=Link(01000);bot=SerialLink(L,'name','Stanfordarm'

25、);%連接連桿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_kinematics(5);theta6=inverse_kinematics(6);forward_kinematics=bot.fkine(theta1theta2d3theta4theta5theta6)%B向運(yùn)動(dòng)學(xué),驗(yàn)證結(jié)皮的準(zhǔn)確性.%求解結(jié)果為T

溫馨提示

  • 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. 人人文庫網(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)論