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