Tactile DM
authorThomas Pietrzak <thomas.pietrzak@gmail.com>
Fri, 8 Apr 2022 14:14:30 +0000 (16:14 +0200)
committerThomas Pietrzak <thomas.pietrzak@gmail.com>
Fri, 8 Apr 2022 14:14:30 +0000 (16:14 +0200)
figures/summonexample.tex
figures/tactiledm.tex
tex/4-loop.tex

index 3c05c6e50892c4c767e899724778d8a32157ea7b..c83360db2b344ac35a1379f8543c6529ee29a20c 100644 (file)
   }
   % #1: opacity
   \newcommand{\buttons}[1]{
-    \node[style=button, opacity=#1] () at (-7.3,14) {1};
-    \node[style=button, opacity=#1] () at (0,14) {2};
-    \node[style=button, opacity=#1] () at (7.3,14) {3};
+    \node[style=button, opacity=#1] () at (-7.3,14) {\scriptsize 1};
+    \node[style=button, opacity=#1] () at (0,14) {\scriptsize 2};
+    \node[style=button, opacity=#1] () at (7.3,14) {\scriptsize 3};
   }
   \tikzexternalenable
   \begin{tikzpicture}[x=1mm, y=1mm,
-    bar/.style={draw=none,preaction={clip,postaction={fill=black!20, draw=black!50, line width=1}}, rounded corners=1},
+    bar/.style={draw=none,preaction={clip,postaction={fill=black!10, draw=black!50, line width=1}}, rounded corners=1},
     cursor/.style={draw=none,preaction={clip, postaction={fill=black!50, draw=black!50, line width=1}}, rounded corners=1},
-    button/.style={preaction={clip,postaction={fill=black!20, draw=black!50, line width=2}}, minimum width=6mm, rounded corners=2}]
+    button/.style={preaction={clip,postaction={fill=black!10, draw=black!50, line width=2}}, minimum width=6mm, rounded corners=2}]
     \small
     \def\circleradius{14}
     \begin{scope}
index 1c365454066ec1a00b88594d8450a451a70fc5f7..ee191195cb123e24ddb5210511135f76d8cf1793 100644 (file)
   % #2: color
   % #3: angle
   \newcommand{\cursor}[3]{
-    \draw[#2, -Stealth, line width=0.8mm] (#1) ++(#3:7) -- (#1);
+    \draw[#2, -Stealth, line width=0.6mm] (#1) ++(#3:5) -- (#1);
   }
   \tikzfading[name=fade out,
     inner color=transparent!50,
     outer color=transparent!100]
   \tikzexternalenable
   \begin{tikzpicture}[x=1mm, y=1mm,
-    display/.style={draw=black!30, fill=white, line width=7},
-    target/.style={draw=myblue, line width=7},
+    display/.style={draw=black!30, fill=white, line width=6},
+    target/.style={draw=myblue, line width=6},
     arrow/.style={draw=myred, line width=2},
     wave/.style={black, decorate, decoration={expanding waves, angle=45, segment length=3}, line width=1}]
     \small
-    \def\circleradius{14}
+    \def\circleradius{10}
     \begin{scope}
-      \node[anchor=south, xshift=19, yshift=-19] (hand) at (0,0) {\includegraphics[height=4cm]{figures/hand}};
+      \node[anchor=south, xshift=13, yshift=-19] (hand) at (0,0) {\includegraphics[height=3cm]{figures/hand}};
       % Display
       \filldraw[style=display] (0,0) circle (\circleradius);
       % Labels
-      \node[below=1] () at (90:\circleradius) {\ang{0}};
-      \node[right=1] () at (180:\circleradius) {\ang{90}};
-      \node[above=1] () at (-90:\circleradius) {\ang{180}};
-      \node[left=1] () at (0:\circleradius) {\ang{270}};
+      \node[below=1] () at (90:\circleradius) {\scriptsize \ang{0}};
+      \node[right=1] () at (180:\circleradius) {\scriptsize \ang{90}};
+      \node[above=1] () at (-90:\circleradius) {\scriptsize \ang{180}};
+      \node[left=1] () at (0:\circleradius) {\scriptsize \ang{270}};
       % Targets
       \draw[style=target] (40:\circleradius) arc [start angle=40, end angle=80, radius=\circleradius]
         (-30:\circleradius) arc [start angle=-30, end angle=10, radius=\circleradius]
       \cursor{140:\circleradius}{black}{-45}
     \end{scope}
     \begin{scope}[xshift=150]
-      \node[anchor=south, xshift=19, yshift=-19] (hand) at (0,0) {\includegraphics[height=4cm]{figures/hand}};
+      \node[anchor=south, xshift=13, yshift=-19] (hand) at (0,0) {\includegraphics[height=3cm]{figures/hand}};
       % Display
       \filldraw[style=display] (0,0) circle (\circleradius);
       % Labels
-      \node[below=1] () at (90:\circleradius) {\ang{0}};
+      \node[below=1] () at (90:\circleradius) {\scriptsize \ang{0}};
       % Targets
       \draw[style=target] (40:\circleradius) arc [start angle=40, end angle=80, radius=\circleradius]
         (-30:\circleradius) arc [start angle=-30, end angle=10, radius=\circleradius]
       \vibration{-65:\circleradius}{myred}{2.5}
       \cursor{-65:\circleradius}{black!}{135}
       % arrow
-      \draw[style=arrow, -{Stealth[bend]}] (160:11) arc [start angle=160, end angle=270, radius=11];
+      \draw[style=arrow, -{Stealth[bend]}] (160:8) arc [start angle=160, end angle=270, radius=8];
     \end{scope}
   \end{tikzpicture}
   \tikzexternaldisable
-  \caption[Tactile direct manipulation]{A 1D circular \sumproduct{360 x 1} tactile display around the wrist. On left, the tactile pointer is over void and the tactile response frequency is represented in green. On right, the user navigates the pointer to a target, where the tactile response frequency is different (red).}
+  \caption[Tactile direct manipulation]{A 1D circular \ang{360} tactile display around the wrist. On left, the tactile pointer is over void and the tactile response frequency is represented in green. On right, the user navigates the pointer to a target, where the tactile response frequency is different (red).}
   \label{fig:tactiledm}
 \end{figure}
index 8e2d83b1e567c0aa384a571cf375ca5e2c67e1d0..84b2ba4823a586d36a48ebcead5c92e76a78d563 100644 (file)
@@ -424,10 +424,10 @@ HCI research usually uses MacKenzie's throughput-based formulation \cite{mackenz
 %ballistic\cite{meyer88}
 
 Besides motor-behavior models, we discussed perceptual empirical evaluations and models in \refchap{chap:output}.
-\defword{GOMS} models are examples of human behavior model that takes into account both perception and actions.
+\defacronym{GOMS} models are examples of human behavior model that takes into account both perception and actions.
 They model humans with three components: a perceptual system, a motor system, and a cognitive system~\cite{card83}.
 These are therefore more generic than models such as Fitts', they model a greater diversity of behavior.
-In particular the \defword{Keystroke-Level Model} (KLM) defines several types of perations from mental activities to key presses~\cite{card80}.
+In particular the Keystroke-Level Model (\defacronym{KLM}) defines several types of perations from mental activities to key presses~\cite{card80}.
 Typically it leverage models such as Fitts' to quantify pointing operations.
 With these models we can describe interaction techniques as sequences of atomic operations, and predict average performance based on empirically-defined rules.
 
@@ -439,7 +439,7 @@ In my opinion thus is a limitation for the generative aspect of these models, an
 %Human processor: ~ : KLM
 
 \subsection{System architectures and paradigms}
-
+\label{sec:systemarch}
 %The overall behavior of machines is similar to human behavior: they take inputs, process them and produce an output.
 %However the way they behave this way and most importantly the purpose of their behavior is different.
 %However, the way this process runs is different.
@@ -762,7 +762,7 @@ It is of course possible to add other kinds of widgets with other hand postures.
 When the users perform one of these postures, they can select one of the widgtes of this type.
 They receive a \qty{150}{\ms}/\qty{350}{\hertz} vibration pulse to confirm the selection, and the currently selected widget is highlighted.
 If the GUI has several widgets of this type, the users can disambiguate with a continuous movement.
-Then they perform a gesture for manipulating the widget, and receive immediate haptic feedback.
+Then they perform a gesture for manipulating the widget, and receive immediate haptic feedback with continuous vibrations on the thumb and index finger.
 For example they can pinch and drag to move a slider knob.
 They can release the knob by releasing the pinch, and release the slider by performing the segmentation gesture again.
 
@@ -779,14 +779,48 @@ We can for example encourage learnability and discoverability with feedforward v
 
 \input{figures/summonexample.tex}
 
-\subsubsection{Haptic direct Manipulation}
+\subsubsection{Haptic Direct Manipulation}
 \label{sec:hapticdm}
-~\cite{gupta16,gupta16a}
 
-Direct manipulation is one of the most fundamental foundation of GUIs~\cite{schneiderman83}.
-It provides valuable usability benefits that highly contributed to the success of GUIs over command line interfaces.
-Yet, the description of this paradigm relied essentially on visual cues.
-In this project, we explained how to adapt the concept of direct manipulation to tactile displays.
+We discussed the concept of direct manipulation inf \refsec{sec:systemarch}~\cite{schneiderman83}.
+It is one of the most important concepts of GUIs.
+Its properties provide valuable usability benefits that highly contributed to the success of GUIs over command line interfaces. 
+Yet, this paradigm was tailored for visual interfaces.
+The question whether this concept could be used in tactile display was open.
+Therefore we studied the adaptation of direct manipulation to tactile displays~\cite{pietrzak15,gupta16,gupta16a}.
+
+The most challenging direct manipulation property for tactile display is certainly the one stating that objects of interest have to be visible.
+Contrary to vision, it is difficult to perceive an overview of the environment at a glance with the sense of touch.
+Vision is particularly efficient at glancing not only because of the high density and sensitivity of photoreceptor cells in the retina, but also because of the high mobility of eyes and the ability of the brain to process this sensorimotor loop.
+Therefore, we leveraged the sensorimotor loop with the sense of touch and the motor ability to make objects of interest \emph{touchable} and \emph{explorable}.
+
+In this new paradigm, the users can control a pointer that they can move continuously with gestures and perceive with tactile feedback.
+When the cursor moves, it feels like a vibration moving continuously on the skin.
+This property makes the tactile space explorable.
+Then, the sensation is different when the cursor hovers a target or moves on the background, which makes objects touchable.
+Input modifiers such as the number of contact points or the number of contact repetitions are used to switch between the \emph{idle}, \emph{tracking}, and \emph{dragging} stages~\cite{buxton90}.
+With these interactions we can implement fundamental direct manipulation interaction techniques such as \emph{pointing}, \emph{selection}, and \emph{manipulation}.
+
+We implemented this paradigm with a proof of concept 1D \ang{360} tactile display around the wrist (\reffig{fig:tactiledm}).
+We used the prototype described in \refsec{sec:limits}, which has  four EAI C2 tactors.
+The continuously moving cursor is implemented with the funelling illusion I described in \refchap{chap:output} and illustrated on \reffig{fig:illusions}.
+The display is divided into four quarters in between the actuators.
+The cursor is a phantom sensation created by interpolating the signal amplitude of the two edge actuators of the corresponding quarter.
+Targets are represented with a \qty{250}{\hertz} frequency and the background with \qty{100}{\hertz}.
+Not only it is an easily distinguishable vibration, but the \qty{100}{\hertz} is subtle and avoids numbness.
+The inputs use a multitouch smartwatch.
+Up and down swypes move the cursor in either directions.
+The tracking states trigger with one contact point and the dragging state triggers with two contact points.
+The cursor is not felt in the idle state, to avoid numbness.
+The details about feedback and states machines are presented in the paper~\cite{gupta16}.
+
+We validated the concept with user evaluations of the proof of concept prototype.
+First we validated that users are able to navigate and distinguish targets with a JND experiment on the maximum number of targets they were able to count.
+In average, participants were able to count up to 19 targets.
+Then we evaluated the pointing performance, and confirmed it globally follows Fitts' law.
+We note however that participants made faster selections when the targets were exactly on an actuator position compared to in-between.
+We proposed a refined pointing model that takes into account this observation.
+Finally we designed two tactile menus with 4 and 8 items and we showed that participants were fast and accurate.
 
 \input{figures/tactiledm.tex}