0HWRG\VNHOHWiOQtDQLPDFH
/DGLVODY.DYDQ
0RGHOKXPDQRLGD Vt"WURM~KHOQtN$WH[WXUD NRVWUDVWURPKUDQ\RGSRYtGDMtNRVWHPYUFKRO\ NORXE$P YD]EDYUFKRO$WURM~KHOQtN$QDNRVWLNDåGêYUFKRO VYi]iQVSUiY MHGQRXNRVWt YNDåGpPNORXEXWUDQVIRUPDþQtPDWLFHW\SLFN\ MHQRWRþHQtDSRVXQXWt 9\NUHVORYiQt=HW ]tPWUDQVIRUPDFHYHYãHFKNORXEHFKQD FHVW DYêVOHGHNDSOLNXMLQDGDQêYUFKRO
3RþHWVWXS$ YROQRVWL'2) MH GLPHQ]HVWDYRYpKR YHNWRUXNRVWU\ .ORXEMHW\SLFN\ URWDþQtV'2)
$QLPDFHSRK\EXNOtþRYiQt .OtþRYpVQtPN\XGiYDMtORNiOQtWUDQVIRUPDFHNORXE$ SHQHVXNORXENRVW]Q MY\FKi]HMtFtDQDYi]DQp YUFKRO\ GRSRþiWNX DSOLNXMLWUDQVIRUPDFL]tVNDQRXLQWHUSRODFtPH]L NOtþRYêPLVQtPN\ SLGiPWUDQVIRUPDFLURGLþRYVNRXNRVWt YêVOHGHNWUDQVIRUPXMLPDWLFtRWFHVSRþtWDQRXVWHMQêP SRVWXSHP .URNO]HSHGSRþtWDW]iOHåtMHQQDPRGHOX DSURYiGtPSL Y\NUHVORYiQt .GHY]tWNOtþRYpVQtPN\"
9êSRþHWNOtþRYêFKVQtPN$ UXþQtODG QtSRPRFt GRSHGQpNLQHPDWLN\ KHUHFNêYêNRQ0RWLRQ &DSWXUH LQYHU]QtNLQHPDWLND YêSRþHWRWRþHQtDSRVXQXWt NORXE$]H]DGDQpKRFtOH G\QDPLND
ÒORKDGRSHGQpNLQHPDWLN\ %Ò12P$åHPHSHGSRNOiGDWåHNDåGêNORXEURWXMHNROHP MHGQpRV\StSDGQ SRVXQXWt R (Θ i ) Pi , M i je matice transform ace v i - tém kloubu, tj. M i = 1 0 kde R (Θ i ) je rotace kolem osy u i o úhel Θ i a Pi je vektor posunutí. Je - li i - tý kloub pevn zakotvený a j - tým se pohybuje (koncový efektor), pak výsledná transformace M i j = M j Λ M i (dále jen f ). Úloha FK : x = f ( q ), kde x je pozice koncového efektoru a q je stav kostry.
=S WQiNLQHPDWLND Úloha IK : q = f
−1
( x). Typy koncového efektoru x :
SRX]HSR]LFH'2)
SRX]HRULHQWDFHMHGQRWNRYpNROPpYHNWRU\ SR]LFHDMHGQRWNRYêYHNWRURULHQWDFH SR]LFHDRULHQWDFH'2)
3UREOpP\ IQHOLQHiUQtVLQDFRV]URWDFt QHPXVtH[LVWRYDWåiGQpHãHQt P$åHH[LVWRYDWQHNRQHþQ PQRKRHãHQt
$QDO\WLFNpHãHQt,. ]QiPRMHQSURNRVWU\VPDOêPSRþWHPVWXS$ YROQRVWL YêKRGDMHGLQiPHWRGDFRGiYiYãHFKQDHãHQt SURURWDþQtFK'2)H[LVWXMHQHMYêãHHãHQt O]HSRXåtWYHVSHFLiOQtFKStSDGHFK+$/ HW ]FHURERWLND
3HYRG,.QDQHOLQHiUQtSURJUDPRYiQt 3UREOpP,.O]HHNYLYDOHQWQ IRUPXORYDWWDNWR minimalizovat E (q ) = ( x − f (q )) 2 za podmínek l i ≤ qi ≤ u i
YêKRG\VQDGQp]DEXGRYiQtUR]VDKXNORXE$DGDOãtFK SRGPtQHN REHFQ MãtFtOHURYLQDSRORSURVWRU NRPELQDFH QHYêKRG\P$åHPHVNRQþLWYORNiOQtPPLQLPX SRPDOpSURUHDOWLPHDSOLNDFL
1XPHULFNiHãHQt,. ∂f Idea : f lokáln aproximujeme lineární funkcí - Jakobián J = ∂q (matice typu MxN ). Lokáln pak platí : ∆x = J (q)∆q. ∂Px ∂Py ∂Pz ∂O x ∂O y ∂O z J = [J 1 , Λ , J n ], J i = , , , , , ∂ ∂ ∂ ∂ ∂ ∂ q q q q q q i i i i i i
[
Pro posunutí : J i = ω i ,0,0,0
]
T
Pro rotaci : J i = [(ω i × ri ), (ω i × v)] , kde T
ω i je osa rotace (posunu) i - tého kloubu ri je vektor od kloubu ke koncovému efektoru v je vektor orientace koncového efektoru
T
1XPHULFNiHãHQt,.SRNUDþRYiQt Iteruj : 1) z cílové a aktuální polohy koncového efektoru zjisti ∆x 2) ∆q = J −1 (q)∆x 3) uprav stav kostry o ∆q tf
Vlastn jde o HãHQt q(t f ) = q0 + ∫ ∆q(t )dt. 0
3UR'2)NRVWUXPiPHþWYHUFRYRXPDWLFL- $OHFRNG\åPiNRVWUDYtFH'2)"
0RRUH3HQURVHRYDSVHXGRLQYHU]H Tvrzení 1 : Pro ka•doumatici A typu MxN existuje práv jedna matice A + typu NxM , • e platí : AA + A = A, A + AA + = A + , ( AA + ) T = AA + , ( A + A) T = A + A. Tvrzení 2 : Má - li soustava Ax = b více HãHQt pak x + = A + b je HãHQt s nejmenší Euklidovskou normou. Tvrzení 3 : Nemá - li soustava Ax = b •ádnéHãHQt pak x + = A + b je HãHQt ve smyslu nejmenších þWYHUF$
YSUD[LWR]QDPHQiPLQLPiOQt]P Q\QDWRþHQtNORXE$ SUREOpP\VHVLQJXOiUQtPDWLFt
9\XåLWtNLQHPDWLFNpUHGXQGDQFH .RVWUDPiW\SLFN\PQRKRVWXS$YROQRVWLSLGiPH GDOãtNULWpULXP +
+
∆q = J ∆x + ( I − J J ) ∆z , kde J + je pseudoinve rze Jakobiánu ( I − J + J ) je projekce na Ker ( J ) - nepohne s konc. efektorem ∆z popisuje druhotné kriterium : SLUR]HQpSRKRGOQp QDWRþHQtNORXE$ Y\KêEiQtVHSHNiåNiP
0HWRGDWUDQVSR]LFH-DNRELiQX ,GHDQDNRQFRYêHIHNWRUS$VREtVtOD)YHVP UXSRK\EX 3ULQFLSYLUWXiOQtSUiFH práce = síla ⋅ vzdálenost, ale taky práce = moment ⋅ úhel F T ∆x = τ T ∆q ∆x = J∆q ... aproximace Jakobiánem F T J∆q = τ T ∆q ...dosazení FT J =τ T
τ = J T F ... transponování
0HWRGDWUDQVSR]LFH-DNRELiQXSRNUDþ 7RþLYpPRPHQW\YNORXEHFKY\SRþWHPHWDNWR
τ =J F T
Iteruj : 1) z cílové a aktuální polohy koncového efektoru zjisti F 2) ∆q = J T F (zjednodušení dynamiky na F = mv) 3) uprav stav kostry o ∆q QHSHVQpDOHU\FKOpDLQWXLWLYQt SRNXG)OHåtYQHGRMGHNSRK\EX Ker( J T )
0HWRGD&&'F\FOLFFRRUGLQDWHGHVFHQW ,GHD3URFKi]HWNORXE\YPDQLSXOiWRUXDNDåGêQDWRþLW WDNDE\VHPLQLPDOL]RYDODFK\EDNRQFRYpKRHIHNWRUX E ( q ) = Pd − Pc
2
3
+ ∑ ((u jd ⋅ u jc ) − 1) 2 , kde j =1
Pd je cílová poloha koncového efektoru, Pc je aktuální poloha koncového efektoru (EE),
(u1d , u 2 d , u 3d ) je ortonormální matice cílové orientace EE, (u1c , u 2c , u 3c ) je ortonormální matice aktuální orientace EE. 3RþtWiPHYåG\MHQMHGQXVORåNXYHNWRUXTO]HDQDO\WLFN\
0HWRGD&&'SRNUDþRYiQt Chceme najít úhel rotace q i pro i - tý kloub, který rotuje kolem osy u i . Pic′ (Θ) je vektor Pic rotovaný kolem u i o úhel Θ. Optimalizace pozice : maximalizace funkce g1 (Θ) = Pid ⋅ Pic′ (Θ). 3
Optimalizace orientace : maximalizace fce g 2 (Θ) = ∑ u jd ⋅ u ′jc (Θ). j =1
Kombinace obou : g (Θ) = w1 g1 (Θ) + w2 g 2 (Θ), to lze upravit na g (Θ) = k1 (1 − cos(Θ)) + k 2 cos(Θ) + k 3 sin(Θ), kde k i jsou konstanty.
HãHQt
Θ = arctan(
k3 ) k 2 − k1
6URYQiQtQXPHULFNêFKPHWRG
&&'L-7MVRXKHXULVWLFNpDHIHNWLYQt &&'YSUD[LNRQYHUJXMHU\FKOHMLQHå-7 -7UR]SURVWtUiSRK\EURYQRP UQ GRYãHFKNORXE$ &&'QHPiSUREOpP\VHVLQJXODULWDPL YKRGQ VHGRSOXMtNRPELQDFH&&'V-7 NURNSVHXGRLQYHU]HQiURþQêDOHNRQYHUJXMH U\FKOHMLQHå&&' SVHXGRLQYHU]HQHMOpSHWHRUHWLFN\SRGORåHQi
/LWHUDWXUD
&K:HOPDQ,QYHUVH.LQHPDWLFVDQG*HRPHWULF&RQVWUDLQWVIRU$UWLFXODWHG )LJXUH0DQLSXODWLRQ'LSORPND -=KDR1,%DGOHU,QYHUVH.LQHPDWLFV3RVLWLRQLQJ8VLQJ1RQOLQHDU 3URJUDPPLQJIRU+LJKO\$UWLFXODWHG)LJXUHV$&07UDQVDFWLRQVRQ*UDSKLFV 2FWREHU '7RODQL$*RVZDPL1,%DGOHU5HDOWLPH,QYHUVH.LQHPDWLFV 7HFKQLTXHVIRU$QWKURSRPRUSKLF/LPEV"! -/DQGHU2K0\*RG,,QYHUWHG.LQH*DPH'HYHORSHU6HSWHPEHU -/DQGHU0DNLQJ.LQH0RUH)OH[LEOH*DPH'HYHORSHU1RYHPEHU 3%DHUORFKHU,QYHUVH.LQHPDWLFV7HFKQLTXHVIRU7KH,QWHUDFWLYH3RVWXUH &RQWURORI$UWLFXODWHG)LJXUHV'LVHUWDFH %%D[WHU)DVW1XPHULFDO0HWKRGVIRU,QYHUVH.LQHPDWLFV6ODMG\