Skip to content
Snippets Groups Projects
Commit 8280ae9b authored by Taddeüs Kroes's avatar Taddeüs Kroes
Browse files

First version of final presentation.

parent a048b6ca
No related branches found
No related tags found
No related merge requests found
% Define node group background
% The first 4 arguments are nodes that define the group borders in (left,
% top, right, bottom) order, the last argument is a text label
\usetikzlibrary{shapes,arrows,positioning,patterns}
\pgfdeclarelayer{background}
\pgfdeclarelayer{foreground}
\pgfsetlayers{background,main,foreground} % Layer order
\newcommand{\group}[5]{
\begin{pgfonlayer}{background}
% Left top corner
\path (#1.west |- #2.north)+(-0.7, 0.7)
node (lefttop) {};
% Right bottom corner
\path (#3.east |- #4.south)+(0.7, -0.4)
node (rightbottom) {};
% Draw rectangle
\path[draw, rounded corners, dashed] (lefttop) rectangle (rightbottom);
% Text label
\path (rightbottom.west |- lefttop.south)+(-1.2, -0.3) node {\emph{#5}};
\end{pgfonlayer}
}
\tikzstyle{block} = [
rectangle,
draw=black,
fill=white,
thick,
minimum height=2em,
text centered,
rounded corners,
text width=6em
]
\tikzstyle{lineto} = [
->,
thick,
shorten <= 2pt,
shorten >= 2pt
]
\tikzstyle{linefrom} = [
<-,
thick,
shorten <= 2pt,
shorten >= 2pt
]
\newcommand{\architecture}[1]{
\begin{tikzpicture}[node distance=6em, scale=0.7, transform shape]
\node[block] (driver) {Driver};
#1
\end{tikzpicture}
}
\def\basicdiagram{
\begin{figure}[h!]
\center
\begin{tikzpicture}[node distance=6em, scale=0.7, transform shape]
\node[block] (driver) {Device driver};
\node[block, below of=driver, dashed] (architecture) {Architecture}
edge[linefrom] node[right] {device-specific messages} (driver);
\node[block, below of=architecture] {Application}
edge[linefrom, dotted] node[right] {gesture} (architecture);
\end{tikzpicture}
\end{figure}
}
\def\eventdriverdiagram{
\begin{figure}[h!]
\center
\architecture{
\node[block, below of=driver] (eventdriver) {Event driver}
edge[linefrom] node[right, near end] {device-specific messages} (driver);
\node[block, below of=eventdriver, dashed] (analysis) {Event analysis}
edge[linefrom] node[right] {(low-level) event} (eventdriver);
\node[block, below of=analysis] {Application}
edge[linefrom, dotted] node[right, near start] {(high-level) gesture} (analysis);
\node[right of=eventdriver, xshift=2em] (dummy) {};
\group{eventdriver}{eventdriver}{dummy}{analysis}{Architecture}
}
\end{figure}
}
\def\lefthand{\includegraphics[width=50pt]{data/hand.png}}
\def\righthand{\reflectbox{\includegraphics[width=50pt, angle=-45]{data/hand.png}}}
\def\areaproblem{
\begin{figure}[H]
\center
\begin{tikzpicture}[transform shape, scale=0.7]
\draw node[draw, black, minimum width=190, minimum height=140] at (0,0) {};
\draw node[fill=gray!50, draw=black!70, minimum height=40, minimum width=40] at (-1,-1) {\lefthand};
\draw node[] at (1.2,1) {\righthand};
\draw node[draw=black!80, diamond, minimum height=70, minimum width=70] at (1.2,1) {};
\end{tikzpicture}
\end{figure}
}
\def\areadiagram{
\begin{figure}[H]
\center
\architecture{
\node[block, below of=driver] (eventdriver) {Event driver}
edge[linefrom] node[right, near end] {device-specific messages} (driver);
\node[block, below of=eventdriver] (area) {Event areas}
edge[linefrom] node[right] {event} (eventdriver);
\node[block, right of=area, xshift=7em, dashed] (tracker) {Gesture detection}
edge[linefrom, bend right=10] node[above] {event} (area)
edge[lineto, bend left=10, dotted] node[below] {gesture} (area);
\node[block, below of=area] {Application}
edge[linefrom, dotted] node[right, near start] {gesture} (area);
\group{eventdriver}{eventdriver}{tracker}{area}{Architecture}
}
\end{figure}
}
\def\propagationproblem{
\begin{figure}[H]
\center
\begin{tikzpicture}[node distance=5.5em, transform shape, scale=0.6]
\draw node[draw=black, minimum width=190, minimum height=140] at (0,0) {};
\draw node[draw=black!60, minimum height=100, minimum width=100, pattern=north east lines] at (-0.1,-0.1) {};
\draw node[fill=gray!60, draw=black!70, minimum height=40, minimum width=40] at (0.3,0.4) {};
\fill (0.4, 0.6) circle (0.15);
\end{tikzpicture}
\end{figure}
}
\def\propagationdiagram{
\begin{figure}[H]
\center
\begin{tikzpicture}[node distance=5.5em, transform shape, scale=0.7]
\draw node[block, yshift=-10em, xshift=-3em] (driver) {Event driver};
\draw node[block, below of=driver] (gray) {Outer event area}
edge[linefrom] node[left] {1} (driver);
\draw node[block, below of=gray] (white) {Inner event area}
edge[linefrom, bend left=15] node[left] {2} (gray)
edge[lineto, bend right=15, red] node[right, black] {6} (gray);
\draw node[block, right of=white, xshift=4em] {\emph{drag} tracker}
edge[linefrom, bend right=15] node[above] {3} (white)
edge[lineto, dotted, bend left=15] node[below] {4} (white);
\draw node[block, right of=gray, xshift=4em] {\emph{drag} tracker}
edge[linefrom, bend right=15, red] node[above, black] {7} (gray)
edge[lineto, dotted, bend left=15, red] node[below, black] {8} (gray);
\draw node[block, below of=white] {Application}
edge[linefrom, dotted, bend left=65, red] node[left, black] {9} (gray)
edge[linefrom, dotted] node[left] {5} (white);
\end{tikzpicture}
\end{figure}
}
\def\fulldiagram{
\begin{figure}[h!]
\center
\architecture{
\node[block, below of=driver] (eventdriver) {Event driver}
edge[linefrom] node[right, near end] {device-specific messages} (driver);
\node[block, below of=eventdriver] (area) {Event areas}
edge[linefrom] node[right] {event} (eventdriver);
\node[block, right of=area, xshift=7em] (tracker) {Gesture trackers}
edge[linefrom, bend right=10] node[above] {event} (area)
edge[lineto, bend left=10, dotted] node[below] {gesture} (area);
\node[block, below of=area] {Application}
edge[linefrom, dotted] node[right, near start] {gesture} (area);
\group{eventdriver}{eventdriver}{tracker}{area}{Architecture}
}
\end{figure}
}
\def\daemondiagram{
\begin{figure}[H]
\centering
\begin{tikzpicture}[node distance=4em, transform shape, scale=0.7]
\node[block] (daemon) {Daemon};
\node[block, above of=daemon] (driver) {Device driver}
edge[lineto] (daemon);
\node[block, xshift=-4em, left of=driver] {Device driver}
edge[lineto] (daemon);
\node[block, xshift=4em, right of=driver] {Device driver}
edge[lineto] (daemon);
\node[block, below of=daemon] (app) {Application}
edge[linefrom, dotted] (daemon);
\node[block, xshift=-4em, left of=app] {Application}
edge[linefrom, dotted] (daemon);
\node[block, xshift=4em, right of=app] {Application}
edge[linefrom, dotted] (daemon);
\draw[dashed] (app.north)+(-4, 0.35) -- node[right=4, yshift=1] {Network protocol} ++(4, 0.35);
\end{tikzpicture}
\end{figure}
}
\documentclass{beamer} \documentclass{beamer}
\usepackage[english]{babel} \usepackage[english,dutch]{babel}
\usepackage[utf8]{inputenc} \usepackage[utf8]{inputenc}
\usepackage{beamerthemesplit,graphics,subfigure,url,listings} \usepackage{beamerthemesplit,graphics,subfigure,url,float,tikz}
\definecolor{kugreen}{RGB}{130,151,183} \definecolor{kugreen}{RGB}{130,151,183}
\lstset {
language=Python,
basicstyle=\footnotesize,
backgroundcolor=\color{white},
frame=single,
tabsize=4
}
\mode<presentation> { \mode<presentation> {
\usetheme{PaloAlto} \usetheme{PaloAlto}
\usecolortheme[named=kugreen]{structure} \usecolortheme[named=kugreen]{structure}
...@@ -24,23 +16,133 @@ ...@@ -24,23 +16,133 @@
\title{A generic architecture for gesture-based interaction} \title{A generic architecture for gesture-based interaction}
\author{Taddeüs Kroes} \author{Taddeüs Kroes}
\institute{Universiteit van Amsterdam} \institute{Universiteit van Amsterdam}
\date{june 29, 2012} \date{29 juni 2012}
\begin{document} \begin{document}
\input{data/presentationdiagrams}
\frame { \frame {
\titlepage \titlepage
} }
\frame { \frame {
\frametitle{Overview} \frametitle{Inhoud}
\tableofcontents \tableofcontents
} }
\section{Problem} \section{Probleem}
\frame {
\frametitle{Probleemstelling}
\begin{itemize}
\item Steeds meer apparaten voor complexe interactie, maar driver API
blijft low-level
\item Applicatieframeworks zijn beperkend
\item Oplossing: generieke architectuur voor detectie gebaren uit
driverberichten
\end{itemize}
}
\section{Architectuur}
\frame {
\frametitle{Ontwerp architectuur}
\basicdiagram
}
\frame {
\frametitle{Van driver-specifiek naar algemeen}
\begin{itemize}
\item Verschillende drivers hebben verschillende API's
\item Vertaal apparaat-specifiek naar algemeen formaat in ``event
driver''
\end{itemize}
\eventdriverdiagram
}
\frame {
\frametitle{Groeperen events}
\begin{itemize}
\item Driver is niet op de hoogte van ``widgets''
\areaproblem
\item Gebaar toewijzen aan widget met een ``event area''
\end{itemize}
}
\frame {
\frametitle{Groeperen events (2)}
\areadiagram
}
\frame {
\frametitle{Boomstructuur}
\begin{itemize}
\item Event toewijzen aan event area moeilijk bij overlap
\propagationproblem
\item Oplossing: zet event areas in boomstructuur
\item Event wordt omhoog ``gepropageerd'' in de boom, tenzij gestopt
\end{itemize}
}
\frame {
\frametitle{Propagatie}
\propagationdiagram
}
\frame {
\frametitle{Gebaardetectie}
\begin{itemize}
\item Simpele gebaren zijn te detecteren met expliciete code, complexe
gebaren bijv.met machine learning
\item Expliciete detectiecode wordt snel onbeheersbaar
\item Verpak verschillende detectiemethodes in ``gesture trackers''
\item Applicatieontwikkelaar kan zelf gesture trackers toevoegen
\end{itemize}
}
\frame {
\frametitle{Gebaardetectie (2)}
\fulldiagram
}
\frame {
\frametitle{Daemon}
\begin{itemize}
\item Communicatie door een netwerkprotocol
\item Taal-onafhankelijk
\item Platform-onafhankelijk
\item Meerdere appliaties tegelijkertijd
\end{itemize}
\daemondiagram
}
\section{Demo}
\frame {
\frametitle{Demo}
\begin{itemize}
\item
\end{itemize}
}
\section{Toekomst}
\frame { \frame {
\frametitle{} \frametitle{Suggesties voor toekomstig onderzoek}
\begin{itemize} \begin{itemize}
\item \item
......
PRESENTATION := final_presentation
PRESENTATIONDIAGRAMS := data/presentationdiagrams
REPORT := report REPORT := report
DIAGRAMS := data/diagrams DIAGRAMS := data/diagrams
LATEX = TEXINPUTS=$(d):$(b): pdflatex -halt-on-error -interaction=nonstopmode \ LATEX = TEXINPUTS=$(d):$(b): pdflatex -halt-on-error -interaction=nonstopmode \
...@@ -7,7 +9,7 @@ REF_WARNING := "Rerun to get cross-references right" ...@@ -7,7 +9,7 @@ REF_WARNING := "Rerun to get cross-references right"
.PHONY: docs bibclean .PHONY: docs bibclean
docs: $(b)$(REPORT).pdf $(b)proposal.pdf $(b)presentation.pdf \ docs: $(b)$(REPORT).pdf $(b)proposal.pdf $(b)presentation.pdf \
$(b)final_presentation.pdf $(b)$(PRESENTATION).pdf
$(b)%.pdf: $(d)%.tex $(b)%.pdf: $(d)%.tex
mkdir -p $(@D) mkdir -p $(@D)
...@@ -17,6 +19,8 @@ $(b)%.pdf: $(d)%.tex ...@@ -17,6 +19,8 @@ $(b)%.pdf: $(d)%.tex
$(LATEX) $^; \ $(LATEX) $^; \
done done
$(b)$(PRESENTATION).pdf: $(d)$(PRESENTATIONDIAGRAMS).tex
$(b)$(REPORT).pdf: $(d)$(DIAGRAMS).tex $(b)$(REPORT).bbl $(b)$(REPORT).pdf: $(d)$(DIAGRAMS).tex $(b)$(REPORT).bbl
$(b)$(REPORT).bbl: $(d)$(REPORT).bib $(b)$(REPORT).bbl: $(d)$(REPORT).bib
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment