IK és FK modellek a valóságban és azon túl
Az FK (Előre Kinematika) és az IK (Inverz Kinematika) két alapvető metodológia, amelyeket a robotika és animáció területén használnak a mozgások és a pozíciók meghatározására. Ezek a technikák segítenek abban, hogy a robotok és az animációs figurák természetes és pontos mozgást végezzenek.
Képzeljünk el egy egyszerű hétköznapi helyzetet: egy kéz kinyúl egy pohárért az asztalon. Ha ezt a mozgást az FK módszerrel írjuk le, akkor a váll, a könyök és a csukló ízületeinek szögét kell meghatároznunk, hogy a kéz elérje a poharat. Ezzel szemben az IK módszerrel egyszerűen csak megadjuk a kéz végpontjának (a pohár fogásának) a kívánt helyzetét, és a rendszer kiszámítja, milyen szögben kell állnia az ízületeknek, hogy ezt a helyzetet elérjük. Nézzük meg, hogyan működik ez a két módszer.
Előre Kinematika (Forward Kinematics – FK)
Az FK olyan módszer, amelyet a robotkarok mozgásának számítására használnak. Az FK segítségével meghatározható a robotkar végpontjának (end-effektor) pozíciója és orientációja a robot ízületi változóinak (például szögek vagy elmozdulások) ismeretében. Az ízületek által meghatározott mozgás és elhelyezkedés alapján kiszámíthatjuk az end-effektor helyzetét a térben.
Hogyan számoljuk az FK-t?
Matematikailag az FK egy sor mátrixszorzást jelent. Ha van egy n-fokozatú szabadságú robotkar, akkor minden egyes ízülethez tartozik egy transzformációs mátrix, amely az adott ízület helyzetét írja le. Az end-effektor pozícióját és orientációját ezeknek a transzformációs mátrixoknak a szorzatával kapjuk meg.
Előnyei
- Egyszerű számítás: Az FK egyszerűbb matematikai műveleteket igényel, mint az IK, mivel csak mátrixszorzásokat kell végezni.
- Determinált eredmény: Az adott ízületi szögek és elmozdulások mindig egyértelműen meghatározzák az end-effektor pozícióját és orientációját.
- Gyors: Az FK gyorsan kiszámítható, ami előnyös a valós idejű alkalmazásokban, mint például a robotvezérlés.
Hátrányai
- Nem célpozíció alapú: Az FK nem alkalmas arra, hogy egy adott célpozícióhoz szükséges ízületi változókat határozzunk meg. Ez az IK feladata.
- Korlátozott alkalmazás: Az FK főként olyan helyzetekben használható, amikor az ízületi szögek ismertek, és az end-effektor helyzetét kell meghatározni.
Inverz Kinematika (Inverse Kinematics – IK)
Az inverz kinematika (IK) olyan módszer, amelynek segítségével meghatározhatjuk azokat az ízületi változókat, amelyek szükségesek ahhoz, hogy a robotkar end-effektora elérje a kívánt pozíciót és orientációt. Az IK tehát a célpozícióból indul ki, és az ehhez szükséges ízületi szögeket és elmozdulásokat számítja ki.
Hogyan számoljuk az IK-t?
Az IK megoldása általában iteratív módszereket igényel, mivel a legtöbb esetben nincs zárt formájú megoldás. Az egyik leggyakrabban használt módszer a Newton-Raphson módszer, amely az iterációk során közelíti a megoldást. Az iterációk során a Jacobi-mátrixot használják, amely az end-effektor pozíciója és az ízületi változók közötti kapcsolat részleges deriváltjait tartalmazza.
Iteratív módszerek
Az iteratív módszereknél a kezdeti ízületi változókat adjuk meg, és minden iterációban frissítjük őket a következőképpen:
- Aktuális pozíció és orientáció kiszámítása: Az aktuális ízületi változók alapján kiszámítjuk az end-effektor pozícióját és orientációját előre kinematikával (FK).
- Hiba kiszámítása: Meghatározzuk a hibát a kívánt és az aktuális pozíció/orientáció között.
- Jacobi-mátrix számítása: Kiszámítjuk a Jacobi-mátrixot az aktuális ízületi változók alapján. Ez a mátrix tartalmazza az end-effektor pozíciójának változását az ízületi változók kis változásainak függvényében.
- Ízületi változók frissítése: A pszeudoinverz Jacobi-mátrix és a hibavektor segítségével frissítjük az ízületi változókat.
- Iteráció ismétlése: Az új ízületi változókkal megismételjük a folyamatot, amíg a hiba elég kicsi nem lesz.
Előnyök:
- Célirányultság: Az IK lehetővé teszi, hogy meghatározzuk az ízületek szögeit és más paramétereit annak érdekében, hogy az end-effektor (például a robot keze vagy eszköze) elérje a kívánt célpontot a térben.
- Flexibilitás: Az IK különböző célpontokhoz és orientációkhoz keres megoldásokat, így alkalmas változatos feladatokra és műveletekre.
- Mozgékonyság: Lehetővé teszi bonyolult mozgások és manipulációk tervezését és végrehajtását, amelyek az FK módszerrel nehezebben vagy egyáltalán nem lennének megoldhatók.
- Valós idejű alkalmazások: Bizonyos implementációkban az IK gyorsan és hatékonyan alkalmazható valós idejű rendszerekben, amelyek dinamikus környezetben működnek.
Hátrányok:
- Iteratív megoldás: Az IK gyakran iteratív módszereket igényel a megoldás megtalálásához. Ez több számítási erőforrást és időt igényelhet, különösen bonyolultabb és többdimenziós rendszerek esetén.
- Szinguláris pontok és többes megoldások: Az IK nem mindig talál egyértelmű megoldást, különösen szinguláris pontok vagy korlátozott mozgástartomány esetén. Ez kifejezetten akkor jelenthet problémát, amikor a robot vagy manipulátor bizonyos helyzetekben nem képes stabilan működni.
- Pontosság és stabilitás: Az IK nem mindig biztosítja a tökéletes pontosságot és stabilitást, különösen akkor, ha a Jacobi-mátrix nem megfelelően van kezelve, vagy ha a rendszer számítógépes hibákkal, érzékelőhibákkal vagy mechanikai hibákkal küzd.
- Számítási költségek: Az IK számítási igénye nagy lehet, különösen nagy számú ízülettel vagy bonyolultabb geometriákkal rendelkező rendszerek esetén.
FK és IK az Unreal Engine-ben
Az FK és IK modellek nem csupán a robotikában használhatók. Ezek a módszerek a játékokban is megjelennek. Amikor egy animációt szeretnénk végrehajtani, az adott objektum csontvázát mozgatjuk. Ilyenkor FK vagy IK alapján történik a mozgatás.
Az Unreal Engine-ben kifejezetten erős eszközkészletünk van arra, hogy egy IK csontvázat felépítsünk, ami a jelenleg futó 5.4-es verzióban még tovább bővült. Mielőtt belemegyünk abba, hogy hogyan is néz ki egy ilyen csontváz elkészítése, nézzünk példát arra, hogy a fentebb olvasható matematika pontosan mit is eredményez a valóságban.
Amennyiben az Engine által nyújtott Mannequin karaktert használjuk, úgy azon már találhatunk egy teljes test IK-t. Ez a fenti képen látható módon néz ki. A sárga kockák az úgy nevezett IK goal-ok. Ezek arra szolgálnak, hogy ha mozgatjuk őket, akkor a karakter ezt a célpontot fogja lekövetni (ha tudja). E mögött a fentebb leírt matematikai számítások találhatók. Ezt az IK goal-t egy adott joint-hoz rendeljük hozzá. Mozgatása esetén az FK-val ellentétben a visszafelé található joint-ok pozícióját is hozzá számolja, egy csukló mozgatása esetén például a teljes kar mozogni fog.
Állíthatunk be a különböző joint-oknak úgynevezett constraint-eket is. Ezekkel le tudjuk korlátozni, hogy maximálisan mekkora szöget zárhat be vagy mozoghat el. Így egy IK csontváz képes lesz arra, hogy adott mozgatás esetén ne vegyen fel természetellenes pozíciót, például ne tudjuk úgy kifordítani a Mannequin könyökét, hogy az visszahajoljon. Ezt az alábbi ábra demonstrálja.
FK esetén, ha a csukló pozícióját változtatjuk, úgy visszafelé nem fognak változni a joint-ok. Ahhoz, hogy a kar a képen látható állását vegye fel, minden további pontot is változtatnom kell.
Control Rig
Az Unreal Engine-ben a Control Rig egy olyan rendszer, amely lehetővé teszi animációk és mozgások létrehozását és szerkesztését valós időben. Ez egy eszköz, amely segítségével animációs kontrollerek, szkriptek és különböző effektek kombinálhatók, hogy összetett mozgásokat és interakciókat hozzunk létre karakterekkel vagy más elemekkel. A Control Rig lehetőséget ad arra, hogy dinamikusan állítsuk be a karakter mozgását vagy animációját, anélkül, hogy külön animációs szekvenciákat kellene előre rögzíteni. Egy ilyen Control Rig-ben mi döntjük el, hogy FK vagy IK modellt használunk az animálásra, mozgatásra.
Moduláris Control Rig
Az 5.4-es Unreal Engine kiemelkedő újítása, hogy az egyébként nem teljesen triviális és sokszor hosszadalmas Control Rig elkészítését modulárisan elvégezhetjük. Előre definiált blokkokból építhetünk fel egy ilyen Control Riget, a későbbiekben pedig mi magunk dönthetjük el, hogy az adott csukló, boka és nyak pontok FK vagy IK modellel mozogjanak, amikor mi szeretnénk őket módosítani.
Az alábbi képen láthatunk egy ilyen csontot. Az eredeti csontvázhoz nem tartozott Control Rig, és nem volt megvalósítva hozzá az IK mozgatáshoz szükséges metodológia. Ezzel az új, modulárisan felépíthető Control Rig-gel azonban percek alatt elkészíthető egy ilyen csontváz.
Ezután már egyetlen mozdulattal dönthetek, hogy az adott ízületek mozgatását IK-val vagy FK-val szeretném elvégezni. Ahhoz, hogy ezt meg tudjam valósítani, szükségem lesz egy Sequencer-re. Itt van lehetőségem a feladathoz jobban igazodó modellt választani.
IK? FK? VR? Stewart platform? Igen!
Láthatjuk, hogy mind az IK, mind az FK modellek elengedhetetlen részei a robotikának, sőt a játékfejlesztésnek is. A mai technológia azonban lehetőséget biztosít arra, hogy ezt a két metódust együttesen alkalmazzuk. Nincs másra szükségünk mint, hogy ezen két felhasználási módot bővítsük a virtuális valósággal.
Mielőtt belenéznénk, hogy pontosan hogyan is néz ki egy ilyen ökoszisztéma, nézzük meg nagyon röviden és egyszerűen, hogy mi is az a Stewart platform.
Stewart platform
A Stewart platform egy olyan párhuzamos manipulátor, amelynek hat prizmás aktuátora van: általában hidraulikus emelők vagy elektromos lineáris aktuátorok, amelyek párokban vannak rögzítve a platform alaplemezének három pontjára, átnyúlva a felső lemez három rögzítési pontjára. Mind a 12 kapcsolatot univerzális csuklókkal oldják meg. Az eszközök, amelyek a felső lemezen helyezkednek el, a hat szabadságfokban mozgathatók, amelyekben egy szabadon felfüggesztett test képes mozogni. Más néven megtalálhatjuk ezeket az eszközöket 6-DoF-ként is a lehetséges mozgásai miatt. Sok alkalmazásuk van, például szimulációkban, ezért tudjuk használni a technológiát virtuális valósághoz is.
VR szimuláció
Nézzük, hogy miként is néz ki ez a valóságban. Vegyünk példaként egy VR applikációt, ami legyen mondjuk egy repülőgép szimulátor. A VR-ben lévő pilóta először felveszi az alkalmas testtartást, hogy a megfelelő pozícióba kerüljön a pilótafülkében. Ilyenkor a Stewart platform egyenesben tartja a felhasználót, ezután megkezdődik a virtuális felszállás. A VR headset méri a felfelé irányuló mozgást, és a pilóta azt érzékeli, hogy felfelé mozog a pilótafülkében, így kicsit többet lát a műszerfal felett. Ezután a pilóta felemelkedik, és a Stewart platform is emelkedni kezd. Ismét a VR headset méri a felfelé irányuló mozgást, de ezúttal a pilótafülkében tapasztalt felfelé irányuló mozgás nem kívánatos. Nagyon zavaró lenne a pilóta számára, ha a feje minden felszálláskor átemelkedne a pilótafülke tetején, vagy ha egy kanyarban kilőne egy autó oldalán. Ezért a Stewart platform mozgásait ki kell vonni a VR headset által mért mozgásokból, hogy csak a pilóta mozgása jelenjen meg.
A direkt kinematika (FK) kritikus fontosságú ezen feladat elvégzéséhez. Az aktuátorok helyzetét, amelyeket általában nagyon pontosan mérnek, gyorsan fel lehet használni a platform mozgásának kiszámításához, amelyet aztán ki lehet vonni a mért headset mozgásából. Néha külső szenzorokat, például gyorsulásmérőket helyeznek el a platformon, hogy segítsenek a mozgás kivonásában. Egy direkt kinematikai modell nemcsak helyettesíti ezeket a szenzorokat, hanem helyesen elvégezve javíthatja a késleltetést, a rezgésállóságot és a következetességet is. Ezáltal kapunk egy rendkívül immerzív élményt, a VR-ban érzékelt repülőgép irányítását nem csupán az agyunk fogja detektálni, hanem a testünk is. Ebből egyenesen következik az is, hogy a VR-ezés közben előforduló, úgynevezett mozgásbetegség (motion sickness) enyhülhet. A valódi mozgás miatt a testünk - belső fülünk - hasonló mozgást fog tapasztalni, mint az agyunk.
Zárószó: A Kinematika szerepe a jövő technológiáiban
Az FK és IK alapvető szerepet játszik mind a robotikában, mind a videójátékok fejlesztésében. Az FK egyszerűbb, gyorsabb számításokat tesz lehetővé, amelyeket a valós idejű alkalmazásokban, például robotvezérlésben és animációkban használhatunk. Az IK viszont lehetőséget ad arra, hogy a robotok és karakterek célirányosan, természetesen mozogjanak, megoldva a komplex pozíciók és orientációk elérését.
Az Unreal Engine által kínált eszközök, különösen a Control Rig és a moduláris megközelítés lehetővé teszik, hogy könnyedén kombináljuk az FK és IK modelleket a játékfejlesztésben. Ezáltal gazdagabb, valósághűbb animációkat hozhatunk létre, amelyek hozzájárulnak a játékélmény fokozásához.
A VR és a Stewart platform kombinációja tovább bővíti a lehetőségeket, lehetővé téve a teljesen immerzív szimulációkat, amelyek nemcsak látványosak, de a felhasználók számára is fizikailag érezhető élményeket nyújtanak. Az ilyen technológiák használata enyhítheti a VR-ban gyakori mozgásbetegséget, növelve a felhasználói komfortot és elégedettséget.
A kinematika módszerei tehát nemcsak a jelen technológiai világában elengedhetetlenek, hanem a jövő fejlődésének is kulcsfontosságú elemei. Az FK és IK modellek integrálása és fejlesztése hozzájárul ahhoz, hogy mind a robotok, mind a virtuális karakterek egyre intelligensebbé és életszerűbbé váljanak, új távlatokat nyitva a technológiai innovációk terén.
A cikket írta: F. Tamás - Unreal Engine fejlesztő