RÁCZ KRISTÓF SZAKDOLGOZAT
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM GÉPÉSZMÉNÖKI KAR MECHATRONIKA, OPTIKA ÉS GÉPÉSZETI INFORMATIKA TANSZÉK SZAKDOLGOZATOK
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM GÉPÉSZMÉNÖKI KAR MECHATRONIKA, OPTIKA ÉS GÉPÉSZETI INFORMATIKA TANSZÉK RÁCZ KRISTÓF SZAKDOLGOZAT Univerzális biomechanikai mozgásvizsgáló szoftver fejlesztése az OptiTrack motion capture redszeréhez Konzulens: Nagymáté Gergely PhD hallgató Témavezető: Dr. Kiss Rita egyetemi tanár Budapest, 2016
Szerzői jog Rácz Kristóf, 2016.
vi
viii
TARTALOMJEGYZÉK Előszó xi 1. Bevezetés 1 1.1. A biomechanikai mérések, felhasználása és eszközei................ 1 1.2. A MUBMA program jelentősége........................... 1 1.3. Az alkalmazott MoCap rendszer........................... 2 1.4. Terminológia..................................... 2 1.5. A dolgozat felépítése................................. 3 2. Irodalomkutatás 5 2.1. Mozgásvizsgáló rendszerek hibái........................... 5 2.1.1. Instrumentális hibák............................. 5 2.1.2. Anatómiai pont elhelyezési hibák...................... 5 2.1.3. Lágyszövet vagy bőrmozgás hibák...................... 5 2.2. Anatómiai pont követési stratégiák.......................... 7 2.2.1. Közvetlen markeres követés......................... 7 2.2.2. Anatómiai pontok helyzetének meghatározása a csont helyzetének becslésével..................................... 7 2.3. Mozgásvizsgáló rendszerek típusai.......................... 10 2.3.1. Elektromágnes-alapú rendszerek....................... 10 2.3.2. Ultrahang-alapú rendszerek......................... 11 2.3.3. Optikai-alapú rendszerek........................... 12 3. Rigid cluster protokoll fejlesztése 15 3.1. A használt biomechanikai modell........................... 15 3.2. Rigidbody pozíció és rögzítés vizsgálata....................... 16 3.2.1. Láb rigidbody vizsgálata........................... 17 3.2.2. Lábszár rigidbody vizsgálata......................... 17 3.2.3. Comb rigidbody vizsgálata.......................... 19 3.2.4. Medence rigidbody vizsgálata........................ 19 4. Kalibráció a MOGI Universal Biomechanical Motion Analyzer programmal 21 4.1. A kalibrációs eljárás................................. 21 4.2. A mutatópálca kalibrációja.............................. 23 4.3. A kalibráció és a kalibrált anatómiai pont követésének matematikai háttere..... 25 4.4. Anatómiai pont elhelyezési hiba mérése....................... 26 4.4.1. A mérés célja................................. 27 4.4.2. A vizsgált személy.............................. 27 ix
4.4.3. A mérés leírása................................ 27 4.4.4. A kiértékelés folyamata........................... 27 4.4.5. Eredmények................................. 28 4.4.6. Értékelés................................... 28 5. Biomechanikai modell fejlesztése a MOGI Universal Biomechanical Motion Analyzer programhoz 33 5.1. A modell megalkotása................................ 33 5.2. A modell implementációja.............................. 34 5.2.1. Konstruktor.................................. 34 5.2.2. Anatómiai pontok, szegmensek, real-time számított paraméterek definíciója 35 5.2.3. Real-time paraméterek számítása...................... 37 5.2.4. Az utófeldolgozó függvény.......................... 37 5.2.5. A feldolgozott adatokat exportáló függvény................. 40 5.2.6. Implementált matematikai műveletek.................... 40 6. Mozgásvizsgálat a MOGI Universal Biomechanical Motion Analyzer programmal 43 6.1. Előkészületek..................................... 43 6.2. A mérés alanyának előkészítése........................... 46 6.3. A járás mérése..................................... 46 6.4. A mérések kiértékelése................................ 48 7. Összefoglalás 49 7.1. Eredmények...................................... 49 7.2. Kitekintés....................................... 49 8. Bibliográfia 51 9. Summary 53 A. Mellékletek 57 A.1. Beleegyezési nyilatkozat............................... 57 A.2. Példakódok...................................... 58 A.2.1. A 23 pontos modell implementációja a MUBMA programba........ 58 A.2.2. Egy egyszerű stabilometriai mérés implementációja a MUBMA programba 62 B. Ábrák jegyzéke 64 C. Táblázatok jegyzéke 65 D. Kódrészletek jegyzéke 65 x
ELŐSZÓ A dolgozat címe elsőre csalóka lehet, ugyanis az olvasó nem fog sok programozáshoz kapcsolódó résszel találkozni, egy fejezetet leszámítva. A dolgozatban inkább a fejlesztés azon aspektusaira koncentráltam, mely tudományos, biomechanikai szempontból új és érdekes információkat tartalmaz. Persze egy program fejesztésében az is fontos lépés, hogy hogyan jön rá a fejlesztő egy hét után, hogy a mátrixok indexelése fordított sorrendű, mint ahogy ő azt gondolta, vagy hogyan sikerült a példakódok zavaros kuszaságából a megfelelő információt kiolvasni, de ezek nem mondhatóak túl izgalamas témáknak. A dolgozat ezért a szoftver és a mérőrendszer azon kérdésit járja körbe, melyek megoldása új, tudományos szempontból érdekes technikákat és ötleteket igényel. * * * Köszönetnyilvánítás: Ez a szakdolgozat nem jöhetett volna létre mentoraim és családom támogatása nélkül. Köszönettel tartozom Kiss Rita tanárnőnek a tudományos pályámon való elindításért és segítésért, és ezen dolgozat nyelvtani és tartalmi hibáinak rendíthetetlen javításáért. Köszönöm Nagymáté Gergelynek a mozgáslabor munkájába való bevezetést, a sok segítséget, a rengetek ötletet és közös munkát. Köszönöm a hatalmas mennyiségű támogatást és motivációt Zsókának, aki nélkül ez a dolgozat soha nem készült volna el időben. A harmadik fejezet ábráinak elkészítésért örök hálám üldözi Hajba Andrást. Végül, de nem utolsó sorban szeretném megköszönni Vő Ibolya munkáját, aki bármikor, bármilyen kérdésünkre és problémánkra tudta a megoldást, legyen az adminisztrációs kérdés, pótzh vagy késedelmes házi leadás. A dolgozat elkészítését az Országos Tudományos Kutatási Alapprogram támogatta (K115894). Budapest, 2016 Rácz Kristóf xi
xii
1. BEVEZETÉS Ezen szakdolgozat témája egy olyan korszerű, motion capture (továbbiakban MoCap) rendszerre épülő mérési eszköztár fejlesztése, amely mind klinikai, akadémiai, sporttudományos területeken egyaránt felhasználható. Az eszköztár részét képezi egy keretprogram és egy olyan mérési protokoll, amely egyszerű, gyors és pontos biomechanikai méréseket tesz lehetővé. Az elsődleges cél egy olyan klinikai alkalmazásban használható járásvizsgálat kidolgozása, mely hosszas utófeldolgozás nélkül, pár perc alatt megbízható eredményeket szolgáltat. A létrehozott megoldások a keretprogram segítségével könnyen felhasználhatóak, így új, egyedi mérések fejleszthetőek. A program a MOGI (Mechatronika, Optika és Gépészeti Informatika Tanszék) Universal Biomechanical Motion Analyzer (továbbiakban MUBMA) nevet kapta. 1.1. A biomechanikai mérések, felhasználása és eszközei A biomechanikai mérések célja, hogy az emberi mozgást számszerűsítse, kvantitatív értékekkel leírja. A mérési adatokból számolható idő, szög, távolság, és erő jellegű paraméterek széles körben felhasználhatóak: az eredmények segítségével mozgásszervi rendellenességek diagnosztizálhatóak, nyomon követhetőek a műtétek és rehabilitációk hatásai, sportolók technikája és teljesítménye elemezhető, fejleszthető, illetve tudományos kutatómunka végezhető. A leggyakoribb mozgásvizsgálat a járás vizsgálata, mely főként klinikai, ortopédiai alkalmazási területen terjedt el. A biomechanikai vizsgálatok két csoportba oszthatóak: kinematikai mérések, melyek a mozgások leírásával és elemzésével foglalkoznak, és kinetikai mérések, melyek a mozgást létrehozó és a közben fellépő erőket vizsgálják. Jelen szakdolgozat az első területre fókuszál. A kinematikai mérések alapvető célja a mozgás passzív szervrendszerének, a csontvázrendszer mozgásának megfigyelése, leírása. Ezt a csontok megkülönböztetett, könnyen azonosítható pontjainak, úgynevezett anatómiai pontjainak követésével, ezek térbeli pozíciójának mérésével teszik. Ezeket az anatómiai pontokat a mérőrendszer számára láthatóvá, követhetővé kell tenni. Erre a célra alkalmazhatóak a markerek. 1.2. A MUBMA program jelentősége A technológiai fejlődésével a mozgásvizsgálatokkal szemben támasztott követelmények is egyre nőnek. Egy versenyképes rendszernek gyors, könnyen elvégezhető és a lehető legpontosabb méréseket kell lehetővé tenniük (KOCSIS ET AL., 2004). A MUBMA programmal a mozgás vizsgálata akár egy ember által, előkészületekkel együtt 45 perc alatt elvégezhető. A program a mérés befejeztével az adatokat külső beavatkozás nélkül automatikusan feldolgozza és kiértékeli. Így a hasonló rendszerekkel ellentétben nincs szükség utófeldolgozásra, mely egy szakértő ember közreműködését igényelné. A program az alkalmazott MoCap rendszernek és mérési protokollnak köszönhetően a legtöbb járásvizsgálati módszerhez képest megbízhatóbb, pontosabb eredményt szolgáltat. A fejlesztés befejeztével ingyenesen, nyílt forráskóddal elérhető, így egy széles körben alkalmazott, hozzáférhető biomechanikai mozgásvizsgáló platformmá nőheti ki magát. 1
1.3. Az alkalmazott MoCap rendszer A MOGI Tanszék mozgáslaborjában egy OptiTrack 1 (NaturalPoint, Corvallis, Oregon, USA) típusú MoCap rendszer van található, mely 18 darab Flex13 típusú kamerát, és egy Motive:Body szoftvert foglal magában (1-1a. ábra). A kamerák 1,3 MP-es felbontású, 56 -os látószögű, és 120 fps-es sebességű hardverek. Az infravörös tartományban való megvilágítást kameránként 28 LED biztosítja (1-1b. ábra). A markerek 5 mm átmérőjű, reflektív külső borítású gömbök, amelyeknek térbeli helyzete (kalibrációtól függően) mm alatti pontossággal határozható meg (1-2a. ábra). A motion capture rendszerek tulajdonságaival bővebben a 2.3.3. szakasz foglalkozik. (a) Mozgáslabor (D510 (b) Flex13 típusú OptiTrack kamera 1-1. ábra. A Mechatronika, Optika és Gépészeti Informatika Tanszék motion capture rendszere 1.4. Terminológia A követkző fejezet célja a járásvizsgálatban, így a dolgozatban is gyakran használt kifejezések és szinonimáik definiálása. ANATÓMIAI PONT Hagyományos értelemben a csontvázrendszer jól beazonosítható, elkülöníthető pontjai, melyeknek meghatározásául általánosan elfogadottan a Gray s Anatomy című anatómia könyv szolgál (STANDRING, 2016). Azonosításuk általában kitapogatással történik. Ezen dolgozat keretein belül anatómiai pontnak nevezett bármely olyan pont, amelynek pozíciója a mérés során meghatározandó. Ez általában a hagyományos értelemben vett anatómiai ponttal megegyezik, de elképzelhető olyan biomechanikai vizsgálat, amikor tárgyak meghatározott pontjait kell követni (például egyensúlyozás mérésekor egy platform középpontja, vagy egy sisak szélei). SZEGMENS, TESTSZEGMENS, SZEGMENTUM Olyan kiterjed, három dimenziós objektum, melyet követni kívánunk, és feltételezhetően merev testként viselkedik. Ezek általában a test ízületek által egymáshoz kapcsolt szegmensei, például a comb, a lábszár, a medence. Az anatómiai pontokhoz hasonlóan itt is előfordulhat, hogy ezek élettelen tárgyak (például egyensúlyozás mérésekor egy platform vagy egy sisak). 1 http://optitrack.com/, elérés dátuma: 2016.12.03. 2
MARKER, JELÖLŐ Olyan objektum, amelynek térbeli pozícióját a mozgásvizsgáló rendszer képes meghatározni. Ezek segítségével tehetőek mérhetővé az anatómiai pontok. Az OptiTrack motion capture rendszer markerei ezüstös színű reflektív gömbök (1-2a. ábra). CLUSTER, MARKER CLUSTER, TRIPLET Egy szegmentumhoz tartozó, három vagy több marker összessége, amelyek annak pozíciójának és helyzetének meghatározására szolgálnak. A legtöbb esetben a rigidbody jelentésével megegyezik. RIGIDBODY, MEREV CLUSTER Olyan marker cluster, amely egy merev testre van felerősítve. Markerei között mérhető távolságok állandóak, és egyediek (1-2b. ábra). Ennek köszönhetően egy objektumként kezelhető, amelyhez pozíció és orientáció rendelhető, egyedi azonosítóval ellátható, amivel az egyedi marker távolságok alapján bármikor összerendelhető (ennek jelentősége a 2.3.3. szakaszban olvasható). (a) Passzív optikai marker (b) Három markerből álló rigidbody 1-2. ábra. MoCap rendszer által követett objektumok 1.5. A dolgozat felépítése A dolgozatban először a mozgásvizsgálatokhoz kapcsolódó szakirodalmat dolgozom fel, ami alapján a vizsgálatok hibaforrásai, és ezen hibák kompenzációjára kidolgozott módszerek kategorizálhatóak. A vizsgáló rendszerek típusai a működési elvük alapján kerülnek áttekintésre, azok előnyeivel és hátrányaival. A MUBMA programmal való méréseknél használt eljárás bemutatása az ehhez kapcsolódó tapasztalatokon, felmerült akadályokon keresztül történik, és fejlesztésének lehetőségeit is összefoglalom. A kalibrációs eljárás implementálása, és az ehhez kapcsolódó hibaforrás méréssel történő vizsgálata a következő fejezet témája. A program lehetőséget ad saját mérések kidolgozására, melynek módját és az alkalmazható eszköztárát szintén összefoglalásra kerül. Végezetül a kidolgozott járásvizsgálat teljes folyamatát, annak egyes lépéseit az elvégzett munka összefoglalása, értékelése előtt mutatom be. 3
4
2. IRODALOMKUTATÁS 2.1. Mozgásvizsgáló rendszerek hibái A mozgásvizsgálatok fejlődésének fő irányvonala a mérési hibák minimalizálása, melyeket három csoportba sorolhatóak: instrumentális, lágyszövet és anatómiai pont elhelyezési hibák (LEARDINI ET AL., 2005). Nélkülözhetetlen ezek ismerete, jellegük megértése egy megbízható mérőrendszer kialakításhoz. 2.1.1. INSTRUMENTÁLIS HIBÁK Instrumentálisnak nevezzük azon hibákat, melyek a mozgásvizsgáló rendszer pontatlanságából adódnak. Ide tartozik az érzékelők, a véges számábrázolás (szóhosszúságból) hibája vagy optikai rendszerek estén a kamerák nem kompenzált torzításából adódó eltérések (CHIARI ET AL., 2005). Ezek együttesen határozzák azt meg, hogy a rendszer milyen pontossággal képes a markerek térbeli helyzetét mérni. Az erre vonatkozó információ általában gyári adat. Ha a rendszert kalibrálni szükséges, akkor ezen hibák meghatározása külön feladat. Az instrumentális jellegű hibák jellemzően 2 mm alattiak, a három jellemző típus közül a legkisebbek. 2.1.2. ANATÓMIAI PONT ELHELYEZÉSI HIBÁK A kiválasztott anatómiai pontok helyzetének méréséhez azokat azonosítani, és helyüket a mérőrendszer számára érthető módon kijelölni szükséges (bővebb információ a kijelölés lehetséges módjairól a 2.2. alfejezetben található). Az azonosítás általános módszere a kitapogatás, melynek nehézsége pontról-pontra változó. Ez Függ attól, hogy az adott jellegzetesség milyen könnyen különíthető el a csonttól, és mekkora lágyszövet réteg borítja. Ez mindenkinél egyedi, mivel a testfelépítés és a kondíció egyaránt meghatározza. Testfelépítés alatt az egyes anatómiai pontok prominenciája értendő: egyes embereknél egy adott pont jobban kitüremkedhet a környezetéből, könnyen azonosítható, míg másoknál a csont többi részétől alig elkülöníthető. Testalkat alatt az alany egészségügyi állapotából eredő tényezők értendőek: egy túlsúlyos embernél a kitapogatás sokkal problémásabb, mint egy normál testsúlyú embernél. A pontosságban meghatározó a vizsgálatot végző ember képzettsége. Egy gyakorlott gyógytornász, nagyobb biztonsággal tudja kitapogatni az anatómiai pontokat, mint egy laikus. A kijelölés konzisztenciájára irányuló kutatásokat DELLA CROCE ET AL.foglalta össze (2005). Egy képzett fizioterapeuta (hat vizsgálat alapján) a vizsgált pontokat 5-12 mm közötti pontossággal jelölte ki, míg 6 különböző terapeuta között a konzisztencia 8-20 mm közötti. Ennek magyarázata, hogy az anatómiai pontok kiterjedése nem pontszerű, ezért középpontjuknak megállapítása is szubjektív: eltérő vizsgáló személyek az adott jellegzetesség más pontját tekintik a középpontnak. Erre jó példa a nagy tompor (2-1. ábra). Az anatómiai pontok leírásának nemzetközileg elfogadott alapműve a Gray s Anatomy című könyv (STANDRING, 2016), de a magyar anatómia atlaszokban (DONÁTH, 1983) is megtalálhatóak ilyen leírások. 2.1.3. LÁGYSZÖVET VAGY BŐRMOZGÁS HIBÁK A mozgásvizsgálatok legjelentősebb hibafaktora a bőr és egyéb lágyszövetek (izom, zsír) csontokhoz képest relatív elmozdulása. Egy adott helyzetben az anatómiai pont felett elhelyezkedő bőrfelület mozgás közben, akár 50 millimétert is elmozdulhat a csonthoz képest (LEARDINI ET AL., 2005; TAYLOR ET AL., 2005). Ezeket a hibákat mindenképpen kompenzálni kell, hogy a vizsgá- 5
2-1. ábra. Femur (combcsont), amelynek a nagy tompor (trochanter major) pontja tipikus példája a nagy kiterjedésű anatómiai pontnak 1 latok eredményei értékelhetőek, kutatásokban vagy diagnosztikában felhasználhatóak legyenek. Ezen elmozdulások a járással megegyező frekvenciájúak, ezért ezek szűrése a frekvencia tartomány alapján nem lehetséges (FULLER ET AL., 1997; KARLSSON ET AL., 1999). A lágyszövet hibák mérése csak invazív módszerekkel lehetséges: a csont megfelelő pontosságú követéséhez egy mereven kapcsolódó eszközt kell rögzíteni, és a testen kívülről megfigyelni (2-2. ábra). A hibák kompenzálásával a 2.2 alfejezet részletesen foglalkozik. (a) Percutaneous Skeletal Tracker (PST) eszköz 2 (b) Csonttörések kezelésére használt külső rögzítő eszköz 3 2-2. ábra. Csont mozgásának közvetlen megfigyelésére alkalmas invazív eszközök 1 DONÁTH, 1983 2 HOLDEN ET AL., 1997 3 http://www.mayoclinic.org/diseases-conditions/broken-leg/multimedia/external-fixation/ img-20005996, elérés dátuma 2016.12.05 6
2.2. Anatómiai pont követési stratégiák A mozgásvizsgálatok célja, hogy a megválasztott anatómiai pontok térbeli pozícióját az idő függvényében mérje. Ezeket a pontokat lágyszövetek borítják, ezért ezek közvetlen követése csak invazív módszerekkel lehetséges. A mozgásvizsgáló rendszerek egy közvetett megoldást, a bőr felszínére elhelyezett, a mérőrendszer által látható markereket alkalmaznak. Ez az alfejezet bemutatja, milyen stratégiák léteznek az anatómiai pontok helyzetének meghatározására a markerek koordinátáiból. 2.2.1. KÖZVETLEN MARKERES KÖVETÉS A közvetlen markeres megoldás a mérés legkézenfekvőbb, és egyben legpontatlanabb módja is. Ennél a módszernél a bőrfelületre a kitapintott anatómiai pontok felett markerek kerülnek rögzítésre, és ezek koordinátái szolgáltatják az eredményeket. Ez a módszer a lágyszövet hibákat semmilyen módon nem kompenzálja, ezért nem alkalmazzák. 2.2.2. ANATÓMIAI PONTOK HELYZETÉNEK MEGHATÁROZÁSA A CSONT HELYZETÉNEK BECSLÉSÉVEL A ma alkalmazott mozgásvizsgálatok mindegyike a következő tényen alapul: a követni kívánt anatómiai pontok merev, kiterjed testeknek (csontoknak) a részei. A csont, avagy a szegmens pozíciója és orientációja ismert, akkor egy rá illesztett lokális koordináta-rendszerben az anatómiai pontok pozíciója konstans. Ezzel az alapfeltevéssel a probléma két részfeladatra bontható: anatómiai pontok meghatározása a szegmensek lokális koordináta-rendszerekben (anatómiai pontok kalibrációja), illetve a szegmensek pozíciójának és orientációjának meghatározása. 2.2.2.1. A KALIBRÁCIÓS ELJÁRÁS A virtuális markerek kalibrálásának eljárását először CAPPOZZO ET AL. mutatta be Calibrated Anatomical Systems Technique (CAST) néven (1995). A módszer egy mutatópálcát alkalmaz, melyen legalább két marker van elhelyezve úgy, hogy az általuk meghatározott egyenes átmegy a pálca csúcspontján (kalibrációs pont) (2-3. ábra). Ezt a csúcspontot a kitapintott anatómia pontra helyezve egy képkockányi pillanatfelvétel készül. Az alany testén elhelyezett markerekből a szegmensekhez rendelt lokális koordináta-rendszerek helyzete a későbbiekben ismertetett módszerekkel megállapítható, a mutatópálcán lévő két markerek segítségével pedig a kalibrációs pont globális koordinátái számíthatóak. Ebből a két adatból (a megfelelő szegmens lokális koordináta-rendszerében) a kalibrációs pont koordinátái kiszámíthatóak. A szegmens lokális koordináta-rendszerének mozgásából a kalibrált anatómiai pont globális koordinátái minden pillanatban számíthatóak. Ez a módszer jobb eredményeket ad, mint a közvetlen markeres követés. Hibája a szegmens koordinátarendszerének megállapításának hibájából adódik (CAPPOZZO, CATANI, LEARDINI, ET AL., 1996). Több javasolt eljárás is létezik, amely a lágyszövet hiba csökkentésére többszöri kalibrációs eljárást javasol. Egy lehetséges módszer az anatómiai pontok felvétele az adott szegmens két véghelyzetében. A kalibrált lokális koordináták (a lágyszövet hiba miatt) várhatóan eltérőek lesznek. A két kalibrált értéket interpolálva, az adott testszegmens helyzetének függvényében választható ki a megfelelő lokális koordináta-rendszerben (a bőrmozgás korrelál az adott ponthoz közel eső izület(ek) szögével). Egy mérésben, melynél az abszolút pozíciót egy külső rögzítő segítségével határozták meg, a kettős kalibráció használatával az anatómiai pontok hibáiban 20-30% csökkenés volt megfigyelhető (CAPPELLO ET AL., 1997) az egyszeri kalibrációhoz képest. Egy hasonló módszer szintén az ízületi szög és az adódó hiba közötti korrelációt használja ki. Legyen egy három szegmensből álló kinematikai lánc elemei A, B és C szegmensek. Ekkor elmondható, hogy az AB ízület mozgása az A és B szegmensek lokális koordináta-rendszerének becslésben fog hibát 7
(a) Kalibráció és mutatópálca ábrája egy optikai rendszer esetén 4 (b) Kalirációs eljárás és mutatópálca egy ultrahangos rendszernél 5 2-3. ábra. Kalibrációs eljárás és mutatópálcák okozni a lágyszövetek mozgása miatt. Ha a BC ízületet ki van merevítve, és egy B szegmenshez tartozó anatómiai pontot kalibrálunk két véghelyzetben, akkor elmondható, hogy ennek lokális koordinátái a C szegmenshez képest nem változnak, a B szegmenshez képest viszont igen (mivel az ízületnél fellépő szövetek mozgása a C szegmenshez már nem terjed el). Ezek alapján a B szegmens koordináta-rendszerének hibája az AB ízület mozgásának függvényében számítható. Ezt a mérést az összes szegmens ízületeire elvégezve egy táblázat készíthető, melynek segítségével a lágyszövet hibák kompenzálhatóak az adott testhelyzet alapján. Ezzel a módszerrel kompenzálatlan 10-20 mm-es tartományhoz képest a hiba 5-10 mm közötti mozog (LUCCHETTI ET AL., 1998). A kalibrációs eljárás előnye, hogy segítségével olyan anatómiai pontok is bevonhatóak a mérésbe, amiket a kitakarásra érzékeny mérőrendszerekkel közvetlenül nem lehetne vizsgálni. Ilyen pontok jellemzően a végtagok belső felületén találhatóak, például a mediális (belső) boka, vagy a femur belső epikondilusa. 2.2.2.2. CSONTPOZÍCIÓ BECSLÉSE BŐRRE RÖGZÍTETT MARKER CLUSTEREKKEL A lokális koordináta-rendszerek számításához alkalmazott egyik módszer a marker clusterek közvetlen bőrön való elhelyezése. Az alapfeltevés az, hogyha a mért mozgás jellege előre ismert, akkor a szegmensek és lágyszövetek mozgása modellezhető. A cluster deformációja alapján a modellből megállapítható, hogy a markerek a csonthoz képest hogyan mozdulnak el, aminek ismeretében a csont pozíciója és helyzete meghatározható. Ezeknél az eljárásoknál fontos, hogy a markerek a szegmenseken hogyan vannak elhelyezve. Az ízülethez közelebb lévő bőrfelületek elmozdulása nagyobb, mint az attól távolabb esőké, így jó marker pozíció választással a szükséges kompenzáció és számítás mértéke csökkenthető. Egy optimális marker cluster kritériumokat tanulmányozó kutatás megállapította, hogy szegmensenként négy marker alkalmazása ideális. Az optimális eredményhez a markereket úgy érdemes elhelyezni, hogy a cluster súlypontjától (a markerek pozícióinak átlagától) mért távolságaik négyzetes középértéke legalább tízszerese legyen, mint a mérőrendszer instrumentális hibája (CAPPOZZO, CAPPELLO, ET AL., 1997). Az optimális markerelrendezés segítségével felállíthatóak olyan modellek, amelyek alapján a csont és markerek között relatív mozgást becsülhető. A testszegmenseket külön-külön modellezve 4 CAPPOZZO, CATANI, DELLA CROCE, ET AL., 1995 5 KISS, KOCSIS, és KNOLL, 2004 8
végeredményként olyan eredmény adódhat, ami alapján a csontok az ízületeknél eltávolodnak egymástól. Ha a modell ízületeinél kényszerek vannak definiálva, akkor szegmensek helyett az egész rendszer egyben modellezhető, így a valósághoz közelebb álló becslés adható (LU ET AL., 1999). Egy másik lehetséges irány, ha az elmozdulás mellett a szegmensek deformációjaát figyelembe veszik (ha egy izom megfeszül, az megváltoztatja az egész testszegmens alakját, nem csupán a lágyszövet mozdul el a csonthoz képest). A merevnek tekintett szegmenshez képest ezzel a módszerrel a pozíció hibája 29%-al, az orientáció hibája 19%-al csökkenthető (ALEXANDER ET AL., 2001; CERVERI ET AL., 2005). Egy 2006-ban publikált kutatás az addigi csont pozíció becslő eljárásokat összehasonlítva az optimális markerszámot próbálta megállapítani. Eredményei alapján a korábban megállapított négy marker (CAPPOZZO, CAPPELLO, ET AL., 1997) a legtöbb esetben elegendő. Olyan alanyoknál, akik esetében különösen nagy lágyszövet hiba feltételezhető (például túlsúlyos személyek esetén) a markerszám növelése akár szegmensenként tizenkét darabig is jobb eredményeket adhat (CERE- ATTI ET AL., 2006). 2.2.2.3. CSONTPOZÍCIÓ BECSLÉSE MEREV CLUSTEREKKEL A csont pozíciójának becslése merev clusterek használatával is megoldható. Ennél a technikánál a markerek nem közvetlenül az bőrfelületen helyezkednek el, hanem egy merev (általában műanyag) objektumon, mely a páciens szegmenseire elasztikus pántokkal kerül rögzítésre. Ez a módszer jobb eredményeket ad, mint a sima bőrre helyezett markerek módszere, azonban a hibák további kompenzációjára kevésbé lehetséges(cappozzo, CATANI, DELLA CROCE, ET AL., 1995). A rögzítési módszer egy referenciaként PST eszközt (2-2a. ábra) alkalmazó mérés alapján 4-5 mm-es átlagos pozíció hibával rendelkezik, az orientációs hiba maximuma 8 (HOLDEN ET AL., 1997). Egy későbbi vizsgálat több merev és bőrre ragasztott cluster vizsgálatával megállapította, hogy a legjobb kompenzálatlan rögzítési módszer olyan merev clusterek használata ahol a rögzítő pántok a merev objektum és a bőr között helyezkednek el (MANAL ET AL., 2000). A vizsgált marker elrendezések 2-4. ábrán láthatóak. A legjobb eredményeket a B jelű konstrukció nyújtotta. 2-4. ábra. Marker cluster rögzítési módok 6 6 MANAL ET AL., 2000 9
2.3. Mozgásvizsgáló rendszerek típusai 2.3.1. ELEKTROMÁGNES-ALAPÚ RENDSZEREK Az elektromágneses rendszerek működése egy elektromágneses tér, és egy abba helyezett fémes tárgy kölcsönhatásán alapul. A rendszer adónak nevezett egysége egy elektromágneses teret hoz létre, melynek kiterjedése a mérőtérfogatot (azt a térrészt, ahol a mérések elvégezhetőek, az eredmények pedig hitelesnek tekinthetőek) meghatározza. Ez általában félgömb alakú, melynek sugara 1-3 méter (NEBEL ET AL., 2000). Az adó egységet ezen félgömb középpontjában kell elhelyezni (2-5. ábra). (a) elülső félgömb konfiguráció (b) alsó félgömb konfiguráció 2-5. ábra. Elektromágneses rendszer mérőtérfogatának elrendezései 7 Az elektromágneses rendszerek érzékelők (markerek) mind a hat szabadságfokát (6DoF) mérni tudják: a térbeli pozíció, mellett az orientáció is rögzíthető(kiss, KOCSIS, és ILLYÉS, 2007a). Így egy darab marker is használható merev clusterként. További előnye, hogy a kitakarásra nem érzékeny: a mérést nem befolyásolja, ha az adó és érzékelő között más tárgyak is elhelyezkednek. Ez lehetővé teszi az érzékelők elhelyezését a mért személy adótól távolabbi vagy belső oldalain is. A rendszer hátránya a limitált távolság. Egy 3 méteres sugarú térfogatban legfeljebb futószalagon végzett járásvizsgálat kivitelezhető. A mozgások mérését az érzékelőket és az adatgyűjtő egységet összekötő kábelekak adályozhatják. Ezek a szokatlan érzés miatt akkor is elérést okozhatnak az alany mozgásában, ha egyébként nem korlátozzák azt. A markerek maximális számát az adott vezérlő egység csatlakozóinak száma határozza meg, ami szintén korlátozó tényező lehet. Elektromágneses méréseknél figyelni kell arra, hogy az elektromágneses teret a fémes tárgyak megzavarják, így a mérési eredményt meghamisíthatják. Ha a mérés során valamilyen fémből készült tárgyal való mozgást kell vizsgálni, akkor arról egy más anyagból készült replikát kell készíteni, aminek dinamikai tulajdonságai a tömeg eltéréséből adódóan különbözhetnek az eredetitől, így nem hiteles eredményt adhatnak. Ma már az elektromágneses rendszereket vizsgálatokra ritkán alkalmazzák. Inkább irányítás, pozicionálás jellegű feladatokra használják, ahol az érzékelést jól definiálható térrészben kell 7 NEBEL ET AL., 2000 10
végrehajtani. A legismertebb ilyen termékeket az Ascension cég forgalmazza (2-6. ábra). Ezek jellemzően két méternél kisebb hatótávolsággal rendelkeznek, mintavételezési frekvenciájuk 255 Hz-ig állítható, és egyszerre négy érzékelőt képesek kezelni. A rendszer pontossága a gyártó szerint 1.4 mm. 8 2-6. ábra. Ascension trakstar elektromágneses rendszer 8 2.3.2. ULTRAHANG-ALAPÚ RENDSZEREK Az ultrahang alapú rendszerek háromszögelésen alapuló helymeghatározást alkalmaznak. Az adó egység egy rövid ultrahang impulzust generál, amit egy vevő érzékel. A kibocsátás és az érzékelés között eltelt idő a belső órajelek segítségével számolható (HUITEMA ET AL., 2002). Ebből a két egység távolsága: d = t v s, (2.1) ahol d a távolság méterben (m), t az impulzus terjedésének időtartama másodpercben (s), és v s a hanghullámok terjedési sebessége a levegőben, m/s-ban megadva. Ez a mennyiség a következő módon számolható: v s = κ R T, (2.2) ahol κ az izentropikus együttható, értéke κ = 1.4 levegőben; R az egyetemes gázállandó, értéke R = 287.14 m 2 s 2 ; T pedig a közeg hőmérséklete (K) (KISS, KOCSIS, és KNOLL, 2004; KOCSIS ET AL., 2004). Az adók és vevők szerepe felcserélhető, mindkettő mérőfejként vagy markerként is alkalmazható. A mérőfejben három adó/vevő egység található, melyek egymáshoz képest elmozdulásmentesen vannak beépítve, és pozíciójuk az általuk meghatározott koordináta-rendszerben ismert. A már ismert módszerrel a követett marker távolsága mindhárom egységtől meghatározható, a háromszögelés módszerével annak pozíciója kiszámítható (2-7. ábra). A rendszer jellegzetessége, hogy egyszerre egy adó működtettethető. A jelek interferenciát okoznának, így nem lenne azonosítható melyik impulzus melyik adótól származik (HUITEMA ET AL., 2002). Ez a sajátosság határozza meg, hogy adókat vagy érzékelőket érdemes-e alkalmazni a mérőfejben. Érzékelők használata esetén (passzív mérőfej) a mérés frekvenciáját a markerszám fogja meghatározni. Egy perióduson belül az összes adó pozícióját külön-külön kell meghatározni, ezért a markerek koordinátái nem azonos időpillanatban rögzítik. Adók használata esetén (aktív mérőfej), ciklusonként csak három impulzust kell generálni, ami nagyobb mérési frekvenciát tesz 8 http://www.ascension-tech.com/products/trakstar-drivebay/, elérés dátuma: 2016.12.03. 11
2-7. ábra. Adó típusú (aktív) marker pozíciójának meghatározása ultrahangos módszerrel X a, Y a és Z a a keresett koordináták, D 1, D 2 és D 3 a marker egyes érzékelőktől való távolsága, X, Y és Z a mérőfej által meghatározott koordináta-rendszer, l és h az érzékelők távolságai 9 lehetővé, de a háromszögeléshez használt három távolságot nem azonos idő pillanatban mért. Ez a megoldás ezért kevésbé alkalmazott. Az ultrahang-alapú rendszer jelentős hátránya, hogy a felvétel készítése nem pillanatszerű. A ciklusidő a mérés hatótávolságát is befolyásolja, mivel az adott idő alatt a hanghullám csak véges távolságra jut el. Ez a távolság 40 Hz-es frekvencián (25 ms cilklusidő) esetén kicsit több mint 8 méter (HUITEMA ET AL., 2002). Az elektromágnes-alapú rendszerekhez hasonlóan itt is minden markert kábellel egy központi egységhez kell csatlakoztatni, ami a mozgást akadályozhatja. A kitakarás is problémát okozhat: ha az adó és vevő egységek közé valamilyen tárgy kerül, az a mérést elronthatja, egy mérőfely esetén a markereket csak a vizsgált személy mérőfej felőli oldalán lehet elhelyezni. A modern technikai eszközök (okostelefon, tablet) szintén befolyásolhatják a méréseket. Az ultrahang-alapú méréseket rendszeresen alkalmazzák klinikai mozgásvizsgálatban. A legismertebb gyártó a zebris Medical GmbH 10. A rendszer 100 Hz/marker-es mintavételezési frekvencián 1,8-2,5 méteres hatótávolsággal rendelkezik. A rendszer pontossága az adó és vevő távolságának a függvénye, 0,5-2 mm közötti. 11 2.3.3. OPTIKAI-ALAPÚ RENDSZEREK Az optikai (sztereofotogrammetriának is nevezett) alapon működő rendszerek kettő vagy több kamerából, és ezek működését összehangoló, képüket feldolgozó számítógépből és szoftverből áll. Alapelve, hogy a marker képe, a képet készítő kamera pozíciójának és orientációjának ismeretében a térben egy egyenest határoz meg, mely a kamera középpontját és a markert köti össze. Ha az adott marker kettőnél több kamera képén szerepel, akkor kettő vagy több ilyen egyenes határozható 9 KISS, KOCSIS, és KNOLL, 2004 10 http://www.zebris.de, elérés dátuma 2016.12.03. 11 http://pdf.medicalexpo.com/pdf/zebris-medical/cms-hs/70604-110767.html, elérés dátuma 2016.12.03. 12
meg, melyek a marker térbeli pozíciójában fogják metszeni egymást. A két egyenes egyenleteiből a keresett koordináták számíthatóak (CHIARI ET AL., 2005). Speciálisan ilyen alkalmazásra tervezett kamerák, és azok adatainak feldolgozását végző szoftver együttese a MoCap rendszer. A mérés általában az infravörös fény tartományában történik,így a markerek a környezetüktől könnyen elkülöníthetőek a nagy kontraszt miatt. A használt jelölők lehetnek aktív vagy passzív markerek is: az aktív változat egy infravörös LED fényforrást tartalmaz, míg passzív markerek a kamerákban elhelyezett fényforrás sugarait verik vissza (1-2a. ábra) (a) kalibrációs eszköz (b) kalibráció folyamata 2-8. ábra. OptiTrack motion capture rendszer kalibrációja Az ultrahang- és elektromágnes-alapú rendszerektől eltérően több, egymáshoz nem mereven rögzített érzékelő (kamera) található. Ezek egymáshoz és a mérés koordináta-rendszeréhez viszonyított helyzetét egy kalibrációs eljárás során kell meghatározni. A kalibráció általában a MoCap rendszerhez tartozó szoftverrel és kalibrációs eszközzel (2-8. ábra) egyszerűen elvégezhető. A folyamat végén a szoftver megadja a kalibrálás minőségét jellemző instrumentális hibát (2-8. ábra). 2-9. ábra. OptiTrack rendszer kalibrációjának eredménye Az optikai-alapú rendszerek kiépítési költsége az előző módszerekhez képest nagy, de cserébe 13
nagy pontosságúak. Megfelelő mennyiségű kamera használatával tetszőleges nagyságú mérőtérfogat alakítható ki, kültéren is, ami állatok mozgásának vizsgálatakor fontos lehet. A kitakarásból adódó problémák megfelelő elrendezéssel minimalizálhatóak. A használható kamerák számát a MoCap szoftver és az azt futtató PC hardvere határozza meg. A kamerák több típusban kaphatóak, melyek közül a felhasználó a céljának megfelelőeket választhatja ki. Mintavételezési idejük, pontosságuk, látótávolságuk és látószögük típusról-típusra eltérő (2-10. ábra). A kutatáshoz használt OptiTrack rendszer paraméterei a 1.3. alfejezetben találhatóak összefoglalva. 2-10. ábra. Kamerák az OptiTrack kínálatából 12 Az optikai-alapú mozgásvizsgáló rendszerek markereit nem szükséges kábellel csatlakoztatni, mivel azok nem tartalmaznak érzékelőket. Ebből adódó hátrány, hogy az egyes jelölők nem megkülönböztethetőek. Eltérő alakú vagy méretű jelölőkkel ez megoldható lenne, ez viszont jelentősen növelné a képfeldolgozás erőforrás igényét, lassítaná a folyamatot, és a markerek méretének növekedésével járna. Az információkat, feldolgozásához ismerni kell melyik anatómiai ponthoz tartozik az adott adatsor. Ez az összerendelés a szoftverben elvégezhető, de program ezt csak addig tudja követni, amíg az adott marker minden képkockán látszik. Ha a marker valamiért kitakaródik, egy vagy több képkockán keresztül nem látható, akkor a feltűnése után új markerként fog megjelenni. Ennek eredménye, hogy vizsgálat után hosszadalmas utófeldolgozás szükséges: egy hozzáértő személynek minden ilyen szakadásnál újra azonosítania kell a markert. Ha három vagy több markert egymáshoz képest merev módon rigidbodyként összekapcsolunk (1-2b. ábra), akkor azt a rendszer automatikusat azonosítani tudja, a markerek között lévő egyedi távolságok alapján (a szimmetrikus elrendezések kerülendők). Ezeket a marker együtteseket merev testeknek szokás nevezni. A MoCap rendszer a merev test markereinek pozíciójából azt egy pozícióval és egy orientációval tudja jellemezni (egyedüli markert csak pozícióval). A rigidbody kiterjedése nagyobb, mint az egyedüli markerek, így anatómiai pontok követésére közvetlenül nem alkalmasak. Erre a problémára ad megoldást a bemutatott kalibrációs technika (2.2.2. szakasz). 12 http://optitrack.com/hardware/compare/, elérés dátuma 2016.12.01. 14
3. RIGID CLUSTER PROTOKOLL FEJLESZTÉSE A MUBMA programmal végzett mérések egy optikai MoCap rendszer segítségével, az anatómiai pontok kijelölése a bemutatott kalibrációs eljárással (2.2.2. szakasz) történik. A szegmensek lokális koordináta rendszereinek követése merev clusterekkel történik, melyek elasztikus, tépo zárral állítható pántok segítségével kerülnek rögzítésre a testen. Ezzel a rendszerrel viszonylag pontos mérések végezheto ek. A bevont anatómiai pontok a test bármely részén elhelyezheto ek, de a szegmensekhez tartozó rigidbodyknak a mért mozgás során mindig látszaniuk kell. A rigidbodykat a MoCap rendszer az egyedi markertávolságok alapján azonosítani tudja, nincs szükség hosszadalmas utófeldolgozásra. Nincs szükség az egyes markerek adatait újra valamilyen azonosítóhoz rendelni, ha az néhány képkockára eltu nt. A clustereket elég egyszer definiálni a MoCap programban, a mérés megkezdése elo tt azokat a megfelelo szegmensekre kell csak rögzíteni. Az általunk kalibrációs eljárás alkalmazása a többszörös kalibráción alapuló lágyszövet hiba kompenzációs eljárások implementációját is leheto vé teszi (2.2.2. szekció). A program egyik célja, hogy optikai-alapú mozgásvizsgáló eszközzel kórházakban, rehabilitációs intézményekben könnyen használható használható, utófeldolgozás mentes mérést tegyen leheto vé, amellyel a mozgás kinematikáját leíró paraméterek meghatározhatók. Ennek feltétele a feladatnak megfelelo biomechanikai modell felállítása, amely definiálja a vizsgálatba bevonsára kerülo testszegmensek és anatómiai pontokat. 3.1. A használt biomechanikai modell A klinikai alkalmazásban is használható alap mérési modell 7 testszegmenst és 23 anatómiai pontot tartalmaz. A testszegmensek a két láb, a két lábszár, a két comb és a medence (3-1. ábra). A bevont anatómiai pontokat a 3-2. ábra mutatja. A használt biomechanikai modell alapja a Mozgászervek Biomechankiája címu könyvben található (K ISS, KOCSIS, és I LLYÉS, 2007b) szintén 23 pontból álló modell. A változás az, hogy a lábon található II. és IV. lábujj anatómiai pontok a láb két szélén található bütykökre módosítottuk. Ennek oka, hogy a lábujjak és a láb merev testjéhez ízületekkel kapcsolódik, így azok járás közben egymáshoz képest elmozdultak. 3-1. ábra. Alapmérés testszegmensei Pelvis - medence, Right Thigh - jobb comb, Right Shank - jobb lábszár, Right Foot - jobb láb, Left Thigh - bal comb, Left Shank - bal lábszár, Left Foot - bal láb 15
3-2. ábra. Alapmérés anatómiai pontjai 1 ROSL - jobb külső lencsecsont (ossea sesamoidea lateral), ROSM - jobb belső lencsecsont (ossea sesamoidea medial), RMM - jobb belső boka (medial malleolus), RCT - jobb sarok (tuber calcanei), RLM - jobb külső boka (lateral malleolus), RTT - jobb sípcsonti dudor (tuberositas tibiae), RFIH - jobb szárkapocs fejecs (caput fibuale), RFELE - jobb combcsont külső ízületi bütyke (epicondylus lateral femoris), RFEME - jobb csombcsont belső ízületi bütyke(epicondylus medial femoris), RGT - jobb nagytompor (trochanter major), RASIS - jobb elülső csípőtövis (spina iliaca anterior superior), LOSL - bal külső lencsecsont (ossea sesamoidea lateral), LOSM - bal belső lencsecsont (ossea sesamoidea medial), LMM - bal belső boka (medial malleolus), LCT - bal sarok (tuber calcanei), LLM - bal külső boka (lateral malleolus), LTT - bal sípcsonti dudor (tuberositas tibiae), LFIH - bal szárkapocs fejecs (caput fibuale), LFELE - bal combcsont külső ízületi bütyke (epicondylus lateral femoris), LFEME - bal csombcsont belső ízületi bütyke(epicondylus medial femoris), LGT - bal nagytompor (trochanter major), LASIS - bal elülső csípőtövis (spina iliaca anterior superior), SPISV - ötödik keresztcsonti csigoja (SV) tövisnyúlványa (spinosus processus vertebrae sacralis V) 3.2. Rigidbody pozíció és rögzítés vizsgálata A MUBMA mérést vezérlő program és a mérési módszer fejlesztése közben elengedhetetlen tesztmérések végzése. Az ezek során gyűjtött tapasztalatok nagyon fontosak abban, hogy a szegmensek mérésére használt merev clustereket hova és milyen módszerrel érdemes rögzíteni, továbbá a clusterek milyen kialakítással adják a legmegbízhatóbb eredményt. A megfogalmazott követelmények a következők: A clusterek könnyen és gyorsan rögzíthetőek legyenek A mérés időtartama alatt ne mozduljanak el A mérés alanyát ne akadályozzák mozgás közben 1 Az ábra az OpenSim program segítségével készült (DELP, ANDERSON, ET AL., 2007) 16
A mozgás során mindig láthatóak legyenek a kamerarendszer számára A kalibrációt ne akadályozzák Ezen szempontok alapján történő elemzés alapján az optimális rögzítés kialakítható, azaz a rögzítés optimális módjára, helyére, és a marker cluster alakjára javaslat tehető. 3.2.1. LÁB RIGIDBODY VIZSGÁLATA A láb rigidbody rögzítése egy rövid, elasztikus, tépőzáras pánt segítségével történik. A pántot úgy kell elhelyezni, hogy a mozgást ne akadályozza, ezért a láb boltívének három alátámasztási pontját nem fedheti. Ebből adódóan a láb közepére kell elhelyezni, úgy, hogy a pánt a boltív felső ívét fedje. A pántra szintén tépőzár segítségével rögzített rigidbodynak a láthatóság miatt a felső részen kell elhelyezkednie. Ha túlságosan a külső szélre helyezzük, akkor a rigidbody egy vagy több tüskéje a talajhoz érhet, ami az orientációban hibát okozhat. Ha túlságosan belülre kerül, akkor járás során előfordulhat, hogy az alany másik lábával belerúg az egyik tüskébe, ami az egész clustert elmozdítja és a mérés érvénytelen. Figyelni kell arra, hogy a tüskék a járás során a lábhoz ne érjenek. A gyári rigidbody szélessége nagyságrendileg azonos mint, az átlagos láb szélessége, ezért nagyon nehezen pozicionálható úgy, hogy mindegyik követelmények eleget tegyen, főleg kisebb testalkatú személyeken. A jelenleg használt clustereknél a bal láb egyik markere gyakran nagyon közel kerül a külső lencsecsonthoz (LOSL anatómiai pont), ami ennek kalibrálását nehézkessé teheti. A javasolt megoldás egy olyan cluster kialakítása, melynek kiterjedése az eddig használténál kisebb, és a markerek a lábra merőleges irányban vannak elhelyezve az azzal párhuzamos sík helyett. A rögzítő pánt tépőzár nélküli kialakítása (lábujj és sarok rész nélküli zokni) a beöltözés folyamatát meggyorsíthatja, hiszen ekkor csak bele kell bújni, és a pánt feszessége nem lesz befolyásoló tényező. Praktikus lehet 3-4 különböző méret kialakítása. A jelenlegi és a javasolt módosított kialakítás a 3-3. ábrán látható. 3-3. ábra. A jelenlegi (bal oldal) és a javasolt (jobb oldali) rigidbody elrendezés és kialakítás a láb szegmensére 3.2.2. LÁBSZÁR RIGIDBODY VIZSGÁLATA A lábszáron elhelyezett rigidbody viszonylag probléma mentes, megbízhatósága néhány egyszerű megfontolás alapján javítható. A jelenlegi rögzítése egy sportokhoz használt lábszárvédővel történik (3-4. ábra), amely két, vékonyabb pánttal rögzíthető a lábszárra. A felső pántot érdemes 17
úgy elhelyezni, hogy a vádli izomhasa fölé kerüljön megakadályozva a lábszárvédő lecsúszását. A műanyag lap túl magasra sem kerülhet, mert akkor a sípcsont dudor anatómiai pont kalibrálását akadályozhatja. Tapasztalatok alapján a rigidbodyt a lábszárvédő laterális (külső) oldalára érdemes helyezni, így a láthatóság megoldott, és a mozgást sem akadályozzák. 3-4. ábra. A lábszár szegmens követésére használt rigidbody és lábszárvédő A rögzítés stabilitásának javítására a lábnál is javasolt módszer alkalmazható. A két vékony pánt helyett egy széles (a lábszár hosszának felét vagy többet lefedő), rugalmas pántot alkalmazhatunk, melyet elég a vádlira felhúzni (mintha egy nadrágba bújna bele a vizsgált személy). A lábszárvédő merev műanyag lemezt erre a pántra 3-4 ponton tépőzárral (ezt a pántra varrható, vagy ragasztható) egyszerűen rögzíthető. A markerek a lábszárvédőre egy ragasztópisztollyal vagy más módszerrel fixen is rögzíthetők. A követés megbízhatósága több marker (4-6 darab ideális lehet) alkalmazásával javítható. Az elrendezésükben nem lehet szimmetria, szingularitások elkerülése miatt. A MoCap program szimmetria esetén nem tudja megkülönböztetni, hogy a rigidbody előre vagy hátrafelé áll. A jelenlegi és a javasolt elrendezés a 3-5. ábrán látható. 3-5. ábra. A jelenlegi (bal oldal) és a javasolt (jobb oldali) rigidbody elrendezés és kialakítás a lábszár szegmensére 18
3.2.3. COMB RIGIDBODY VIZSGÁLATA A combra helyezett rigidbody a lábéhoz hasonló módon, egy darab tépőzárral állítható, elasztikus pánt segítségével rögzíthető. Az elhelyezés a szegmens felső részén célszerű a lecsúszás elkerülése miatt: az alsóbb részeken, ahol a comb lefele már keskenyedik a lecsúszás problémát jelent. Itt a comb oldalán elhelyezett rigidbodyt járás közben a kéz kitakarhatja. Így érdemes azt a szegmens anterior vagy posterior (elülső vagy hátsó) oldalán elhelyezni. Futószalagos vizsgálat esetén a rigidbodyt elölről a konzol kitakarhatja, ezért a a posteriori elhelyezés a javasolt. Ügyelni kell, hogy ne kerüljön túlságosan a belső félre, mert ebben az esetben járás közben a két rigidbody akár össze is akadhat. A stabilitás javítására, a csúszás elkerülésére, és a gyors beöltözés elősegítésére itt is alkalmazható a már bemutatott, jelentős szélességű elasztikus pánt, mely tépőzár nélkül, bebújással felvehető. A rigidbody ehhez tépőzáras rendszerrel kapcsolható. Érdemes az esetleges kitakarások elkerülése miatt háromnál több markert alkalmazni, amelyek közül egy vagy több a rigibody síkjából kifele mutató tüskén helyezkedik el. A jelenlegi és a javasolt elrendezés a 3-6. ábrán látható. 3-6. ábra. A jelenlegi (bal oldal) és a javasolt (jobb oldali) rigidbody elrendezés és kialakítás a comb szegmensére 3.2.4. MEDENCE RIGIDBODY VIZSGÁLATA A medence lényegesen eltér az eddig vizsgált szegmentumoktól, melyek általában hosszúkás, hengeres alakkal rendelkeznek. A rögzítés egy hosszú, a comb és lábon alkalmazottal megegyező típusú pánttal történik, mely a medencére széltében feszül rá. A cluster elhelyezésére a combnál már elemzett okokból a hátulsó pozíció ajánlott. A szimmetrikus elhelyezés preferált, ellenkező esetben az esetleges orientációs hiba a távolabbi oldal elülső csípőtövis anatómiai pontjában nagyobb hibát fog okozni, mint a közelebb esőben. Ennek alapján az ideális pozíció a keresztcsont. A közvetlenül e felett található ágyéki görbület miatt az alkalmazott rigidbody felcsúszva belesüpped a homorú felületb, amely orientációs hibát okoz, és a kitakarás veszélyét is növeli. Ezen felül az SPISV anatómiai pont kalibrálása nehézkes lehet, mert az szintén ezen a területen helyezkedik el. A medence pontos mérése elég nehézkes, mivel ez a terület viszonylag távolabb helyezkedik el a legközelebbi ízülettől (csípőízület), és a rögzítésre használt elasztikus pánt a megszokottnál jóval nagyobb kerületet fog át. Feltételezhető, hogy a hiba csökkenthető, ha a clustert közvetlenül a bőrre ragasztjuk fel a keresztcsont felett. Erre vonatkozó mérések a szakirodalomban nem találhatóak, 19
ezért ez egy jövőbeli kutatás témája. Ez megköveteli a cluster alakjának módosítását is, célszerű a tüskén a merkereket a síktól kifelé elhelyezni. Ez a SPISV pont kalibrálását könnyítheti, mind a láthatósági problémákat csökkentheti. Itt is javasolt háromnál több marker alkalmazása, hogy egy kitakarásának esetében is meghatározható maradjon a szegmens helyzete. A jelenlegi és a javasolt elrendezés a 3-7. ábrán látható. 3-7. ábra. A jelenlegi (bal oldal) és a javasolt (jobb oldali) rigidbody rögzítés a medence esetében 20
4. KALIBRÁCIÓ A MOGI UNIVERSAL BIOMECHANICAL MOTION ANALYZER PROGRAMMAL A MUBMAelsődleges funkciója az anatómiai pontok kalibrációval (2.2.2.1. pont) való követése. Ez a fejezet bemutatja a program kalibrácós funkciójának használatát, a kalibráláshoz használt mutatópálcát, a kalibráció és anatómiai pont követés matematikai hátterét, és a kalibrációhoz kapcsolható anatómiai pont elhelyezési hiba mérését. 4.1. A kalibrációs eljárás A kalibrációs eljárás előtt a vizsgált személyre a szegmenseket követő merev clustereket rögzíteni kell, melynek módját az előző fejezet tárgyalja. A vizsgáló személy és vizsgált személynek is meg kell győződnie, hogy a clusterek rögzítése elmozdulásmentes. A kalibráció elvégzésére a vizsgáló személy a következő eszközöket használja: mutatópálca, rádiófrekvenciás távirányító(4-1. ábra) és a MUBMA program kalibrációs varázsló funkciója (4-2. ábra). 4-1. ábra. Kalibrációs háromszög és rádiófrekvenciás távirányító A kalibrációhoz használt mutatópálca az OptiTrack rendszer egy háromszög alakú eszköze, mely eredetileg a rendszer koordináta-rendszerének felvételére szolgál. A kalibrációs pont a háromszög derékszögénél található sarka. A rádiófrekvenciás távirányító egy arduinora szerelt vevővel kommunikál, ami a számítógéphez USB-n keresztül csatlakozik. Segítségével a vizsgáló személy az anatómiai pontok között lépkedhet, és a kalibráló utasítást kiadhatja. Így lehetővé válik, hogy a mérést egy ember is elvégezhesse. Távirányító nélkül egy asszisztens segítsége szükséges, 21
4-2. ábra. A MUBMA kalibrációs varázsló felülete a - Anatómiai pontok helyét mutató segédábra, b - kiválasztott anatómiai pont száma és neve, c - anatómiai pontok listája, d - navigációs gombok aki a számítógépnél a kalibrációs gombot megnyomja. Az anatómiai pont kalibrációjához a vizsgáló személy kitapogatja az adott pontot, majd a mutatópálca kalibrációs pontját ráhelyezi (4-3. ábra). A távirányító megfelelő gombjának megnyomásával a kalibrációs utasítás kiadható. A kalibrációs varázsló felület segíti a kalibráció folyamatát. A soron következő anatómiai pont neve és sorszáma nagy felirattal látható, így az távolról is jól olvasható. A navigációs gombokkal vagy a távirányító segítségével a pontok között előre vagy hátra lehet mozogni. A CalibrateAnatPoint gomb megnyomásakor a program a MoCap rendszertől kapott legutóbbi képkocka alapján elvégzi a kalibrálást: a kalibrációs pont koordinátáit kiszámítja a megfelelő szegmens lokális koordináta-rendszerében, és hozzárendeli a kijelölt anatómiai ponthoz. Ha a kalibráció sikeres, a megfelelő sor zöld színnel jelenik meg, és a varázsló automatikusan a következő pontra lép. Ha a használt képkockán a mutatópálca vagy a használt szegmens nem látható, azaz nem látszik legalább három markere, akkor a varázsló egy hibaüzenettel a felhasználót figyelmezteti, hogy a kalibráció sikertelen volt. A mérés bármely időpontjában bármely pont újrakalibrálható, ha valamilyen hiba miatt (rigidbody elmozdulása) erre szükség van. A kalibráció egy szöveges állományba menthető, amely tartalmazza a kalibrált anatómiai pontok lokális koordinátáit, nevüket, sorszámukat és a biomechanikai modell egyedi azonosítóját. A kalibráció ebből a fájlból akármikor visszatölthető. Ha a felhasználó egy eltérő modellhez tartozó kalibrációt próbál betölteni, akkor a program erre 22
4-3. ábra. RFIH anatómiai pont kalibrációja a mutatópálcával egy felugró ablakkal figyelmeztet. 4.2. A mutatópálca kalibrációja A MUBMA programban a mutatópálca egy szegmens, a kalibrációs pont pedig hozzá tartozó virtuális anatómiai pont, helyzetét a mutatópálca saját koordináta-rendszerében meg kell határozni. A mérés a következőket használja ki: A MoCap rendszer Motive szotveréből a rigidbodyk középpontjának globális koordinátái, és a rigidbodyt alkotó markerek koordinátái kiolvashatóak A kalibráló háromszög oldalai derékszöget zárnak be, így az alapján a MoCap rendszer globális koordináta rendszere definiálható A háromszöget alkotó markerek koordinátái alapján középpontját és egy ismert pontot összekötő vektor oldalakkal párhuzamos komponensei meghatározhatók A Motive úgy határozza meg a rigidbody orientációját, hogy annak lokális koordinátarendszerének tengelyei a globális tengelyekkel párhuzamosak Ezek alapján a kalibrációs pont lokális koordinátái a háromszög koordináta-rendszerében egy Motive méréssel meghatározhatóak. Ehhez a mutatópálca lokális koordináta-rendszerét úgy kell definiálni, hogy annak tengelyei az oldalakkal párhuzamosak legyenek. Legyen a háromszög mérési térfogatban, a talajon elhelyezve. A Motive programban a három markerrel a mérés globális koordináta-rendszere definiálható: az x tengely a háromszög rövidebbik, a z tengely a háromszög hosszabbik oldalával párhuzamos, az y tengely a jobbsodrású koordináta rendszer definíciójából kiadódik. Az origó a derékszögnél lévő marker lesz. Ha a háromszöget ekkor rigidbodyként definiáljuk akkor a lokális koordináta-tengelyek a globális koordináta-rendszer tengelyeivel, és így háromszög oldalaival is párhuzamosak. Az így definiált rigidbody külön fájlba exportálható. Ez után a globális koordináta-rendszer újradefiniálható úgy, hogy az origó egy jól kijelölhető pont legyen. Erre a célra a mozgásvizsgáló laboratóriumban három apró, kör alakú talajra ragasztott fényvisszaverő matricát használunk, amelyek két derékszöget bezáró egyenest határoznak meg. A derékszögűséget a mérőtérfogat padlóján geodéziai mérésekkel meghatározott pontok használata biztosítja. Mérések végzésekor ezek a matricák letakarásra kerülnek, így a mérést nem zavarják. 23
4-4. ábra. Kalibrációs háromszög mérési elrendezése Legyen a háromszög a földön úgy elhelyezve, hogy csúcsa mutasson az origóra (4-4. ábra)! A Motive segítségével egy rövid felvétel készíthető erről az állapottól, amit visszajátszva és megállítva a középpont, és a három markerek koordinátája leolvasható. Keresett az kalibrációs pont l lokális vektora, azaz a P O vektor oldalakkal párhuzamos komponensei, ahol P a mutatópálca rigidbody középpontja, O pedig az origó. A mutatópálca markereinek elnevezése a 4-4. ábrán látható. Ekkor: l x = P O ABn, (4.1) l y = P O y 2, (4.2) l z = P O ACn, (4.3) ahol ABn és AC n rendre az AB és AC vektorok normalizáltjai, azaz AB n = AC n = AC n = AB AB, (4.4) AC AC, (4.5) AC AC, (4.6) ahol AB és AC vektorok a megfelelő markerek helyvektorainak különbségéből számolhatóak: AB = b a, (4.7) 24
AC = c a, (4.8) ahol a, b és c rendre A, B és C markerek Motive-ból kiolvasott helyvektorai. A P O vektor megegyezik a P pont helyvektorával, amit szintén adott. Az függőleges (y) koordináta meg fog egyezni P pont y koordinátájával, mivel ha a háromszög a talajon, azaz az x-z síkon fekszik, lokális y koordináta-tengelye mindig párhuzamos a globális y tengellyel. l y értékének számítását az indokolja, hogy a derékszögű csúcs élének közepe nagyjából félúton van a talaj és a markerek magassága között. A mérést ötször elvégezve, az eredményeket átlagolva az l vektora adódó érték: l = ( 58.17; 10.44; 76.83) (4.9) ahol az eredmények mm-ben értendőek. Az öt mérés mindegyikénél a mutatópálca az origó körül más szögben helyeztük el úgy, hogy a kalibrációs sarok minden esetben az origón volt. 4.3. A kalibráció és a kalibrált anatómiai pont követésének matematikai háttere a kalibrálást és a kalibrált anatómiai pontok követését a Motive program adatai alapján a MUB- MA program végzi. Az adatok átadása az OptiTrack NatNet 1 protokollján keresztül történik. Az átadott adatok a követett szegmensek pozícióját és orientációját tartalmazzák. A Motive program jobbsodrású koordináta-rendszert alkalmaz, amelynek függőleges tengelye az y tengely. Beállítás alapján az átadott adatokat z függőleges tengelyű jobbsodrású rendszerbe konvertálja. A MUBMA program a z tengelyt tekinti függőleges tengelynek. Ügyelni kell arra, hogy az előző alfejezetben meghatározott kalibrációs pont lokális koordinátáit ebbe a rendszerbe kell transzformálni(z és y koordináták megcserélődnek, az új y koordináták egy negatív előjelet kapnak), mielőtt a MUBMA programnak megadjuk. Az kalibráció és az anatómiai pont követés térbeli koordináta-geometriai számítások elvégzését igényli: vektorok összeadását vagy kivonását, és a koordináta-tengelyek körüli forgatásokat, amelyek mátrixalgebrai műveletek. A forgatások három alapegysége az x, y és z tengelyek körüli, α szöggel való forgatás, melynek képletei rendre: X(α) = Y (α) = Z(α) = 1 0 0 0 cos(α) sin(α) 0 sin(α) cos(α) cos(α) 0 sin(α) 0 1 0 sin(α) 0 cos(α) cos(α) sin(α) 0 sin(α) cos(α) 0 0 0 1, (4.10), (4.11), (4.12) A MUBMA program a szegmensek orientációját ZX Z konvenciójú Euler szögek segítségével tárolja. A Motive program ezt az információt kvaterniókban adja át, de az SDK könyvtáraiban lévő metódus segítségével az akármilyen konvenció szerinti Euler szögekbe konvertálható. 1 http://optitrack.com/products/natnet-sdk/, elérés dátuma: 2016.09.15. 25
Legyen a kiindulási alap az anatómiai pont lokális l helyvektora a globális koordináta-rendszerben. Ezt először a szegmensének megfelelő orientációba kell forgatni egy megfelelő forgatási mátrix segítségével: ahol R a szegmens orientációjából számolható: f = R l, (4.13) R = Z(α) X(β) Z(γ), (4.14) ahol α, β, γ a szegmens orientációját leíró három szög az ZX Z konvenciónak megfelelően. Az anatómiai pont g globális koordinátáinak számításához az elforgatott f vektorhoz a szegmens s helyvektorát hozzá kell adni: g = f + s (4.15) A (4.13) és (4.15) műveletek egymás utáni elvégezése egy műveletben a homogén koordinátás transzformációs mátrix segítségével hajthatóak végre: g h = T l h = R 11 R 12 R 13 s x R 21 R 22 R 23 s y R 31 R 32 R 33 s z 0 0 0 1 l x l y l z 1 = R 11 l x + R 12 l y + R 13 l z + s x R 21 l x + R 22 l y + R 23 l z + s y R 31 l x + R 32 l y + R 33 l z + s z 1 (4.16) A keresett g helyvektor a g h homogén koordinátás vektor első három értéke. A számítógépek arithemtiakai egységeinek felépítése miatt a (4.16) egyenlet számítása gyorsabb, mint (4.13) és (4.15) együttes számítása. A kalibrációs művelet ennek a számításnak a fordítottja. A kalibrációs pont g cal globális helyvektorú kalibrációs pont f cal lokális koordinátái keresettek a megfelelő szegmens lokális koordinátarendszerében. Ezt a (4.13) és (4.15) műveletek megfordításával érhetjük el f cal = R 1 (g cal s ), (4.17) ahol R 1 inverze mátrix könnyen számítható. Az R mátrixot kiadó forgatásokat fordított sorrendben és irányban kell elvégezni: R 1 = Z( γ) X( β) Z( α) (4.18) Könnyen belátható, hogy az így definiált R és R 1 mátrixok egymás inverzei. Ha a két forgatást egy vektoron egymás után elvégezzük, akkor önmagát kapjuk vissza. Ebből a két mátrix szorzata az egységmátrix, ami az inverz mátrixok definíciója. 4.4. Anatómiai pont elhelyezési hiba mérése Az itt ismertetett mérésből Effect of anatomical landmark placement variation on the angular parameters of the lower extremities címmel konferencia cikk készült a 2017. februárjában, Innsbruckban megrendezésre kerülő IASTED Boimedical Engineering konferenciára, melynek szerzői RÁCZ KRISTÓF, NAGYMÁTÉ GERGELY és KISS RITA M.. A cikk a szakdolgozat beadásának időpontjában bírálat alatt állt. 26
4.4.1. A MÉRÉS CÉLJA A mérés célja a használt MoCap rendszer és mérési eljárás anatómiai pont elhelyezési hibájának, és a járásvizsgálat jellemző paramétereire való hatásának elemzése. A Feltételeztük, hogy ezek a járás szabályosságának(a mozgás szórás jellegű paraméterei) nagysegrendjébe esnek. A szakirodalomban található anatómiai pont elhelyezéssel foglalkozó publikációkban (DELLA CROCE, CAPPOZZO, ET AL., 1999; DELLA CROCE, LEARDINI, ET AL., 2005; RABUFFETTI ET AL., 2002) a OptiTrack MoCap rendszer kevéssé használt és dokumentált. 4.4.2. A VIZSGÁLT SZEMÉLY A vizsgálat alanya egy fiatal, egészsége férfi (kor: 22 év, tömeg: 76,5 kg, magasság 182 cm). Az a mérésre vonatkozó összes lényeges információ ismertetése után az alany írásos belegyezését adta. A kutatást a Tudományos és Kutatásetikai Bizottság engedélyezte (21/2015). 4.4.3. A MÉRÉS LEÍRÁSA Az alany alsóneműre vetkőzött, és a merev clusterek a 3. fejezetben ismertetett módon a testszegmenseken rögzítésre kerültek. Pár perc mozgás utána, amikor csúszás már nem érzékelhető, az elasztikus pántok széleit a további csúszások megfigyeléséhez a bőrön jelöltük. A mérés befejeztével nem volt szabad szemmel is látható elmozdulás. Az ezen fejezetben bemutatott eljárás alkalmazásával tíz teljes kalibráció készült, amelyek eredményei külön szöveges fájlokban lettek mentve. Az összes kalibráció nagyjából egy órát vett igénybe. Az alany ezután a globális koordináta-rendszer x tengelyének irányában párszor le-föl sétált a mérőtérfogatban, saját szabadon választott sebességével. A járásról egy felvétel készült a MUBMA programmal, mely a rigidbodyk pozícióját, orientációját, és a láthatóságukat (látszik-e legalább három markerük) minden képkockánál rögzítette. 4.4.4. A KIÉRTÉKELÉS FOLYAMATA A kalibrációs fájlokból kinyert adatokból minden anatómiai ponthoz egy átlagos lokális helyvektor került kiszámításra. Ezt a valós helyvektrokból kivonva kaptuk meg a hibavektort. A hibavektor nagysága anatómiai pontokra, és kalibrációkra nézve is átlagoltuk, megadva az egyes anatómiai pontok és egyes kalibrációk jellemzésére alkalmas átlagos hibavektor hosszt. A MUBMA programmal rögzített járás minden kalibrációval párosítva feldolgozásra került, melynek eredménye egy-egy.trx kiterjesztésű szöveges Marker fájl, melyet az OpenSim nevű biomechanikai szimulációs program (DELP, ANDERSON, ET AL., 2007) képes beolvasni és feldolgozni. A Marker file az anatómiai pontok három koordinátáját képkockánként tartalmazza. A Gait2354_Simbody nevű muszkuloszkeletális modell marker-elrendezése a használt 23 pontos biomechanikai modellhez adaptáltuk (3-2. ábra). Egy Marker fájlon futtatott szimuláció alapján egy lépésciklus kiválasztásra került, amelyen belül nem voltak hiányzó információk, minden szegmens a ciklus minden képkockáján látható volt. A kiválasztott ciklus minden kalibrációval szimuláltuk, a medence szögeket, a kétoldali csípő flexiót, térd és boka szögeket számítottunk (a számítások DELP ET AL.1990 munkájából adaptálta a Gait2354_Simbody modell). Minden paraméter esetén számítottuk az átlag és tapasztalati szórás értékét (SD) képkockánként, és az egyes ízületi mozgásokat jellemző mozgásterjedelmet (ROM). A mozgásterjedelem az adott paraméter maximumának és minimumának különbsége. Minden paraméter egy átlagos SD értékkel jellemezhető, a nem ofszet jellegű hibákat a ROM tapasztalati szórása (ROM-SD) jól mutatja. 27
4.4.5. EREDMÉNYEK A hármas számú kalibráció hibás volt, mivel egyes pontok másik anatómiai pontokhoz lettek kalibrálva, ezért a további feldolgozásból kizártuk. Az egyes anatómiai pontokhoz tartozó átlagos hibavektor hossz a 4-1. táblázatban találhatóak. Az összes kalibrációra és pontra vonatkoztatott átlagos hibavektor hossz 8,49 mm. A számított szög jellegű paraméterek a lépésciklus % függvényében ábrázoltuk (4-6. ábra). Az átlagos SD értékek maximuma a csípő felxiónál adódott, értéke 4,38, míg a minimum értéke a medence rotációjánál adódott: 1,09. A ROM szórása minden paraméter esetében 3 alatti volt. 4.4.6. ÉRTÉKELÉS A mérés újdonsága, hogy egy kevéssé dokumentált OptiTrack MoCap rendszer kalibrációból adódó hibáit elemzi. Több kalibrációs fájl ugyanazon felvételen való feldolgozásával minden, kalibrációtól eltérő forrást kizár, ami az eredmények különbségét okozhatja. Anatómiai pont neve Szegmens Átlagos hiba, mm Átlagos hiba az irodalomban 2, mm RVM jobb láb 3,49 - RIIM jobb láb 5,02 - RMM jobb lábszár 5,23 - RCT jobb láb 3,42 - RLM jobb lábszár 4,82 - RTT jobb lábszár 8,21 - RFIH jobb lábszár 5,91 - RFELE jobb comb 12,51 - RFEME jobb comb 20,32 - RGT jobb comb 7,12 - RASIS medence 6,20 21,0 LVM bal láb 3,44 6,8 LIIM bal láb 3,03 9,0 LMM bal láb 4,42 - LCT bal lábszár 2,57 - LLM bal láb 3,64 - LTT bal lábszár 8,44 4,8 LFIH bal lábszár 12,98 5,7 LFELE bal comb 14,96 10,0 LFEME bal comb 33,23 9,8 LGT bal comb 11,36 17,9 LASIS medence 9,21 12,2 SPISV medence 5,73 - Átlag 8,49 10,8 4-1. táblázat. Anatómiai pontok átlagos hibavektor hosszai A mérés idejében a biomechanikai modell a láb szélső bütykei helyett a II. és V. lábujj ízülethez közelebbi végét használta, ezek az RVM, RIIM, LVM és LIIM elnevezésű pontok 2 DELLA CROCE, CAPPOZZO, ET AL., 1999 28
4-5. ábra. Kalibrációk átlagos hibavektor hosszai 4-6. ábra. Szög jellegű paraméterek a kiválasztott lépésciklusra A vékony vonalak az egyes adatsorokat, a vastag vonal az átlagos értéket jelöli. Minden paraméter a bal láb lépésciklus százalékának függvényében van ábárzolva. Medence dőlés (pelvis tilt) és rotáció (rotation) értéke pozitív irányú a felsé, és negatív irányú a felső térrészen. Flexió a pozitív, extenzió a negatív tengely irányába esik a csípő flexió (hip flexion) és medence billenés (pelvis list) paraméterek esetében. Térdszög (knee angle) esetében flexió a negatív, extenzió a pozitív tengelyek felé található. Bokaszög (ankle angle) esetében dorzifelxió a pozitív, plantárflexió a negatív irányba található. 29
4-7. ábra. Paraméterek átlagos tapasztalati szórás értékei A 4-1. táblázat értékeik az irodalomban találhatóakkal(della CROCE, LEARDINI, ET AL., 2005; DELLA CROCE, CAPPOZZO, ET AL., 1999) konzisztensek, 1-2 cm körüliek. Megfigyelhető, hogy a könnyen kitapogatható a anatómiai pontok, például sarok (RCT, LCT) és bokák (RMM, RLM, LMM, LLM) hibája kicsi, míg a nehezen azonosítható pontok például a combcsont ízületi bütykei (RFEME, RFELE, LFEME, LFELE) jóval átlag feletti hibával rendelkeznek. Az adatokból megállapítható mely anatómiai pontok kalibrálásánál kell különös pontossággal eljárni. Célszerű egyes anatómiai ponkat a hiba nagyságától függően kétszer, vagy akár háromszor is kalibrálni. Fontos megjegyezni, hogy a mérés több könnyen tapintható pontot is használt, mint az említett irodalom (DELLA CROCE, CAPPOZZO, ET AL., 1999), de a vizsgáló személy nem képzett fizioterapeuta. A 4-1. táblázatban eltérések oka vélhetően ez. 4-8. ábra. Mozgásterjedelem szórások a számított szög jellegű paraméterekre Az átlagos 8,49 mm-es hibavektor elfogadható, mivel a markerek méretével, és sok anatómiai pont kiterjedésével nagyságrendileg egy tartományba esik (5-10 mm). A kalibrációk átlagos hibavektorait elemezve (4-5. ábra) egyértelmű trend nem található. Értékelésüknél több lehetséges hatást is figyelembe kell venni. Ugyanazon személyen végzett vizsgálatok esetén vizsgáló egyre könnyebben azonosítja a pontokat, a kalibráló háromszög éle apró lenyomatot hagyhat a bőrön, ami megkönnyíti a konzisztens kalibrációt. Ezzel ellentétes hatás a mérés monotonitása, mivel a vizsgáló személy egyre hajlamosabb lesz a hanyag kalibrációra. A szögjellegű paramétereket elemzésével megállapítható, hogy a medence paraméterek jelentős variációval rendelkeznek. A térdszög értékek szórása kicsi (szinte egy vonalként látszódik) annak ellenére, hogy a térd anatómiai pontjainak hibái a medence pontjainál nagyobbak. Ez azzal magyarázható, hogy a combcsont nagy hosszirányú kiterjedése miatt a nagyobb hiba is kisebb 30
szöghibát eredményez. A combcsont az anatómiaai pont lokációs hibáira kevésbé érzékeny, mint a medence. A 4-7. ábra értékei numerikus közelítés adnak arra vonatkozóan, hogy a mért értékek milyen közel vagy távol eshetnek a valós értékekhez. Feltételezhető, hogy a fiatal, egészséges személyek járásszabályossági paramétereinek tartományába esnek (KISS, 2010). A szórás 1 és 7 közé esik, 1 m/s körüli járássebesség esetén (az alany járási sebessége 0,965 m/s volt), ami a fiatal személyek átlagos 1,3 m/s-os járási sebességéhez képest lassú). Az is megfigyelhető, hogy a hibák nagyrészt ofszet jellegűek: a grafikonok terjedelme, alakja konzisztens. Ezt a 4-8. ábra értékei is alátámasztják: a mozgásterjedelem szórása minden paraméter esetében kicsi (3 alatti, a többségük 2 alatti). 31
32
5. BIOMECHANIKAI MODELL FEJLESZTÉSE A MOGI UNIVERSAL BIOMECHANICAL MOTION ANALYZER PROGRAMHOZ 5.1. A modell megalkotása A MUBMA program jellemzője, hogy biomechanikai mérés a álló eszköztárral könnyen fejleszthető. Ezt a programba egy biomechanikai modell felállításával implementálhatjuk. Az első lépés a mérendő mennyiségek definiálása. A program segítségével az idő függvényében pontok térbeli helyzetét, és merev testek pozícióját és orientációját mérhetjük. Bármilyen ezekből az adatokból matematikai úton, algoritmizálható módon számolható mennyiség megvalósítható. Példaként legyen a kívánt mérendő mennyiség a (térbeli) térdszög (5-1. ábra). 5-1. ábra. Térdszög értelmezése 1 A térdszög meghatározásához a comb és a lábszár anatómiai tengelyeit leíró térbeli vektorok szögét kell kiszámítani: ( ) β = cos 1 vf v s, (5.1) v f v s ahol v f a comb (femur), v s pedig a lábszár anatómiai tengelyét leíró vektor. A következő feladat a számításokhoz szükséges anatómiai pontok kiválasztása: a térdszög számításához két vektort kell meghatározni, amelyek négy darab anatómiai ponttal definiálhatóak. Ezek jelen esetben az RGT-RFELE, RFIH-RLM, illetve a test bal oldalán az LGT-LFELE, LFIH- LLM pontok (3-2. ábra). Ezekből a keresett vektorok meghatározhatóak: v f = r RGT r RF ELE, (5.2) v s = r RLM r RF IH, (5.3) ahol az r AN vektorok az AN anatómaiai pont helyvektora a globális koordináta rendszerben. 1 KISS, KOCSIS, és ILLYÉS, 2007b 33
Utolsó lépésként a kiválasztott anatómiai pontok követéséhez szükséges testszegmenseket kell definiálni: a térdszög esetében ez a comb és lábszár szegmense. A bemutatott példában a számított térdszög egy adott pillanatra jellemző paraméter. Az időpillanatok közötti mennyiségek is meghatározhatók, például a lépésciklus ideje, vagy a lépések hossza. Érdemes lehet az anatómiai pontok koordinátáit egy aluláteresztő szűrővel javítani, ami a sarokütések és egyéb impulzus szerű behatás miatt keletkező bőrrezgések szűrésére. A biomechanikai méréseknél kedvelt a negyedrendű késleltetésmentes digitális Butterworth szűrő használata 5-8 Hz közötti vágási frekvenciával (KISS és KOCSIS, 2009; KISS, 2010; MANAL ET AL., 2000; HUITE- MA ET AL., 2002). 5.2. A modell implementációja A biomechanikai modell implementálása a felállított térdszög modellen keresztül kerül bemutatásra. További példák mérések implementálására az A.2 mellékletben találhatóak. A biomechanikai modellt egy külön osztályként implementálható a MUBMA programba, amely a C# programozási nyelvet használja. Az osztálynak a GaitModel nevű osztályból kell leszármaznia (5-1. kódrészlet). 1 using System; 2 using System.Drawing; 3 using System.Collections.Generic; 4 using MathNet.Numerics.LinearAlgebra; 5 using MathNet.Numerics.LinearAlgebra.Double; 6 using System.Data; 7 using System.Text; 8 using System.Windows.Forms; 9 using System.IO; 10 11 namespace GaitAnalysisSoftware 12 { 13 internal class Terdszog :GaitModel 14 { 15... 16 } 17 } 5-1. kódrészlet. A példaosztály deklarációja Az osztálynak a következő részeket kell implementálnia: Konstruktor Anatómiai pontok, szegmensek, real-time számított paraméterek definíciója A real-time paraméterek számítása Az utófeldolgozó függvény A feldolgozott adatokat exportáló függvény Ezen függvények részletes leírását a következő szakaszok tartalmazzák. 5.2.1. KONSTRUKTOR A konstruktorban kell megadni a modell megjelenítési nevét (a kezelőfelületen ez fog megjelenni a modellválasztáskor), és egy egyedi azonosítót (ez a kalibrációs fájlok azonosításához szükséges). 34
A kalibrációs varázsló modult az enablecalibwizard paraméter állításával engedélyezhető. Ha engedélyezett, a megfelelő képet beágyazott forrásként kell a projekthez hozzáadni (5-2. kódrészlet). Az osztály adattagjai ez előtt definiálhatóak. 1 private DataSet dataset; 2 private DataTable datatable; 3 4 public Terdszog(Dictionary<int, Marker> markerdictionary, Dictionary<int, Segment> bodysegmentdictionary, Dictionary<int, CalcParam> calculatedparamsdictionary) : base(markerdictionary, bodysegmentdictionary, calculatedparamsdictionary) 5 { 6 ID = "terdszog"; 7 displayname = "Térdszög"; 8 enablecalibwizard = true; 9 10 System.Reflection.Assembly thisexe; 11 thisexe = System.Reflection.Assembly.GetExecutingAssembly(); 12 Stream file = thisexe.getmanifestresourcestream("gaitanalysissoftware.res_images.terdszog.png"); 13 calibrationimage = Image.FromStream(file); 14 } 5-2. kódrészlet. A példa osztály konstruktora 5.2.2. ANATÓMIAI PONTOK, SZEGMENSEK, REAL-TIME SZÁMÍTOTT PARAMÉTEREK DEFINÍCIÓJA Az anatómiai pontok, szegmensek és real-time számított paraméterek definíciója az ősosztály absztrakt FillGaitModel() függvényének implementálásával tehető meg (5-3. kódrészlet). 1 protected override void FillGaitModel() 2 { 3 #region Body segments 4 5 bodysegmentdictionary.add(1, new Segment("Jobb labszar")); 6 bodysegmentdictionary.add(2, new Segment("Jobb comb")); 7 bodysegmentdictionary.add(3, new Segment("Bal labszar")); 8 bodysegmentdictionary.add(4, new Segment("Bal comb")); 9 10 #endregion 11 12 #region Anatomical points (markers) 13 14 markerdictionary.add(1, new Marker("RLM", 1)); 15 markerdictionary.add(2, new Marker("RFIH", 1)); 16 markerdictionary.add(3, new Marker("RFELE", 2)); 17 markerdictionary.add(4, new Marker("RGT", 2)); 18 markerdictionary.add(5, new Marker("LLM", 3)); 19 markerdictionary.add(6, new Marker("LFIH", 3)); 20 markerdictionary.add(7, new Marker("LFELE", 4)); 21 markerdictionary.add(8, new Marker("LGT", 4)) 22 23 #endregion 24 25 #region Gait parameters to be calcuated 26 27 calculatedparamsdictionary.add(1, new terdszog("jobb terdszog", 1, 5, 3, 4, markerdictionary)); 28 calculatedparamsdictionary.add(2, new terdszog("bal terdszog", 5, 6, 7, 8, markerdictionary)); 29 30 #endregion 31 } 5-3. kódrészlet. A példa osztály FillGaitModel() függvény implementációja A Body segments régióba kerülnek a kiválasztott szegmensek definíciói, melynek szintaxisa: bodysegmentdictionary.add(int ID, new Segment(string name)); 35
Az ID paraméter minden szegmensnél egyedi. A 100-as azonosító a mutatópálca számára van fenntartva, mely az ősosztályban van definiálva. Ha a modell a 99 szegmensél többet használ, a 100-as azonosítót ki kell hagyni. A name paraméternek a MoCap rendszerben definiált rigidbody nevével meg kell egyeznie, a program ezek alapján tudja párosítani őket. Az Anatomical points régióban definiálhatóak a modell anatómiai pontjai, melynek szintaxisa: markerdictionary.add(int ID, new Marker(string name, int parentsegmentid)); Az ID paraméternek a szegmensekhez hasonlóan az anatómiai pontok között egyedinek kell lennie. A 100-as ID itt a kalibrációs pontnak van fenntartva. Az ID és name paraméterek jelennek meg az adott pont adatai mellett a kezelői felületen, és a kalibrációs varázslóban. A parentsegmentid paraméter az adott anatómiai pont szegmensének az egyedi azonosítója. A Gait parameters to be calcluated régióban azon paraméterek definiálhatóak, amelyek egy adott képkockára vonatkoznak. A több időponthoz köthető adatok csak az utófeldolgozás során számíthatóak. A real-time paramétereket a CalcParam absztrakt osztály implementálásával definiálható (5-4. kódrészlet). 1 private class KneeAngle :CalcParam 2 { 3 Vector<double> bokakulso; 4 Vector<double> szarkapocsfejecs; 5 Vector<double> combcsontbutyok; 6 Vector<double> nagytompor; 7 8 public KneeAngle(String name, int bokakulsoid, int szarkapocsfejecsid, int combcsontbutyokid, int nagytomporid, Dictionary<int, Marker> markerdictionary) : base(name, " ", new int[] { bokakulsoid, szarkapocsfejecsid, combcsontbutyokid, nagytomporid }) 9 { 10 bokakulso = markerdictionary[bokakulsoid].globalcoordinates; 11 szarkapocsfejecs = markerdictionary[szarkapocsfejecsid].globalcoordinates; 12 combcsontbutyok = markerdictionary[combcsontbutyokid].globalcoordinates; 13 nagytompor = markerdictionary[nagytomporid].globalcoordinates; 14 } 15 16 public override void UpdateValue() 17 { 18 value = Math.Acos((nagyTompor - combcsontbutyok) * (szarkapocsfejecs - bokakulso) / (Vect.Length(nagyTompor - combcsontbutyok) * Vect.Length(szarkapocsFejecs - bokakulso))); 19 isvalid = true; 20 } 21 } 5-4. kódrészlet. terdszog real-time paraméter osztály implementációja Az CalcParam ősosztály konstruktorának a paraméter nevét, mértékegységét és azon anatómiai pontok egyedi azonosítóit kell átadni, melyekre a paraméter épül. Az osztálynak az UpdateValue() függvényt kell implementálnia, amely a paraméter értékét számítja. Az isvalid adattag megadja, hogy adott képkockában látható-e az összes marker, amiből a az érték számolható. Az UpdateValue() meghívása, vagy as textttisvalid érték hamisra állítása egy későbbi függvényben kerül implementációra. Ezek alapján a FillGaitModel() függvényben a következő szintaxissal adhatóak meg real-time paraméterek: calculatedparamsdictionary.add(int ID, new Osztaly(string name, int mid1,..., int midn, markerdictionary)); Az mid1,... midn számok a megfelelő anatómiai pontok azonosítói. A számításokhoz használható, már implementált matematikai műveleteket a 5.2.6. szakasz mutatja be. Az anatómiai pontok és szegmensek adatainak elérését bővebben a 5.2.4. szakasz mutatja be. 36
5.2.3. REAL-TIME PARAMÉTEREK SZÁMÍTÁSA A real-time adatok számolását a CalculateGaitParameters() függvény végzi, mely minden képkocka beérkezése és feldolgozása után meghívódik. A real-time paraméterek számolásának módjai az egyedi osztályokban már rögzítettek, ezért azokat csak meg kell hívni (5-5. kódrészlet). Az ismarkersvisible függvény a biomechanikai modell ősosztályában van definiálva, és annk függvényében egy bool értékkel tér vissza, hogy az adott paraméter minden markere látható-e az aktuális képkockán. 1 public override void CalculateGaitParameters() 2 { 3 foreach (KeyValuePair<int, CalcParam> parameter in calculatedparamsdictionary) 4 { 5 if (IsMarkersVisible(parameter.Value.dependencies)) 6 parameter.value.updatevalue(); 7 else 8 parameter.value.isvalid = false; 9 } 10 } 5-5. kódrészlet. Real-time paraméterek számítását végző függvény implementációja a Terdszog példa osztályban 5.2.4. AZ UTÓFELDOLGOZÓ FÜGGVÉNY Az utófeldolgozást a ProcessRecording függvény végzi (5-6. kódrészlet). Ez fog meghívódni, ha a felhasználó a kezelőfelület utófeldolgozó gombjára kattint. Érdemes az adatokat olyan formátumban feldolgozni, hogy azokat a kiexportáló függvény könnyen kezelni tudja. 1 internal override void ProcessRecording(MoCapSession session, CoordinateTransformer coordinatetransformer) 2 { 3 datatable = new DataTable(); 4 datatable.tablename = "Lower body angles"; 5 datatable.columns.add("frame#", typeof(int)); 6 datatable.columns.add("timestamp", typeof(double)); 7 8 foreach (KeyValuePair<int, CalcParam> param in calculatedparamsdictionary) 9 datatable.columns.add(param.value.name, typeof(double)); 10 11 session.gotobeggining(); 12 int frame = 0; 13 while (!session.isendofsession()) 14 { 15 frame++; 16 17 UpdateSegmentDictionary(session.GetNextFrame()); 18 coordinatetransformer.calculateanatpointscoordiantes(); 19 CalculateGaitParameters(); 20 21 DataRow newrow = datatable.newrow(); 22 newrow["frame#"] = frame; 23 newrow["timestamp"] = session.getnextstamp(); 24 foreach (KeyValuePair<int, CalcParam> param in calculatedparamsdictionary) 25 newrow[param.value.name] = param.value.value * 180 / Math.PI; 26 27 datatable.rows.add(newrow); 28 } 29 30 dataset = new DataSet(); 31 dataset.tables.add(datatable); 32 } 5-6. kódrészlet. Az utófeldolgozó függvény függvény implementációja a Terdszog példa osztályban 37
Az utófeldolgozáskor már az összes rögzített képkocka rendelkezésre áll, melyek a szegmensek adatait és az időbélyeget tartalmazzák. Ezek az adatok a MoCapSession osztály session példányán keresztül érhetőek el. Az osztály tartalmaz egy számlálót, melynek segítségével egyszerűen érhetőek el egymás után a képkockák (5.2.4.1. pont). A képkockákat előbb fel kell dolgozni, hogy az adatok elérhetőek legyenek (5.2.4.2. pont). A dataset és datatable változók a Terdszog osztály adattagjai. 5.2.4.1. MOCAPSESSION FÜGGVÉNYEI void GoToBeggining() A felvétel legelejére ugrik, azaz a következőre kiolvasandó képkocka és időbélyeg az első lesz. void GoToFrame(int frame) A megadott számú képkockára és időbélyegre ugrik a kiolvasás. A képkckák számozása 0-tól kezdődik. Dictionary<int, SegmentRecord> GetNextFrame() A soronkövetkező képckával tér vissza. Dictionary<int, SegmentRecord> GetFrame(int frame) A megadott számú képkockával tér vissza. A következőre kiolvasandó képkocka és időbélyeg értékét nem változtatja meg! List<Dictionary<int, SegmentRecord>> GetFrameData() Az összes képkockát sorrendben tartalmazó listával tér vissza. double GetNextStamp() A soronkövetkező időbélyeggel tér vissza. double GetTimeStamp(int frame) A megadott számú időbeélyeggel tér vissza. A következőre kiolvasandó képkocka és időbélyeg értékét nem változtatja meg! List<double> GetTimeData() Az összes időbélyeget sorrendben tartalamzó listával tér vissza. bool IsAtBeggining() Bool értékkel tér vissza, a szerint, hogy a következő kiolvasandó képkocka az első-e, vagy nem. bool IsEndOfSession() Bool értékkel tér vissza, miszerint van-e még kiolvasandó képkocka a felvételben. int CountFrames() A felvételben tartalmazott képkockák számával tér vissza. bool IsSessionEmpty() Bool értékkel tér vissza, attól függően üres-e a felvétel. 38
5.2.4.2. SZEGMENSEK ÉS ANATÓMIAI PONTOK ADATAINAK ELÉRÉSE Az adott képkockát a szegmensek aktuális adatait tartalmazó adatstruktúrába kell bemásolni, hogy azok felhasználhatóak legyenek. Az anatómiai pontok koordinátái ezek alapján számolhatóak. void UpdateSegmentDictionary(Dictionary<int, SegmentRecord> frame) A megadott képkocka adatait bemásolja az aktuális szegmensadatokat tartalmazó adatstruktúrába. Ez a függvény a GaitModel ősosztályban van implementálva void coordinatetransformer.calculateanatpointscoordiantes() Az aktuális szegmensadatok és a kalibráció alapján az anatómiai pontok globális koordinátáit frissíti. bodysegmentdictionary[id].name markerdictionary[id].name calculatedparamsdictionary[id].name Az ID azonosítójú szegmens/anatómiai pont/paraméter nevét tartalmazó adattagok, típusuk string. bodysegmentdictionary[id].position markerdictionary[id].globalcoordinates Az ID azonosítójú szegmens/anatómiai pont globális koordinátáit tartalmazó vektor adattagok, típusuk Vector<double>. bodysegmentdictionary[id].orientation Az ID azonosítójú szegmens pozícióját tartalamzó vektor adattagja. A vektor ZX Z konvenciójú Euler-szögeket tartalmaz, amelyek radiánban értendőek, típusa Vector<double>. markerdictionary[id].localcoordinates Az ID azonosítójú anatómiai pont lokális koordinátáit tartalmazó vektor adattagok, amelyek a kalibráció során lettek számolva. Típusa Vector<double>. bool markerdictionary[id].iscalibrated() Adott anatómiai pont kalibráltáságra vonatkozó függvény. Visszatérési értéke hamis, ha a localcoordinates nullvektor. markerdictionary[id].segmentid Az ID azonosítójú anatómiai pont szegmensének azinisítóját tartalamzó adattag, típusa int. bodysegmentdictionary[id].isvisible markerdictionary[id].isvisible Az ID azonosítójú szegmens/anatómiai pont láthatóságát jelző adattagok, típusuk bool. calculatedparamsdictionary[id].dimension Az ID azonosítójú paraméter mértékegységét tartalmazó adattag, típusa double. calculatedparamsdictionary[id].value Az ID azonosítójú paraméter értékét tartalmazó adattag, típusuk string. calculatedparamsdictionary[id].isvalid Az ID azonosítójú paraméter érvényességét jelző adattag, típusa bool. 39
5.2.5. A FELDOLGOZOTT ADATOKAT EXPORTÁLÓ FÜGGVÉNY Az kezelőfelület exportáló gombjának megynomásakor a void ExportResults(SaveFileDialog savefiledialog) függvény hívódik meg. Ide írható az az algoritmus, ami a feldolgozott mérési eredményeket egy külső fájlba menti. A MUBMA program DataSet típusú adatstruktúrák Excelbe való exportálásra fel van készítve (5-7. kódrészlet. 1 public override void ExportResults(SaveFileDialog savefiledialog) 2 { 3 string DateTime = System.DateTime.Now.ToString("yyyy-MM-dd-HH-mm"); 4 StringBuilder sb = new StringBuilder(); 5 sb.append("gait-"); 6 sb.append(datetime); 7 8 try 9 { 10 savefiledialog.title = "Save results File"; 11 savefiledialog.filter = "MS Excel datasheet *.xlsx"; 12 savefiledialog.filename = sb.tostring(); 13 savefiledialog.showdialog(); 14 15 String filenev = savefiledialog.filename; 16 CreateExcelFile.CreateExcelDocument(dataSet, filenev); 17 } 18 catch (Exception ex) 19 { 20 MessageBox.Show("Couldn t create Excel file.\r\nexception: " + ex.message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); 21 } 22 } 5-7. kódrészlet. Az exportáló függvény függvény implementációja a Terdszog példa osztályban 5.2.6. IMPLEMENTÁLT MATEMATIKAI MŰVELETEK A számításokat segítendő, a mubma programba több matematikai művelet is implementált, az alap Math osztály függvényeit kiegészítve. Matrix<double> RotMatrices.X(double fi) Adott fi szöggel x tengely körül térbeli forgatás (3x3) mátrixával tér vissza (4.3 alfejezet). Fi értéke radiánban értendő. A másik két tengely körüli forgatás hasonlóan elérhető. Matrix<double> RotMatrices.ZXZ(Vector<double> orientation) Szegmens ZX Z konvenció szerinti Euler-szögeket tartalmazó vektor alapján a (3x3) forgatási mátrixal tér vissza (4.13 egyenlet). ZYX forgatási mátrix hasonlóan elérhető, invzxz és invzyx fügvények pedig az adott konvenció szerinti inverz mátrixal térnek vissza. double Vect.Length(Vector<double> v) Adott térbeli v vektor hosszával tér vissza. void Vect.Normalize(Vector<double> v) Adott térbeli v vektort normalizálja. Vector<double> Vect.CrossProduct(Vector<double> a, Vector<double> b) 40
Adott a és b térbeli vektorok vektoriális szorzatával tér vissza. double[] Filters.MovingAverage(double[] source, int averagerange) Adott double típusú tömbön végez digitális mozgó átlag szűrést, ami az adott értéket az érték averagerange sugarú környezetének átlagával helyettesíti. Az forrás tömböt nem módosítja, az átlagolt értékek egy új, double típusú tömbjével tér vissza, aminek elemszáma megegyezik a source tömb elemszámával. 41
42
6. MOZGÁSVIZSGÁLAT A MOGI UNIVERSAL BIOMECHANICAL MOTION ANALYZER PROGRAMMAL A következő fejezet egy konkrét példán keresztül a Mogi Universal Biomechanical Motion Analyzer (MUMBA) program használatát mutatja be. A mérés egy járásvizsgálat, melynek alapja a 3 fejezetben bemutatott 23 anatómiai pontot használó biomechanikai modell (3-2. ábra). 6.1. Előkészületek A vizsgált személy megérkezése a következő előkészületek végzendőek el: A Motive program elindítása és beállítása A MUBMA program elindítása és beállítása A labor előkészítése A Motive programban beállítása tartalamzza a kamerarendszer kalibrációját, a koordinátarendszer és a rigidbodyk meghatározását, és az adatok közvetítésére vonatkozó beállításokat (6-1. ábra). Ezek a beállítások projektfájlokban tárolandóak, beállítás után elmenthetők és bármikor ismét megnyithatók. Ez biztosítja, hogy minden azonos típusú mérés a jó beállításokkal történjen. Különösen fontos, hogy a Motive program az adatokat a felfelé mutató z koordináta-tengely konvenciója szerint közvetítse (View->Data Streaming->Advanced Network Options->Up Axis->Z). A Motive rendszer kezeléséről bővebb információ a szoftver dokumentációjában 1 található. 6-1. ábra. A Motive program kezelőfelülete A MUBMA program elindításakor a főképernyő fogadja a felhasználót (6-2. ábra). Bal oldalt az éppen betöltött biomechanikai modell anatómiai pontjai, a kalibrációs varázsló, és az anatómiai 1 http://wiki.optitrack.com/, elérés dátuma: 2016.12.08. 43
pont kalibrációjának gombjai találhatóak. A felső fülek segítségével a modellhez tartozó szegmenseket vagy a paramétereket tartalmazó listákra válthatunk. Középen látható a szegmensek és kalibrált anatómiai pontok ábrázolása (ezek természetesen csak akkor láthatóak, ha van adat rájuk vonatkozóan). A jobb oldal felső részén a csatlakozások kezelőfelülete található. Az ez alatt található felületen fognak a program üzenetei egy lista formájában megjelenni. A felső menüsáv File menüjéből menthetőek el, és tölthetőek vissza a kalibrációs és adatfájlok. A MUMBA program beállításának lépései: 6-2. ábra. A MUBMA program főképernyője I. A használni kívánt mérési modell kiválasztása: A modellválasztás a felső menüsáv Options->Change GaitModel gombjára kattintva történik. A felugró ablak legördülő menüjéből a megfelelő modell kiválasztható. Például a bemutatott 23 pontos modell estében a 23 pontos modell opció (6-3a. ábra). Az Accept gomb megnyomásával a kiválasztott modell betöltődik. II. A rádiófrekvenciós távirányító párosítása: A vevő egységet a számítógép egyik USB portjához csatlakoztassuk, majd a jobb felső kezelőfelületen navigáljunk a Bluetooth fülre. Ha a vevőt a program elindítása után csatlakoztattuk, akkor előfordulhat, hogy a legördülő menü üres (6-3b. ábra). Ebben az esetben a Rescan gomb megnyomása után megjelennek az újonnan talált portok. A megfelelő kiválasztása után aconnect BT gombbal a távirányítót a programmal párosíthatjuk. III. Csatlakozás a Motive-hoz: A Motive programhoz a jobb felső kezelőfelület Motive fülén lehet kapcsolódni. A Local feliratú legördülő listából a számítógép lokális hálózati IP címét (általában 192.168.0.### formátumú (6-4a. ábra)) válasszuk ki. A Server szövegdobozba a Motive program Streaming panelján található IP címet kell beírni (6-4b. ábra). Fontos, hogy mindkét programot futtató számítógépnek egy lokális hálózathoz kell kapcsolódna. Ha mindkét program ugyanazon számítógépen fut, akkor mindkét mezőben az 127.0.0.1 érték szerepeljen. A Connect gombra kattintva a program a Motive-hoz kapcsolódik (6-5. ábra). 44
(a) Modellválsztó ablak (b) Rádiófrekvenciás távirányító párosító felülete 6-3. ábra. A MUBMA kezelőfelületének elemei (a) Local IP cím kiválsztása (b) Szerver IP cím a Motive-ban 6-4. ábra. IP címek kiválasztása A mérés megkezdése előtt a rigidbodykat, és a futószalagot is elő kell készíteni. Fontos, hogy a futószalag főtengelye (futófelület) a mérés koordináta-rendszerének x tengelyével (a mérőtérfogat hosszanti tengelye) legyen párhuzamos. A fenti pontok elvégzése után a mozgáslaboratórium felkészült a mérésre. 6-5. ábra. Sikeres csatlakozás a Motive-hoz 45