




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
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;% 定義初始點及終點位置p1 = 2;p = tpoly(p0, p1, 50);% 取步長為50figure(1);plot(p);%繪圖,可以看到在初始點及終點的一、二階導(dǎo)均為零p,pd,pdd = tpoly(p0, p
5、1, 50);%得到位置、速度、加速度%p為五階多項式,速度、加速度均在一定范圍內(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)%對于齊次變
7、換矩陣的情況T0 = transl(0.4, 0.2, 0) * trotx(pi);% 定義初始點和目標(biāo)點的位姿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);%第十個位姿矩陣figure(5);tranimate(T);%動畫演示坐標(biāo)系自初始點運動到目標(biāo)點的過程Matlab Robotic Toolbox工具箱學(xué)習(xí)筆記(二)Arm/Robots機器人是由多個連桿連接而成的,機器人關(guān)節(jié)分為旋轉(zhuǎn)關(guān)節(jié)和移動關(guān)節(jié)
8、。創(chuàng)建機器人的兩個最重要的函數(shù)是:Link和SerialLink。1、Link類一個Link包含了機器人的運動學(xué)參數(shù)、動力學(xué)參數(shù)、剛體慣性矩參數(shù)、電機和傳動參數(shù)。操作函數(shù):%A 連桿變換矩陣% RP 關(guān)節(jié)類型: 'R' 或 '
9、;P'% friction 摩擦力% nofriction 摩擦力忽略% dyn 顯示動力學(xué)參數(shù)% islimit 測試關(guān)節(jié)是否超出軟限制% isrevo
10、lute 測試是否為旋轉(zhuǎn)關(guān)節(jié)% isprismatic 測試是否為移動關(guān)節(jié)% display 連桿參數(shù)以表格形式顯示% char 轉(zhuǎn)為字符串運動學(xué)參數(shù):% theta 關(guān)節(jié)角度%
11、0; d 連桿偏移量% a 連桿長度% alpha 連桿扭角% sigma 旋轉(zhuǎn)關(guān)節(jié)為0,移動關(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動力學(xué)參數(shù):% m 連桿質(zhì)量% r 連桿相對于坐標(biāo)系的質(zhì)心位置3x1% I
13、0; 連桿的慣性矩陣(關(guān)于連桿重心)3x3% B 粘性摩擦力(對于電機)1x1或2x1% Tc 庫侖摩擦力1x1或2x1電機和傳動參數(shù):% G 齒輪傳動比% Jm
14、; 電機慣性矩(對于電機)2、SerialLink類操作函數(shù):% plot 以圖形形式顯示機器人% teach 驅(qū)動機器人% isspherical 測試機器人是否有球腕關(guān)節(jié)% islimit
15、160; 測試機器人是否抵達(dá)關(guān)節(jié)極限% fkine 前向運動學(xué)求解% ikine6s 6旋轉(zhuǎn)軸球腕關(guān)節(jié)機器人的逆向運動學(xué)求解% ikine3 3旋轉(zhuǎn)軸機器人的逆向運動學(xué)求解% ikine
16、; 采用迭代方法的逆向運動學(xué)求解% jacob0 在世界坐標(biāo)系描述的雅克比矩陣% jacobn 在工具坐標(biāo)系描述的雅克比矩陣% maniplty 可操縱性度%
17、jtraj 關(guān)節(jié)空間軌跡% accel 關(guān)節(jié)加速度% coriolis 關(guān)節(jié)柯氏力% dyn 顯示連桿的動力學(xué)屬性%
18、60; fdyn 關(guān)節(jié)運動% friction 摩擦力% gravload 關(guān)節(jié)重力% inertia 關(guān)節(jié)慣性矩陣% nofriction
19、; 設(shè)置摩擦力為0% rne 關(guān)節(jié)的力/力矩% payload 在末端坐標(biāo)系增加負(fù)載% perturb 隨機擾動連桿的動力學(xué)參數(shù)屬性:% links
20、 連桿向量(1xN)% gravity 重力的方向gx gy gz% base 機器人基座的位姿(4x4)% tool 機器人的工具變換矩陣 T6 to tool tip (4x4)% qlim 關(guān)
21、節(jié)范圍qmin qmax (Nx2)% offset 偏置(Nx1)% name 機器人名字(在圖形中顯示)% manuf 注釋, 制造商名% comment 注釋, 總評% plotopt
22、0;options for plot() method (cell array)% n 關(guān)節(jié)數(shù)% config 機器人結(jié)構(gòu)字符串, 例如 'RRRRRR'% mdh 運動學(xué)中約定的布爾數(shù) (0=DH,
23、1=MDH)怎樣創(chuàng)建一個機器人? %Link調(diào)用格式: % (1) L = Link() 創(chuàng)建一個帶默認(rèn)參數(shù)的連桿 (2)L = Link(L1)復(fù)制連桿L1
24、60; (3)L = Link(OPTIONS) 創(chuàng)建一個指定運動學(xué)、動力學(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 注:不能同時指定“theta”和“d” 連桿的慣性矩陣(3x3)是對稱矩陣,可以寫成3x3矩陣,也可以是Ixx Iyy Izz Ixy Iyz Ixz
36、; 所有摩擦均針對電機而不是負(fù)載 齒輪傳動比只用于傳遞電機的摩擦力和慣性矩給連桿坐標(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)成:每個關(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為移動關(guān)節(jié) (3) R = SerialLink(OPTIONS) 沒有連桿的機器人
39、; (4)R = SerialLink(R1 R2 ., OPTIONS) 機器人連接, 將R2的基座連接到R1的末端. (5)R = SerialLink(R1, options) 復(fù)制機器人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);%前向運動學(xué) bot.plot(0.1 0.2);%繪制機器人定義完連桿和機器人便可以求機器人前和逆向運動學(xué)、動力學(xué)等等。L1.參數(shù)或?qū)傩?):查看連桿的參數(shù)或?qū)傩訪1.操作函數(shù)(參數(shù)):操作連桿參數(shù)bot.屬性():查看機器人的屬性bot.操作函數(shù)(參數(shù)):操作機器人,可以進(jìn)行前向、逆向運動學(xué)求解等實例: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)%前向運動學(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)%前向運動學(xué) Stanford arm的運動學(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');%逆向運動學(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)%前向運動學(xué),驗證結(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)求平面二自由度機器人在世界坐標(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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司組織滑雪策劃方案
- 2025年物流與供應(yīng)鏈管理考試卷及答案
- 2025年現(xiàn)代文學(xué)與書法藝術(shù)考試試題及答案
- 2025年企業(yè)文化與內(nèi)部管理的考核試卷及答案
- 2025年品牌傳播與市場聯(lián)系考核考試試卷及答案
- 2025年可持續(xù)發(fā)展與環(huán)境政策基礎(chǔ)知識考試卷及答案
- 2025年媒體傳播與社會學(xué)習(xí)研究考試試卷及答案
- 2025年計算機網(wǎng)絡(luò)與信息安全課程考試題及答案
- 2025年材料科學(xué)與工程專業(yè)綜合能力測試卷及答案
- 2025年初中歷史學(xué)科教育考試試題及答案
- 工業(yè)管道工程工程量清單項目設(shè)置及計價
- 港口集團績效考核方案
- 基于MATLAB的控制系統(tǒng)仿真及應(yīng)用-第5章-基于MATLABSimulink的控制系統(tǒng)建模與仿真課件
- 一二次深度融合成套柱上斷路器匯報課件
- 解凍記錄表(標(biāo)準(zhǔn)模版)
- 初中數(shù)學(xué)北師大八年級下冊(2023年修訂) 因式分解岷陽王冬雪提公因式法教學(xué)設(shè)計
- 金屬非金屬礦山安全規(guī)程
- 生活飲用水游離余氯方法驗證報告
- DB32∕T 186-2015 建筑消防設(shè)施檢測技術(shù)規(guī)程
- C-TPAT反恐知識培訓(xùn)ppt課件
- 巡檢培訓(xùn)課件.ppt
評論
0/150
提交評論