Önálló laboratórium dokumentáció Konzulens: Mészáros Tamás Készítette: Bartók Ferenc (ME12HP) 2012.05.19.
Tartalomjegyzék Bevezetés, feladat leírása... 3 A készülék bemutatása, megismerése... 4 Beviteli dimenziók feltérképezése... 7 Lehetséges felhasználások... 9 Összeköttetések létező rendszerekkel... 14 Alkalmazás fejlesztése... 15 További munka... 18 Irodalomjegyzék... 19 2
Bevezetés, feladat leírása Bevezetés Az önálló laboratórium témám az agy-számítógép interfésszel (Brain-Computer Interface) kapcsolatos. Ez az interfész egy fajta kommunikációt hoz létre az emberi agy és a számítógép között [1]. Ezt általában a fejre elhelyezett, vagy fejbe beültetett elektródák segítségével valósítják meg, ami működésének a lényege az, hogy az elektróda figyeli az agyban keletkező elektromos jeleket, majd ezeket küldi tovább a számítógép felé. Utóbbi esetben sokkal jobb "minőségű" jelekhez juthatunk, hiszen kiküszöböljük a koponya nagy leárnyékoló hatását. Ezt a mérőeljárást elektroenkefalográfiának (EEG) nevezik, amit először Hans Berger dolgozott ki és 1924-ben sikeresen tárolt el agyból származó elektromos jeleket. Feladat leírása Számomra az önálló laboratórium keretein belül rendelkezésre állt az Emotiv cég EPOC neuroheadset nevű készüléke, amellyel a témán belül a feladatom az volt, hogy a fogyatékossággal rendelkező emberek miképpen tudnák ezt az eszközt használni, milyen segítséget tudna nekik nyújtani. Ehhez kapcsolódóan a félév során a feladataim voltak az alábbiak: Emotiv EPOC Neuroheadset használatának a megismerése. A Neuroheadset beviteli dimenzióinak a megismerése, összegyűjtése. Felhasználási lehetőségeinek a kiaknázása a fogyatékossággal rendelkezők körében. Létező rendszerekkel való összeköttetés vizsgálata. A LEGO Mindstorm NXT robottal és az X10-es rendszerrel való összeköttetés létrehozása. Egy a headsettel vezérelhető alkalmazás kifejlesztése, mellyel a már összeköttetésre képes eszközöket lehet irányítani. 3
A készülék bemutatása, megismerése A készülék bemutatása Alább látható egy kép az eszközről: 1. ábra Emotiv EPOC Neuroheadset [2] A headset vezetéknélkül kommunikál saját protokollján keresztül a számítógéppel [3]. 14 csatornán (14 érzékelővel) figyeli az agyból jövő jeleket, illetve ezen kívül még található 2 referencia pont is a headseten. A mintavételi sebesség 128Hz, míg a felbontás 16 bites. Az eszköz ezen felül rendelkezik giroszkóppal is, illetve az elektródák az arcmimika változását is képesek érzékelni. Az egyik fő oka a később részletezett alacsony számú kognitív parancs tanításánál, az érzékelők, az elektródák alacsony száma. Egy orvosi EEG készülék ennél nagyságrendekkel több elektródával rendelkezik, ami az alábbi képen is jól látható. Van olyan, ami 256 elektródát is használ az agyi tevékenység vizsgálatához [4]. 2. ábra orvosi EEG elektródák [5] 4
A készülék megismerése Az eszközt a tanszéki laborban ismerhettem meg. Megtanultam, hogyan kell "összerakni": elektródák felszerelése, folyékony anyaggal való becsepegtetése. Megismertem a hozzá tartozó programcsomagot. A Control Panel Premium nevű program a legfontosabb szoftver, ami segítségével tesztelhetjük és beállíthatjuk az eszköz funkcióit (melyik felhasználót választjuk), illetve az eszközzel való összeköttetést is jelzi (Engine Status). 3. ábra Emotiv Control Panel A részei a Headset Setup, Expressiv Suite, Affectiv Suite és a Cognitiv Suite. A Headset Setup-ban látjuk, hogy milyen jól képesek az egyes elektródák érzékelni a jeleket (a zöld szín jelzi a legjobbat). Fontos, hogy amíg a referencia pontok feketék (azaz nem érzékelnek jelet), addig a többi is fekete színű marad., akkor nem tudjuk használni a headsetet. Az Expressiv Suite fülön figyelhetjük meg az arcmimikánkat, amiről egy interaktív kép tájékoztat, hogy a készülék épp mit érzékel. Itt egyéb beállításokat is végezhetünk. Az Affective Suite fülön különböző érzelmeket figyelhetünk meg, amelyekről még később lesz szó. A Cognitive Suite fülön taníthatunk meg az eszköznek tudatos parancsokat. Láthatunk egy kockát, amelyen különböző műveleteket taníthatunk be, hajthatunk végre. A tanítás úgy működik, hogy legelőször 30 másodpercnyi semleges jelet vesz fel az alkalmazás (ekkor nem szabad arra gondolni, amivel, amire tanítani szeretnénk a szoftvert), majd ezután egy 8 másodperces semleges jel felvétele után elkezdhetjük a különböző parancsok megtanítását. Ez úgy 5
működik, hogy szintén pár másodpercen keresztül visszük be az adatokat a Control Panel-nek, ekkor a megfelelő dologra kell gondolni, koncentrálni. A tanítás után tesztelhetjük ezen a bizonyos kockán, hogy mennyire sikeresen tanulta meg a szoftver a parancsot. Ezen felül a Cognitive Suite-ban egyéb beállítások is találhatóak. A Control Panel-ben egyúttal található egy kurzor irányító minialkalmazás is, amely a headset giroszkópját használva képes a kurzort mozgatni. Az X és Y irányú érzékenységet is külön lehet állítani. Ennek és az alább részletezett EmoKey-nek a segítségével viszonylag könnyedén képesek vagyunk a számítógépet kezelni. A másik fontos, általam használt szoftver a programcsomagon belül, az EmoKey nevű alkalmazás. 4. ábra EmoKey Ennek a szoftvernek a lényege az, hogy beállíthatunk bizonyos eseményeket (egérkattintás, billentyűzet leütés, görgetés, stb.), amelyet a beállított (esetleg mindig az aktuálisan aktív) programnak elküld. Ez úgy működik, hogy egy-egy ilyen "eseményhez" definiálhatunk különböző trigger feltételeket. Ilyen például a pislogás, vagy különböző kognitív parancsok. Ha ezeket a megadott értéken felül érzékeli, akkor az EmoKey elsüti a beállított eseményt, ezáltal lehetővé teszi számunkra például a már korábban említett számítógépkezelést is. Az eszköz megismeréséhez sorolom a kognitív tanítással való kísérletezést is. Több féle módszert is kipróbáltam. Például ilyen volt az, amikor csukott 6
szemmel "erősen" gondoltam valamilyen cselekvésre, ezzel a módszerrel 2 parancsot sikerült nagyjából jól működően megtanítanom. Egy másik (nem kudarcot vallott) kísérletem az volt, hogy a közelemben levő, a szememmel fizikailag látható tárggyal kapcsolatban gondolok egy cselekvésre. Ez jobban bevált, így 3 parancsot is sikerült megtanítanom. Ugyanakkor kipróbáltam azt a módszert is, amikor a Control Panel-ben található kockára és az azon elvégzendő műveletre gondolok. Ezzel elég bizonytalan tanítást sikerült összehoznom. Beviteli dimenziók feltérképezése A beviteli dimenziókat az alábbi 3 részre osztottam fel. Giroszkóp Mint arról már korábban írtam, az eszköz rendelkezik egy beépített giroszkóppal. Ennek segítségével jeleket tudunk küldeni a fejünk mozgatásával. Azon fogyatékossággal rendelkező emberek számára, akik a fejüket képesek mozgatni, egy minimum 4 parancsos bevitelt jelent. Ezen felül - mint minden giroszkóp - még az egész fej, tehát a test térben történő elmozdulását is képes figyelni. Ez hasznos lehet például egy fejmozgással irányított kerekesszék térbeli helyzetéről való visszacsatolásra. Más kényelmi szempontból is lehet alkalmazni, például ha görgős székkel a számítógéptől távolodunk, akkor a képernyőn látható szöveget felnagyítja. Egyébiránt a már említett kurzormozgató minialkalmazás segítségével rendkívül hasznos ez a beviteli dimenzió. EEG szenzor Fizikai viselkedés Az eszköz képes felismerni bizonyos szintig a mimikát (az izmok mozgását, állását). Ebbe beletartozik a pislogás. Felismerhető több szintje is a száj tartásának (nyitott, mosoly, alaphelyzet, stb.). A szemöldökök pozícióját is meg lehet különböztetni. Ezen felül még saját, egyéni mintákkal is lehet tanítani az eszközt. Ennek a beviteli lehetőségnek nagy előnye, hogy rendkívül gyorsan észlelhető (miliszekundumos nagyságrend) és a legtöbb fogyatékossággal rendelkező ember végre tudja hajtani ezeket a cselekvéseket. 7
Lehetséges "körülbelül" 5-6 db önálló parancs, amiknek a kombinációit is kihasználhatjuk. Mentális viselkedés Az Emotiv Epoc Control Panel Premium szoftver Cognitiv Suite része 13 parancsot képes megtanulni az agyhullámokat figyelve. Ezek közül 6 db irány utasítás: balra, jobbra, előre, fel, le, zoom-olás. További 6 db forgatás: balra, jobbra, hátra, előre, órajárással megegyező és ellentétes. Lehetőség van még egy "eltűnés" utasítás betanítására is. Ezek közül a program egyszerre csak 4-et képes felismerni. A gondolati tanítás mellett használható fizikai viselkedés mentális érzékelés általi tanítás is, például "torokköszörülés" és egyéb cselekvések. A tapasztalatom az, hogy nehéz 3- nál több kognitív parancsot megtanítani a szoftvernek, ez nagy valószínűséggel a kevés elektródaszám miatt van (esetleg a kevésbé hatékony tanító algoritmus is közrejátszik). Az Affectiv Suite segítségével a felhasználó érzelmi állapotait figyelhetjük meg. Ebbe tartoznak a következők: izgatottság, unalom, "meditáció"/elmélkedés, frusztráció, hirtelen izgatottság. Ezeknek a hatásos működése, érzékelése még tesztelést igényel. A felsoroltak közül a hirtelen izgatottság az, amit eddig egyértelműen megfelelően felismert "érzelemként" tapasztaltam. Ez a fogyatékossággal rendelkező emberek esetében fontos jelzés lehet például egy AAL (Ambient Assited Living) környezetben. A frusztráció vizsgálatával például vissza tudunk csatolni, ha nem az elvárt utasítás történik meg. A mentális viselkedésnek, mint beviteli forrásnak a legnagyobb előnye, hogy bármilyen fogyatékossággal rendelkező ember képes használni. Hátránya, hogy lassabb, mint az arcmimikát figyelő rendszer. 8
Lehetséges felhasználások Az EMOTIV headsetet számítógéppel, vagy esetleg valamilyen hordozható hasonló eszközzel (pl. okostelefon) kötjük össze, így tudjuk értelmezni a jeleit. Ebből kiindulva értelemszerűen csak valamilyen elektromos úton történhet bizonyos dolgok, változók irányítása. Ilyen szempontból bármit el lehet képzelni, hogy a headsettel vezérlünk, amennyiben valamilyen elektromos interfészt rendelünk, készítünk hozzá. Érdemes még megemlíteni azt is, hogy nem feltétlen kell rendelkeznie a céleszköznek magának ilyen interfésszel, de végső soron egy a végrehajtási láncban korábban álló eszköz rendelkezik ilyennel (gondoljunk például egy robot által kinyitott ablakra). Tehát a más rendszerrel való összeköttetést érdemes olyan körben keresni, amely "csak" elektromos, vagy már bizonyos fajtáiban elektromosan vezérelhető rendszereket tartalmaz, illetve olyanokat, amelyeket viszonylag kevés munka árán fel lehet fejleszteni elektromos interfésszel. Elsősorban az otthoni problémák megoldása, megoldásának könnyítése a reális cél ez Emotiv headsettel, mivel hasonló módszereket az utcán, városban, iskolában nehezebb és jóval költségesebb kiépíteni. Vak ember esetén, a saját otthonában előforduló problémákat tekintve számára például az ablak kinyitása nem olyan nehéz, mivel tudja, hogy hol van, hogy kell azt elvégezni. Annál nehezebb például egy ebéd elkészítése, elfogyasztása. Nagy segítség neki a hang, úgy be tudja azonosítani, a tárgyak helyét. Egy pohárba például beépíthetünk egy vevőt kis beépített "hangszóróval", amelyet megszólaltathatunk a headset-tel. Ezt a módszert egyéb tárgyakkal is használhatjuk. A korlátos beviteli lehetőség nem feltétlen jelent nagy problémát, megszólaltathatjuk különböző frekvencián egy bevitellel akár az összes x méteres körzetben levő ilyen vevővel ellátott tárgyat. De ugyanezt el lehet végezni, egy mondjuk a falra szerelhető "központtal", panellel, vagy egy megfelelő adóval ellátott laptoppal, ami így szintén hordozhatóvá válik. Tehát ezt tekintve nem jelent nagy pluszt a headset-tel való megoldás. Ugyanakkor ha az illető más korlátozottsággal rendelkezik a vakság mellett (például nem rendelkezik kézzel, hanem egy kéz protézissel), abban az esetben a fentebb leírt vezérlés roppant hasznossá válik - ha persze nem csak egy fajta segítségnyújtásban (tárgyak helyének 9
felismerése hanggal) használjuk (ugyanakkor el lehet képzelni olyan megoldást ami protézissel is működik, de ez bonyolult a kezelő félnek). A hanggal történő "tájékoztatás" segítséget jelenthet bizonyos berendezések állapotának a lekérdezésében is (például tűzhely, szendvics sütő és egyéb hasonló eszközök) és esetleges módosításában. Utóbbi olyan esetben hasznos, ha például nem tudja, vagy nehezen, sok idő alatt tudja kezelni a készüléket. Az otthonon kívül elképzelhető közlekedési lámpák állapotának (bár erre már van egyszerű működő, viszonylag elterjedt megoldás), tömegközlekedésben az épp beérkező jármű járatszámának a lekérdezése. Ami úgy történne, hogy a headset-tel elküldjük a kérést, majd amik ezt vették (járművek) a közelben, válaszolnak rá, amit egy vevővel mi veszünk, és mondjuk a fülhallgatónkban meghallgatjuk a kapott információkat. Ehhez egy nagyobb, globális, egységes szabványokkal rendelkező rendszert kell kiépíteni. Persze itt is érvényes a hasznosságnak az a feltétele, hogy az illető nem tudja például a mobiltelefonjával ugyanezt elvégezni más korlátozottság miatt. A számítógép használatát segítheti a headset, például böngésző, email kliens, szövegfelolvasó megnyitásával, illetve aktív ablakká tételével. Súlyosabban korlátozott ember számára szövegbeviteli lehetőséget nyújthatunk olyan módon, hogy a betűkhöz kódot rendelünk (hasonlóan, mint az ASCII), és ezt a kódot például 4-es számrendszerben használva képes a felhasználó szöveget írni. Egy-egy bevitt szám és karakter után a számítógép felolvassa azt, így meggyőződhetünk a bevitt tartalom helyességéről és esetleg törölhetjük azt. Hibajavító kódot is lehet használni a gyakori hibák esetén. Létező rendszerekkel való összeköttetés vizsgálata Elektromos kerekesszék Mint ahogy azt a név is mutatja, ezeket a kerekesszékeket nem emberi erő, hanem egy elektromos motor hajtja. A legáltalánosabb fajtája, amikor egy joystick-kal lehet irányítani a széket [6]. Létezik még az úgynevezett Sip-and-Puff technológia, amely a levegő szívásával, illetve fújásával képes a vezérlésre. A kerekesszék "lényege" a mozgás, ezért javasolt vezetéknélküli megoldást választani a neuroheadsettel való irányításhoz. Tehát szükség van egy vevőre a székben, széknél. A Penny & Gilles nevű cég gyárt kontrollereket kerekesszékekhez is, amely segítségével egyszerűen tudjuk a már vett jelet az elektromos motornak továbbküldeni, 10
mivel kapható olyan - a székhez könnyen csatlakoztatható - készülék, ami rendelkezik 2 bemenettel, az oldalirányok illetve az előre-hátra mozgás vezérlésére (a bemenet adott feszültségszint alatt az egyik irányt, felette a másik irányt "állítja be célnak") [7] [8]. Ilyen készülék nem feltétlenül szükséges az összeköttetéshez, mivel az elektromos motorhoz ehelyett mi magunk is csatlakoztathatjuk a megfelelő kábeleket (értelemszerűen a vevőt egy elektronikával kiegészítve). 5. ábra A motorhoz kapcsolódó vezetékek egy elrendezése [7] A fentebb leírt vezetéknélküliség olyan esetekben fontos, ha például a használója nem tartózkodik a tőle távol elhelyezkedő székben és szeretné azt használni, ekkor egy nagyobb hatótávolságú technológiával (például 1. osztályú Bluetooth szabvány) mozgathatja a széket. A Bluetooth szabvány azért ajánlott, mert a legtöbb számítógép rendelkezik vele és így nem szükséges Bluetooth és egyéb vezetéknélküli technológia közötti átalakítás (ha egyébként is a Bluetooth-t használnánk az információ egy más adóhoz való eljuttatásához). Ehhez a székben egy Bluetooth vevőre van szükség, ami a kapott jeleknek megfelelően ad impulzusokat az elektromos motor (a hozzá kapcsolódó vezetékek) számára. Egyéb esetben, ha a felhasználó a kerekesszékben tartózkodik nem feltétlen van szükség (a számítógépen kívül) vevőre, mivel vezetékkel megoldható a következőképp. A székbe elhelyezünk egy laptopot, ami kapcsolatban van a neuroheadsettel (ezek egymással kommunikálnak), majd a számítógép pédául USB kimenetét és egy egyszerű elektronikát (bemenete az USB- 11
ből kilépő kábel, a kimenete két kábel a 2-2 irány meghajtására) használva meghajtjuk a rá közvetlenül csatlakoztatott vezetékekkel a motort (a szükséges feszültség értékek persze típus függőek, illetve a motor meghajtásának a módszere is változhat). A neuroheadsettel való irányítás nem teljesen biztonságos, még akkor sem ha többszörös megerősítést építünk a rendszerbe (visszakérdez, hogy "tényleg ezt a parancsot akartad kiadni?"). Ezért érdemes úgynevezett okos kerekesszékbe (Smart wheelchair) ültetni a rendszert, amely egy mesterséges vezérlővel rendelkezik, ami kiegészíti a felhasználói irányítást. Egy ilyen szék biztonságosabb, több féle szenzorral rendelkezik, amik segítségével megakadályozhatnak egy esetleges véletlen felhasználói "hibát", amik balesetet okozhatnának. Gyakran alkalmaz mesterséges intelligenciát is. A kerekesszékkel való összeköttetés használható olyan embereknél, akik azt más módon nem lennének képesek irányítani, illetve megkönnyítheti a szék kezelését. Hangfelismerő szoftver Sok ilyen szoftver létezik, a legtöbb nem ingyenes. A Windows 7-hez tartozik egy angol nyelvű hangfelismerő szoftver, ami segítségével tudunk parancsokat kiadni, illetve a felismert beszédet szöveges formátumba is képes lejegyezni (az interneten fent lévő videók alapján egész jól fel tudja ismerni a beszédet). A Windows képernyő-billentyűzet, vagy egy általam megírt program segítségével a headset giroszkópját és például a pislogást kihasználva képesek vagyunk szöveg bevitelére, amit több féle módon is felhasználhatunk: például e-mail küldése, a bevitt szöveg felolvasása. Különböző fogyatékkal rendelkező emberek között a kommunikációban hasznos lehet a neuroheadset és a hangfelismerő szoftver ötvözése. Az egyik fél beszédét a hangfelismerő szövegként rögzíti a számítógépen, majd (egy esetleges hálózati továbbítás után) a másik ezt elolvassa. A másik fél a headset segítségével szöveget visz be a szoftverbe, majd ezt a vevő egy hangfelolvasó szoftver (pl. Windows-os) segítségével meghallgatja. 12
LEGO Mindstorm NXT A LEGO Mindstorm NXT sorozat termékei LEGO "robotok" (építőelemek egy mikrokontrollerrel ellátva), amelyeket irányíthatunk interaktívan, illetve magába a robotba töltött programmal egy fajta beágyazott rendszerként. Több fajta programozási nyelvet is használhatunk (RCX, ROBOLAB, C, JAVA, stb.) [9]. A robotot össze lehet kapcsolni Bluetooth-on, illetve USB interfészen keresztül is okostelefonnal, számítógéppel. Az eszköz neuroheadset-tel való irányításához az interaktív módot érdemes használni, mert valós időben szolgálunk bemenettel, amit bár egy rögzített programban a robot érzékelői segítségével is érzékelhetnénk (esetleg a headset-tel kiadott parancsok hangra, fényre történő lefordításával), de ez nem célom. Az összeköttetést meg lehet úgy valósítani a 2 eszköz között, hogy egy program veszi az Emotiv szoftvere által érzékelt, küldött jeleket (pl. a standard inputról), melyeket átalakít valamelyik fentebb leírt nyelvvel a robotnak megfelelő parancsokra. Ezután Bluetooth-on keresztül ezeket automatikusan továbbítja, majd a robot elvégzi a kívánt cselekvést. Használati lehetőségek: Elsősorban szórakozás céljából, de egy-egy jól megépített robottal a fogyatékossággal élőknek a mindennapi életben is hasznos lehet (pl. világítás bekapcsolása a szobában). Egyéb lehetséges felhasználásai a neuroheadset-nek: Intelligens szövegbeviteli program Olyan program, amely emlékszik a bevitt szövegekre, az egyes szavak használatának a számára (esetlegesen felhasználókra lebontva) és ezek alapján szövegbevitel közben ajánl fel szavakat illetve betűket, ami jelentősen megkönnyítheti a headset-tel történő szöveg bevitelt. Számítógép kezelése Itt már a korábban említett böngésző, levelező kliens használatára kell gondolni. Egy-egy paranccsal a headset-en keresztül ezek azonnal előhozhatók és az alapvető számítógép kezeléshez szükséges parancsokkal kezelhetők (egér mozgatása, kattintás, ablakváltás - ezeket a giroszkóppal és egyéb beviteli paranccsal megvalósítva). 13
További ötletek felsorolása: "intelligens" lakás irányítása, TV, lámpák, ablakok, porszívó, stb irányítása. Telefon felvétele és a szobában levő mikrofonokkal kommunikáció megvalósítása. Ugyanez kaputelefonnal, kapu, ajtók nyitása, zárása. Távolról számítógép ki/bekapcsolása. Ergonómiai berendezések, például szék magasságának kezelése. Robotkar, protézisek fejlettebb irányítása. Összesítés: Az eszköz legtöbb esetben a kényelmet segítheti egyaránt fogyatékossággal rendelkezők és nem rendelkezők körében. Igazán hasznos funkciója abban az esetben van, ha a használója más módon szinte képtelen megcselekedni azt, amit szeretne (kommunikáció, mozgás), de ekkor a készülék, módszer - mint esetleges egyetlen megoldás - óriási súllyal bír. Egyéb esetben az eszköz - mint fentebb már utaltam rá - más megoldásokkal "helyettesíthető" (ami a felhasználónak egyúttal nehezebb is). Összeköttetések létező rendszerekkel X10-es rendszer Az X10 szabvány egy olyan nyílt ipari szabvány, amelyet elektronikus eszközök kommunikációjára használnak, automatizált otthon létrehozásának céljából [10]. Ez alatt azt kell érteni, hogy az otthon kiépített X10-es rendszer segítségével a számítógépről - illetve előre beprogramozva magából a vezérlőből is - képesek vagyunk különböző elektromos eszközök (például lámpa, számítógép, hajszárító, egyebek) ki- és bekapcsolására. A tanszék rendelkezik az X10-es szabványt használó eszközökkel (vezérlő és egyéb modulok), amiket az önálló laborommal kapcsolatban használhattam. Célom az volt, hogy a neuroheadsettel képes legyek ezt a szabvány használva vezérelni különböző eszközöket, amely így a fogyatékossággal rendelkezőknek megkönnyebbítené a mindennapjait. A kollégiumban kipróbáltam az eszközhöz tartozó szoftverrel egy asztali lámpa vezérlését, majd az ActiveHome Pro SDK Command Line segítségével a megfelelő parancsokat batch fájlokba elhelyezve is tudtam kapcsolgatni a lámpát. Egy parancs felépítése ebben a környezetben a következőképp néz ki: ahcmd sendplc a1 on. Ez azt jelenti, hogy az a1-es interfészre dugott eszközt kapcsolja be a vezérlő. Létrehoztam egy egyszerű JAVA programot, amely gombok megnyomásával ezeket a batch fájlokat hívja 14
meg, és kapcsolgatja a lámpát. Magával a neuroheadsettel történő összekapcsolást a következő fejezetben részletezem. LEGO Mindstorm NXT A már korábban említett LEGO Mindstorm NXT-t LeJOS JAVA környezetben kapcsoltam össze a számítógéppel. Ehhez az interneten találtam mintaprogramokat, amik segítségével viszonylag könnyen sikerült egy JAVA szoftvert írnom a számítógépre, amely a standard input-ról olvas és az ott kapott parancsokat automatikusan továbbküldi a magára a robotra írt külön JAVA programnak, ami elvégzi a kívánt cselekvést. Ezt kipróbáltam mind Bluetooth, mind USB kommunkáció segítségével is. Ezután az EmoKey programban beállítottam bizonyos cselekvésekre a megfelelő karakter elküldését ennek a JAVA programnak és így képes voltam a headset-tel irányítani a robotot előre, hátra, illetve kanyarodásra utasítani. Alkalmazás fejlesztése Miután sikerült a fentebb leírt rendszerekkel megvalósítani az összeköttetést, a feladatom, célom az volt, hogy hozzak létre egy olyan szoftvert, amelyet használva a fogyatékossággal rendelkezők képesek vezérelni az otthonukba levő elektromos eszközök egy részét. Végeredményben a program jelen állapotában a LEGO robotot és egy asztali lámpát képes kezelni, de az X10-es rendszerre rákötve más elektromos eszközöket is képes pár sor módosítással vezérelni (más batch fájlt hívunk meg az adott helyen), de ezt már az önálló laborom során nem tudtam kipróbálni. A program alapvetően 2 részre, fülre osztható. Az egyik fülön kurzormozgatással és egy EmoKey-ben megadott cselekvéssel lehet a rendszernek a parancsokat kiadni. A kurzormozgatás a beépített minialkalmazással alapból megvalósított. Ez a felület az alábbi képen látható. 15
5. ábra Alkalmazás kurzorirányítás füle Értelemszerűen a megfelelő radiobutton-t kiválasztva lehet a jobb oldalon lévő két gombbal ki be kapcsolni az adott eszközt. A másik megközelítés a kognitív parancsokra és az arcmimika felismerésére épít. Idő hiányában nem sikerült megoldanom, hogy ha rámegyünk erre a fülre, akkor automatikusan küldje el a giroszkópos kurzorirányító minialkalmazásnak a kikapcsolás billentyűkombinációt, hogy ez ne zavarjon be. Az alt+tab parancs, majd a megfelelő kombináció elküldésével ez néha működött, néha nem, ezért inkább nem használtam. Idő hiányában pedig véglegesen megoldani nem tudtam. De lényegében a program használatakor ez nem olyan zavaró. Ez a felület a következőképp néz ki: 16
6. ábra Alkalmazás másik füle A fülre kattintva aktívvá válik a szövegbeviteli mező, ahova az EmoKey küldi az ott beállított megfelelő parancsokat (ezt a JAVA nyelv DocumentListener nevű osztályával figyelem). Jelenleg bináris parancsokat lehet küldeni, de ezt nyugodtan át lehet alakítani ternárissá is, mivel én például tesztelni csak az arcmimikával teszteltem, de egy kognitív parancsot is nyugodtan lehet itt "plusszban" használni, vagy kettőt, ami segítségével még több eszközt képesek vagyunk kezelni. Egy-egy parancsot elküldve a program visszakérdez, hogy tényleg ezt akarjuk e csinálni (a képen például "LAMP OFF?"), majd itt egy megerősítést adva elég jól ki tudjuk küszöbölni a hibás parancsfelismeréseket. A LEGO robot esetében, miután kiadtuk az aktiválását (a tényleges bekapcsolás nincs megoldva, alapból bekapcsolt állapotban lévő robottal teszteltem a működést), ezután ugyanazokkal az arcmimika és kognitív parancsokkal tudjuk irányítani a robotot, amivel magával a parancsot kiadtuk, egyfajta könyvtárstruktúraszerűen. Van egy úgynevezett "escape" parancs, amelyet például a robot irányításakor kiadva visszalépünk a szövegbeviteli részéhez a programnak, illetve itt is kiadva pedig átlépünk a kurzorral irányítható részre. 17
Összegzés Az alkalmazás, mint az a leírásból látszik, még nincs teljesen készen. Például a felhasználó nem tudja megadni, hogy az elektromos eszközeit az X10-es rendszer mely interfészeire kötötte, ehhez a programkódot kell átírni. Illetve egyéb irányításbeli könnyítéseket is lehet még alkalmazni, például a kurzoros irányítás esetén a radiobutton-öket lecserélni más megoldásra. De ezektől eltekintve lényegében egy hasznos szoftvert sikerült létrehoznom, amellyel a fogyatékossággal rendelkezők mindennapjait meg lehet könnyíteni (a headset használatával egybevonva), illetve kényelmi szempontból másoknak is hasznos lehet a végeredmény. További munka Az esetleges további munkák a témával kapcsolatban a következők lehetnek. Az összegyűjtött ötletekből egy vagy több megvalósítása, illetve új ötletek kitalálása majd azok megvalósítása. Itt nehézséget okoz az ötletek egy részénél, hogy egyéb berendezést, eszközt igényel, ami a tanszéken nem elérhető (például elektromos kerekesszék). Ugyanakkor további munkaként elképzelhető a létrehozott alkalmazás továbbfejlesztése és finomabbá, felhasználóbarátabbá tétele. 18
Irodalomjegyzék [1] http://en.wikipedia.org/wiki/brain%e2%80%93computer_interface [2] http://www.simonjstuart.com/2011/10/17/controlling-delphi-applicationsusing-your-thoughts/ [3] http://project.mit.bme.hu/bci/wiki/emotiv-epoc-headset [4] http://en.wikipedia.org/wiki/electroencephalography [5] http://www.quora.com/how-does-the-emotiv-epoc-neuroheadset-work [6] http://en.wikipedia.org/wiki/wheelchair [7] http://www.pgdt.com/ [8] http://www.wheelchairdriver.com/radio-controlled-powerchair.htm [9] http://en.wikipedia.org/wiki/lego_mindstorms_nxt [10] http://en.wikipedia.org/wiki/x10_%28industry_standard%29 19