Commit 8280ae9b authored by Taddeüs Kroes's avatar Taddeüs Kroes

First version of final presentation.

parent a048b6ca
% 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}
\usepackage[english]{babel}
\usepackage[english,dutch]{babel}
\usepackage[utf8]{inputenc}
\usepackage{beamerthemesplit,graphics,subfigure,url,listings}
\usepackage{beamerthemesplit,graphics,subfigure,url,float,tikz}
\definecolor{kugreen}{RGB}{130,151,183}
\lstset {
language=Python,
basicstyle=\footnotesize,
backgroundcolor=\color{white},
frame=single,
tabsize=4
}
\mode<presentation> {
\usetheme{PaloAlto}
\usecolortheme[named=kugreen]{structure}
......@@ -24,23 +16,133 @@
\title{A generic architecture for gesture-based interaction}
\author{Taddeüs Kroes}
\institute{Universiteit van Amsterdam}
\date{june 29, 2012}
\date{29 juni 2012}
\begin{document}
\input{data/presentationdiagrams}
\frame {
\titlepage
}
\frame {
\frametitle{Overview}
\frametitle{Inhoud}
\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 {
\frametitle{}
\frametitle{Suggesties voor toekomstig onderzoek}
\begin{itemize}
\item
......
PRESENTATION := final_presentation
PRESENTATIONDIAGRAMS := data/presentationdiagrams
REPORT := report
DIAGRAMS := data/diagrams
LATEX = TEXINPUTS=$(d):$(b): pdflatex -halt-on-error -interaction=nonstopmode \
......@@ -7,7 +9,7 @@ REF_WARNING := "Rerun to get cross-references right"
.PHONY: docs bibclean
docs: $(b)$(REPORT).pdf $(b)proposal.pdf $(b)presentation.pdf \
$(b)final_presentation.pdf
$(b)$(PRESENTATION).pdf
$(b)%.pdf: $(d)%.tex
mkdir -p $(@D)
......@@ -17,6 +19,8 @@ $(b)%.pdf: $(d)%.tex
$(LATEX) $^; \
done
$(b)$(PRESENTATION).pdf: $(d)$(PRESENTATIONDIAGRAMS).tex
$(b)$(REPORT).pdf: $(d)$(DIAGRAMS).tex $(b)$(REPORT).bbl
$(b)$(REPORT).bbl: $(d)$(REPORT).bib
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment