• No results found

Prohlášení Byl jsem seznámen s tím, že na mou bakalářskou práci se plně vztahuje zákon č. 121/2000 Sb., o právu autorském, zejména § 60

N/A
N/A
Protected

Academic year: 2022

Share "Prohlášení Byl jsem seznámen s tím, že na mou bakalářskou práci se plně vztahuje zákon č. 121/2000 Sb., o právu autorském, zejména § 60"

Copied!
32
0
0

Loading.... (view fulltext now)

Full text

(1)
(2)
(3)
(4)

3

Prohlášení

Byl jsem seznámen s tím, že na mou bakalářskou práci se plně vztahuje zákon č.

121/2000 Sb., o právu autorském, zejména § 60 – školní dílo.

Beru na vědomí, že Technická univerzita v Liberci (TUL) nezasahuje do mých autorských práv užitím mé bakalářské práce pro vnitřní potřebu TUL.

Užiji-li bakalářskou práci nebo poskytnu-li licenci k jejímu využití, jsem si vědom povinnosti informovat o této skutečnosti TUL; v tomto případě má TUL právo ode mne požadovat úhradu nákladů, které vynaložila na vytvoření díla, až do jejich skutečné výše.

Bakalářskou práci jsem vypracoval samostatně s použitím uvedené literatury a na základě konzultací s vedoucím mé bakalářské práce a konzultantem.

Současně čestně prohlašuji, že tištěná verze práce se shoduje s elektronickou verzí, vloženou do IS STAG.

Datum:

Podpis:

(5)

4

Poděkování

Tímto bych chtěl poděkovat všem, kteří jakkoliv přispěli ke vzniku této práce.

V první řadě mému vedoucímu, panu Ing. Josefu Černohorskému, Ph.D., za jeho podněty, rady a svůj čas. Dále bych rád vyjádřil poděkování mému technickému konzultantovi, Ing. Radku Srbovi, za poskytnuté konzultace v průběhu řešení práce.

(6)

5

Abstrakt

Tato práce se zabývá herními zařízeními se silově momentovou zpětnou vazbou a možností jejich alternativního využití pro účely rehabilitace.

V první části práce je popsán koncept silově momentové zpětné vazby a uveden výčet kategorií herních zařízení se silově momentovou zpětnou vazbou, která jsou aktuálně dostupná s příklady zástupců jednotlivých kategorií. Následně jsou uvedeny možné způsoby, jak lze tato zařízení programově ovládat na platformě PC.

Druhá část práce popisuje návrh a implementaci aplikace vytvořené pro účely rehabilitace. Aplikace umožňuje provést jejímu operátorovi diagnostiku stavu rehabilitovaného pacienta, tvorbu rehabilitačních cvičebních programů a obsahuje motivační rozhraní, formou jednoduché hry, které doprovází pacienta při vlastním cvičení.

Klíčová slova

Rehabilitace, Force Feedback, Joystick, Herní periferie

(7)

6

Abstract

This thesis focuses on gaming devices with force feedback functionality and their alternative use for rehabilitation purposes.

In the first part of the thesis is explained the concept of the force feedback functionality and is provided a list of categories of gaming devices with this feature which are currently available on the market and with an example from each category. Next section presents possible ways of how to program and control these devices on PC platform.

The second part of the thesis describes design and implementation of PC application created for rehabilitation purposes. The application allows operator to run diagnostics process to get a status report of a rehabilitated patient, enables operator to create rehabilitation programs and includes motivational interface, based on simple game, which guides the patient through the exercise program.

Keywords

Rehabilitation, Force Feedback, Joystick, Game peripherals

(8)

7

Obsah

Prohlášení ... 3

Poděkování ... 4

Abstrakt ... 5

Abstract ... 6

Obsah ... 7

Seznam obrázků ... 9

Seznam zkratek ... 10

Úvod ... 11

1. Zařízení se silově momentovou zpětnou vazbou ... 12

1.1. Silově momentová zpětná vazba ... 12

1.2. Typy zařízení ... 12

1.2.1. Volanty... 12

1.2.2. Joysticky ... 13

1.2.3. Mechanické návleky ... 14

1.2.4. Obecná vstupně/výstupní zařízení ... 15

1.3. Programové řízení zařízení ... 15

1.3.1. Standard HID ... 15

1.3.2. Rozšiřující specifikace HID – PID ... 15

1.3.3. Efekty dle PID ... 15

1.3.4. Řízení zařízení na platformě PC ... 17

2. Návrh řešení ... 18

2.1. Použité technologie ... 18

2.1.1. Grafické rozhraní ... 18

2.1.2. Komunikace se zařízením ... 18

2.2. Struktura aplikace ... 18

2.2.1. Hlavní modul ... 18

2.2.2. Diagnostický modul ... 18

2.2.3. Cvičební modul ... 19

2.3. Testovací aplikace ... 19

2.3.1. Testování efektů ... 20

2.3.2. Záznam stavu... 21

3. Realizace řešení ... 22

3.1. Řízení a komunikace se zařízením ... 22

(9)

8

3.1.1. Správa zařízení ... 22

3.1.2. Kalibrace zařízení ... 22

3.1.3. Čtení stavu zařízení ... 22

3.1.4. Práce se silovými efekty ... 22

3.2. Nastavení ... 23

3.2.1. Výběr zařízení ... 23

3.2.2. Kalibrace ... 23

3.3. Diagnostika ... 24

3.3.1. Prvky rozhraní ... 24

3.3.2. Provádění diagnostiky ... 25

3.4. Cvičení ... 26

3.4.1. Editor cvičebních programů ... 26

3.4.2. Motivační rozhraní ... 27

4. Závěr ... 29

Seznam použité literatury ... 30

Seznam příloh ... 31

(10)

9

Seznam obrázků

Obrázek 1-1 Logitech WingMan FORMULA FORCE GP ... 13

Obrázek 1-2 Logitech Flight System G940... 13

Obrázek 1-3 Dexmo F2 ... 14

Obrázek 1-4 Novint Xio ... 14

Obrázek 1-5 Znázornění efektu constant force ... 16

Obrázek 1-6 Znázornění efektu ramp force ... 16

Obrázek 1-7 Znázornění efektu condition ... 16

Obrázek 1-8 Znázornění efektu periodic ... 17

Obrázek 2-1 Tester zařízení – efekty ... 20

Obrázek 2-2 Tester zařízení – záznam stavu ... 21

Obrázek 3-1 Okno nastavení ... 23

Obrázek 3-2 Okno diagnostika – měření ... 24

Obrázek 3-3 Okno diagnostika – výsledky ... 25

Obrázek 3-4 Diagnostický test – indikace průběhu dosažení úkonu ... 25

Obrázek 3-5 Nastavení hodnot zatížení v programu Roboto ... 27

Obrázek 3-6 Motivační rozhraní – nesplnění časového limitu ... 27

Obrázek 3-7 Cvičení – motivační rozhraní ... 28

Obrázek 3-8 Cvičení – výsledky ... 28

(11)

10

Seznam zkratek

API – Application Programming Interface DOF – Degree of Freedom

GUID – Globally Unique Identifier HID – Human Interface Device PC – Personal Computer

PID – Physical Interface Device SDK – Software Development Kit USB – Universal Serial Bus

(12)

11

Úvod

Po nehodách či úrazech a zahojení případných vzniklých ran často následuje dlouhé období, ve kterém pacienti trpí bolestmi a z toho plynoucími omezeními, a je nutné přistoupit k různým formám rehabilitace. Moderní technologie dnes umožňují různé způsoby, jak rehabilitaci provádět či dokonce zefektivnit. Ve většině případů se však jedná o cenově náročná řešení, čímž se stávají nedostupnými pro menší rehabilitační pracoviště. Při hledání alternativních způsobů padla volba na technologii silové zpětné vazby, používané v některých herních zařízeních. Ve prospěch těchto zařízení mluví jejich snadná dostupnost a nízká pořizovací cena.

Cílem práce je provedení průzkumu aktuálně dostupných herních zařízení se silově zpětnou vazbou a způsobů, jakými lze tato zařízení programovat a ovládat. Pro ověření konceptu si práce dále klade za cíl navrhnout aplikaci pro platformu PC se snadno ovladatelným a přehledným uživatelským rozhraním, které by usnadnilo pracovníkům rehabilitačního zařízení provádět diagnostiku stavu pacientů a na jejím základě poté navrhnout vhodné rehabilitační cvičení, které by mělo být doprovázeno motivačním rozhraním, zpříjemňujícím pacientům jejich cvičení.

(13)

12

1. Zařízení se silově momentovou zpětnou vazbou

1.1. Silově momentová zpětná vazba

Silově momentová zpětná vazba, známá spíše pod anglickým termínem force feedback, je v kontextu herních periferií termín označující schopnost zařízení generovat síly, které osoba ovládající toto zařízení interpretuje jako tah nebo odpor.

Ke generování těchto sil se standardně využívají elektromotory integrované do těchto periferií. Dle kategorie zařízení pak elektromotor působí v určeném směru točení přes ozubená kola či pomocí řemene na osu otáčení nebo pomocí táhel způsobuje výkyv.

Intenzita síly, resp. její maximální úroveň, není definována standardem, což přináší při programovém řízení problém, kdy i při použití zařízení stejného typu nelze předpokládat ekvivalentní silovou odezvu a je tak nutné vždy provést kalibraci zařízení či úpravu programových parametrů.

1.2. Typy zařízení

Zařízení, která nabízí funkcionalitu silově momentové zpětné vazby, lze obecně rozdělit do dvou základních skupin. První skupinou jsou zařízení, která mají zpětnou vazbu pouze jako doplňkovou funkcionalitu a není jejich hlavním účelem.

Mezi hlavní kategorie této skupiny patří volanty a joysticky.

Druhou skupinu tvoří zařízení, která jsou vyráběna především za účelem poskytování silově momentové zpětné vazby a jejich obor využití není pouze jako herní periferie, nýbrž jako univerzální vstupně/výstupní zařízení.

Zařízení je také možné rozdělit dle tzv. stupně volnosti (Degree of Freedom, zkr. DOF), vyjadřujícího počet nezávislých souřadnic, které popisují stav zařízení.

1.2.1. Volanty

Volant jako herní periferie je analogií k volantům, které se běžně používají v automobilech. Jednotlivé vyráběné typy se odlišují pouze v rozsahu možného otočení a počtu doplňkových ovládacích prvků jakými jsou například řadicí páky, pedály a tlačítka.

V základní konfiguraci patří volanty do skupiny 1 DOF, silově momentovou zpětnou vazbu lze tedy aplikovat pouze podél jediné osy.

(14)

13

Funkcionalitu silově momentové zpětné vazby nenabízí všechna zařízení této kategorie a při výběru konkrétního výrobku je tak nutné dbát na to, zda je tato funkcionalita poskytována.

Mezi přední výrobce patří firmy Thrustmaster[1], Logitech[2] a Fanatec[3].

OBRÁZEK 1-1LOGITECH WINGMAN FORMULAFORCEGP 1.2.2. Joysticky

Joystick je pákové vstupní zařízení. Základní verze umožňuje pohyb ve dvou směrech a řadí se tak do skupiny 2 DOF, aplikace sil je zde možná podél obou os.

Joystick jako herní periferie je aktuálně již spíše okrajovou záležitostí a na rozdíl od výše zmíněných volantů, kde je silově momentová zpětná vazba často dostupná, není u nově vyráběných joysticků již téměř používána a týká se tak především produktů dřívější výroby.

Jedním z mála joysticků vybavených touto technologií je výrobek od firmy Logitech – Logitech Flight System G940.

OBRÁZEK 1-2LOGITECH FLIGHT SYSTEM G940

(15)

14 1.2.3. Mechanické návleky

K herním účelům jsou také vyráběna zařízení realizovaná jako mechanické návleky.

Existující řešení mají buď formu rukavice, kde snímání a aplikace sil jsou možné pouze v rozsahu jednotlivých prstů, nebo jsou to řešení ve formě exoskeletu, kdy je zařízení upevněné k větší části těla, například k celé paži. Díky většímu rozsahu jsou rozšířeny možnosti snímání a především počet směrů, ve kterých lze aplikovat sílu.

Nejedná se o běžně dostupná zařízení, avšak s pokračujícím vývojem v odvětví virtuální reality v herním průmyslu se dostupnost těchto zařízení zvyšuje a lze očekávat zlepšení v jejich rozšíření.

Příkladem zařízení ve formě rukavice je aktuálně vyvíjený produkt firmy Dexta Robotics[4] – Dexmo F2.

OBRÁZEK 1-3DEXMO F2

Jako zástupce z kategorie exoskeletů lze uvést například produkt od firmy Novint[5], která se specializuje na zařízení s vyšším stupněm volnosti, s názvem Novint Xio, který je určen k upevnění na paži.

OBRÁZEK 1-4NOVINT XIO

(16)

15 1.2.4. Obecná vstupně/výstupní zařízení

Pro potřeby průmyslové výroby jsou vyráběna zařízení, například výrobky firmy Force Dimension[6], která nabízí vyšší stupně volnosti než běžně dostupné herní periferie. Tato zařízení jsou však primárně vyvíjena jako profesionální nástroje, což ovlivňuje jejich dostupnost a cenu, která je v porovnání s herními periferiemi, určenými pro širokou veřejnost, mnohonásobně vyšší.

1.3. Programové řízení zařízení

Pro řízení mechanických návleků a obecných vstupně/výstupních zařízení není vzhledem k jejich vzájemným odlišnostem možné snadno vytvořit jednotné řídící schéma, které by spadalo pod určitý standard, a způsob řízení těchto zařízení je tedy specifický pro daný typ a pro účely programového řízení je tak obvykle dodávána speciální vývojářská sada, tzv. SDK.

1.3.1. Standard HID

V případě volantů a joysticků, jejichž připojení je ve většině případů realizováno po sběrnici USB, existuje doplňující specifikace nazvaná Human Interface Device[7]

(označováno zkratkou HID). Tato specifikace definuje několik základních skupin zařízení, která slouží jako vstupní zařízení ovládané člověkem. HID standard definuje pomocí tzv. deskriptorů, jak má dané zařízení hostitelskému systému popsat své vlastnosti, tedy do které skupiny zařízení spadá a formát dat, která do systému odesílá. Herní periferie spadají v této specifikaci do třídy s názvem Game controllers, která předpokládá od těchto zařízení společnou základní funkcionalitu jako například počet a hodnoty os či stavy tlačítek.

1.3.2. Rozšiřující specifikace HID – PID

Pro zařízení se silově momentovou zpětnou vazbou je standard HID dále rozšířen specifikací Physical Interface Device[8] (označován zkratkou PID), která obsahuje popis základních typů efektů silově momentové zpětné vazby a možnosti jejich parametrizace.

K tomu, aby dané zařízení vyvinulo silově momentovou zpětnou vazbu, je nutné do zařízení nahrát tzv. silový efekt. Silový efekt je soubor informací, které popisují úroveň, délku trvání, průběh a osu, podél které bude efekt aplikován.

1.3.3. Efekty dle PID

Pro zjednodušení tvorby speciálních efektů a jejich parametrizování jsou silové efekty dále děleny do několika základních kategorií, kterými jsou:

(17)

16

 Constant force

Konstantní síla s určitou dobou trvání a úrovní.

OBRÁZEK 1-5ZNÁZORNĚNÍ EFEKTU CONSTANT FORCE

 Ramp force

Síla s definovanou počáteční a konečnou úrovní síly a dobou trvání přechodu mezi těmito stavy.

OBRÁZEK 1-6ZNÁZORNĚNÍ EFEKTU RAMP FORCE

 Condition

Zařízení spustí efekt na základě stavu, do kterého je uvedeno nebo jakým způsobem bylo do tohoto stavu přivedeno. Jedná se například o rychlost změny polohy či vzdálenost od základní polohy.

OBRÁZEK 1-7ZNÁZORNĚNÍ EFEKTU CONDITION

(18)

17

 Periodic

Určená úroveň síly je modulována dle vybraného periodického signálu (pila, sinus, obdélník).

OBRÁZEK 1-8ZNÁZORNĚNÍ EFEKTU PERIODIC

Průběhy efektů lze dodatečně modifikovat aplikováním obálky.

Výše popsané efekty lze plně či do určité míry realizovat pouze použitím základního efektu Constant force. Výhodou použití specializovaných efektů je usnadnění tvorby požadované silové odezvy a také minimalizování počtu k tomu užitých efektů a datové komunikace se zařízením. Možný maximální počet efektů je omezen integrovanou pamětí použitého zařízení a při jejím zaplnění je nutné efekty odstraňovat a nahrávat nové, což je v porovnání s pouhým vypínáním efektů časově náročnější operace a zařízení tak nemusí dostatečně rychle reagovat na změny stavu.

Standard nevyžaduje implementaci všech efektů a nevyžaduje ani podporu všech definovaných parametrů, je tedy nutné si před použitím efektu ověřit, zda vybraný efekt zařízení podporuje.

1.3.4. Řízení zařízení na platformě PC

Pokud je v hostitelském systému přítomen standardní ovladač pro výše zmiňovanou třídu Game controllers standardu HID a současně zařízení tento standard implementuje, není pro řízení a komunikaci s tímto zařízením vyžadována instalace dodatečného software a bezprostředně po připojení k PC je zařízení schopné komunikovat a je i možné jej ovládat pomocí informací poskytovaných na základě specifikace HID.

V prostředí operačního systému Microsoft Windows je k dispozici knihovna DirectInput[9], která je součástí multimediálního souboru knihoven Microsoft DirectX. Knihovna DirectInput slouží jako abstrakce nad standardem PID a poskytuje softwarové API, které lze použít při vývoji aplikací, jejichž součástí je komunikace se vstupně/výstupními zařízeními.

(19)

18

2. Návrh řešení

Na základě provedené rešerše byly zvoleny kategorie volant a joystick a dle jejich způsobu použití byla navržena uživatelská aplikace.

2.1. Použité technologie

Z důvodu majoritního zastoupení na platformě PC ve spotřebitelské sféře, plynoucího ze statistiky[10] společnosti Net Applications, byl pro vývoj zvolen operační systém Microsoft Windows. Zdrojový kód aplikace je napsán v jazyce C#.

2.1.1. Grafické rozhraní

Pro implementaci grafického rozhraní byla použita technologie Windows Forms, která je součástí platformy Microsoft .NET framework. Tato technologie v kombinaci s vývojovým prostředím Microsoft Visual Studio umožňuje rychlé prototypování a snadnou tvorbu grafického rozhraní.

Z důvodu požadavku na jednoduchost a přehlednost rozhraní a minimalizaci času, nutného k zaškolení obsluhy programu, bylo grafické rozhraní sestaveno z ovládacích prvků zvýšené velikosti a jejich zvýšeného vzájemného odsazení.

2.1.2. Komunikace se zařízením

Knihovna DirectInput, která poskytuje API pro komunikaci se zařízením, je napsána v jazyce C++. Pro její použití v aplikace psané v jazyce C# byly využity knihovny projektu SharpDX[11], který mapuje celé rozhrání DirectX na platformu Microsoft .NET framework.

2.2. Struktura aplikace 2.2.1. Hlavní modul

Kostrou aplikace je hlavní modul, který slouží jako vstupní bod a poskytuje přístup do ostatních modulů a do sekce nastavení, ve které lze provést volbu zařízení a zvolené zařízení kalibrovat. Kalibrování umožňuje změnit hodnoty, které bude aplikace používat jako hraniční body.

2.2.2. Diagnostický modul

Pro provádění otestování stavu pacienta slouží modul diagnostika. Modul umožňuje spouštění diagnostického testu, který je postaven na základě postupného navyšování zatížení vyvíjeného použitým zařízením. Pacient je v průběhu testu instruován zobrazovanými pokyny k interakci se zařízením.

Dle typu zařízení je požadovaná interakce buď otáčení, nebo odklon od osy, v obou možných směrech. Jeden testovací cyklus tedy sestává z průchodu oběma hraničními body této osy. Cyklus je možné časově omezit a při nesplnění požadovaného limitu postupuje test do dalšího cyklu.

(20)

19

V průběhu testu je zaznamenáván čas a v případě časového limitu také úspěšnost provedení požadovaného úkonu. Rozhraní po dokončení umožňuje zobrazit výsledky diagnostiky a na jejich základě vygenerovanou statistiku. Tyto mají za úkol sloužit jako podklad pro navržení vhodného cvičebního programu.

2.2.3. Cvičební modul

Cvičební modul slouží ke spouštění cvičebních programů v motivačním rozhraní a k jejich editaci.

Cvičební program

Parametrizovat cvičební procedury je umožněno pomocí cvičebních programů.

V rámci cvičebního programu lze nastavit minimální a maximální polohu a to jako procentuální hodnotu z celkového rozsahu zařízení, případně dle jeho definované kalibrace. Minimální poloha je bodem, do kterého je nutné zařízení uvést, aby byl cvik považován za splněný, a poloha maximální je bod, přes který nemá být pacientem přecházeno. Dále je možné nastavit časový limit na provedení cviku, počet požadovaných provedení a procentuální úroveň zatížení vztaženou k maximálnímu zatížení podporovaného zařízením. Pro konstantní hodnotu zatížení je možné definovat deset různých programů. V doplňujícím, jedenáctém, programu lze definovat úrovně zatížení dle procentuálního odklonění od centrálního bodu a to odděleně pro oba možné směry.

Editor programů

Pro editaci programů byl vyvinut editor, který umožňuje měnit parametry jednotlivých programů, a pro parametrizaci doplňkového programu byl navržen ovládací prvek, sestávající z grafu a posuvníků, poskytující tak grafické znázornění průběhu zatížení.

Motivační rozhraní

K motivaci pacienta k provádění cvičení byl vytvořen koncept jednoduché hry, ve které je pacient postaven do role postavičky s cílem pojídat dorty, které se střídavě objevují na stranách při přiblížení se k elementu spínače, umístěným v centru hrací plochy. Takto je pacient nucen s postavičkou procházet body spínače a dortů, čímž je prováděno cvičení. Pro potřeby časového limitu byla hra doplněna o element postavy, která v daném časovém limitu dorazí k dortu a dort sebere. K tomu, aby pacient splnil cvik do časového limitu, musí svou postavičku přesunout k dortu dříve než tato postava.

V průběhu hry se zaznamenávají časy a případně také ztráty dortu. Tato data jsou po skončení cvičení prezentována, včetně vygenerované statistiky obsahující průměrné časy a dosažené polohy a celkovou úspěšnost při provádění cviků.

2.3. Testovací aplikace

Pro potřeby testování možností zařízení se silově momentovou zpětnou vazbou byla vyvinuta aplikace, která umožňuje zjistit, jaké silové efekty zařízení podporuje, otestovat jejich projev použitím nastavitelných parametrů, včetně možnosti záznamu stavů zařízení, ukládaného do souboru pro potřeby pozdější analýzy.

(21)

20 2.3.1. Testování efektů

OBRÁZEK 2-1TESTER ZAŘÍZENÍ EFEKTY

V horní části okna je umístěn panel pro zobrazení nalezených herních zařízení. Po stisku tlačítka Detekovat připojená zařízení se provede detekce a výpis aktuálně připojených zařízení, která se prezentují jako herní periferie typu volant nebo joystick a podporují použití silově momentové zpětné vazby. Označením zařízení v seznamu dojde k načtení a zobrazení podporovaných silových efektů.

Stiskem tlačítka Použít zařízení se spustí komunikace a je následně možné snímat stav zařízení a nahrávat a řídit načtené efekty. Aktuální snímané hodnoty se zobrazují v pravé dolní části na osovém kříži.

V dolní části okna je vytvořeno rozhraní pro parametrizování a řízení silových efektů. Rozhraní umožňuje nastavit směr, kterým bude silový efekt působit, intenzitu vyvíjené síly a dobu jeho vykonávání. Definování hraničních bodů, ve kterých má dojít ke spuštění a případně zastavení efektu, je uživateli umožněno interaktivním způsobem, kdy uživatel uvede zařízení do požadované polohy a stiskem tlačítka sejmout se daná poloha registruje jako bod pro spuštění/zastavení efektu. Stiskem tlačítka Uložit se provede nahrání efektu do zařízení a efekt je tak následně možné spustit tlačítkem Aktivovat / Deaktivovat, které slouží také pro jeho vypnutí. Pro snadnou identifikaci jednotlivých efektů je možné přiřadit k efektu textový popisek vložením textu do pole tag.

(22)

21 2.3.2. Záznam stavu

OBRÁZEK 2-2TESTER ZAŘÍZENÍ ZÁZNAM STAVU

Karta Záznam akcí obsahuje jednoduché rozhraní pro záznam stavu aktuálně vybraného zařízení a prohlížení již vytvořených záznamů. V horní části okna lze zadat interval snímání, který určuje dobu mezi jednotlivými sejmutími aktuálního stavu zařízení, a tlačítko pro spuštění/zastavení záznamu.

V dolní části je zobrazen přehled vytvořených záznamů. Označením záznamu se zobrazí detailní informace o tomto záznamu a po stisku tlačítka Přehrát záznam je na osovém kříži zobrazen průběh hodnot daného záznamu.

(23)

22

3. Realizace řešení

3.1. Řízení a komunikace se zařízením

Pro účely řízení a komunikace se zařízením byla vytvořena samostatná knihovna s názvem Device, která odděluje grafické rozhraní aplikace a knihovny z projektu SharpDX, sloužícími k předávání ovládacích příkazů do nižších vrstev.

3.1.1. Správa zařízení

Hlavní třídou knihovny je třída DeviceManager, která poskytuje funkce pro detekci připojených zařízení a jejich podporovaných efektů a funkce pro správu použitých zařízení. Aby bylo možné pracovat se silovými efekty, je zařízení nutné přiřadit k dané aplikaci v tzv. exkluzivním režimu, což znamená, že ostatním aplikacím, běžícím v rámci hostitelského systému, je při pokusu o komunikaci s tímto zařízením jakýkoliv přístup zamítnut.

3.1.2. Kalibrace zařízení

CalibrationManager je třída implementující funkcionalitu pro ukládání a načítání kalibračních hodnot. Kalibrační hodnoty jsou ukládány do textového souboru společně s unikátním identifikačním číslem zařízení, které je zařízení přiřazeno hostitelským systémem při prvním připojení k PC. Jedná se o náhodně vygenerovaný údaj typu GUID.

3.1.3. Čtení stavu zařízení

Stav zařízení lze načítat dvěma možnými metodami. U první z nich je vyžadováno definovat velikost paměti, do které bude zařízení umisťovat hodnoty při změnách jeho stavu. Přečtením těchto hodnot dojde k vyprázdnění této paměti. Při jejím zaplnění jsou nejstarší načtené hodnoty přepisovány hodnotami novějšími. Druhou metodou je metoda tzv. pollingu, kdy je zařízením poskytována aktuální hodnota jeho stavu bez ohledu na to, zda došlo k její změně či nikoliv od doby předcházejícího čtení stavu.

Po úspěšném použití zařízení vytváří třída DeviceManager instanci třídy JoystickMonitor. Tato třída poskytuje funkcionalitu pro nepřetržité sledování stavu zařízení, k tomu používá výše popsanou metodu polling. Toto nepřetržité čtení probíhá na samostatném aplikačním vlákně, díky čemuž nedochází k blokování uživatelského rozhraní. Součástí třídy jsou také metody pro přiřazování silových efektů k zařízení.

3.1.4. Práce se silovými efekty

Pro parametrizaci efektu a definování podmínek jeho spuštění slouží třída EffectPlayer a struktura EffectDefinition. Parametry pro požadovaný efekt se skrze strukturu EffectDefinition předávají do třídy EffectPlayer, která zajišťuje aktivaci a deaktivaci efektu na základě definovaných hraničních bodů společně s poskytnutými hodnotami stavu zařízení, získávanými pomocí JoystickMonitoru.

(24)

23 3.2. Nastavení

Okno nastavení slouží k volbě použitého zařízení a případnému kalibrování mezních hodnot a je přístupné z úvodního okna programu.

OBRÁZEK 3-1OKNO NASTAVENÍ

3.2.1. Výběr zařízení

V horní části okna Nastavení je zobrazen výčet detekovaných zařízení, která se prezentují jako herní periferie a implementují funkcionalitu silově momentové zpětné vazby. Stiskem tlačítka vybrat u příslušného zařízení ve výčtu dojde k použití zařízení, tj. zahájení komunikace, a zařízení je tímto také vyhrazeno pro použití pouze pro tuto aplikaci. Při větším počtu zařízení a pokusu o použití jiného než právě použitého zařízení dojde automaticky k jeho odpojení. Zařízení lze explicitně odpojit pomocí tlačítka Odpojit.

3.2.2. Kalibrace

Dolní část okna obsahuje rozhraní pro vytváření kalibrace, řešené interaktivní formou. K provedení kompletní kalibrace je nutné uvést zařízení do třech základních poloh, znázorněných na obrázcích, a následně provést potvrzení stiskem příslušného tlačítka OK. Hodnota stavu je tak sejmuta, což je indikováno zobrazením zeleného zatržítka. Kalibrační hodnoty nejsou vyžadovány pro všechny tři základní polohy a při jejich nenastavení je použita základní hodnota pro daný bod polohy.

Tlačítkem Uložit je kalibrace uložena a není nutné ji při příštím spuštění aplikace či odpojení zařízení opětovně nastavovat.

(25)

24 3.3. Diagnostika

Rozhraní diagnostického modulu je přístupné z hlavního okna pod položkou Diagnostika.

OBRÁZEK 3-2OKNO DIAGNOSTIKA MĚŘENÍ

3.3.1. Prvky rozhraní

Rozhraní je rozděleno do dvou záložek oddělujících testovací část a část určenou pro zobrazení výsledků provedeného testu a vygenerované statistiky.

Testovací část

Na záložce měření jsou obsaženy prvky pro nastavení a provádění testu. V pravém dolním rohu jsou umístěny prvky pro volbu přechodu mezi zatíženími. Volba automaticky vyžaduje pro postup v testu dosáhnout hraničních bodů, volba umožňující zadat časový interval limituje čas na provedení požadovaného úkonu a při jeho včasném nesplnění je postoupeno k dalšímu kroku diagnostiky. V levém dolním rohu jsou umístěna tlačítka pro spuštění a zastavení testu. Horní část okna zobrazuje informace o průběhu testu, tj. aktuálně požadovaný úkon k provedení a procentuální úroveň zatížení. Centrální část je určena k zobrazování okamžitého stavu zařízení vyneseného na osový kříž a pro obrázek indikující průběh při dosahování požadovaného úkonu, který také určuje jeho umístění, tj. nalevo či napravo od osového kříže.

(26)

25 Výsledky

Po provedení testu jsou na záložce výsledky zobrazeny naměřené doby vykonávání pro jednotlivé úrovně zatížení. Při použití časového limitu je na osový kříž také vynesena poloha dosažená za daný časový limit.

V dolní části je umístěna statistika, vygenerovaná na základě naměřených hodnot, zobrazující minimální, maximální a průměrnou dobu, kterou pacientovi trvalo k dosažení úkonů. Při použití časového limitu na úkon je statistika doplněna také o minimální, maximální a průměrnou úspěšnost dokončení úkonu.

OBRÁZEK 3-3OKNO DIAGNOSTIKA VÝSLEDKY

3.3.2. Provádění diagnostiky

Pro provedení diagnostického testu je tedy nutné rozhodnout, zda bude vyžadován časový limit či nikoliv a spustit test tlačítkem Start. Spuštěním testu se začnou zobrazovat požadované úkony, tj. provedení vyklonění v levém a pravém směru.

Průběh dosažení je indikován třemi verzemi obrázku obličeje, které se mění při překročení poloviny rozsahu a při dosažení maxima v daném směru. Pokud při provádění diagnostiky dojde k dosažení úrovně zatížení, kterou pacient již není schopen dokončit, lze test předčasně ukončit stiskem tlačítka Stop.

OBRÁZEK 3-4DIAGNOSTICKÝ TEST INDIKACE PRŮBĚHU DOSAŽENÍ ÚKONU

(27)

26 3.4. Cvičení

Cvičební modul obsahuje funkcionalitu pro správu cvičebních programů a motivační rozhraní. Po otevření okna Cvičení z hlavního menu programu je zobrazen seznam cvičebních programů – deset základních programů, tj. programů s konstantní úrovní zatížení, a jeden doplňkový, který umožňuje nastavení úrovně zatížení v závislosti na procentuálním odchýlení od středové hodnoty osy, nazvaný Roboto. Stiskem tlačítka programu je spuštěno cvičení v motivačním rozhraní.

V dolní části je umístěno tlačítko pro spuštění editoru programů.

3.4.1. Editor cvičebních programů

Editor umožňuje správu cvičebních programů. Programy jsou načítány a ukládány do textového souboru a není nutné je při opětovném spuštění znovu nastavovat.

V horní části okna je zobrazen výčet všech programů s jejich parametry. Tlačítkem upravit u příslušného programu se provede načtení jeho parametrů do editovatelných prvků v dolní části okna. Případné změny je nutné následně potvrdit tlačítkem Uložit změny.

Posuvníky pro polohu min a max určují minimální úroveň vychýlení od centrálního bodu; hodnota min je požadována pro splnění cvičebního úkonu, hodnota max vyjadřuje bod, přes který by pacient neměl přejít. Opakování je počet cyklů nutných pro dokončení cvičebního programu a časový limit určuje, zda je vyžadováno splnění cvičebního úkonu v daném čase, pro neomezenou dobu je využito hodnoty nula. Posuvník u zatížení vyjadřuje procentuální část z maximální úrovně zatížení, které je zařízení schopné vyvinout.

(28)

27 Roboto

Pro možnost dynamického průběhu zatížení byl vytvořen doplňkový program nazvaný Roboto. V rámci tohoto programu je možné nastavit úroveň zatížení v závislosti na procentuálním odchýlení od středové hodnoty osy. K zadávání těchto hodnot byl navržen interaktivní prvek, který zobrazením grafu znázorňuje průběh zatížení dle zadaných hodnot. Přepínacími prvky levá a pravá lze definovat průběh úrovně zatížení pro pravou a levou část osy zvlášť.

OBRÁZEK 3-5NASTAVENÍ HODNOT ZATÍŽENÍ V PROGRAMU ROBOTO

3.4.2. Motivační rozhraní

Za účelem motivování pacienta k provádění cvičení bylo navrženo motivační rozhraní ve formě hry.

Koncept

Hra spočívá v ovládání postavičky a sbírání dortů postavičkou, ke kterému dojde při kolizi těchto dvou objektů, což je navíc doplněno o element spínače, přes který musí postavičkou hráč přejít, aby byl zobrazen nový dort. Při použití časového limitu je zde doplněna postava příšerky, která se ve stanoveném limitu k dortu přiblíží. Hráč se tedy musí k dortu přiblížit dříve, jinak o dort přichází.

OBRÁZEK 3-6MOTIVAČNÍ ROZHRANÍ NESPLNĚNÍ ČASOVÉHO LIMITU

Herní rozhraní

Po výběru programu je zobrazeno herní motivační rozhraní. V horní části okna je zobrazován počet dortů, jehož hodnota odpovídá dvojnásobku nastaveného počtu opakování, a dále počet získaných bodů, které hráč získává za sebrání dortu.

Stiskem tlačítka Spustit je zahájeno cvičení.

(29)

28

OBRÁZEK 3-7CVIČENÍ MOTIVAČNÍ ROZHRANÍ

Výsledky cvičení

Stejně jako v případě diagnostického testu se i v průběhu cvičení zaznamenávají data o jeho průběhu. Ta jsou po skončení cvičení následně zobrazena do tabulky společně s vypočtenou statistikou. V případě časového limitu jsou do statistiky přidány i hodnoty zbývajícího času na provedení. V tabulce výsledků je pro jednotlivé cviky indikováno splnění úkonu barvou ve sloupci status, zelenou při splnění a červenou při překročení limitu.

Cvičení je pomocí tlačítek v dolní části okna možné spustit znovu nebo ukončit, kdy je zobrazen opět seznam programů.

OBRÁZEK 3-8CVIČENÍ VÝSLEDKY

(30)

29

4. Závěr

Cílem práce bylo provést průzkum dostupných herních periferií se silově momentovou zpětnou vazbou a osvojit si způsoby, jak tato zařízení programově ovládat. Dále bylo cílem vytvořit aplikaci s grafickým rozhraním pro platformu PC, která by měla umožnit využít tato zařízení k rehabilitačnímu cvičení a vést pacienty při cvičení.

Na základě provedeného průzkumu jsem navrhl a implementoval aplikaci, která podporuje použití základních typů zařízení se silově momentovou zpětnou vazbou.

Vytvořená aplikace umožňuje provést diagnostiku pacienta formou interaktivního testu, ve kterém se měří čas provádění cviků při postupně se zvyšující obtížnosti a umožňuje tvorbu cvičebních programů, díky kterým lze cvičení upravit dle potřeb a stavu pacienta. Pro motivační rozhraní jsem zvolil jednoduchou hru, která si klade za cíl odvést pozornost pacienta od aktu cvičení a zpříjemnit mu tak proces rehabilitace, ale zároveň ho při cvičení udržet a vést.

Cíle práce se tedy podařilo splnit. Aplikace nabízí nezbytné základní funkce a měla by tak umožnit vyzkoušet toto alternativní využití herních periferií v klinické praxi.

(31)

30

Seznam použité literatury

[1] Thrustmaster [online]. 2015. [cit. 2015-05-09]. Dostupné z:

http://www.thrustmaster.com

[2] Logitech [online]. 2015. [cit. 2015-05-09]. Dostupné z:

http://www.logitech.com

[3] Fanatec [online]. 2015. [cit. 2015-05-09]. Dostupné z:

http://www.fanatec.com

[4] Dexta Robotics [online]. 2015. [cit. 2015-05-09]. Dostupné z:

http://www.dextarobotics.com

[5] Novint [online]. 2015. [cit. 2015-05-09]. Dostupné z:

http://www.novint.com

[6] Force Dimension [online]. 2015. [cit. 2015-05-09]. Dostupné z:

http://www.forcedimension.com

[7] Human Interface Device [online]. 2015. [cit. 2015-05-09]. Dostupné z:

http://www.usb.org/developers/hidpage

[8] Physical Interface Device [online]. 2015. [cit. 2015-05-09]. Dostupné z:

http://www.usb.org/developers/hidpage#Usage Tables for Physical Interface Devices

[9] DirectInput [online]. 2015. [cit. 2015-05-09]. Dostupné z:

http://msdn.microsoft.com/en-

us/library/windows/desktop/ee416842(v=vs.85).aspx

[10] Desktop Operating System Market Share [online]. 2015. [cit. 2015-05-10].

Dostupné z: http://www.netmarketshare.com/operating-system-market- share.aspx?qprid=10&qpcustomd=0

[11] SharpDX [online]. 2015. [cit. 2015-05-10]. Dostupné z: http://sharpdx.org [12] ALBAHARI, Joseph, Ben ALBAHARI a Peter DRAYTON. 2012. C# 5.0 in a

nutshell. 5th ed. Sebastopol: O'Reilly, xvi, 1042 p. ISBN 978-144-9320-102.

[13] PETZOLD, Charles. 2005. Programming Microsoft Windows Forms.

Redmond, WA: Microsoft Press, xv, 382 p. ISBN 07-356-2153-5.

[14] GREGORY, Jason. 2014. Game engine architecture. Second ed. Boca Raton:

CRC Press. ISBN 9781466560017.

[15] SHAH, Nauman, Angelo BASTERIS a Farshid AMIRABDOLLAHIAN. 2014.

Design Parameters in Multimodal Games for Rehabilitation. Games for Health Journal [online]. 3(1): 13-20 [cit. 2015-05-13]. DOI:

10.1089/g4h.2013.0044. ISSN 2161-783x. Dostupné z:

http://online.liebertpub.com/doi/abs/10.1089/g4h.2013.0044

(32)

31

Seznam příloh

A. CD obsahující:

 bp.pdf – text bakalářské práce

 app.zip – spustitelný kód aplikace

 sources.zip – zdrojový kód aplikace

 tester.zip – spustitelný kód pomocné aplikace pro testování možností zařízení

References

Related documents

dotazník questionary.. Zde jsem popsal celý proces výzkumu. Popsal jsem zde všechny praktické kroky, které jsem podniknul pro to, abych marketingový výzkum

Užiji-li bakalářskou práci nebo poskytnu-li licenci k jejímu využití, jsem si vědom povinnosti informovat o této skutečnosti TUL; v tomto případě má TUL

Zaměstnanci jsou kromě mzdy motivováni pouze standardními výhodami v podobě příspěvků na stravu (oběd je stojí pouze deset korun) a 13. Řadový dělníci

V kapitole 1.6 jsou nastíněny problémy při řešení potlačování vibrací jako je shoda reálných a imaginárních částí impedance piezoelektrického vzorku a

Různé aplikace elektronického podnikání nepřetržitě ovlivňují trendy a vyhlídky pro podnikání přes Internet, včetně elektronického bankovnictví, plateb, obchodování,

Beru na v ě domí, že Technická univerzita v Liberci (TUL) nezasahuje do mých autorských práv užitím mé diserta č ní práce pro vnit ř ní pot ř

Ke každodenním č innostem patří především zajištění vysílacích smluv, pracovní a pobytová povolení, organizace poznávacích pobytů (Pre Assignment Trip), organizace

Byla jsem seznámena s tím, že na mou bakalářskou práci se plně vzta- huje zákon č, 121/2000 Sb., o právu autorském, zejména § 60 -