Magazín KPI
Časopis Katedry počítačov a informatiky FEI TUKE
kpi

Virtuálny invalidný vozík

Hlavnou témou tejto práce je vývoj virtuálneho invalidného vozíka. V prvej časti sa analyzoval projekt a jeho podobné riešenia, ktorými sa inšpirovalo v tejto práci. Bola popísaná analýza hardvérového a softvérového riešenia. Ďalej bola popísaná samotná implementácia hardvérovej a softvérovej časti. Toto riešenie malo pomôcť k ľahšej interakcii invalidného vozíka s jeho novými užívateľmi čo sa aspoň trocha podarilo a vytvorilo sa zaujímavé riešenie tohto problému.

ÚVOD

Už len predstava ľudí, ktorý príčinou iných, samého seba alebo už od narodenia nemôžu chodiť je dosť zdrvujúca. Ľudia, ktorý za toto nešťastie ani nemôžu, no ich veľkým snom je byť rovnaký ako ostatný. Tak ako ľudia dúfajúci vo vyliečenie neliečiteľnej choroby dúfajú, že jedného dňa lekári na túto chorobu nájdu liek, aj títo sa z toho chcú všemožnou dnešnou technikou alebo liekmi vyliečiť. Čo majú takýto ľudia robiť ? Celý svoj život sa spoliehajú len na pomoc iných ľudí a pritom by aj oni sami radi pomohli. Chcú sa čo najrýchlejšie postaviť na svoje nohy a osamostatniť. Niektorý to dokážu a niektorý nato zanevrú. Nebaví ich to stále skúšať a nevidieť výsledky. Ale dôležité by malo byť skúšať a nevzdať sa a možno sa to raz podarí. Ľudia sa po celé generácie snažili pomôcť týmto ľuďom uľahčiť život vytvorením invalidných vozíkov alebo iných pomocných technológií. Napredovaním technológií v smere lepších smartfónov, dosahovania lepšieho výpočtového výkonu v počítačoch a lepšej techniky sa týmto ľuďom veľmi pomohlo, ale lekárska technika, vymoženosti a vedomosti nie sú ani v dnešnej dobe až také veľké, aby vyliečili týchto ľudí a akoby lusknutím prsta začali chodiť. Informatici pomohli aspoň niektorými nápadmi a projektmi, ktorými sa inšpirovalo v tejto práci.

Koncept riešenia

Pre začiatok bolo potrebné vytvoriť diagram ako bude fungovať celý projekt a čo bolo potrebné vytvoriť pre hardvérovú a softvérovú časť, ktorý je možné vidieť na nasledujúcom obrázku.

Invalidný vozík

Pre tento projekt sa musel zakúpiť invalidný vozík. Keďže dôležitým kritériom bolo, aby tento invalidný vozík bol skladací pre flexibilnosť, dobré uskladnenie a prenášanie, tak sa takýto vozík našiel a zakúpil. Ten je možné vidieť na nasledujúcom obrázku.

Nosnosť invalidného vozíka sa zdala postačujúca pre väčšinu osôb a nebola zlepšená. Ak by to v budúcnosti nestačilo,mohlo by sa vymeniť čalúnenie za pevnejšie. Ak by sa vyrábal originál vozíček, ktorý by sa používal pri rehabilitáciách, tak by mohol byť vyrobený z ľahkých materiálov a užívatelia by si ho mohli brať domov a požičiavať medzi sebou.

Konštrukcia

Vytvorila sa konštrukcia na ktorú by sa pripojil hocijaký mechanický invalidný vozík podobných rozmerov. Najprv sa premýšľalo nad tvorbou konštrukcie zo železa, aby to bolo pevné a udržalo to invalidný vozík aj s užívateľom. Neskôr sa ale našlo lepšie riešenie a to tvorba konštrukcie z dreva. Týmto sa dosiahla veľmi nízka hmotnosť konštrukcie oproti konštrukcii vyrobenej zo železa. Konštrukcia obsahuje skrutky pomocou ktorých je jednoduché celú konštrukciu veľmi rýchlo demontovať. Konštrukciu aj s invalidným vozíkom je možné vidieť na nasledovnom obrázku. Stále sa ale dá na tejto konštrukcii niečo vylepšiť.

Senzorické systémy

Po usadení vozíka na konštrukciu bolo potrebné namontovať snímače na invalidný vozík. Tie snímajú otáčky kolesa, ak nimi užívateľ pohne. Kúpil sa teda pulses incremental optical rotary encoder.Jeho rozmery a popis sa nachádza v systémovej príručke. Pretože na Slovensku boli tieto snímače dosť drahé, našli sa snímače čínskej výroby z Číny. Snímač sa používa na meranie rýchlosti otáčania objektu čiže kolesa na invalidnom vozíku. Tiež sa dali využiť aj na meranie uhlu, zrýchlenia a merania dĺžky, ale to nebolo potrebné v tomto projekte. Na tieto snímače boli kladené požiadavky ako spoľahlivosť, nízka cena, malé rozmery, vysoká presnosť a ľahká inštalácia. Všetky tieto body boli splnené. Tieto snímače nemali koncovku nejakého známeho konektora pre počítač a tak nebolo možné pripojiť ich na počítač. Ako koncovku mali tieto snímače len káble, ktoré bolo potrebné pripojiť na nejaký zásuvný modul na spracovanie signálu zo snímačov. To bolo zabezpečené zásuvným modulom.

Zásuvný modul

Po dlhšom uvažovaní sa ale prišlo nato, že tento projekt bude robený pomocou arduina vďaka realtimu a pretože si program nevyžaduje náročný výpočet. Ideálne arduino pre tento projekt bolo arduino mega. Bolo zvolené z hľadiska väčšieho množstva pinov, ktoré boli potrebné pre dve snímače. Následne sa snímače napojili na piny na arduine. Shield v tomto projekte nebol potrebný. Arduino mega verziu 2560 aj so zapojením snímačov je možné vidieť na nasledujúcom obrázku.

Arduino mega sa následne napojilo na počítač pomocou USB rozhrania kvôli potrebnému päť voltového napájania. Objavilo sa inštalačné okno a arduino počítač rozoznal ako nový hardvér. Následne bolo potrebné aktualizovať driver k arduinu. Bolo potrebné otvoriť nástroje a tam v zozname nastaviť dosku, ktorá sa bude používať, teda arduinomega. V nástrojoch sa vybralserial port na ktorý je arduino pripojené. Bolo potrebné niekde zobrazovať hodnoty otáčok. Na komunikáciu a programovanie bolo stiahnuté vývojové prostredie Arduino IDE, kde v súčasnej dobe koluje posledná verzia arduina 1.8.5. Naprogramovala sa aplikácia, ktorá snímala otáčky zo snímačov a spracovávala ich. Prostredie arduina bolo prepojené s grafickým enginom a modely v engine boli vytvorené v grafickom editore.

Modelovacie nástroje

Kvôli najrozšírenejšiemu používaniu boli na tvorbu modelov alebo na úpravu použité SketchUp a blender. Prioritne bol ale použitý viac SketchUp a blender bol použitý skôr na kompatibilitu modelov pretože sa stávalo, že niektoré modely neboli spustiteľné napríklad v SketchUpe, pretože nepodporovali požadovaný formát. Vytvorenie rôznych geometrických tvarov napríklad čiar, obĺžníkov, kružníc alebo oblúkov bolo veľmi jednoduché vytvoriť. Ihneď bolo možné vytvoriť napríklad okná, dvere a rôzne tvary aké si len možno predstaviť len pomocou takzvanej ceruzky. Tie sa následne dali posúvať, kopírovať, otáčať alebo meniť veľkosť. Všetky opakujúce prvky boli vytvorené ako komponenty. To sa využívalo napríklad pri rovnakých oknách, ak sa zmenilo niečo na jednom okne modifikácia bola spravená automaticky aj na druhom. A tak sa vytváral postupne interiér aplikácie. Tvorba všetkých modelov zaberalo príliš veľa času a vizuálne to nebolo až také pekné. Premýšľalo sa nad vymodelovaním ľubovoľného objektu alebo terénu v okolí pomocou google Earth. To ale pre tvorbu interiéru bolo nevhodné, preto sa zvolilo sťahovanie voľne dostupných modelov. Preto bola použitá funkcionalita 3D Warehouse. Je to bohatá zásobáreň už vytvorených komponentov z celého sveta, ktoré sú zadarmo k dispozícií. Tiež bolo možné prispieť vlastnými modelmi. Tieto modeli následne boli exportované a importované do formátov konkurenčných programov pomocou SketchUpu alebo blenderu. To bolo urobené aby sa zjednotila prípona pre všetky modely.

3D herný engine

Herný engine sa mohol naprogramovať aj čisto ručne v programovacom jazyku java alebo v C++ alebo použitím knižníc, ale engine bol využitý na uľahčenie práce a čo najlepšej vizualizácie, preto sa využil už existujúci. Premýšľalo sa, aby engine spĺňal určité kritéria. Tie ale spĺňalo veľa enginov. Rozhodovalo sa medzi najpoužívanejším a to je Unreal Engine a Unity. Keďže sa zistilo, že Unity je skôr na vývoj hier rozhodlo sa pre Unreal Engine Unreal Engine bol zvolený aj z hľadiska zaujímavého programovania pomocou blueprintov. Systém blueprintov je komplexný herný skriptovací systém založený na koncepte používania rozhrania založeného na uzloch a na vytvorení elementov v hre.Je možné písať aj kód formou objektovo orientovaného jazyka v C++. Tento systém je mimoriadne flexibilný a výkonný, pretože využíva koncepty a návrhy už otestované, vyskúšané a overené.I keď tento systém sa pravidelne vyvíja preto dvíhaním verzií sa niektoré blueprinty menia. Vývojári menia hlavne funkcionalitu alebo ich celé prerobia alebo nahradia novými. Náhradou za nové alebo ich prerobením vznikali komplikácie a v budúcnosti niektoré blueprinty nemusia fungovať s novšími verziami Unreal Enginu.

Na prepojenie arduina s UnrealEnginom bol použitý plugin. Daný pluginbolo potrebné stiahnuť na linku. Potrebnésúborysa nakopírovali do UnrealEnginu do priečinka Plugins.Keď sa všetko toto nastavilo, po spustení sa daný plugin zobrazoval medzi pluginmi.

Pre ovládanie a vnímanie interakcií boli postupne testované zariadenia pre ovládanie ako klávesnica, myš, joystik, virtuálny vozík.Nato aby sa Invalidný vozík mohol pohybovať vpred, vzad a otáčať sa vľavo a vpravo musel užívateľ zadať nejaký vstup napríklad pohol nejakým kolesom na vozíku a následne bol vykonaný pohyb. Užívateľ môže vykonávať dve stavy pomocou invalidného vozíka a to pohyb a samotné zastavenie s invalidným vozíkom.Blueprinty okolo ovládania boli využité zo základného vytvoreného projektu, ktorý ponúka UnrealEngine. Ako výstupné zariadenia tu patrila obrazovka a reproduktory. Bola spravená hudba do aplikácie a zvuk, ktorý sa následne premietal cez tieto reproduktory.

Proces dizajnovania sa začínal vkladaním 3D objektov vybavenia do interiéru. 3D objekty vybavenia interiéru boli rozdelené do troch základných skupín: nábytok, elektronika, dekorácie. Ďalej objektom bol zmenený povrch pomocou upravovania farieb a materiálov. Bol menený povrch podláh, stien, stropov, ale aj 3D objektov vybavenia interiéru. V hernom engine podporovanom modernými nástrojmi pre zobrazovanie a ovládanie umožňuje jednoduché navrhovanie interiérov. Herný engine umožňuje intuitívne ovládanie procesu dizajnovania. Je v ňom možné vidieť návrh v reálnom čase bez opakovaného renderovania vizualizácií. Dokáže prispôsobiť rozmer nábytku rozmeru miestností.

Interakcia s prostredím

Bola vytvorená aplikácia v ktorej bolo vytvorené simulované prostredie. Toto simulované prostredie umožňuje testovať a trénovať potenciálnych užívateľov inteligentného invalidného vozíka. Vyberali sa najdostupnejšie možnosti pre každého konkrétneho užívateľa. Užívatelia sa testovali priamo počas jazdy na invalidnom vozíku. Po každom otestovaní bolo potrebné zlepšiť realitu simulovaného prostredia a správanie invalidného vozíka v aplikácii.

V tejto virtuálnej realite bolo možné použiť viacero vstupných zariadení, ktoré umožňovali užívateľom s rôznymi postihnutiami ovládať invalidný vozík. Ako vstupné zariadenia použité klávesnica, myš, joystik, kolesá na invalidnom vozíku alebo ich kombinácia. Tieto viacnásobné vstupy boli integrované s riadiacim systémom zodpovedným za rozhodnutie o povolení daného zariadenia alebo zakázanie ľubovoľného vstupu, v prípade akéhokoľvek pozorovaného konfliktu alebo nebezpečnej situácie by iný užívateľ zabránil neželanému nárazu. Zámerom viacnásobných vstupov bolo ponúknuť užívateľom slobodu výberu zariadenia, ktoré by bolo pre neho najviac pohodlné a bezpečné pre jazdenie na invalidnom vozíku. Bolo ale dôležitejšie ovládať aplikáciu pomocou invalidného vozíka, pretože to bolo účelom tejto práce. Čiže aj užívateľom, ktorý sa nemusia naučiť chodiť na invalidnom vozíku, pretože sú zdravý im táto aplikácia umožňuje vyskúšať si to a vžiť sa do role človeka s invalidným vozíkom a zistiť, že to nie je také jednoduché.

Človek sa bežne stretáva vonku s veľa nebezpečnými situáciami. V aplikácií boli vybrané tie, ktoré sa zdali najdôležitejšie, a ktoré sa vymysleli postupným experimentovaním na aplikácii. Medzi takéto nebezpečné situácie patrilo napríklad vytvorenie potrebnej sady pre vyhnutie sa prekážkam, sledovanie steny, mapovanie životného prostredia, rôzne diery a nerovnosti, ktoré boli umiestnené do virtuálneho prostredia. Simulácia sa delí na dve hlavné časti. Na prostredie, budovy no nachádzali sa tu tiež generické predmety napríklad dvere a iné predmety. Bola vytvorená mapa a rôzne scenáre, ktorými užívateľ postupne prechádzal a postupným prechádzaním scenárov sa zvyšovala aj obtiažnosť. V aplikácii sa ľudia dostanú do virtuálneho prostredia kde na nich čakalo množstvo tréningových úloh a prekážok, ktoré simulujú reálny svet, ale aj ten nereálny a hráčsky. Bolo to vytvorené, aby sa vyhovelo viacerým požiadavkám a išlo to s dnešnou dobou.

Nato aby si túto aplikáciu zahrali užívatelia aj doma tak jednoducho si tento prenosný a čo najľahší systém priniesli až domov. Doma už len na konštrukciu pripevnili skladací invalidný vozík alebo dokonca svoj, ak sedel rozmermi, zapojili USBkábel z arduina do počítača a spustili aplikáciu. A takto mohli hodiny a hodiny v pohodlí domova ovládať a trénovať svoju zručnosť na vozíku. Neboli limitovaný objednávaním na presnú hodinu alebo v čase ordinačných hodín. Nemuseli sa nikam ponáhľať, že po hodine bol objednaný iný užívateľ i keď momentálne existuje jedna takáto konštrukcia v budúcnosti by sa ich mohlo vyrobiť viac a takto si navzájom požičiavať a prenajímať. Náklady by boli dosť nízke oproti tomu, žeby sa zato platilo na hodiny, bol by dlhý čakací rad a jeden užívateľ by sa k tomuto systému dostal na hodinu len každý mesiac. Náklady aj na výrobu tohto prístroja nie sú až také vysoké ako väčšina prístrojov, ktoré si nemocnica nemôže dovoliť. Pretože bol vytvorený projekt, ktorého hlavnou prioritou bola nízka nákladnosť, spustiteľná na počítači s nízkou hardvérovou náročnosťou, čo v dnešnej dobe má už väčšina ľudí nejaký ten počítač. Každý by si teda mohol nainštalovať a vyskúšať si danú aplikáciu doma a spraviť si tak vlastnú domácu terapiu, ktorou by sa v budúcnosti aj odporúčalo lekármi, kde by nemuseli ľudia voziť invalida veľa kilometrov denne len za náročnými a drahými terapiami. Užívatelia ovládali a trénovali svoju zručnosť na vozíku. Keďže nie každý od narodenia stratí schopnosť chodiť tak je to zo začiatku pre takých ľudí veľmi ťažké a však touto hravou formou by to človeka mohlo aj troška baviť a potešiť a zdolávať prekážky v tejto aplikácii ako aj v celom svojom živote. Tu sa musia sústrediť na obrazovku tejto aplikácie a aby nikam nenarazili. Aj keď narazia, všetko sa uskutočňuje vo virtuálnej realite a aplikácia ich na zrážku s objektom upozorní. Iný človek by vedel sledovať čo užívateľ robí a pomôcť mu iným vstupným zariadením. Bolo vytvorené pár levelov.

V prvom bol vytvorený reálny dom a pohyb hráča bol v tomto dome. V niektorých miestnostiach bola spravená nízka intenzita svetla v inej zase hlučné prostredie, ktoré malo simulovať bežný hluk vonku vďaka vozidlám, ľuďom a iným predmetom tomu prislúchajúcim. Nachádzal sa tu tiež výťah aby umožnilo invalidovi pohybovať sa po poschodiach a nemusel zdolávať schody, čo pre invalidov je dosť náročné a nereálne ich zdolať. Tiež sa tu nachádzali úzke priestory a úzke chodby, ktorými musel užívateľ prejsť. A sledovalo sa ako užívatelia budú reagovať.

V druhom bola vytvorená ulica a animácie automobilov. Tu sa nachádzali bežné situácie z vonku, kde boli napríklad úzke chodníky acestys automobilmi, ktoré sú dennou prekážkou pre užívateľov invalidných vozíkov pohybujúcich sa po vonku.

V treťom bol vytvorený les a kopce kde by používateľ chodil na prechádzku ako v bežnom svete a naučil by sa tak nebáť vyjsť aj vonku do prírody bez toho aby niekoho potrebovali. V budúcnosti by sa tu tiež dalo pripevniť motor o invalidný vozík a vznikol by určitý odpor ktorý by simuloval kopce v tomto prostredí.

Vo štvrtom bolo vytvorené nereálne prostredie slúžiace ako počítačová hra. Toto nereálne prostredie bolo vytvorené z hľadiska vysokej obtiažnosti i na bežného užívateľa. Išlo v ňom skôr o rýchle reflexy a o maximálnu pozornosť. Skôr to už ale bolo nereálne formou dnešných hier. Bolo to spravené z hľadiska vyhovenia všetkým užívateľom kde by si každý mohol vybrať svoje prostredie, ktoré sa mu páči najviac. Mohol si zvoliť teda toto nereálne alebo sa preorientovať do dnešných pomerov do domu alebo do vonkajšieho prostredia. V danej scéne bolo spravené aj skóre pre hráča, pomocou ktorého by sa dalo porovnávať aj s inými hráčmi. Hráči zbierali barely alebo predmety, ktoré našli na svojej ceste. V ceste im stáli obrovské mravce, ktorým sa museli vyhýbať.

Záver

Tieto simulácie sú pre vozíčkarov pre začiatok lepšie, pretože v bežnom živote by to mohlo byť pre neho veľmi ťažké si navyknúť na všetky nástrahy okolo. Preto mu pre začiatok pomáhali tieto virtuálne svety. Do budúcnosti by bolo zaujímavé vytvoriť multiplayer kde by viac užívateľov ovládalo aplikáciu z iných vstupných zariadení alebo by sa napojilo viac invalidných vozíkov a tak by sa viac užívateľov stretlo vo virtuálnom svete a spoločne by sa v ňom podporovali. Dosiahli by sa tak lepšie výsledky a oveľa rýchlejšie by sa tak užívateľ naučil ovládať invalidný vozík. Tiež by sa mohla aplikácia rozšíriť o umelú inteligenciu a prispôsobovať sa požiadavkám užívateľov.

[1]: Virtuálny invalidný vozík - Diplomová práca, Erik Chmeľ

Linkovať