From: Thomas Pietrzak Date: Mon, 15 Nov 2021 15:04:09 +0000 (+0100) Subject: Flexible pens structure + prototypes + figures X-Git-Tag: first-full-draft~107 X-Git-Url: https://git.thomaspietrzak.com/?a=commitdiff_plain;h=6497ed95c5091c4c8fc4abbfcd1ba8b16f21c57a;p=hdr.git Flexible pens structure + prototypes + figures --- diff --git a/figures/flexstylus.jpg b/figures/flexstylus.jpg new file mode 100644 index 0000000..f7bf809 Binary files /dev/null and b/figures/flexstylus.jpg differ diff --git a/figures/flexuralstiffnesses.tex b/figures/flexuralstiffnesses.tex new file mode 100644 index 0000000..3d06644 --- /dev/null +++ b/figures/flexuralstiffnesses.tex @@ -0,0 +1,142 @@ +%!TEX root = ../hdrmain.tex + +\begin{figure}[htb] + \centering + \definecolor{cellblue}{rgb} {0.17,0.60,0.99} + \definecolor{clearblue}{rgb} {0.77,0.90,1.0} + + + % 1: total width + % 2: small h width + % 3: small v width + % 4: nb + % 5: color + \newcommand{\screw}[5]{ + \pgfmathsetmacro{\wl}{#1 / 2} + \pgfmathsetmacro{\wm}{\wl - #2 / 2} + \pgfmathsetmacro{\ws}{\wl - #2} + %background + \foreach \x in {1,...,{#4}} + { + \pgfmathsetmacro{\d}{4 * (\x - 1) * #3} + \fill[color=#5] + (\d,-\wl) cos + (#3 + \d,-\wm) sin + (#3*2 + \d,-\ws) cos + (#3*3 + \d,-\wm) sin + (#3*4 + \d,-\wl) -- + (#3*4 + \d,\wl) cos + (#3*3 + \d,\wm) sin + (#3*2 + \d,\ws) cos + (#3 + \d,\wm) sin + (\d,\wl) -- cycle; + } + %edges + \foreach \x in {1,...,{#4}} + { + \pgfmathsetmacro{\d}{4 * (\x - 1) * #3} + \draw[thick] + (\d,-\wl) cos + (#3 + \d,-\wm) sin + (#3*2 + \d,-\ws) cos + (#3*3 + \d,-\wm) sin + (#3*4 + \d,-\wl); + \draw[thick] + (#3*4 + \d,\wl) cos + (#3*3 + \d,\wm) sin + (#3*2 + \d,\ws) cos + (#3 + \d,\wm) sin + (\d,\wl); + } + %lines + \foreach \x in {1,...,{#4}} + { + \pgfmathsetmacro{\d}{4 * (\x - 1) * #3} + \draw[] (\d,-\wl) -- (#3*2 + \d,\ws); + \draw[] (#3*2 + \d,-\ws) -- (#3*4 + \d,\wl); + } + } + + % 1: width + % 2: height + % 3: screw height + % 4: screw width + % 5: color + \newcommand{\barrel}[5]{ + \pgfmathsetmacro{\iw}{#4 / 2} + \fill[thick, color=#5, draw=black] + (0, #1 / 2) -- + (#2, #1 / 2) -- + (#2, \iw) -- + (#3, \iw) -- + (#3, -\iw) -- + (#2, -\iw) -- + (#2, - #1 / 2) -- + (0, - #1 / 2) -- cycle; + } + + \tikzstyle{size} = [|-|] + + + \tikzexternalenable + % Soft + \begin{tikzpicture}[x=1mm,y=1mm,node distance=4mm and 1mm] + \begin{scope}[xshift=0cm] + \begin{scope}[rotate=-90] + \barrel{11.2}{20}{10}{9}{cellblue} + \screw{9}{2}{0.5}{5}{clearblue} + \end{scope} + \draw[size] (-4.5,-21.5) -- (4.5,-21.5) node[midway, below, inner sep=0mm, outer sep=1.5mm]{\scriptsize $9mm$}; + \node[anchor=north] (soft) at (0,-25) {Soft}; + \node[below of=soft] (softstiffness) {\footnotesize $0.1N/mm$}; + \end{scope} + + % Medium soft + \begin{scope}[xshift=3cm] + \begin{scope}[rotate=-90] + \barrel{11.2}{20}{10}{8}{cellblue} + \screw{9}{2}{0.5}{5}{clearblue} + \end{scope} + \draw[size] (-4,-21.5) -- (4,-21.5) node[midway, below, inner sep=0mm, outer sep=1.5mm]{\scriptsize $8mm$}; + \node[anchor=north] (mediumsoft) at (0,-25) {Medium soft}; + \node[below of=mediumsoft] (mediumsoftstiffness) {\footnotesize $0.123N/mm$}; + \end{scope} + + % Medium + \begin{scope}[xshift=6cm] + \begin{scope}[rotate=-90] + \barrel{11.2}{20}{10}{7.5}{cellblue} + \screw{9}{2}{0.5}{5}{clearblue} + \end{scope} + \draw[size] (-3.75,-21.5) -- (3.75,-21.5) node[midway, below, inner sep=0mm, outer sep=1.5mm]{\scriptsize $7.5mm$}; + \node[anchor=north] (medium) at (0,-25) {Medium}; + \node[below of=medium] (mediumstiffness) {\footnotesize $0.129N/mm$}; + \end{scope} + + % Medium hard + \begin{scope}[xshift=9cm] + \begin{scope}[rotate=-90] + \barrel{11.2}{20}{10}{7}{cellblue} + \screw{9}{2}{0.5}{5}{clearblue} + \end{scope} + \draw[size] (-3.5,-21.5) -- (3.5,-21.5) node[midway, below, inner sep=0mm, outer sep=1.5mm]{\scriptsize $7mm$}; + \node[anchor=north] (mediumhard) at (0,-25) {Medium hard}; + \node[below of=mediumhard] (mediumhardstiffness) {\footnotesize $0.134N/mm$}; + \end{scope} + + % Hard + \begin{scope}[xshift=12cm] + \begin{scope}[rotate=-90] + \barrel{11.2}{20}{10}{6}{cellblue} + \screw{9}{2}{0.5}{5}{clearblue} + \end{scope} + \draw[size] (-3,-21.5) -- (3,-21.5) node[midway, below, inner sep=0mm, outer sep=1.5mm]{\scriptsize $6mm$}; + \node[anchor=north] (hard) at (0,-25) {Hard}; + \node[below of=hard] (hardstiffness) {\footnotesize $0.139N/mm$}; + \end{scope} + + \end{tikzpicture} + \tikzexternaldisable + \label{fig:flexuralstiffnesses} + \caption[Flexural stiffnesses]{Flexural stiffnesses.} +\end{figure} diff --git a/figures/hyperbrush.png b/figures/hyperbrush.png new file mode 100644 index 0000000..a2b33cb Binary files /dev/null and b/figures/hyperbrush.png differ diff --git a/tex/3-input.tex b/tex/3-input.tex index b1f07f4..9c88c6b 100644 --- a/tex/3-input.tex +++ b/tex/3-input.tex @@ -417,22 +417,83 @@ We used a minimal application for our measures, but real applications most likel \subsection{Flexible pens} \label{sec:flexiblepens} -FlexStylus \cite{fellion17} -Hyperbrush \cite{guerrero21} +Pen interaction is a good example for the exploration of new degrees of freedom. +This is certainly due to the fact that pens are used in many context, in particular for artistic creation. +Typical interactive pens sense the x-y position as well as proximity. +Research explored additional sensing such as pressure~\cite{hinckley13}, tilt~\cite{tian08} and roll~\cite{bi08}. +Not only this extended input vocabulary can be used to map brush parameters. +But it also enables selecting commands and offer richer interactions, whether it is with combinations of pen and touch interactions~ or by leveraging physical attributes of the pen~\cite{vogel11}. +In this work we were interested in the bending of a flexible pen as additional degrees of freedom. + +\paragraph{Prototypes} + +We built two series of prototypes, the first one being FlexStylus~\cite{fellion16,fellion17} (\reffig{fig:penprototypes}, up). +It used a custom flexion sensor made with 4 eroded fiber optics, with an infrared LED on one end and phototransistors on the other end each. +By measuring the amount of light sensed by the phototransistors we could infer two angles and a degree of absolute bending. + +The choice of the flexible part did not follow a systematic rationale, but rather general design considerations. +The idea was to have a diameter similar to the one of a drawing pen. +It had to be flexible enough to avoid muscle strain, but stiff enough so that users could write and draw conveniently. +Full length flexible early prototypes shown to be unconvenient for precise manipulation. +Therefore we chose to limit the flexible part to a few centimeters with a rigid part on both size to keep the benefits of both flexible and rigid pens. + +The second series of prototypes, called HyperBrush~\cite{guerrero21} (\reffig{fig:penprototypes}, down), used a consumer electronics bend sensor\footnote{\href{https://www.bendlabs.com/}{https://www.bendlabs.com/}}. +It provided more precise and reliable inputs. +However, the interesting new property of these prototypes was the ability to change the flexural stiffness with interchangeable components. +Both the rigid and flexible parts of the pen are 3D printed, and the flexible part is threaded so that it is screwed to the rigid parts. +The end sensor slips inside the 3D printed stylus. + +The FlexStylus prototypes had an orientation issue. +Users had no cues on where to hold the stylus. +Therefore the angles inputs were relative rather than absolute. +This is the same issue Buxton reports with the iMac Round Mouse\footnote{\href{https://www.microsoft.com/buxtoncollection/detail.aspx?id=109}{https://www.microsoft.com/buxtoncollection/detail.aspx?id=109}}. +We addressed this issue with the HyperBrush prototypes be adding a fake button that users were encouraged to keep under their index finger. \begin{figure}[htb] - \def\sp{5cm} - \tikzexternalenable - \begin{tikzpicture} - \node[node distance=\sp] (pengrip) at (0,0) {\includegraphics[height=4cm]{figures/flexstylus-pengrip}}; - \node[right of=pengrip, node distance=\sp] (joystickgrip) {\includegraphics[height=4cm]{figures/flexstylus-joystickgrip}}; - \node[right of=joystickgrip, node distance=\sp] (rollgrip) {\includegraphics[height=3cm]{figures/flexstylus-rollgrip}}; + \centering + \def\protosize{.7\columnwidth} + + \begin{tikzpicture}[x=1mm,y=1mm,node distance=5mm and 5mm] + \node[anchor=south west] (flexstylus) at (0,0) {\includegraphics[width=\protosize]{figures/flexstylus}}; + \node[anchor=south west] (hyperbrush) at (0,0) {FlexStylus}; + + \node[below=5mm of flexstylus.south] (hyperbrush) {\scalebox{-1}[1]{\includegraphics[width=\protosize]{figures/hyperbrush}}}; + \node[anchor=south west] (hyperbrush) at ($(hyperbrush.south west) - (0,5)$) {HyperBrush}; \end{tikzpicture} - \tikzexternaldisable + \label{fig:penprototypes} + \caption[Flexible pen prototypes]{Two series of flexible pen prototypes. On the top: FlexStylus with a custom bend sensor made of eroded fiber optics. On the bottom: HyperBrush with a consumer electronics bend sensors, and interchangeable flexible components.} +\end{figure} + + +\paragraph{Pen grips} +grip~\cite{song11,hinckley13} + +\fixme{Studies show there is a close relationship between how users hold a stylus and their intended purpose~\cite{song11,hinckley13}, and that users often change grips in relation to the task at hand.} + +Pen grip: like writing, thumb for bending the pen + +joystick grip: hold from the top, tip fixed to the surface, rotation movement + +roll grip: in the air between the fingers + +brush grip: pen grip but the hand is higher, feels like brush bristles, hence Hyperbrush + +\begin{figure}[htb] + \includegraphics[height=5cm]{figures/flexstylus-pengrip} + \hfill + \includegraphics[height=5cm]{figures/flexstylus-joystickgrip} + \hfill + \includegraphics[height=3cm]{figures/flexstylus-rollgrip} \label{fig:flexstylus} - \caption[Flexstylus]{Flexstylus} + \caption[Flexible pen grips]{Three example of grips with a flexible pen. The pen grip, the joystick grip and the rool grip.} \end{figure} + + +\paragraph{Flexural stiffness} + +\input{figures/flexuralstiffnesses.tex} + \subsection{Finger identification} \label{sec:fingeridentification}