Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
M
multitouch
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Taddeüs Kroes
multitouch
Commits
cf82d409
Commit
cf82d409
authored
13 years ago
by
Taddeüs Kroes
Browse files
Options
Downloads
Patches
Plain Diff
Wrote 'Related work' chapter of report.
parent
ed63f765
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
docs/report.bib
+2
-2
2 additions, 2 deletions
docs/report.bib
docs/report.tex
+78
-18
78 additions, 18 deletions
docs/report.tex
with
80 additions
and
20 deletions
docs/report.bib
+
2
−
2
View file @
cf82d409
...
@@ -28,11 +28,11 @@
...
@@ -28,11 +28,11 @@
howpublished
=
{\url{http://www.codeproject.com/Articles/56385/Gesture-Recognition-for-Touch-Devices-Touch-Gestur}}
howpublished
=
{\url{http://www.codeproject.com/Articles/56385/Gesture-Recognition-for-Touch-Devices-Touch-Gestur}}
}
}
@
misc
{
processingMT
,
@
unpublished
{
processingMT
,
author
=
{David Bouchard}
,
author
=
{David Bouchard}
,
title
=
{A basic multi-touch gesture demo for Android}
,
title
=
{A basic multi-touch gesture demo for Android}
,
year
=
{2011}
,
year
=
{2011}
,
howpublished
=
{\url{https://forum.processing.org/topic/a-basic-multi-touch-gesture-demo-for-android}}
note
=
{\url{https://forum.processing.org/topic/a-basic-multi-touch-gesture-demo-for-android}}
}
}
@incollection
{
GART
,
@incollection
{
GART
,
...
...
This diff is collapsed.
Click to expand it.
docs/report.tex
+
78
−
18
View file @
cf82d409
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
\hypersetup
{
colorlinks=true,linkcolor=black,urlcolor=blue,citecolor=DarkGreen
}
\hypersetup
{
colorlinks=true,linkcolor=black,urlcolor=blue,citecolor=DarkGreen
}
% Title Page
% Title Page
\title
{
U
niversal
multi-touch event mechanism
}
\title
{
A u
niversal
detection mechanism for multi-touch gestures
}
\author
{
Taddeüs Kroes
}
\author
{
Taddeüs Kroes
}
\supervisors
{
Dr. Robert G. Belleman (UvA)
}
\supervisors
{
Dr. Robert G. Belleman (UvA)
}
\signedby
{
Dr. Robert G. Belleman (UvA)
}
\signedby
{
Dr. Robert G. Belleman (UvA)
}
...
@@ -65,6 +65,7 @@ events.
...
@@ -65,6 +65,7 @@ events.
% Deelvragen
% Deelvragen
To design such a mechanism properly, the following questions are relevant:
To design such a mechanism properly, the following questions are relevant:
\begin{itemize}
\begin{itemize}
\item
What are the requirements of the mechanism to be universal?
\item
What is the input of the mechanism? Different touch drivers have
\item
What is the input of the mechanism? Different touch drivers have
different API's. To be able to support different drivers (which is
different API's. To be able to support different drivers (which is
highly desirable), there should probably be a translation from the
highly desirable), there should probably be a translation from the
...
@@ -94,20 +95,44 @@ events.
...
@@ -94,20 +95,44 @@ events.
\chapter
{
Related work
}
\chapter
{
Related work
}
\section
{
G
ART
}
\section
{
G
esture and Activity Recognition Toolkit
}
% TODO
The Gesture and Activity Recognition Toolkit (GART)
\cite
{
GART
}
is a
\cite
{
GART
}
toolkit for the development of gesture-based applications. The toolkit
states that the best way to classify gestures is to use machine learning.
The programmer trains a program to recognize using the machine learning
library from the toolkit. The toolkit contains a callback-mechanism that
the programmer uses to execute custom code when a gesture is recognized.
\section
{
Processing implementation of simple gestures in Android
}
Though multi-touch input is not directly supported by the toolkit, the
level of abstraction does allow for it to be implemented in the form of a
``touch'' sensor.
% TODO
The reason to use machine learning is the statement that gesture detection
\cite
{
processingMT
}
``is likely to become increasingly complex and unmanageable'' when using a
set of predefined rules to detect whether some sensor input can be seen as
a specific gesture. This statement is not necessarily true. If the
programmer is given a way to separate the detection of different types of
gestures and flexibility in rule definitions, over-complexity can be
avoided.
% oplossing: trackers. bijv. TapTracker, TransformationTracker gescheiden
\section
{
Gesture recognition software for Windows 7
}
\section
{
Gesture recognition software for Windows 7
}
% TODO
% TODO
\cite
{
win7touch
}
The online article
\cite
{
win7touch
}
presents a Windows 7 application,
written in Microsofts .NET. The application shows detected gestures in a
canvas. Gesture trackers keep track of stylus locations to detect specific
gestures. The event types required to track a touch stylus are ``stylus
down'', ``stylus move'' and ``stylus up'' events. A
\texttt
{
GestureTrackerManager
}
object dispatches these events to gesture
trackers. The application supports a limited number of pre-defined
gestures.
An important observation in this application is that different gestures are
detected by different gesture trackers, thus separating gesture detection
code into maintainable parts.
\section
{
The TUIO protocol
}
\section
{
The TUIO protocol
}
...
@@ -147,6 +172,10 @@ events.
...
@@ -147,6 +172,10 @@ events.
calculated. For more complex objects such as fiducials, arguments like
calculated. For more complex objects such as fiducials, arguments like
rotational position is also included.
rotational position is also included.
ALIVE and SET messages can be combined to create ``point down'', ``point
move'' and ``point up'' events (as used by the
\cite
[.NET
application]
{
win7touch
}
).
TUIO coordinates range from
$
0
.
0
$
to
$
1
.
0
$
, with
$
(
0
.
0
,
0
.
0
)
$
being the
TUIO coordinates range from
$
0
.
0
$
to
$
1
.
0
$
, with
$
(
0
.
0
,
0
.
0
)
$
being the
left top corner of the screen and
$
(
1
.
0
,
1
.
0
)
$
the right bottom corner. To
left top corner of the screen and
$
(
1
.
0
,
1
.
0
)
$
the right bottom corner. To
focus events within a window, a translation to window coordinates is
focus events within a window, a translation to window coordinates is
...
@@ -159,6 +188,25 @@ events.
...
@@ -159,6 +188,25 @@ events.
scale these values back to the actual screen dimension.
scale these values back to the actual screen dimension.
\end{quote}
\end{quote}
In other words, the design of the gesture detection mechanism should
incorporate a translation from driver-specific coordinates to pixel
coordinates.
\section
{
Processing implementation of simple gestures in Android
}
An implementation of a detection mechanism for some simple multi-touch
gestures (tap, double tap, rotation, pinch and drag) using
Processing
\footnote
{
Processing is a Java-based development environment with
an export possibility for Android. See also
\url
{
http://processing.org/.
}}
can be found found in a forum on the Processing website
\cite
{
processingMT
}
. The implementation is fairly simple, but it yields
some very appealing results. The detection logic of all gestures is
combined in a single class. This does not allow for extendability, because
the complexity of this class would increase to an undesirable level (as
predicted by the GART article
\cite
{
GART
}
). However, the detection logic
itself is partially re-used in the reference implementation of the
universal gesture detection mechanism.
% TODO
% TODO
\chapter
{
Experiments
}
\chapter
{
Experiments
}
...
@@ -185,7 +233,13 @@ events.
...
@@ -185,7 +233,13 @@ events.
\chapter
{
Design
}
\chapter
{
Design
}
% TODO: link naar appendix met schema
\section
{
Requirements
}
% TODO
% ondersteunen van meerdere drivers
% gesture detectie koppelen aan bepaald gedeelte van het scherm
% scheiden van detectiecode voor verschillende gesture types
% eventueel te gebruiken in meerdere talen
\section
{
Input server
}
\section
{
Input server
}
...
@@ -195,18 +249,24 @@ events.
...
@@ -195,18 +249,24 @@ events.
\section
{
Gesture server
}
\section
{
Gesture server
}
\subsection
{
Windows
}
% TODO
% vertaling naar pixelcoordinaten
% toewijzing aan windows
% TODO
\section
{
Windows
}
% toewijzen even aan deel v/h scherm:
% TUIO coördinaten zijn over het hele scherm en van 0.0 tot 1.0, dus moeten
% worden vertaald naar pixelcoördinaten binnen een ``window''
\subsection
{
Trackers
}
% TODO
% toewijzen even aan deel v/h scherm:
% TUIO coördinaten zijn over het hele scherm en van 0.0 tot 1.0, dus moeten
% worden vertaald naar pixelcoördinaten binnen een ``window''
% TODO
\section
{
Trackers
}
% event binding/triggering
% extendability
% TODO
% event binding/triggering
% extendability
% TODO: link naar appendix met schema
\chapter
{
Reference implementation
}
\chapter
{
Reference implementation
}
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment