of 51 /51
Slovenská technická univerzita Fakulta informatiky a informačných technológií Ilkovičova 3, 842 16 Bratislava 4 FIITKinect (Projektová dokumentácia) Tím: TeamToo Autori: Bc. Ján Antala Vedúci: Ing. Vanda Benešová, PhD Bc. Martin Čertek Kontakt: [email protected] Bc. Jakub Gondár Ak. rok: 2012/2013 Bc. Ondrej Grman Bc. Silvia Hudačinová Bc. Michal Igaz Bc. Richard Sámela

FIITKinect - stuba.sk

  • Author
    others

  • View
    0

  • Download
    0

Embed Size (px)

Text of FIITKinect - stuba.sk

Ilkoviova 3, 842 16 Bratislava 4
FIITKinect (Projektová dokumentácia)
Vedúci: Ing. Vanda Benešová, PhD Bc. Martin ertek
Kontakt: [email protected] Bc. Jakub Gondár
Ak. rok: 2012/2013 Bc. Ondrej Grman
Bc. Silvia Hudainová
Bc. Michal Igaz
Bc. Richard Sámela
FIITKinect 1 Úvod
3.1.1 Správa experimentov ................................................................................ 8
3.1.3 Správa gest ................................................................................................ 9
3.1.4 Správa akcií .............................................................................................. 10
4 Analýza 13
4.1.3 Zhodnotenie a výber technológie GUI pre aplikáciu ............................... 14
4.1.4 Analýza databázových prostredí ............................................................. 14
4.1.5 Dotykove gesta na platforme Android .................................................... 15
4.1.6 Kinect pre Windows – architektúra ........................................................ 16
5 Návrh 18
6.1.1 Node.js..................................................................................................... 27
6.2.2 Inštalácia modulov .................................................................................. 28
6.2.3 Spustenie servra ...................................................................................... 28
6.3 Registrácia výstupného zariadenia na server ........................................................ 28
7 Inštalácia potrebných nástrojov 30
7.1 Kompilácia QT ........................................................................................................ 30
7.2 OpenCV 2.3.0 ......................................................................................................... 30
8 Celkový pohad 34
9.1 Model dát .............................................................................................................. 36
9.2 Android aplikácia ................................................................................................... 37
9.2.1 Architektúra aplikácie ............................................................................. 37
9.3 Testovanie aplikácie .............................................................................................. 40
9.3.1 Unit testy ................................................................................................. 40
9.3.2 Akceptané testy ..................................................................................... 41
9.4 Architektúra systému ............................................................................................ 47
9.4.3 Pohad na desktopovú aplikáciu ............................................................. 48
9.4.4 Pohad na server...................................................................................... 49
Tento dokument slúi ako špecifikácia poiadaviek pre softvérový produkt „MaeToo“. Projekt
je vypracovávaný tímom 2 v rámci predmetu tímový projekt 1 a 2.
1.1 Význam dokumentu
ivotný cyklus kadého softvérového produktu zaína analýzou a návrhom. Je to esenciálne
pre správne smerovanie vývoja softvérového produktu.
1.2 Prehad systému
Softvér sa vyvíja ako decentralizovaná aplikácia so serverom a modulmi. Moduly spolu
navzájom komunikujú cez štandardizovaný protokol, o umouje modulom aby boli
implementované v rôznych jazykoch a navonok ukazovali iba svoje rozhrania.
Je to aplikácia, ktorá má ako hlavnú úlohu sprostredkova ovládanie výstupného zariadenia
Kinectom. Kadé vstupné a kadé výstupné zariadenie má vlastný modul, ktorý má na
starosti správu tohto zariadenia. Moduly vstupných zariadení majú monos správy eventov
(v tomto prípade gest, rei a iných) výstupné zariadenia spravujú akcie. Ústredná as
aplikácie, inak nazývaná aj core aplikácia má za úlohu prepája eventy s akciami, tieto
prepojenie uchováva. Nad touto aplikáciou je aj grafické uívateské rozhranie pre
pohodlnejšiu prácu a konfigurovatelnos systému.
1.3 Perspektíva produktu
V súasnosti sa u na trhu vyskytuje viacero produktov, ktoré vyuívajú Kinect ako primárne
vstupné zariadenie na ovládanie výstupných zariadení telom. Tento produkt však ponúkne
znane inovatívne vylepšenie k súasným produktom ako napríklad ovládanie výstupných
zariadení smartfónom.
Produkt má veký potenciál sta sa primeranou a hlavne lacnejšou alternatívou
k zabehnutým riešeniam.
Tento softvérový produkt je vyvíjaný hlavne za úelom poskytnutia plnohodnotného systému
na ovládanie výstupných zariadení pomocou Kinectu alebo Androidu. Urený je hlavne
beným uívateom ako monos ovládania rôznych zariadení (televízor, rádio, osvetlenie,
at) mobilným zariadením, gestom prípadne zvukom. Uplatnenie pre nájdu aj výskumníci,
ktorí budú ma rozšírený a plný prístup k všetkým funkciám softvérového produktu. Pre
urenie optimálnych spojení udalostí (events) a akcií (actions) im budú poskytnuté nástroje
na vytváranie, zmenu a mazanie gest (gestá tea alebo tzv. „touch“ gestá na mobilnom
FIITKinect 1 Úvod
docieli poskytnutím monosti ich exportu a importu.
1.5 Ohranienia
funkcionality rozpoznávania gest pomocou Kinectu
Nutnos sprevádzkovania kninice OpenCV 2.3 z dôvodu vyuívanie tejto kninice pri
asti aplikácie pracujúcej so senzorom Kinect
Pre zaznamenávanie gest a zvukových povelov je pre túto as funkcionality
nevyhnutné pripojenie a správne fungovanie senzoru Kinect
Android aplikácia na rozoznávanie dotykových gest je kompatibilná s verziou
operaného systému Android 2.2 a vyššou
Pre rozpoznávanie rei na Android zariadení je poadované nainštalovanie balíku
Speech Recognition
Nakonfigurovaný server podporujúci Node.js a databázové riešenie Redis
Pre správne fungovanie a spoluprácu zariadení je nutné, aby tieto boli vzájomne
zosieované
FIITKinect 2 Opisy príbehov
2.1.1 Špecifikácia poiadaviek
V rámci systému sú vylenené dve typické roly pouívateov – bený pouívate a výskumník.
Bený uívate je lovek, ktorý reálne pouíva náš softvérový produkt. Nie sú a ani nemôu
by naho kladené iné ako minimálne poiadavky na prácu s poítaom. Funkcionalita
aplikácie je preho zúená tak, aby nemusel rieši pokroilé nastavenia a alšiu
funkcionalitu.
Výskumník je lovek, ktorý softvérový produkt môe vyuíva k jeho plnému potenciálnu. Má
k dispozícii mnoho moností ako produkt upravi a vyhadáva optimálne monosti, ktoré má
vyuíva bený uívate.
2.1.1.1 Príbehy pouívateov
2.1.1.1.1 Bený pouívate
Ako pouívate chcem ma v grafickom rozhraní monos zobrazenia jednotlivých dvojíc gest
a akcií pre ich lepšie napodobenie.
Ako pouívate chcem ma k dispozícii vizuálne zobrazenie eventov pre lepšiu prácu
s programom.
Ako pouívate chcem ma k dispozícii spätnú väzbu o zachytávaní mojich povelov aby som
vedel, e zariadenie, ktoré pouívam pracuje ako má.
2.1.1.1.2 Výskumník
Ako výskumník chcem ma v rámci uívateského prostredia monos výberu eventu a akcie
cez „select box“ aby som mohol ovláda program jednoducho.
Ako výskumník chcem ma k dispozícii plne konfigurovatené uívateské prostredie odlišné
od jednoduchého menu beného uívatea.
Ako výskumník chcem ma k dispozícii monos spustenia uívateského rozhrania aby som
mohol v praxi odskúša svoje experimenty.
Ako výskumník chcem ma k dispozícii nástroj na spájanie eventov s akciami aby som si
mohol systém prispôsobi svojim potrebám.
Ako výskumník chcem ma k dispozícii nástroj na spájanie eventov s akciami aby som mohol
skúma optimálne sady event – akcia.
FIITKinect 2 Opisy príbehov
7
Ako výskumník chcem ma monos vytvori nový experiment, aby som si vedel rozdeli
svoju prácu.
Ako výskumník, chcem ma monos úpravy vytvorených experimentov nasledujúcim
spôsobom:
1. Pridávanie dostupných gest
2. Odoberanie pridaných gest
3. Pridávanie dostupných akcií
4. Odoberanie pridaných akcií
Ako výskumník chcem vedie vytvára nové gestá aby som mohol uri optimálnu sadu gest
pre beného pouívatea.
Ako výskumník chcem vedie upravova prípadne maza u vytvorené gestá aby som
zbytone nezaberal pamä poítaa.
Ako výskumník chcem ma monos vytvori nové „dotykové gestá“ aby bolo moné systém
rozširova.
Ako výskumník chcem vedie upravova prípadne maza „dotykové gestá“ aby som zbytone
nezaberal pamä poítaa.
Ako výskumník chcem vedie pridáva akcie tak, aby bolo moné systém naalej rozširova.
Ako výskumník chcem vedie upravova prípadne maza akcie, ktoré nie sú naalej aktuálne.
Ako výskumník chcem ma monos exportovania prípadne importovania experimentov.
FIITKinect 3 Funkná špecifikácia produktu
8
nasledujúce funkcionality:
3.1.1 Správa experimentov
K tejto funkcionalite má prístup výskumník (na obrázku Researcher). Do správy experimentov
patrí vytvorenie nového experimentu a zmazanie starého experimentu. Táto funkcionalita je
podstatná najmä z toho dôvodu, e poskytuje nieo ako základ. alšie podstatné funkcie
softvérového produktu ako pridávanie gest a akcií, prípadne ich vzájomné mapovanie
prebieha v rámci experimentu, ktorý vykonáva výskumník.
Obr. . 1: Vytváranie nového experimentu
FIITKinect 3 Funkná špecifikácia produktu
9
Táto funkcionalita zaha pouívanie mobilného zariadenia so systémom Android ako
vstupného zariadenia. Patrí sem vytváranie, úprava a zmazanie „touch“ gesta. Túto monos
môe pouíva výskumník aj bený uívate. Bený uívate však vyuíva iba as na
ovládanie, konfiguranú má plne k dispozícii iba výskumník.
Obr. . 2: Vytváranie nového „touch“ gesta
3.1.3 Správa gest
Táto funkcionalita zaha pouívanie zariadenia Kinect ako vstupné zariadenie systému.
Zaha najmä funkcionalitu vytvárania, upravovania a mazania gest. Túto funkcionalitu môe
vyuíva iba výskumník. Pouíva ju na vyhadávanie optimálnych gest pre beného uívatea.
Nepotrebné alebo nepodarené gestá mae.
Poiadavky na gesto:
10
3.1.4 Správa akcií
Táto funkcionalita zaha problematiku výstupných zariadení. Zastrešuje hlavne povely,
ktoré sa pouívajú v rámci systému tak, aby vykonali poadované úkony. S touto asou
narába výskumník. Jej nutným predpokladom je funkcionalita správy experimentov. Akcie sa
dajú pridáva jedine do experimentu. Táto funkcionalita zaha pridávanie nových akcií alebo
doberanie pôvodných.
11
3.1.5 Mapovanie
a odobratia mapovania. Náleí výskumníkovi.
Obr. . 5: Vytváranie nového mapovania
FIITKinect 3 Funkná špecifikácia produktu
12
3.1.6 Zobrazenie uloených gest
Táto funkcionalita zaha zobrazenie dostupných gest a ich prepojení s akciami. Táto
funkcionalita je dostupná benému uívateovi aj výskumníkovi. Funguje ako bené
zobrazovanie. Slúi hlavne pre vizualizáciu gest.
Obr. . 6: Zobrazenie uloených gest
FIITKinect 4 Analýza
Qt je jeden z dvoch najpouívanejších multiplatformových frameworkov, ktorý je rozšírenej
miere pouívaný pri vytváraní softvérových aplikácií s GUI. V týchto prípadoch býva Qt
oznaovaný aj ako widget toolkit. Bol vytvorený v roku 1999
Primárne je Qt urený pre programovanie v C++, priom na rozšírenie C++ pouíva viacero
makier a aj špeciálny kompilátor – Meta Object Copmiler (moc).
Pouitie Qt je rozšírené aj na alších platformách, ako desktopových, tak aj mobilných. Ako
knihova existuje pre programovacie jazyky : Python (PyQt),Ruby (QtRuby), C, Perl, Pascal,
C#, Java (Jambi).
Vyznauje sa dobrou podporou jazykových lokalizácií pre aplikáciu. Ponúka viacero
funkcionalít nesúvisiacich s GUI ako : SQL prácu s databázami, parsovanie XML súborov,
podporu viacerých vlákien, sieovú podporu.
Je distribuovaný pod licenciou GNU Lesser General Public License, je vone dostupný
a poskytovaný ako open-source. Podporuje viacero prekladaov ako GCC C++, ako aj
prekladae produktov MS Visual Studio.
Vývoj Qt je realizovaný ako nekomerný open-source pri zapojení komunity programátorov
a za podpory spoloností ako Nokia a Digia. Popri vonej verzií je predávaný so špeciálnou
podporou a funkcionalitou aj ako komerné riešenie.
Výhody Nevýhody
signals , slots
4.1.2 Windows Forms (WinForms)
Windows Forms je názov pre nové aplikané programové rozhranie (API), ktoré je súasou
.NET Frameworku. Toto API ponúka prístup k natívnym prvkom Windows rozhrania, ktoré
obauje a beí v takzvanom „riadenom (managed)“ kóde. Môe sa zda, e sa jedná
o náhradu MFC, neponúka funkcionalitu podobnú paradigme Model-View-Controller.
Windows Forms na svoj beh potrebujú nainštalovaný .NET framework, ktorý je plne
implementovaný iba pre platformu Windows.
FIITKinect 4 Analýza
Windows Forms pouívajú udalosami riadenú (event-driven) architektúru, ktorú poskytuje
.NET Framework. Jazyk, ktorý sa pouíva na implementáciu Windows Forms je najastejšie
C#. S pouitím integrovaného prostredia Visual Studio sa dajú vytvára vo Windows Forms
moderné a bohaté aplikácie. Visual studio má integrovaný pokroilý dizajnér formulárov
Window Forms. V spolupráci s ostatnými komponentmi .NET Frameworku a jazykom C# sa
dajú vytvára aplikácie kvalitne, rýchlo a efektívne.
Windows Forms vedia pracova aj s jazykom C++, ale Microsoft Visual Studio nepodporuje
IntelliSense pri takomto vývoji, o nepriamo naznauje, e pouitie C++ s Windows Forms nie
je príliš vhodné.
na pouitie a programovanie
Manaovaný kód ponúka nevídané monosti
debugovania a podpory pri vývoji
(IntelliSense)
4.1.3 Zhodnotenie a výber technológie GUI pre aplikáciu
V našom projekte pracujeme s kninicou FIITKinect, ktorá bola vyvinutá v rámci
minuloroného Tímového projektu. Táto kninica je potrebná pri rozpoznávaní gest zo
zariadenia Kinect. Kninica je implementovaná v C++, o nám kladie obmedzenia pri výbere.
Aby sa zabezpeila integrácia, tak aj grafické rozhranie musí by postavené na jazyku C++.
Minuloroná aplikácia pouíva kninice QT GUI.
Po zváení viacerých faktov z analýzy grafických rozhraní sme sa rozhodli, e prototyp
budeme alej dopracováva v rozhraní QT GUI na platforme C++.
4.1.4 Analýza databázových prostredí
4.1.4.1 Relané – SQL (MySQL, PostgreSQL)
- musí by definovaná pevná štruktúra tabuliek a väzieb medzi nimi na zaiatku, ktorá sa
napa
- prijaté údaje je nutné previes do formy podporovanej databázou – SQL jazyka
+ dáta sú uloené raz a je moné zobrazova ich rôznymi spôsobmi poda rôznych filtrov
a sortov
+ dá sa vytvori transakcia a ke nezbehne, niektorá as je moné proces vráti
FIITKinect 4 Analýza
- dáta treba nakopírova viackrát kvôli rôznym náhadom (vznikajú duplicity)
- nedá sa vytvori transakcia, v ktorej by bolo moné poda rozhodnutia programátora vráti
zmeny
+ vemi rýchla, pretoe beí v operanej pamäti
+ monos vklada a získava dáta v JSON formáte, ktorý je pouitý ako komunikaný
protokol v rámci celej aplikácie (nie je nutné dáta prevádza na SQL dopyty)
4.1.4.3 Výber databázy
Po zhodnotení pomeru poet uchovávaných údajov/ rýchlos a na základe výhod, ktoré
poskytuje, bola vybraná NoSQL varianta v podobe Redis.
4.1.4.4 Redis
open-source nosql key-value databáza
slúi na ukladanie dát na server obsahujúca kúe (keys) na string-y, hash-e, set-y, list-
y a sorted set-y
beí v operanej pamäti poítaa => rýchlos
k dispozícii je 15 nezávislých databáz, ktoré sa prepínajú príkazom SELECT <number>
dáta sú ukladané na disk poítaa- tri moné typy (po kadej zmene, v nejakých
asových intervaloch, kadú sekundu)
4.1.5.1 Gesto
rukou nakreslený objekt na displej mobilného zariadenia
môe ma jednoduchý ah alebo môe by vyskladané z viacerých ahov
je závislé od asu
je reprezentované ako sekvencia bodov na displeji zariadenia
na jeho rozpoznanie je moné poui kninicu gest - tá môe by vlastná, s vlastnými
gestami alebo pôvodná, ktorá je poskytovaná priamo platformou
rozpoznávanie prebieha na špeciálnom type grafického rozhrania
gesta je moné pridáva do vlastnej kninice gest a tu je moné uloi na diskový
priestor zariadenia prípadne odosla po sieti
je moné reprezentova aj graficky v podobe bitmapy
4.1.5.2 Reprezentácia
Samotné gesto je reprezentované bodmi, ktoré v sebe zahajú x,y súradnice a údaj o
asovej známke. Jednotlivé gestá je moné pridáva do vlastných kniníc pre rozpoznávanie
FIITKinect 4 Analýza
16
gest. Dané kninice je moné vo formáte súboru XML alej uklada, pripadne inak
spracováva.
4.1.5.3 Porovnávací algoritmus
Framework pre prácu s gestami na platforme Android ponuka triedu, ktorá obsahuje
algoritmy pre konkrétne porovnanie a rozpoznanie gest. Rozpoznanie gest sa vykonáva
spracovaním gesta nasledovnými pomocnými algoritmami:
poítanie obdnikových okrajov gesta
4.1.6 Kinect pre Windows – architektúra
Táto podkapitola bola prebratá z analýzy architektúry Kinect tímu Art Quintet (. 11)
z akademického roku 2011/2012.
Beta SDK poskytuje sofistikovanú softvérovú kninicu a nástroje, ktoré pomáhajú
programátorom poui bohatú formu prirodzených vstupov získaných zo zariadenia Kinect na
vnímanie a reakciu na udalosti reálneho sveta. Kinect spolu so softvérovou kninicou
interagujú s aplikáciou, ako na Obr. . 7.
Obr. . 7: Interakcia hardvéru a softvéru s aplikáciou.
Komponenty beta SDK sú zobrazené na Obr. 8.
Kinect senzor
Komponenty beta SDK z Obr. 8 zahajú:
1. Hardvér zariadenia Kinect
Hardvérové komponenty, zahajúc senzor Kinect a USB rozboova, cez ktorý sa
pripája k poítau.
2. Ovládae Microsoft Kinect
Windows 7 ovládae pre senzor Kinect, ktoré sú nainštalované spolu s beta SDK.
Ovládae Microsoft Kinect podporujú:
pole mikrofónov senzora Kinect, ku ktorému je moné pristúpi cez
štandardné zvukové API vo Windows,
prenos obrazu a hbkových dát pomocou prúdov,
funkcie na enumeráciu zariadení, ktoré umoujú aplikácii poui viac ako
jeden senzor Kinect pripojený k poítau.
3. NUI API
Mnoina rozhraní pre tvorbu aplikácií, ktorá získava údaje z obrazových senzorov
a riadi zariadenie Kinect.
4. KinectAudio DMO
Kinect DMO rozširuje podporu poa mikrofónov vo Windows 7 pre funkcionalitu
lokalizácie zdroja zvuku.
Zvukové, reové a multimediálne API vo Windows 7.
Aplikácie
Windows Core Audio a Speech API
DMO ovláda pre mikrofón
2
Ovládae pre Kinect pre Windows v móde jadra
Pouívateský mód
Mód jadra
Kinect pre Windows SDK
špecifikácií poiadaviek. Z uvedeného vyplýva, e vytvorené pouívateské rozhranie sa má
vyznaova jednoduchosou pouitia, intuitívnosou pre pouívateov, z radov pouívateov,
ktorí pracujú s aplikáciou na štandardnej úrovni.
Pri návrhu na základe poiadaviek bol vypracovaný koncept 2 pouívateských rozhraní
plniacich vzhadom na funkcionalitu programu rozdielnu nápl. Je navrhnuté rozhranie na
prácu s vytváraním, nastavovaním a akoukovek prácou s experimentom spoívajúcim
v konfigurácii kombinácií ovládania pomocou gest a zvukov.
Druhým rozhraním je jednoduché, informané rozhranie pre pouívatea z radov bených
pouívateov aplikácie, ktorých náplou nie je práca s nastavovaním experimentov.
Toto rozhranie slúi pre sprostredkovanie minimálnej mnoiny informácii potrebných pre
interagujúceho pouívatea, ktorý nemá za úlohu pracova s experimentmi, ale iba pouíva
aplikáciu pre svoj úitok.
Grafické rozhranie urené na prácu s nastavovaním experimentov pozostáva z viacerých
obrazoviek, slúiacich na prácu s parametrami ako – správa povelov – gestá zo senzora
Kinect, zvukové povely, dotykové gestá z mobilných zariadení, správa vykonatených akcií
a obrazovky slúiacej na mapovanie akcií vykonaných po zaznamenaní povelu od zariadení.
Jednotlivé obrazovky sú podrobnejšie opísané v nasledujúcich astiach tejto kapitoly. Návrh
rozhrania nie je vytvorený ako verná kópia skutonosti, predstavuje ich schematické
zaznamenanie pohadu na rozmiestnenie jednotlivých ovládacích a informaných prvkov na
obrazovke. Konkrétne grafické prevedenie – tvary a farby je realizované priamo pri
implementácií poda štandardných grafických tém.
FIITKinect 5 Návrh
5.1.1.1.1 Práca s experimentmi
Obrazovka na obrázku Obr. . 9 ja zameraná na prácu s experimentmi. Predstavuje základný
pohad pre experimentátora pri spustení aplikácie. Obsahuje zoznam existujúcich
experimentov, ktoré sa v aplikácií nachádzajú. V avom hornom rohu sa nachádza tlaidlo
umoujúce vytvori alebo prida (importova) experiment do katalógu experimentov.
Na pravej strane obrazovky sa nachádza informané pole zobrazujúce v dvoch stpcoch
mnoinu zariadení umoujúcich získavanie informácií od pouívatea (gestá, re) a mnoina
výstupných zariadení, na ktorých budú realizované výstupné akcie.
Zariadenie, ktoré sú pripojené do systému a sú aktívne sú graficky rozlíšené pre
jednoduchšie identifikovanie pouívateom.
Pri kadom vstupnom a výstupnom zariadení mono zobrazi doplnkovú mnoinu informácií
pri oznaení konkrétneho zariadenia.
FIITKinect 5 Návrh
Po vytvorení/zvolení experimentu na prácu sa zobrazí pouívateovi obrazovka na obrázku
Obr. . 10, ktorá ponúka monosti na konfigurovanie parametrov experimentu. Pre kadý
experiment je zobrazená pomocou záloiek – tabov v hornej asti obrazovky mnoina
k nemu patriacich povelov, akcií ako aj priradeného mapovania. V pravom hornom rohu sa
nachádza tlaidlo na spustenie experimentu s nastavenými parametrami, o vyvolá spustenie
aplikácie urenej pre benú interakciu bez monosti nastavovania experimentu.
5.1.1.1.3 Práca s povelmi
Záloka „Povely“ obsahuje na avej strane alšie pracovné záloky na prácu s gestami,
nastavovaním zvukových povelov, dotykových gest prostredníctvom mobilných zariadení.
Pri úvodnom spustení prázdneho experimentu je pouívateovi ponúknutá východisková
mnoina gest. Gesto, ktoré nechcem v experimente uchova mono oznai a z experiment
vya.
V pravej asti obrazovky sa nachádzajú tlaidlá na pridanie nového gesta – stlaenie vyvolá
zobrazenie obrazovky umoujúcej natrénovanie gesta a pridanie do mnoiny gest,
upravenie existujúceho gesta - ktoré rovnako zobrazí obrazovku znovu natrénovanie
existujúceho gesta, a tlaidlo na zmazanie gesta z experimentu.
Prevanú as obrazovky tvorí mozaika obrazových informácií o jestvujúcich gestách
v podobe obrázku a krátkej spustitenej sekvencie videa, ktoré zaznamenáva postupné
vykonanie gesta.
FIITKinect 5 Návrh
5.1.1.1.4 Práca s akciami
Obrazovka ponúka monos práce s akciami, ktoré je moné vykonáva na výstupných
zariadeniach. Na avej strane záloky Vykonatené akcie sa nachádza zoznam existujúcich
akcií v systéme. Na pravej strane sa po stlaení tlaidla Naui kód zobrazí obrazovka
umoujúca natrénovanie diakového ovládaa k výstupným zariadeniam. Pod týmto
tlaidlom sa nachádza tlaidlo Otestova ovláda, ktoré po stlaení zobrazí monos
reálneho otestovania si funknosti nastavenia jednotlivých akcii ovládaa.
Obr. . 11: Obrazovka s akciami.
FIITKinect 5 Návrh
Nárt obrazovky zachytáva rozmiestnenie prvkov pri mapovaní povelov a akcii. Obrazovka je
oddeovaom rozdelená na 2 asti a monosti práce s mapovaním sú realizované na záloke
– tabe mapovanie. V avej asti sa nachádzajú monosti na priradenie povelov k akciám
viacerými spôsobmi v závislosti na definovaní podmienok. Ak sa jedná o jednoznanú dvojicu
„povel-akcia“ v hornej asti si experimentátor kliknutím na monos výberu zvolí povel
a následne akciu, ktorú k nemu poaduje priradi. Po kliknutí oboch sa priradená dvojica bez
potreby manuálneho ukladania automaticky uloí pre alšie pouitie.
V dolnej avej asti sa nachádza 3 tlaidile na výber povelu – po kliknutí na štart sa nastaví
spúšacia akcia, po kliknutí a stredné tlaidlo iteraný povel a po kliknutí na koniec sa nastaví
ukonovací povel. Pod týmto radom tlaidiel sa nachádzajú tlaidlá ktoré zodpovedajú
povelom z pohadu akcii a umoujú aj poda vizuálneho prepojenia namapova zaiatonú,
iteranú a koncovú akciu. Priradenie povel - akcia je po zvolení automaticky uloená o om je
pouívate informovaný vizuálne.
FIITKinect 5 Návrh
informáciu o stave rozpoznávanie senzoru Kinect. Rovnako umouje spustenie krátkeho
návodu – tutoriálu pre prípad potreby objasnenia spôsobu pouívanie aplikácie.
Obr. . 13: Východzia obrazovka pre beného uívatea.
5.1.2 Database structure
5.1.2.1.2 EVENT_DB - select 1
5.1.2.1.3 ACTION_DB - select 2
5.1.2.1.4 MAPPING_DB - select 3
5.1.2.2 Main_DB
5.1.2.2.1 keys
expID - INCR
5.1.2.2.2 sets
6.1 Server – pouité technológie
- je platforma postavená na JavaScript runtime Chrome pre jednoduchú tvorbu
rýchlych, škálovatený sieových aplikácií
- pouíva udalosou riadený, neblokujúcej I/O model, ktorý ho robí ahkým a výkonným
- ideálny pre dátovo nároné aplikácie vyuívajúce dáta v reálnom ase, ktoré sú
spustené v distribuovaných zariadeniach
6.1.2 express.js
- pre tvorbu kódu je pouitý framework express.js
- v hlavnom spúšanom súbore app.js sú definované cesty k modulom (funkne
súvisiace celky), ktoré sú uloené v adresári routes
- definuje RESTful API funkcie poskytované serverom
6.1.3 redis
6.1.4 http
- pre sieovú komunikáciu je vyuitý modul http s intuitívnymi funkciami
6.1.5 nodeunit, nodeunit-httpclient
- pre tvorbu unit testov je pouitá kninica nodeunit-httpclient pracujúca nad
základným testovacím modulom nodeunit
FIITKinect 6 Opis implementácie
http://nodejs.org/download/
6.2.2 Inštalácia modulov
- inštalácia modulu lokálne pre projekt
$ npm install modul_name
$ npm install –g modul_name
{
"IP": '127.0.0.1',
"PORT": '59596',
30
7 Inštalácia potrebných nástrojov
Táto kapitola bola prebratá z analýzy architektúry Kinect tímu Art Quintet (. 11)
z akademického roku 2011/2012.
Sumarizuje na jedno miesto kroky, ktoré treba vykona aby sa mohlo pokraova vo vývoji
s minimom poiatoných problémov. Pouívané vývojové prostredie bolo MS Visual Studio
2010 Ultimate. Niektoré kroky v návode môu by závislé na tejto skutonosti. Nastavenia
projektu VS 2010 vyadujú existenciu premenných prostredia spomenutých v tomto návode.
7.1 Kompilácia QT
Aby sme mohli vyvíja QT aplikáciu v prostredí Visual Studia treba postupova poda tohto
návodu. Medziasom mono existujú kninice aj pre VS 2010, my sme iba pre 2008 narazili,
preto bolo treba rune skompilova QT. Postupujeme poda návodu na
http://www.holoborodko.com/pavel/2011/02/01/how-to-compile-qt-4-7-with-visual-studio-
Krok 3: stiahneme verziu zdrojových kódov 4.7.4 (http://get.qt.nokia.com/qt/source/qt-
everywhere-opensource-src-4.7.4.zip).
cd c:\Qt\4.7.4
msvc2010
nmake
Dbajte aby ste mali nastavené rovnaké premenné prostredia ako spomínala web stránka,
všetko to je nutné. Poznámka: toto nechajte buildova na noc. Ten nmake tak dlho trvá.
7.2 OpenCV 2.3.0
Sprievodca kompiláciou OpenCV (v. 2.3.0) s pouitím Threading Building Blocks v prostredí
Visual Studio 2010.
vyberieme poadovanú verziu OpenCV (v tomto návode inštalujeme verziu 2.3.0;
inštalácia rôznych verzií sa môe mierne líši).
2. Stiahneme súbor so zdrojovými kódmi (OpenCV-2.3.0-win-src.zip) a rozbalíme ho do
C:\OpenCV-2.3.0\.
verziu Threading Building Blocks pre systém Windows.
31
4. Stiahnutý súbor (v tomto návode tbb40_233oss_win.zip) rozbalíme do adresára
C:\OpenCV-2.3.0\build\common\tbb40_233oss.
5. Zo stránky http://www.cmake.org/ stiahneme najnovší inštalaný súbor CMake pre
systém Windows.
otvoríme CMake GUI.
2.3.0/build/x86/vc10.
c. Configure -> Visual Studio 10 -> Use default native compilers -> Finish.
d. Zaškrtneme BUILD_EXAMPLES a WITH_TBB (prípadne iné) -> Configure.
e. TBB_INCULDE_DIR nastavíme na C:/OpenCV-
2.3.0/build/common/tbb40_233oss/include.
7. Otvoríme C:\OpenCV-2.3.0\build\x86\vc10\OpenCV.sln.
a. Pokáme kým Visual Studio 2010 dokoní parsovanie (v stavovom riadku sa
zobrazí Ready).
b. Pravý klik na projekt -> Properties (ak nebude detegovaný nejaký hlavný
projekt, Build All alebo nieo také, tak postupova krokom c)
i. C/C++ -> General -> Additional include directories: C:\OpenCV-
2.3.0\build\common\tbb40_233oss\include
ii. Linker-> General -> Additional library directories: C:\OpenCV-
2.3.0\build\common\tbb40_233oss\lib\ia32\vc10
c. (alternatíva za b.) Property Manager -> ALL_BUILD -> Debug Win32 ->
Microsoft.Cpp.Win32.user -> VC++ Directories:
\include
\lib\ia32\vc10
directories aj pre release verziu.
8. Build -> Build Solution -> Coffee break...
9. Zmeníme typ buildu z Debug na Release.
10. Build -> Build Solution -> Coffee break...
11. Zavrie VS, nastavenie premenných prostredia:
OPENCV (cesta k OpenCV)
príklad: C:\OpenCV-2.3.0\build\x86\vc10\lib*)
32
Prida do PATH (cesta k adresárom bin\Debug a bin\Release OpenCV)
C:\OpenCV-2.3.0\build\x86\vc10\bin\Debug;C:\OpenCV-2.3.0\build\x86\vc10\bin\Release
TBB
Prida do PATH
12. Nakoniec do adresára C:\OpenCV-2.3.0\include\opencv2 nakopírujte obsah
opencv2.zip (príloha- niekde v repozitári sa bude nachádza). Dbajte aby ste toto
spravili nakoniec, nie pred kompiláciou OpenCV.
FIITKinect 7 Inštalácia potrebných nástrojov
33
7.3 Kinect SDK v1.0
Windows 7. Pre Kinect sme pouili SDK od Microsoftu (v. 1.0), to vyaduje operaný systém
Windows 7 a vyššie. Inštalácia Kinect SDK v1.0:
Download z http://www.microsoft.com/en-us/Kinectforwindows/develop/overview.aspx
príklad : C:\Program Files\Microsoft SDKs\Kinect\v1.0\
Nastavenia projektu sú nastavené tak, aby fungovali u kadého (nezávisle od umiestnenia
potrebných kniníc a hlavikových súborov). Preto si pri problémoch s kompiláciou
(nenájdenie hlavikových súborov, problémy s linkovaním) vemi dôkladne skontrolujte
nastavenie premenných prostredia (PATH a premenne pre kninice Qt, Kinect SDK, OpenCV).
Tento softvérový produkt bude spa viaceré poiadavky na kvalitný softvér.
Návrh architektúry je moné vidie na obrázku Obr. . 14.
Obr. . 14: Architektúra systému
Kadé zariadenie bude ma implementované základné bezpenostné prvky. Samozrejmosou je logovanie innosti systému. Autentifikácia a autorizácia uívateov nebude na iados klienta riešená. Aplikácia nebude obsahova iadne citlivé údaje, nie je preto nutná iadna forma šifrovania.
Jedným z hlavných cieov je rozšíritenos produktu. Dodriavaním stanovených konvencií je moné produkt nasadi na neobmedzený poet poítaov za predpokladu dodrania minimálnych poiadaviek na hardvér.
Táto aplikácia je implementovaná vo viacerých programovacích jazykoch s vyuitím štandardizovaného protokolu na výmenu správ. Oakáva sa, e bude multiplatformová, primárnou platformou je aj naalej Windows.
Pri tvorbe aplikácie sú pouívané metodiky písania a komentovania zdrojového kódu. Zdrojový kód je tie pravidelne refaktorovaný tak, aby sa zvýšila jeho itatenos a tie znovupouitenos.
FIITKinect 8 Celkový pohad
Architektúra bola navrhnutá tak, aby bola o mono modulárna. Preto sa musí kadý implementovaný modul riadi metodikami uvedenými v dokumentácii riadenia tohto projektu. V jednotlivých moduloch sú pouité modifikované návrhové vzory. Boli tam zavedené za úelom zvýšenia konzistencie. Názvoslovie premenných definuje metodika písania zdrojového kódu v relevantných jazykoch.
Softvérový projekt je stále v rannom štádiu vývoja. Nie je preto moné uri, nakoko bude finálny produkt spa špecifikáciu. V tomto štádiu sa však dá poveda, e softvér implementuje funkcionalitu zhodnú s vytvorenou špecifikáciou.
FIITKinect 9 Po druhom šprinte
36
Po uplynutí druhého šprintu, kde bol prvý kontrolný bod odovzdávania dokumentácie sme
na základe alšieho vývoja produktu dopracovali a prepracovali produkt. V tejto asti
dokumentácie sa nachádzajú materiály dopajúce nami vyvíjané ininierske dielo.
9.1 Model dát
Pri návrhu systému bola po analýza vybraná ako vhodná databáza Redis, ktorá predstavuje
NO SQL prístup, v schéme na obr. 15 je pohad na model dát, z ktorými je v systéme na
úrovni databázy pracované. Vytvorený model poskytuje zjednodušení pohad na databázový
model systému.
37
Súasou riešenie systému je aj samostatná aplikácia vyvinutá pre mobilné zariadenia
pouívajúce platformu Android. Špecifikácia, aké funkcie má aplikácia poskytova vychádzajú
z celkových poiadaviek na aplikáciu a sú doplnené o špeciálne funkcionálne poiadavky.
Poiadavky na aplikáciu:
o kontinuálne gestá (ovládanie)
o jednoduché (lineárne) gestá
Monos zadávanie hlasových povelov
o príjem hlasových povelov
o rozpoznanie hlasových povelov
Poskytnutie monosti na ovládanie aplikácie a spravovanie mapovania
o zobrazenie definovaných gest
9.2.1 Architektúra aplikácie
38
Nastavenia
Modul nastavenie poskytuje pre pouívatea jednoduché rozhranie, kde je moné vykonáva
mapovanie vstupných udalostí na výstupné akcie, ktoré sa majú vykona. V tomto prostredí –
záloke sú zobrazované aj informácie o dostupných vstupných a výstupných zariadeniach
v systéme, ako ja všetky gestá, ktoré sú v zariadení definované. Táto as je realizovaná ako
webview integrované do prostredia natívnej Android aplikácie.
Hlasový modul
internetu rozoznávanie vysloveného slova v anglitine (offline reim), resp. v slovenine
(online reim). Rozpoznávanie sloveniny nie je moné poui v offline z dôvodu
nedostupnos binárnych dát potrebných na rozoznávanie slova, anglické výrazy sú priamo
súasou aplikácie ako binárny súbor v definovanej štruktúre.
Kontinuálne gestá
jednosuché gestá (napr. dotyk na obrazovke, presun – „slide“ po obrazovke), nadstavbou
jednoduchých gest sú kontinuálne gestá, ktoré poas doby gest zaznamenávajú dotyk
pouívatea na obrazovke a následne komunikujú so serverom na zabezpeenie
kontinuálneho ovládania.
Nakreslené gestá
Tento modul tvorí najzaujímavejšiu as aplikácie. Pouívateovi poskytuje monos
rozpoznáva nim nakreslené gestá, ktoré sa môu sklada z viacerých pohybov po obrazovke.
Takýmto spôsobom je moné necha pouívatea experimentova s ovládatenosou
pomocou grafických obrazcov.
39
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN){
start = System.currentTimeMillis();
listener.onTap();
}else if(event.getAction() == MotionEvent.ACTION_MOVE){
if(Math.abs(x1 - x2) > distance){
this.listener.onLeftSwipe();
listener.onTopSwipe();
40
ArrayList<Prediction> predictions = FileHelper.getGestureLibrary().recognize(gesture);
if(predictions.size() > 0){
Pri vývoji prebiehalo pri jednotlivých astiach testovanie kvality kódu. Pri testovaní sa
vyuívali Unit testy, ktoré boli písané priamo s kódom, na ich základe bola overovaná
funknos daných programovaných astí.
FIITKinect 9 Po druhom šprinte
41
9.3.2 Akceptané testy
Poas jednotlivých šprintov, kde sa vytvárala funkná hodnotu produktu boli identifikované
základné poiadavky na funknos, na ktoré boli následne aplikované akceptané testy pre
danú funkcionalitu. Pri návrhu akceptaných testov sa bral ohad predovšetkým na funknú
stránku, pre akceptovanie daného výstupu boli overované v opodstatnených prípadoch aj
alšie nefunkcionálne poiadavky na produktu – rýchlos behu, pouívateská prívetivos,
zdokumentovanos danej odovzdávanej asti produktu.
FIITKinect 9 Po druhom šprinte
42
ID 01 Názov Vytvorenie experimentu
Prípad pouitia
Rozhranie IS / Výskumník / Experiment
Vstupné podmienky Existencia aspo jedného eventu a aspo jednej action
Výstupné podmienky Uloený nový experiment
Krok Akcia Oakávaná reakcia Skutoná reakcia
1 Vytvor experiment Zobrazený formulár pre vytvorenie experimentu Zobrazí sa formulár pre vytvorenie experimentu
2 Zadanie názvu a stlaenie tlaidla „ok“
Experiment vytvorený Experiment je viditený v paneli experimentov
ID 02 Názov Pridanie akcií do experimentu
Prípad pouitia
Rozhranie IS / Výskumník / Action
Vstupné podmienky Existencia aspo jednej action
Výstupné podmienky Úspešné vloenie action do experimentu
Krok Akcia Oakávaná reakcia Skutoná reakcia
1 Pridaj akciu Zobrazenie formuláru na pridávanie akcií Akcia je viditená v hlavnom paneli
2 Výber akcií Oznaenie zvolených akcií Akcia mono zvoli v selecte akcii
3 Zvolenie monosti „ok“ Uloenie akcií Táto vlastnos nebola impelmentovaná
FIITKinect 9 Po druhom šprinte
43
Prípad pouitia
Rozhranie IS / Výskumník / Event
Vstupné podmienky Existencia aspo jedného event
Výstupné podmienky Uloenie event do experimentu
Krok Akcia Oakávaná reakcia Skutoná reakcia
1 Pridaj eventu Zobrazenie formuláru na pridávanie eventov Event je viditený v hlavnom paneli
2 Výber eventov Oznaenie zvolených eventov Event mono vybra v select boxe eventov
3 Zvolenie monosti „ok“ Uloenie akcií Nebolo implementované
ID 04 Názov Vytvorenie nového mapovania
Prípad pouitia
Rozhranie IS / Výskumník / Mapovanie
Vstupné podmienky Existencia aspo jedného experimentu
Výstupné podmienky Uloenie nového mapovania
Krok Akcia Oakávaná reakcia Skutoná reakcia
1 Pridaj mapovanie Zobrazí formulár na vytvorenie nového mapovania Zobrazí sa okno z monosou mapovania
2 Zvo event Systém overí duplicitu a oznaí Event je viditene oznaený
3 Zvo akciu Systém oznaí Akcia je viditene oznaená
4 Zvo „ok“ Systém uloí mapovanie Zmena na stlaenie „mapuj“
FIITKinect 9 Po druhom šprinte
44
Prípad pouitia
Rozhranie IS / Výskumník / Mapovanie
Vstupné podmienky Existencia aspo jedného mapovania v rámci experimentu
Výstupné podmienky Odobranie existujúceho mapovania z mapovania
Krok Akcia Oakávaná reakcia Skutoná reakcia
1 Zvo mapovanie Oznaí mapovanie Oznaené mapovanie je vizuálne odlíšené od ostatných dostupných mapovaní
2 Zvo odstráni mapovanie Odstráni mapovanie Po stlaení „Odstrá“ nie je napovanie viditené v hlavnom paneli, ani databáze
ID 06 Názov Prepojenos gesta (event) s akciou
Prípad pouitia
Rozhranie IS / Výskumník / Gesto - Action
Úel Overenie prepojenia event – action v rámci experimentu
Vstupné podmienky Vytvorené aspo jedno mapovanie
Výstupné podmienky Vykonanie action po zachytení event
Krok Akcia Oakávaná reakcia Skutoná reakcia
1 Prijatý event Vykonaná akcia, ktorá bola na daný event namapovaná Vykoná sa akcia, ktorá bola mapovaná na vstupný podnet - event
FIITKinect 9 Po druhom šprinte
45
Prípad pouitia
Rozhranie IS / Výskumník - Uívate / Kinect
Úel Overenie zobrazenia ikony pre aktívny Kinect
Vstupné podmienky -
Krok Akcia Oakávaná reakcia Skutoná reakcia
1 Pripojený Kinect Zobrazenie príslušnej ikony Kinect je viditený ako aktívne zariadenie v hlavnom paneli
ID 08 Názov Zobrazenie gesta (event)
Prípad pouitia
Rozhranie IS / Výskumník - Uívate/ Event
Úel Overenie zobrazovania event
Výstupné podmienky Event zobrazený/prehraný
Krok Akcia Oakávaná reakcia Skutoná reakcia
1 Ozna event Systém oznaí event Po oznaení je graficky rozlíšený event v ovládacom rozhraní
2 Zobraz zvolený event Systém zobrazí zvolený event Vizuálne je zobrazené gesto patriace k eventu
FIITKinect 9 Po druhom šprinte
46
9.3.2.2 Akceptané testy pred koncom 4. Šprintu
Po druhom šprinte sa zmenila forma akceptaných testov, okrem overovania priamej funkcionality sa kládol väší dôraz aj na vizuálne prevedenie astí, ktoré zobrazujú pouívateovi informácie ako aj na prenos informácií medzi zariadeniami a serverom. as toho testovania bola obsiahnuté v iastkových unit testoch jednotlivých komunikujúcich modulov. V tejto fáze bol najviac kladený dôraz na Android aplikáciu.
Úloha Predpokladané správanie
Skutonos Spôsob overenia
Po aktivovaní aplikácie sa zobrazilo jej grafické rozhranie
Vizuálne, unit testom – inicializácia GUI elementu
Naítanie informácií do webview
Zobrazí sa záloka z parametrami nastavovania
Po kliknutí na záloku bolo zobrazené rozhranie pre ovládanie mapovania, boli zobrazené eventy, akcie
Vizuálne
Aplikácia komunikuje so serverom prostredníctvom siete
Aplikácia komunikuje so serverom, je moné nastavova parametre, je viditená oakávaná reakcia, po vykonaní eventu sa vykoná namapovaná akcia
Vizuálne – naítavanie informácií zo servera Wireshark – zobrazenie sieovej komunikácie
Overenie rozpoznania gesta
Po vykonaní nastaveného gesta sa rozpozná jeho názov
Gesto je rozpoznané, o om svedí výpis priamo v aplikácií, pri vizuálne podobných gestách je zaznamenané v niektorých prípadoch nesprávne rozoznanie
Viacnásobné nakreslenie gest v rôznych obmenách
Overenie hlasového povelu
Po aktivovaní rozoznávania povelu a rozoznaní nadefinovaného gesta sa zobrazí v textovej informácií rozpoznané slovo
Hlasový povel je rozpoznaní, v móde „slovenina“ pri slovách z interpunkciou je zaznamenané rozdielne vyhodnocovanie v závislosti od slova
Vizuálne, akusticky
47
9.4 Architektúra systému
Pri pohad na systém sú rozlíšitené jednotlivé jeho asti. Nosnou asou je serverová
aplikácia poskytujúce výstupným a výstupným zariadeniam v systéme potrebnú vzájomnú
konektivitu.
Zariadenie sa pripájajú na server štandardizovaným TCP/IP protokolom, v riešení boli oproti
pôvodnému pridané Server sent events.
Vzhadom na poiadavku modulárnosti systému je vytvorené RESTful API poskytujúce
monosti rozšírenia pre akékovek zariadení schopné pracova s danými technológiami.
Systém poskytuje monos práce prostredníctvom desktopovej aplikácie, mobilnej aplikácie,
výstupných zariadení.
9.4.1.1 Server sent events Server sent events predstavujú štandard pre komunikáciu, pri ktorej server inicializuje prvý prenos dát
smerom ku klientovi ím vytvorí spojenie s ním. Typicky sa tento štandard vyuíva pri kontinuálnom
dátovom streamovaní ku klientovi.
Obr. . 188: Architektúra systému
Server
48
Obr. . 199: Desktopová aplikácia - architektúra
Desktopová aplikácia je realizovaná v jazyku C++. Pouíva as z minuloroného projektu
[1.6], ktorá zabezpeuje prácu so senzorom Kinect. Vzhadom na prídavné moduly v systéme
je do hlavnej aplikácie zahnutý aj modul na ovládanie IR zariadenia, prácu s rozpoznávaním
hlasu. Nastavovanie celého systému v podobe mapovaní vstupných a výstupných udalostí sa
realizuje v nastavovacom rozhraní, ktoré je vloené ako webview v desktopovej aplikácií.
FIITKinect 9 Po druhom šprinte
49
Serverová aplikácia je postavená nad jazykom Node.js, ktorý umouje konektivitu pre
mnohonásobne viac pripojených zariadení, ako iný typ servera. Server poskytuje RESTful API
pre pripojenie alších modulov pomocou POST, GET, im poskytuje štandardizovaný prístup
pre komunikáciu.
50
10.1 Uloenie mapovania
Mapovanie sa ukladá ako array eventov a jedna výstupna akcia. Eventy v novom mapovaní
nemôu by podpostupnosti s iným mapovanim.
napr.
V takomto prípade sa druhé mapovanie nikdy nevykoná. Algoritmus spracovania eventu:
1. Prijme sa event 'ruka hore'
2. Zruší sa aktívny asova (ak je nejaký nastavený)
3. Skontroluje sa príznak na prefixové mapovanie
4. Ak nie je:
6. Array akajúcich eventov sa porovnáva s mapovaniami
7. Ak sa arraye rovnajú, vykoná sa akcia a array akajúcich eventov sa vymae (naspat na 1)
8. Ak sa nerovnajú, spustí sa asova na príjem alšieho eventu
9. Ak uplynul as v asovai, array akajúcich eventov sa vymae (krok 1)
10.2 Prefixové mapovanie
Prefixové mapovanie je tvorené trojicov eventov: spuša, vykonáva a ukonova + je
pridaný príznak pri vytvoren nového eventu
napr.
Uprava algoritmu
1. Ak si príjme event 'ruka hore' a pri porovnaní arrayov sa zistí, e týmto eventom zaína
prefixové mapovanie, tak sa iadny asova nespustí
2. Spustí sa globálny príznak v express.js e sa pouíva prefixové mapovanie (prípadne sa
odloí cela trojica mapovania aby sme nemuseli znovu hada)
3. Pri prijati dalsieho eventu sa skontroluje mapovamie:
4. Ak je event vykonava, tak sa vykoná
5. Ak je event ukonova, tak sa vymae globálny príznak prefixového mapovania a
vyprázdni array akajúcich eventov (naspat na 1)
FIITKinect 11 Zoznam obrázkov
Obr. . 2: Vytváranie nového „touch“ gesta .............................................................................. 9
Obr. . 3: Vytváranie nového gesta .......................................................................................... 10
Obr. . 4: Pridanie novej akcie do experimentu ....................................................................... 11
Obr. . 5: Vytváranie nového mapovania ................................................................................. 11
Obr. . 6: Zobrazenie uloených gest ....................................................................................... 12
Obr. . 7: Interakcia hardvéru a softvéru s aplikáciou. ............................................................ 16
Obr. 8: Architektúra beta SDK. .............................................................................................. 17
Obr. . 9: Hlavná obrazovka Experimentátorskej aplikácie. ..................................................... 19
Obr. . 10: Obrazovka na prácu s povelmi. .............................................................................. 20
Obr. . 11: Obrazovka s akciami. .............................................................................................. 21
Obr. . 12: Obrazovka mapovania. .......................................................................................... 22
Obr. . 13: Východzia obrazovka pre beného uívatea. ........................................................ 23
Obr. . 14: Architektúra systému ............................................................................................. 34
Obr. . 15: Dátový model .......................................................................................................... 36
Obr. . 16: Unit test v Node.js –server ..................................................................................... 40
Obr. . 17: Unit test – Android aplikácia .................................................................................. 41
Obr. . 18: Architektúra systému ............................................................................................. 47
Obr. . 19: Desktopová aplikácia - architektúra ....................................................................... 48
Obr. . 20: Desktopová aplikácia - architektúra ....................................................................... 49