Kungliga Tekniska Högskolan (KTH) Programutvecklingsprojekt (2D1954) Systembeskrivning för projektgrupp Gestmenyer

Relevanta dokument
Menysystem för gestbaserad interaktion

Gränssnitt för FakeGranska. Lars Mattsson

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document

Laboration 3 GUI-programmering

Objektorienterad programmering med Java Swing: Händelser, lyssnare och applets

PROGRAMMERINGSTEKNIK TIN212

Grafiska användargränssnitt i Java

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

HAND TRACKING MED DJUPKAMERA

Objektorienterad Programkonstruktion. Föreläsning 3 9 nov 2015

INSTALLATION...3 ATT KOMMA IGÅNG...3 PROGRAMMETS DESIGN...4 LÄGGA TILL TABELL...4 EDITERA TABELL...4 EDITERA RELATION...5 SPARA OCH AVSLUTA...

Ljusets böjning & interferens

Designspecifikation den 13 december 2007

Tor Sterner-Johansson Thomas Johansson Daniel Henriksson

Introduktion till Matlab

SeaClean städbeställning via hyttelefonerna

Projektrapport EDA095

Importera och använda en textdatabas i Excel

Grafiska användargränssnitt i Java

Flerdimensionella signaler och system

Din manual ARCHOS 604 WIFI

emopluppen Användning av "Ant" Niklas Backlund Version: 1.4 ( 2002/04/26 07:27:52 UTC)

Spelet i sig är inte avancerat men projektet ställer en del krav på implementationen bland annat:

Hidden Camera App. Realtidsprogrammering EDA040. Joakim Svensson (dt05js8) Torbjörn Lundberg (dt05tl3) Henrik Andersson (dt05ha1)

Fyra i rad Javaprojekt inom TDDC32

Logga in på din hemsideadministration genom dina inloggningsuppgifter du fått.

BESKRIVNING AV DISPLAY

användarhandledning skogsägarplan webb

Tillämpad digital signalbehandling Laboration 1 Signalbehandling i Matlab och LabVIEW

Manual. Användargränssnitt

Fönster och dörr. Kapitel 3 - Fönster och dörr... 3

Inlämningsuppgifter, EDAF30, 2015

JavaRats. Kravspecifikation. Version 1.1. Gustav Skoglund Marcus Widblom Senast ändrad: 13 / 05 / 08

Tekniska Högskolan i Linköping Institutionen för Datavetenskap (IDA) Torbjörn Jonsson Plot och rekursion

LiTHehack? Här? lithehack se koma Tisdagar och torsdagar

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Tentamen i Objektorienterad modellering och design

Testplan. Redaktör: Sofie Dam Version 0.1. Status. Planering och sensorfusion för autonom truck Granskad Dokumentansvarig - Godkänd

Uppgift 1a (Aktiekurser utan poster)

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Projekt 1 (P1) Problembeskrivning och uppdragsspecifikation

Laboration: Grunderna i MATLAB

Skolan för Datavetenskap och kommunikation. Programmeringsteknik. Föreläsning 16

Grupputvärdering Gängbildning

PROGRAM A STABILISERANDE VÄGGSKIVOR

Guide till att använda Audacity för uttalsövningar

TDP005 Projekt: Objektorienterat system

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Kapitel 1 Komma igång... 3

SPEECHMIKE TM 2.2 PROGRAMVARUHANDBOK PHI

HARALD Testprotokoll

CADvent+ RÖR en första test

Projekt i Bildanalys: Automatisk detektion av lungemboli ur scintbilder

TECHNICAL INFORMATION Bewator-2010 Bokning Tilläggsblad

Tjoho. Applikationsutvecklarens handledning. Maj 2003

Tentamen i Objektorienterad modellering och design Helsingborg

TDDD78, TDDE30, 729A Grafik: Att "rita" egna komponenter

Datum Ert datum Vår beteckning Banförvaltningen Vidmakthållande SE Borlänge Besöksadress: Jussi Björlings väg 2

Kapitel Datakommunikation Anslutning av två enheter Anslutning av enheten till en persondator Anslutning av enheten till en CASIO etikettskrivare

Tentamen i EDAF25. 1 juni Skrivtid: Skriv inte med färgpenna enda tillåtna färg är svart/blyerts.

37973 System > SQL-kommando

Handledning för att använda Skogsägarplan Webb

Bilaga 4, Skapa grafiskt användargränssnitt med guide

Hemknappen klicka på loggan Vem är inloggad? Meny

Handbok KDE:s Menyeditor. Milos Prudek Anne-Marie Mahfouf Lauri Watts Översättare: Stefan Asserhäll

Introduktion till Matlab

Projektpresentation Sakfrågan

Manual Demoväska RFID. Manual Demoväska. Sara Svensson/Monika Lindgren/Fredrik Karlsson Version BnearIT AB 1(17)

Page 1. Innehåll. Datorseendebaserade gränssnitt: Bakgrund. Datorseende - Bildanalys. Datorseendebaserade gränssnitt

Projektpresentation Gängbildning

Model View Controller. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Starta ett fönster... Hur håller tkinter reda på musklick? Olika sätt att organisera fönsterinnehåll. Och för att placera våra widgets

Projekt i Nätverksprogrammering. MegaNet Handledare: Pierre Nugues

Datastrukturer och Algoritmer D0041D

Programmering i C++ Kompilering från kommandoraden

Automatisering i AutoCAD

Handledningsmaterial Visio 2010

Laborationsinformation

ALEPH ver. 16 Introduktion

Användarmanual EASY Enterprise Audit System Granskningsansvarig och granskare

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

Klassen javax.swing.timer

Elevhantering. Välj Tabell - Elev. Konstatera att elevtabellen är tom! I brist på elevinformation måste schemafilen få reda på följande:

Kom igång med Autocad 2008

TAIU07 Matematiska beräkningar med Matlab

Att prova på en enkel Applet och att lära sig olika sätt att hämta data från tangentbordet. Du får även prova på att skapa din första riktiga klass.

Optisk bänk En Virtuell Applet Laboration

Start Snabbinstallationsguide Daglig användning. TRIAX C-HD415 CX Digital kabel-tv mottagare P/N: P/O A here

Insamlingsverktyg - teknisk beskrivning av metadataformuläret

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 2

Labbrapport Svantes Bageri

Stompunktsmanual Trafikverket

DATORÖVNING 5: SANNOLIKHETSFÖRDELNINGAR FÖR

Swema 05. Bruksanvisning vers 1.01 MB

LADOK MINIMANUAL. Att logga in i Ladok. Huvudmenyn. Studentcentrum, Ladok

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

Testprotokoll. Redaktör: Sofie Dam Version 0.1. Status. Planering och sensorfusion för autonom truck Granskad Dokumentansvarig - Godkänd

Kapitel 3 Fönster och dörr... 3

Kapitel 2 Vägg/golv... 3

Objektorienterad Programkonstruktion. Föreläsning 3 7 nov 2016

Transkript:

Kungliga Tekniska Högskolan (KTH) Programutvecklingsprojekt (2D1954) Systembeskrivning för projektgrupp Gestmenyer

Projektnamn: Gestmenyer Projektgrupp: Gestmenyer Gruppmedlemmar: Johnne Adermark, Hanna Hagelin, Patric Holm, Tippu Mahmood och Jonas Skubic. Beställare: CID (Centrum för användarorienterad IT-Design) och CVAP (Computational Vision and Active Perception Laboratory) vid NADA (KTH). Webbadress: www.nada.kth.se/projects/proj03/gestmenyer/ Dokument: Systembeskrivning Datum: 2003-05-08 1

Innehållsförteckning Systemskiss 3 Systemets delar 3 Filter 3 Musadapter 4 Pajmeny 4 Kommandocentral 6 2

Systemskiss Figur 1 Systemskiss Vårt projekt består av att bygga ett menysystem, styrt av handgester, som kan användas för att styra elektriska aparater. Systemet består av fyra delar, filter (2.1), musadapter (2.2), pajmeny (2.3) och kommandocentral (2.4). Dessutom finns ett gestigenkänningssystem som ger insignaler, detta finns tillgängligt hos uppdragsgivarna. Överföringen av information mellan gestigenkänningssystemet och filtret, liksom från kommandocentralen till den apparat som ska styras, sker via TCP/IP. Systemets delar Vi har valt att strukturera systemet som projektet resulterat i enligt figuren ovan. Denna uppdelning är på modulnivå eftersom vi anser att antalet klasser är för många för att redovisas i systembeskrivningen. För de som är intresserade av klasserna hänvisar vi till källkoden. Filter Pajmenysystemet styrs genom att det får indata från gestigenkänningssystemet. Indatan är i form av TCP/IP-paket som innehåller data om den igenkända handposen, handens position relativt kameran, handens storlek och en vinkel som anger handens rotation relativt kameran. Varje gång användaren håller upp handen mot kameran genereras ett antal sådana paket och ibland blir poseigenkänningen dessutom fel. Vi har alltså dels repetition i data, dels brus. Exempelvis när användaren gör handpose 3 kan indatan bestå av 7 paket för pose 3, följt av två felaktiga paket med pose 2 och sedan 6 paket med pose 3. Funktionen med filtret blir därmed att ta bort bruset i inläsningen av handposen, i exemplet ovan skall det med andra ord inse att den pose som användaren vill visa är handpose 3. 3

Sammanfattningsvis innebär ovanstående att filtret inser att en handpose a har gjorts om den tagit emot n stycken paket, varav p stycken anger att a har känts igen. Då filtret accepterar en handpose skapar det ett objekt som anger vilken pose som utförts, samt handens position, storlek och rotation. Poserna skickas sedan i form av event vidare till kommandocentralen. Musadapter Då ett av målen med projektet var att kunna styra pajmenyn med både gestigenkänning och mus skapade vi en musadapter. Musadaptern fungerar genom att lyssna efter olika MouseEvents i Java. Därefter skapar adaptern event av samma typ som filtret gör. När det gäller de olika handposer som används vid gestigenkänningen, ersätts dessa med exempelvis musklick. Musadaptern gör det möjligt för användaren att välja vilket inmatningssystem som den vill använda samtidigt som den förenklar testningsfasen av pajmenyn och kommandocentralen. Pajmeny Pajmenyn som är implementerad i Java2D och Swing har hand om att rita upp pajmenyer när de ska visas. När filtret eller musadaptern upptäcker att användaren gjort en pose eller bytt position anropas pajmenyn för att få redan på i vilket fält användaren befinner sig i antingen mittfältet, någon av tårtbitarna eller utanför menyn. Figur 2 Huvudmenyn 4

Figur 3 Undermeny för tv För att pajmenyn ska vara så flexibel som möjligt har dess struktur angetts i XML. Pajmenyprogrammet initieras med att en XML-fil läses in i programmet. XML-filen anger vilka val som finns i varje delmeny och dess parametrar. Exempel på parametrar som kan tänkas vara viktiga är storlek på menyn samt den text som ska visas i ett fält. <menu name='main' x='200' y='200' outerradius='120' innerradius='20'> <entry id='file' text='file' color='#998822' /> <entry id='help' text='help' color='#558822' /> <entry id='light' text='lightmenu' color='#558822' /> <entry id='tv' text='tvmenu' color='#558822' /> </menu> <menu name='light' x='200' y='200' outerradius='120' innerradius='20'> <entry id='lighton' text='light On' color='#998822' /> <entry id='lightoff' text='light Off' color='#558822' /> </menu> <menu name='tv' x='200' y='200' outerradius='120' innerradius='20'> <entry id='channel' text='channelmenu' color='#998822' /> <entry id='tvoff' text='tv Off' color='#558822' /> </menu> Figur 4 XML för menyns struktur I XML-filen för menyerna anges alltså inte menyhierarkier eller vad som sker när ett visst fält besöks. Detta hanteras av en kommandocentral och anges i dess XML-fil. 5

Kommandocentral Varje gång användaren antingen förflyttar markören till ett nytt fält eller byter handpose så genereras en händelse. Precis som i fallet med pajmenyn används en XML-fil för att göra systemet så flexibelt som möjligt. I XML-filen är olika kombinationer av händelser definierade såsom vilka kommandon som öppnar en ny meny eller att ett kommando sänds till ett annat system. Detta görs genom att händelserna samlas i en lista. När de senast inkomna händelserna stämmer överens med någon av de händelsekombinationer som angetts i XML-filen utförs det som XML-filen säger ska utföras, vilket i sin tur leder senare till att händelselistan rensas. <commandlist> <command name='back'> <openmenu>previous</openmenu> <eventlist> <event pose='3' area='center' /> </eventlist> </command> <command name='closemenu'> <openmenu>root</openmenu> <eventlist> <event pose='0' area='out' /> <event pose='1' area='out' /> </eventlist> </command> <command name='mainmenu'> <openmenu>main</openmenu> <eventlist> <event pose='0' area='root' /> <event pose='1' area='root' /> </eventlist> </command> </commandlist> Figur 5 Konfigurationsfil för kommandon 6