Számítógépes geometria (mester kurzus)
el®adásvázlat
2010 ®sz, Debreceni Egyetem
el®adásvázlat
Számítógépes geometria (mester kurzus)
Csuklós szerkezetek animációja
(Kép 1985-b®l: Tony de Peltrie)
el®adásvázlat
Számítógépes geometria (mester kurzus)
Csontváz-modellek
el®adásvázlat
Számítógépes geometria (mester kurzus)
Csuklós szerkezet (robotkar)
A robotkar részei: csuklók (joints) rotációs prizmatikus (transzlációs)
szegmensek (links) végberendezés (end eector)
végberendezés csukló
szegmens
robotkar rotációs csuklókkal
el®adásvázlat
Számítógépes geometria (mester kurzus)
A robotkar leírása
Állapotvektor Független paraméterek vektora, amely a csuklók és a végberendezés helyzetét egyértelm¶en megadja. Az állapotvektor komponenseinek száma a szabadsági fokok száma (DOF). Az összes lehetséges állapotvektor az állapotteret alkotja.
Kinematika vs. inverz kinematika direkt probléma (kinematika): az állapotvektorból határozzuk meg a végberendezés helyzetét: E
= f (Θ)
inverz probléma (inverz kinematika): a végberendezés helyzetéb®l következtetünk az állapotvektorra: E
el®adásvázlat
−→ Θ
Számítógépes geometria (mester kurzus)
2 szabadsági fokú 2D robotkar leírása az állapotvektorral
Prizmatikus csukló nélkül:
Θ = (θ1 , θ2 ) ∈ R2 . θ2 a2 a1 θ1
start
E
1. lépés
2. lépés
-
-
J1
= (0, 0)
J2
= (a1 , 0)
J2
← rotJ1 (θ1 )J2
E
= (a1 + a2 , 0)
E
← rotJ1 (θ1 )E
= (a2 cos (θ2 + θ1 ) + a1 cos θ1 , el®adásvázlat
-
E
a2 sin (θ2
← rotJ2 (θ2 )E + θ1 ) + a1 sin θ1 )
Számítógépes geometria (mester kurzus)
3D robotkar leírása: DenavitHartenberg (DH) paraméterek
xi a (zi , zi +1 ) normáltranszverzálisa, a csukló a z tengely körül forog. ai
= d (zi , zi +1 )
αi = ^(zi , zi +1 ) di +1
= d (xi , xi +1 )
θi +1 = ^(xi , xi +1 ) zi+1 xi+1 linki di+1 xi
zi
ai
el®adásvázlat
Számítógépes geometria (mester kurzus)
3D robotkar megadása az állapotvektorral
start
1. lépés
n. lépés (n = 2, . . . N )
N +1
J0
J1 = J0
Jn = Jn−1 + an−1 e1
E = JN + aN e1
e3 = (0, 0, 1)
e3 ← rot(e1 , α0 )e3
e3 ← rot(e1 , αn−1 )e3
e1 = (1, 0, 0)
e1 ← rot(e3 , θ1 )e1
e1 ← rot(e3 , θn )e1 Jn ← Jn + dn e3
el®adásvázlat
Számítógépes geometria (mester kurzus)
Forgatás a térben
Origón áthaladó tengely körüli elforgatás A p pont elforgatása n irányvektorú (knk
R (p )
= 1)
tengely körül
θ
szöggel:
= cos(θ) · p + (1 − cos(θ)) · n · hn, p i + sin(θ) · n × p
Innitezimális elforgatás
R kifejezésében a szögfüggvényeket 0 körül Taylor sorba fejtjük és az els® Taylor polinomjukkal helyettesítjük: sin θ
Rinf. (p )
≈ θ,
cos θ
≈ 1:
=p+θ·n×p
el®adásvázlat
Számítógépes geometria (mester kurzus)
Csuklós szerkezet animációja
Csuklós szerkezet animációja a végberendezés meghatározása az állapotvektorból: E görbe az állapottérben: c : [a, b ] animáció: E
: [a , b ] →
Rn , E (t )
→ RN ,
c (t )
= f (Θ) ∈ Rn
= (θ1 (t ), . . . , θN (t ))
= f (Θ(t )) = f (θ1 (t ), . . . , θN (t )).
Az állapottér görbéje
= a < t2 < · · · < tm = b , = (θi ,1 , . . . , θi ,N ).
kulcs-fázisok: t1
ci
az i -edik kulcsfázis
a kulcs-fázisok összekötése interpolációs görbével (pl. harmadfokú szplájnnal):
θj (t ) : [a, b ] → R, θj (ti ) = θi ,j
el®adásvázlat
Számítógépes geometria (mester kurzus)
Inverz kinematika
f
: RN → R n ,
E
= f (Θ),
E
−→ Θ?
f nemlineáris (sin, cos függvények) analitikus megoldás általában nem lehetséges b® megoldáshalmaz (redundancia, ugyanazt a térbeli helyzetet a végberendezés az állapottér több pontján is felveheti) üres megoldástér (elérhetetlen cél)
numerikus megoldásra van szükség Ötlet Linearizáció!
el®adásvázlat
Számítógépes geometria (mester kurzus)
Inverz kinematika: Jacobi-mátrix módszer
f
: RN → R n ,
E
= f (Θ) =⇒ dE = df (Θ)dΘ, df (Θ) ∈ Mn×N
Jacobi-mátrix: lineáris approximáció f -re
∂ f1
df (Θ) =
∂ f1 ∂θ1 ∂θ2 ∂ f2 ∂ f2 ∂θ1 ∂θ2 . . . .. . ∂ fn ∂ fn ∂θ1 ∂θ2
el®adásvázlat
... ... ...
∂ f1 ∂θN ∂ f2 ∂θN . . . ∂ fn ∂θN Θ
Számítógépes geometria (mester kurzus)
3D csuklós szerkezet Jacobi mátrixa
Mozgó tengely formula
∆Ji =
i X
∆θj nj × (Ji − Jj −1 ) =⇒
j =1
× (Pi − P0 ) n2 × (Pi − P1 ) df (Θ) = . . . ni × (Pi − P i − 1)
n1
el®adásvázlat
Számítógépes geometria (mester kurzus)
Inverz kinematika: Jacobi-mátrix módszer
Elemzés ha n
=N
és
df (Θ) invertálható, akkor dΘ = df (Θ)− · dE : 1
iteratív
módszer alkalmazható
df (Θ)
invertálhatósága az állapotvektortól függ
az iterációs lépés hibája
ha N
> n,
kdf (Θ)dΘ − dE )k
akkor a rendszer kinematikailag redundáns, általában
végtelen sok megoldása létezik
általánosított invertálás eljárások adnak megoldást: dΘ = df (Θ)† dE (Pl. Moore Penrose pszeudoinverz)
másodlagos kritérium beiktatása
el®adásvázlat
Számítógépes geometria (mester kurzus)
Inverz kinematika: invertálható Jacobi-mátrix
Pszeudokód Input:
Θ0 , T Θ, melyre f (Θ) = T
Output:
Θ ← Θ0 dE = (T − f (Θ0 ))/k for i = 1 to k do Θ ← Θ + df (Θ)−1 dE return Θ
el®adásvázlat
Számítógépes geometria (mester kurzus)
A Jacobi-módszer hibája
Piros: az optimális pálya, piros háromszög: a cél Egy iterációs lépés hibája (tracking error):
el®adásvázlat
kdf (dΘ) − dE k
Számítógépes geometria (mester kurzus)
A tracking error javítása
Az iterációs lépés hibájának gyelése (közbens® cél kijelölése) és a célirány folyamatos korrekciója: Pszeudokód Input:
Θ0 , T , ∆ , δ Θ, melyre f (Θ) = T
Output:
Θ ← Θ0 dE = T − f (Θ) while kT − f (Θ)k > ∆ do −1 if kdf (df (Θ) dE ) − dE k < δ Θ ← Θ + df (Θ)−1 dE dE = T − f (Θ)
then
else
dE ← (dE )/2
return
Θ el®adásvázlat
Számítógépes geometria (mester kurzus)
Redundáns/szinguláris esetek
Általánosított inverz
X a J általánosított inverze, ha az alábbi tulajdonságok valamelyike teljesül:
JXJ XJX
=J =X
(XJ )t
= XJ
(JX )t
= JX
X a J mátrix pseudoinverze, ha mind a négy tulajdonság teljesül. Jelölés: X
= J †. + a pszeudoinverz egyértelm¶ - (relatíve) lassú a kiszámolása - szingularitásoknál instabil
J t általánosított inverz és jó eredményt ad! el®adásvázlat
Számítógépes geometria (mester kurzus)
Inverz kinematika: minimum módszer
f
: RN → R n ,
= f (Θ); D : RN → R,
E
A végberendezés a célban van
⇐⇒
D (Θ)
D (Θ)
= 0,
= kE (Θ) − T k2
azaz
Θ
a D függvény
abszolút minimumhelye.
Function
3.5
3.5 3 2.5 2 1.5 1 0.5 0
3 2.5 2 1.5 1 0.5 03
2 v
1
0
-1
-2
-3 -3
el®adásvázlat
-2
-1
0
1
2
3
u
Számítógépes geometria (mester kurzus)
Inverz kinematika: minimum módszer
Numerikus megoldás a minimumra: a legmeredekebb lejt® módszere (gradiens módszer)
Θk +1 = Θk − hdD (Θk )
el®adásvázlat
Számítógépes geometria (mester kurzus)
Feladatok
Feladat 2D csuklós szerkezet megrajzolása az állapotvektor ismeretében. A szegmensek hosszát a program input adatként kérje. 2D csuklós szerkezet animációjának megvalósítása az állapovektor paraméterezésével. (Kulcsfázisokból.) 3D csukló megrajzolása (pl. ortogonális axonometriában) az állapotvektor ismeretében. A program tartalmazza a gömbcsukló lehet®ségét is. Inverz kinematika (2D): egérrel kijelölt cél megtalálása. Inverz kinematika (2D): egeret követ® csuklós szerkezet. Inverz kinematika (2D): Animáció, melyben egy csuklós szerkezet végberendezése egy adott görbén mozog. Inverz kinematika: a Jacobi-mátrix módszer és a minimum módszer hibájának összehasonlítása. Inverz kinematika: két különböz® általánosított inverz módszer összehasonlítása. el®adásvázlat
Számítógépes geometria (mester kurzus)