<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Exploiting a touchless interaction to drive a wireless mobile robot powered by a real-time operating system</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Davide Calvaresi</string-name>
          <email>d.calvaresi@sssup.it</email>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Scuola Superiore Sant'Anna</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Daniel Cesarini</string-name>
          <email>d.cesarini@sssup.it</email>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Scuola Superiore Sant'Anna</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Scuola Superiore Sant'Anna</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Paolo Sernani</string-name>
          <email>p.sernani@univpm.it</email>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Antonio Di Guardo</string-name>
          <email>a.diguardo@sssup.it</email>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Scuola Superiore Sant'Anna</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Aldo Franco Dragoni</string-name>
        </contrib>
      </contrib-group>
      <abstract>
        <p>Nowadays, touch-based user interfaces are widely used in consumer electronics. Recent trends con rm the high potential of touchless interface technologies to manage also Human-Machine Interaction, in scenarios such as healthcare, surveillance, and outdoor activities. Moving from pointers, keyboards or joysticks to touch-screens represented a signi cant challenge. However, a touchless approach needs to ensure intuitiveness and robustness. This paper describes a framework enabling the wireless control of a mobile robot through a contactless controller. The data provided by a complex sensor, composed of two stereo cameras and three IR sensors, are processed with custom algorithms that recognize the movements of users' hands. The result is promptly translated into commands for the robot running a real-time operating system. Usability tests con rm the compelling employment of contactless controllers for mobile robots and drones both in open and closed environments.</p>
      </abstract>
      <kwd-group>
        <kwd>Universita Politecnica delle Marche</kwd>
        <kwd>Universita Politecnica delle Marche</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Although there are di erent kinds of systems with
di erent peculiar goals, even within the same domain,
they all face a common challenge: interaction with
the users [Suc87] guaranteeing the compliance with
their needs [CCS+16]. Indeed, all systems
involving human interaction provide a way to support a
two-sided communication: human to machine
(interfaces to manage inputs, command, etc.) and
machine to human (interfaces to perceive the systems'
feedback) [Min02, WG95]. To have robust,
dependable and usable interfaces, they have to be
accessible, as much intuitive as possible, and to respond in
a time coherent with human requirements (if the
interaction is too fast or too slow the user gets easily
lost) [Fis01, Dix09].</p>
      <p>Over the years, to produce more powerful
interfaces, programmers tried to couple syntax and
semantics, trying to associate the dynamics of a command to
the actual output (gesture or movement) [Bro98].
Indeed, around the 40's, multi-purpose systems only
employed panels with buttons (evolved into the modern
keyboard), while systems dedicated to more speci c
contexts required properly designed interfaces. For
example, in the case of moving mobile objects, both
directly or indirectly, the joystick (emulating the older
cloche employed in the aviation) became in the 80s the
default choice for electronic controllers [Wol88, Gra81].
Even tough it was widely declared a big failure when
employed as a pointer [CEB78], it kept evolving
(maintaining its original basic features) becoming a standard
interface for systems moving/driving objects.</p>
      <p>The advent of the new touchscreen devices
radically changed the human experiences when
approaching technological devices. However, to face speci c
tasks like moving objects (e.g., gaming, etc.), even
tough the touchscreen revolutionized the way of
thinking about \how to perform an action", a simulated
joystick still represents the more intuitive means to
translate an intention to an action. In line with the
current technological trends, this paper aims at
moving a further step on behalf of the old joystick, bringing
it in the touchless era [MBJS97].</p>
      <p>The presented solution is a system, based on
multiple devices, which detects hands movements,
translating them into joystick-like commands, and nally
communicating them to a mobile robot, that behaves
accordingly to the received instruction. The rest of the
paper is structured as follows: Section 2 presents an
overview of the framework, its structure and its main
components and functionalities. Section 3 addresses
the system's requirements, functionalities and
challenges. Section 4 presents the conducted tests
summarizing their results. Finally, Section 5 concludes
the paper, presenting the lesson lernt and the future
works.
2</p>
    </sec>
    <sec id="sec-2">
      <title>System overview</title>
      <p>This section introduces the framework, presenting an
overview of its structure, its main components and
their functionalities.</p>
      <p>The framework is mainly composed of three
modules:
the User Interface Module (UIM) , Figure 1(x);
the Communication System (CS), Figure 1(y);
the Mobile Robot (MR), Figure 1(z).</p>
      <p>The interactions between the components of the
framework are represented by the blue arrows in
Figure 1.</p>
      <p>Currently, the technological market o ers a broad
range of solutions for gathering and processing hands'
position in space/time. Vokorokos, et al. [VMC16]
analyzed the e ciency of the three most relevant devices
on the market: the Leap Motion Controller [Leab],
the Microsoft Kinect [Zha12] and the Myo
Armband [Nuw13]. Depending on scenarios and settings,
those devices showed up di erent peculiarities. For
example, the Microsoft Kinect enables to track the
entire body motion within a detection range of 0:5m
and 4:5m [FP11], the Myo Armband is a wearable
bracelet reading the muscular' electric impulses, that
guarantees a high level of comfort, however limiting
the amount of information that can be acquired.
Compared with the previous ones, the Leap Motion
Controller represents a better trade-o between exibility,
time-to-prototype, and precision [MDZ14], and thus it
has been chosen for the presented project.</p>
      <p>The applications in the virtual reality domain are
increasing remarkably, both in presence [EFAA15] or
in absence [PBAR15] of haptic feedback. Such
solutions mainly aim at moving and virtualizing real
objects or their models, and entire environments while
enabling interactions with them. The Leap Motion
Controller is massively employed in those systems, like
the presented one, providing a visual rather than a
haptic feedback [BGG+14, FSLS+16].</p>
      <p>Brie y analyzing the Leap Motion Controller, it is
a sensor composed of two stereo CMOS image sensors
and three infrared LEDs. Such a sensor, coupled with
a set of libraries, besides exporting the image of the
area over the sensor, exposes APIs to get the
kinematics of the hand and all its joints, thus enabling the
hands' acquisition as in Figure 1(a). The Command
Generator Module in Figure 1(b), running on a PC,
operates over the obtained data to extract relevant
information, and decide which commands to send to
the mobile robot through the Communication Client
in Figure 1(c). The communication system, running
a custom Communication Protocol over an XBee
connection [Fal10], Figure 1(d), transfers the commands
detected by the User Interface Module to the
Communication Server, Figure 1(e). The Decoding Module,
Figure 1(f), elaborates the received information which
is then transferred to a bu er shared by the two Motor
systems, Figure 1(g), in charge of nally performing
the robot's motion.
2.1</p>
      <sec id="sec-2-1">
        <title>System's timing requirements</title>
        <p>Robotic actuation and motion are widely known as
safety-critical systems. Thereby, the guarantee that
any task in the system respects its deadline, or at
least that the system remains operative during
possible deadline misses, is mandatory. To operate
correctly, the system has to perform a series of periodic
tasks. Those can be characterized as follows:
tdet 50 ms is the interval of time between the
instant at which the user performs a command
and its detection.</p>
        <p>tel 20 ms is the interval of time between the
command detection and the message transmission
to the robot.</p>
        <p>tcom is the time required for the communication
to take place. It is unpredictable, but it can be
minimized accepting that some data can be lost.</p>
        <p>tact 50 ms is the time between the reception of
the message by the robot and the actual motion.
To obtain a smoother speed pro le of the robot, a lter
operation can be performed with an additional delay
tsteady 150 ms.
(X) User Interaction Module
(a)
(b)
(c)</p>
        <p>Data acquisition</p>
        <p>Command</p>
        <p>Generation
Communication</p>
        <p>Client
(Y) Communication System</p>
        <p>Dependable
(d) Communication</p>
        <p>Protocol
(Z) Mobile Robot
(e)
(f)
(g)</p>
        <p>Communication</p>
        <p>Server
Decoding</p>
        <p>Module
Motor_Sx
System</p>
        <p>Motor_Dx
System
15 ms: thread handling the serial communication
(thread tick);
50 ms: thread detecting the hands' motion and
the commands creating the messages to be sent</p>
        <p>A Rate Monotonic scheduler is employed to
schedule the threads composing the Robot Module,
which is powered by the Embedded Real-Time OS
ARTE [BBP+16]. The threads periods are:
40 ms: thread decoding new messages and
managing the two servo motors.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>System design</title>
      <sec id="sec-3-1">
        <title>The User Interaction Module, the Mobile Robot Mod</title>
        <p>ule and the Communication System can be
characterized by di erent requirements, functionalities and
challenges, that are presented in this section.
3.1</p>
        <sec id="sec-3-1-1">
          <title>User Interaction Module</title>
          <p>The User Interaction Module (UIM) is intentionally
released without a GUI, since a more natural interaction
is obtained by simply having the user actions re ected
by the movements of the mobile robot. The UIM is
implemented in the C++ language, and is platform
independent. The only requirement is the support for
the library of the Leap Motion Controller [Leaa]. Since
the User Interaction Module is touchless, the user is
supposed to be able to perform at least basic hands'
movements. The interaction area is about one cubic
meter centered above the sensor. The hands are
continuously tracked within this area, and when speci c
paths, positions or movements recalling the semantic
of a joystick are identi ed, the related commands are
communicated to the robot.</p>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>The Data acquisition and Command generation</title>
        <p>recognition enable three functional units:</p>
        <p>The Controller detects the hands' position,
movements, speed, and rotation radius expressed
according to the Cartesian axis placed as shown in Figure 2.
Custom messages' structures de ned by the
Communication Protocol encapsulates such parameters.</p>
      </sec>
      <sec id="sec-3-3">
        <title>Such a Communication Protocol, detailed in Sec</title>
        <p>tion 3.2, manage a circular bu er containing the
aforementioned messages, discriminating which have to be
sent or deleted because out of date.</p>
        <p>Two modalities have been implemented to drive the
robot:</p>
        <p>Normal mode - the robot is driven like a normal
3-wheel car. The commands are: stop, go forward
or backward, turn right or left.</p>
        <p>Rotatory mode - the robot rotates around itself,
and the only commands are: rotate or stop.</p>
        <sec id="sec-3-3-1">
          <title>Normal Mode</title>
          <p>The stop, \rest" state of the joystick, is established
with a minimum margin of tolerance of 1 cm, around
(0; 20; 0) cm on the area above the Leap Motion
Controller [WBRF13]. If the hand is perceived in such an
area (no movements are required) a single message is
sent requiring the robot to hold the position.</p>
          <p>The go forward or backward is determined by the
hand's position on the z axes: z move forward and
+z move backward. The distance of the hand from the
origin of the z axes de nes proportionally the speed of
the robot.</p>
        </sec>
      </sec>
      <sec id="sec-3-4">
        <title>The turn left or right is similar to go forward or</title>
        <p>backward but it is referred to the x axes: x turns left
and +x turns right. The distance of the hand from the
origin of the x axes de nes proportionally the rotation
radius to be followed by the robot.</p>
        <sec id="sec-3-4-1">
          <title>Rotatory Mode</title>
          <p>By rotating the hand upside down and then back again
activates the rotating mode. The command \rotate"
de nes the rotation speed by moving the user hand
along the x axis.
3.1.1</p>
        </sec>
        <sec id="sec-3-4-2">
          <title>Enhancement of usability and uidity</title>
          <p>The information acquired from sensors like the Leap
Motion might introduce uncertainty or noise. Such a
noise can generate incorrect or redundant information.
Thus, undesired behavior might take place,
generating feedback di erent from the expected. To avoid
this possibility and ensuring a consistent reading, two
techniques have been designed and implemented: the
rst is sampling in frequency, and the second is
sampling the interaction area. The sampling frequency is
about 20Hz, and to be sure that the identi ed
command is correct, the user's hands have to be detected
in the same position for at least 3 consecutive frames
provided by the Leap Motion sensor. Recalling that
the interaction area above the Leap Motion sensor is
about a cubic meter, it is linearly clustered. Such a
choice ensures fewer variations of the hand's position,
thus generating fewer messages. The size of the
partitions of the area are chosen accordingly to the feedback
provided by the motors: passing from one area to an
adjacent one results in a change of speed by a factor
of 5. Such solutions provide a higher reactivity and a
smoother and more usable mobile robot.
3.2</p>
        </sec>
        <sec id="sec-3-4-3">
          <title>Communication Protocol</title>
          <p>The users' experience and the actual system
usability gain signi cant bene ts by employing a wireless
communication (by exchanging messages) between the
UIM and the Robot. The proposed protocol aims at
being robust.</p>
          <p>Indeed, the TCP [KR07] inspired its design (in
terms of ACKnowledgement mechanism and of
timing constraints). This protocol aims at guaranteeing
that if more than one message is queued in the bu er
(more than one command is detected in a relatively
short period, or possible communication delays
happened) only the most recent is delivered to the robot.
These behaviours are modeled by the state machine in
Figure 4.
3.2.1</p>
        </sec>
        <sec id="sec-3-4-4">
          <title>Protocol operating principles</title>
          <p>One of the requirements for the custom designed
protocol were the ability to handle undesired
retransmissions in order to avoid delays and to
guarantee the highest possible responsiveness of the system.
Thus, during its development we have taken some
concepts from the TCP protocol. In fact, the implemented
mechanism to reduce the communication overload and
the number of unneeded computations performed by
the robot is shown in Figure 3(b).</p>
          <p>In particular, the developed protocol allows to use
16 di erent message formats. The formats employed
in this system's version are two: one communicating
the ACK, Figure 6(a), and one communicating speed
and rotation angle, Figure 6(b). The messages'
structures are detailed in Section 3.2.2 and represented in
Figure 6.</p>
          <p>If a message is available, it is sent from the User
Interaction Module to the Robot. The Controller keeps
generating new messages (related to the identi ed
commands) while it is waiting for an ACK from the
Robot.</p>
          <p>If the Controller receives an ACK with the expected
Id (equal to the sent one), it means that the sent
command has been received by the robot, so the bu er
is scanned looking for the next message to be sent,
Figure 3(a). On the Robot side, the Communication
Server receives the messages sharing the information
with the Decoder Module through a shared bu er while</p>
          <p>Circular Buffer</p>
          <p>Msg
[Id = 1]</p>
          <p>If the Id contained in the ACK received by the
Communication client does not match the expected one, or
if no ACK is received before a predetermined period
of time (named timer), the last message (the most
recent) inserted in the controller bu er is sent removing
all the older messages, Figure 3(b). Moreover, an
internal timer is set once a message is sent. If such a
timer expires before the UIM receives a proof of
reception (ACK), the message is sent again.</p>
          <p>Promoting the robustness analysis through formal
veri cation, two virtual state machines are used to
model the Communication Client (UIM), Figure 4,
and the Communication Server (MR), Figure 5.
sending an ACK message (containing the same Id)
back to the User Interaction Module.
(a)
(b)
3.2.2</p>
        </sec>
        <sec id="sec-3-4-5">
          <title>Messages structure</title>
          <p>The structure of the messages has been inspired by the
message structure of the MIDI protocol [Mid] (MSB to
LSB). As aforementioned, the system uses two formats
for the messaging, Figure 6.</p>
          <p>Similarly to the MIDI protocol, the messages are
composed of StatusByte (Figure 6(x)) and DataByte
(Figure 6(y)). The StatusByte (8bits) contains:</p>
        </sec>
      </sec>
      <sec id="sec-3-5">
        <title>Header identi er [1 bit]</title>
        <p>The value identifying header is 1;</p>
      </sec>
      <sec id="sec-3-6">
        <title>Message Id [3 bits]</title>
        <p>Used for feedback mechanism;</p>
      </sec>
      <sec id="sec-3-7">
        <title>Type of message[4 bits]</title>
        <p>If the message is an ACK the value is 0b0000, if
the message contains data the value is 0b0001.
e
yt
B
1
e
yt
B
1
e
yt
B
1
1 bit - Header identifier
3 bit - Id
4 bit - Type of message 00000010 -- ADCatKa
1 bit - Data identifier
1 bit - Sign for direction
6 bit - Speed absolute value
1 bit - Data identifier
1 bit - Validity
1 bit - Sign for direction
5 bit - Rotation angle absolute value
(b)
(c)</p>
      </sec>
      <sec id="sec-3-8">
        <title>If the Type of message has value 0b0000, the Robot</title>
        <p>knows that the message is complete (there are no more
bytes/information to be read). An ACK message is
generated by the Robot and it contains only the
StatusByte. If its value is 0b0001, the Robot knows that
the payload contains two more bytes of information.
When a message is sent from the UIM to the Robot,
3 bytes are sent: one StatusByte and two DataByte as
payload.</p>
        <p>The Speed format, Figure 6(b), is composed of the
following three parts:
the Communication Server receives the messages
as presented in Section 3.2;
the Decoding Module elaborates information
about speed and rotation radius encoding the
actual commands for the Motor Modules ;
the two Motor systems (one for each motor)
manage the servo dynamics.
3.3.1</p>
        <sec id="sec-3-8-1">
          <title>Decoding Module</title>
          <p>The Decoding Module elaborate the commands
depending on the required behaviour:
curving;
straight motion;
motion around itself.</p>
        </sec>
        <sec id="sec-3-8-2">
          <title>Normal mode: Curving</title>
          <p>Rotating the robot around the axes centered on itself
requires di erent speeds on the wheels (Figure 7(a)).
De ning speed (v) and rotation radius (r), the wheels'
speed is calculated as shown in equation 1:</p>
          <p>Vright = v</p>
          <p>(v; r)
Vleft = v + (v; r)
(1)</p>
          <p>Figure 7(b) identi es the di erential speed enabling
the turning action (named (v; r)) which is obtained
as shown in equation 2:
v
(v; r) = C (2)
r
where C is the distance between the wheel and the
center of the robot wheelbase.</p>
        </sec>
        <sec id="sec-3-8-3">
          <title>Normal mode: Straight motion</title>
          <p>The speed of two motors is simply set equal to v.
v+dx</p>
          <p>v
C</p>
          <p>C
v-dx
r
r
(a)
(b)
The velocities of two motors are opposite and their
absolute value is equal to v (the sign depends on the
direction of rotation).
3.3.2</p>
        </sec>
        <sec id="sec-3-8-4">
          <title>Motor system</title>
          <p>When the Motor System receives a command, it
converts the speed or rotation radius into engines'
instructions. Thus, developing a linear pro le for the wheels'
velocities, it needs particular care to prevent sliding
and overturns.</p>
          <p>Figure 8 exempli es how a speed pro le can be
realized when a new desired speed is requested before
the previous one is reached:
at t = 0 a speed request arrives, Figure 8(a). The
system provides to the motors a linear speed
prole to satisfy the request in a xed T ;
at t = 3 (with t &lt; T ) a slower speed request
arrives, Figure 8(b). The system calculates a new
pro le starting from the current robot's speed;
nally, the stop command arrives at t = 6,
Figure 8(c). Since no more new requests arrive in a
period where t &lt; 6 + T , the robot is stopped
within the expected T , holding that speed (in
this case 0) till a new command arrives.
The presented system is composed of several elements.
Considering that design and implementation errors
can happen in several of those elements proper
testing is needed. As manual testing is a cumbersome
procedure, test automation is highly needed. Thus,
we searched for existing test automation frameworks
and decided to adopt the CUnit [Ham04] and the gcov
systems [Rid04]. Furthermore, Usability Testing is a
key aspect when dealing with HMI systems. In the
rest of this Section we present what has been adopted
in this work.
Performance analysis and dynamics veri cation are
two strategic tests. A useful framework to
automatically test functions code is CUnit. Such a framework
has been employed to check the coherence of the
expected outputs of Command detection and messages
generation, reception and transmission which are
implemented as state machines. Code Coverage
Analysis [CCA] is crucial to identify and purge the dead or
obsolete code from the system. Moreover, the coverage
analysis counts the number of times each program's
statement is executed. Finally, the pro ling tool Gcov
is used to increase the code optimization.
The User Interaction Module aims at proposing a set
of manageable and e ective commands.</p>
          <p>To test their functionality several approaches are
viable, and the most e ective are the usability
test [DR99] and the usability inspection [Nie94]. The
rst approach is a user-based method that involves the
end users in the testing phase, while the second is an
expert-based method that during the testing phase
involves only experts and context aware users. Both
of them aim at identifying possible issues related to
the usability. They mainly di er in the categories of
the identi ed problems. Indeed, although the usability
test identi es fewer issue's occurrences, these are more
general and frequent issues [JMWU91].</p>
          <p>The rst usability test conducted concerns the types
of commands: di erent semantics (joystick, steering
wheel, etc.) were taken into account. This rst
experiment, named A/B test, consisting in executing the
basic commands as move forward or backward and turn
left or right with di erent speed and rotation radius,
was useful to gather testers' opinion about e cacy,
accuracy, and personal perception. Indeed, 27 testers
out of 30 expressed their preference for the joystick-like
interface. The second test, named Hallway testing,
involves di erent groups of testers randomly selected to
test the whole system. The test consists of driving the
Robot between a series of obstacles. After a few
commands, the testers gained con dence with the system
and easily accomplished the test. Imagining to use
a Cartesian system to represent the lessons learned,
putting on the vertical axes the number of attempts
and on the vertical axes the coe cient of experience
matured during tests, the output is a learning curve
which can be approximated by an exponential
function. Finally, even though the current system does
not provide a GUI (the system's feedback is directly
provided by the motion of the robot) all the testers
appreciated the system's response, classifying the system
as \user-friendly".
5</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Conclusion</title>
      <p>The presented project aimed at bringing a
traditionally physical user interface for human-machine
interaction like the joystick in the touchless era. In the
proposed work, a touchless joystick has been realized and
employed to drive a wireless mobile robot customized
for that purpose. All the system's components have
been tested and satis ed the conducted formal veri
cations. Thanks to the adoption of real-time policies,
the timing constraints have been respected throughout
all tests. Moreover, according to the testers' feedback,
the whole system was easy-to-use, responsive and
effective. The current system's version perceives both
the user hands, but it uses only one of them to get
the commands to guide the robot. The next step is
introducing the acquisition and elaboration of the
second hand in charge of handling sensors equipping the
robot. An initial idea we are working on is to equip the
robot with a mobile camera. Such a camera could be
handled (zoom, movements, taking pictures, etc.) by
the user with one hand while driving the robot with
the other. This new feature involves updates in the
data acquisition, communication protocol, and the
actuation module. While the data acquisition and the
actuation modules have to be restructured, the
communication protocol, thanks to its implementation,
requires only to be extended with the de nition of the
new types of messages. An alternative might be
including voice commands to control the camera and
empower the interaction with the robot [CSM+16].
Finally, the introduction of a GUI is under evaluation to
enrich the user experience when operating on the
mobile camera.
[CCA]
[CCS+16]
[CEB78]</p>
      <sec id="sec-4-1">
        <title>C Marlin Brown. Human-computer in</title>
        <p>terface design guidelines. Intellect Books,
1998.</p>
      </sec>
      <sec id="sec-4-2">
        <title>Giorgio Buttazzo. Hard real-time computing systems: predictable scheduling algorithms and applications, volume 24.</title>
        <p>Springer Science &amp; Business Media, 2011.</p>
        <p>CCA. Code Coverage Analysis. http://
www.bullseye.com/coverage.html.</p>
        <p>Davide Calvaresi, Daniel Cesarini, Paolo
Sernani, Mauro Marinoni, Aldo Franco
Dragoni, and Arnon Sturm. Exploring the
ambient assisted living domain: a
systematic review. Journal of Ambient
Intelligence and Humanized Computing, pages
1{19, 2016.</p>
        <p>Stuart K Card, William K English, and
Betty J Burr. Evaluation of mouse,
ratecontrolled isometric joystick, step keys,
and text keys for text selection on a crt.</p>
        <p>Ergonomics, 21(8):601{613, 1978.
[Dix09]
[DR99]
[Fal10]
[Fis01]
[FP11]
[EFAA15] Ru aldi Emanuele, Brizzi Filippo,
Filippeschi Alessandro, and Carlo Alerto
Avizzano. Co-located haptic interaction
for virtual usg exploration. In 2015 37th</p>
      </sec>
      <sec id="sec-4-3">
        <title>Annual International Conference of the</title>
      </sec>
      <sec id="sec-4-4">
        <title>IEEE Engineering in Medicine and Biology Society (EMBC), pages 1548{1551.</title>
        <p>IEEE, 2015.</p>
      </sec>
      <sec id="sec-4-5">
        <title>Robert Faludi. Building wireless sensor</title>
        <p>networks: with ZigBee, XBee, arduino,
and processing. O'Reilly Media, Inc., 2010.
Gerhard Fischer. User modeling in
human{computer interaction. User
modeling and user-adapted interaction,
11(12):65{86, 2001.</p>
        <p>Valentino Frati and Domenico
Prattichizzo. Using kinect for hand tracking
and rendering in wearable haptics. In</p>
      </sec>
      <sec id="sec-4-6">
        <title>World Haptics Conference (WHC), 2011</title>
        <p>IEEE, pages 317{321. IEEE, 2011.
[FSLS+16] Ramon A Suyrez Fernyndez, Jose Luis
Sanchez-Lopez, Carlos Sampedro, Hriday
Bavle, Martin Molina, and Pascual
Campoy. Natural user interfaces for
humandrone multi-modal interaction. In
Unmanned Aircraft Systems (ICUAS), 2016</p>
      </sec>
      <sec id="sec-4-7">
        <title>International Conference on, pages 1013{</title>
        <p>
          1022.
          <xref ref-type="bibr" rid="ref12">IEEE, 2016</xref>
          .
[Gra81]
[Ham04]
[Har]
        </p>
        <p>J Martin Graetz. The origin of spacewar.</p>
      </sec>
      <sec id="sec-4-8">
        <title>Creative Computing, 18, 1981.</title>
      </sec>
      <sec id="sec-4-9">
        <title>Paul Hamill. Unit Test Frameworks: Tools for High-Quality Software Development.</title>
        <p>O'Reilly Media, Inc., 2004.</p>
        <p>Michael Gonzalez Harbour. Programming
real-time systems with c/c++ and posix.
[KR07]
[Leaa]
[Leab]
[MDZ14]
[Mid]
[Min02]
[Nie94]
[Nuw13]</p>
        <p>Giulio Marin, Fabio Dominio, and Pietro
Zanuttigh. Hand gesture recognition with
leap motion and kinect devices. In 2014</p>
      </sec>
      <sec id="sec-4-10">
        <title>IEEE International Conference on Image Processing (ICIP), pages 1565{1569.</title>
        <p>IEEE, 2014.</p>
        <p>Midi Association. Midi Association - The
o cial midi speci cation. http://www.
midi.org/specifications.</p>
      </sec>
      <sec id="sec-4-11">
        <title>David A Mindell. Between human and machine: feedback, control, and computing before cybernetics. JHU Press, 2002.</title>
        <p>Jakob Nielsen. Usability inspection
methods. In Conference companion on Human
factors in computing systems, pages 413{
414. ACM, 1994.</p>
        <p>Rachel Nuwer. Armband adds a twitch
to gesture control. New Scientist,
217(2906):21, 2013.
[PBAR15] Lorenzo Peppoloni, Filippo Brizzi,
Carlo Alberto Avizzano, and Emanuele
Ru aldi. Immersive ros-integrated
framework for robot teleoperation. In 3D</p>
      </sec>
      <sec id="sec-4-12">
        <title>User Interfaces (3DUI), 2015 IEEE</title>
        <p>Symposium on, pages 177{178. IEEE,
2015.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [BBP+16]
          <string-name>
            <surname>Pasquale</surname>
            <given-names>Buonocunto</given-names>
          </string-name>
          , Alessandro Biondi, Marco Pagani, Mauro Marinoni, and
          <string-name>
            <given-names>Giorgio</given-names>
            <surname>Buttazzo</surname>
          </string-name>
          .
          <article-title>Arte: arduino real-time extension for programming multitasking applications</article-title>
          .
          <source>In Proceedings of the 31st Annual ACM Symposium on Applied Computing</source>
          , pages
          <volume>1724</volume>
          {
          <fpage>1731</fpage>
          . ACM,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [BGG+14]
          <string-name>
            <given-names>D</given-names>
            <surname>Bassily</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C</given-names>
            <surname>Georgoulas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J</given-names>
            <surname>Guettler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T</given-names>
            <surname>Linner</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T</given-names>
            <surname>Bock</surname>
          </string-name>
          .
          <article-title>Intuitive and adaptive robotic arm manipulation using the leap motion controller</article-title>
          .
          <source>In ISR/Robotik 2014; 41st International Symposium on Robotics; Proceedings of, pages 1{7. VDE</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [Bro98] [But11] [CSM+16]
          <string-name>
            <surname>Davide</surname>
            <given-names>Calvaresi</given-names>
          </string-name>
          , Paolo Sernani, Mauro Marinoni, Andrea Claudi, Alessio Balsini,
          <string-name>
            <given-names>Aldo F.</given-names>
            <surname>Dragoni</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Giorgio</given-names>
            <surname>Buttazzo</surname>
          </string-name>
          .
          <article-title>A framework based on real-time os and multi-agents for intelligent autonomous robot competitions</article-title>
          .
          <source>In 2016 11th IEEE Symposium on Industrial Embedded Systems (SIES)</source>
          , pages
          <fpage>1</fpage>
          {
          <fpage>10</fpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <surname>Springer</surname>
          </string-name>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <surname>Joseph S Dumas and Janice Redish</surname>
          </string-name>
          .
          <article-title>A practical guide to usability testing</article-title>
          .
          <source>Intellect Books</source>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <string-name>
            <given-names>Addison</given-names>
            <surname>Wesley</surname>
          </string-name>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <string-name>
            <surname>[MBJS97] Mark R Mine</surname>
            ,
            <given-names>Frederick P Brooks</given-names>
          </string-name>
          <string-name>
            <surname>Jr</surname>
          </string-name>
          , and Carlo H Sequin.
          <article-title>Moving objects in space: exploiting proprioception in virtual-environment interaction</article-title>
          .
          <source>In Proceedings of the 24th annual conference on Computer graphics and interactive techniques</source>
          , pages
          <volume>19</volume>
          {
          <fpage>26</fpage>
          . ACM Press/AddisonWesley Publishing Co.,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [JMWU91]
          <article-title>Robin Je ries</article-title>
          , James R Miller,
          <string-name>
            <given-names>Cathleen</given-names>
            <surname>Wharton</surname>
          </string-name>
          , and
          <article-title>Kathy Uyeda. User interface evaluation in the real world: a comparison of four techniques</article-title>
          .
          <source>In Proceedings of the SIGCHI conference on Human factors in computing systems</source>
          , pages
          <volume>119</volume>
          {
          <fpage>124</fpage>
          . ACM,
          <year>1991</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <string-name>
            <given-names>Marty</given-names>
            <surname>Ridgeway</surname>
          </string-name>
          .
          <article-title>Using code coverage tools in the linux kernel</article-title>
          .
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          <string-name>
            <given-names>Lucy A</given-names>
            <surname>Suchman</surname>
          </string-name>
          .
          <article-title>Plans and situated actions: The problem of human-machine communication</article-title>
          . Cambridge university press,
          <year>1987</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          <string-name>
            <given-names>Liberios</given-names>
            <surname>Vokorokos</surname>
          </string-name>
          ,
          <article-title>Juraj Mihal'ov, and Eva Chovancova. Motion sensors: Gesticulation e ciency across multiple platforms</article-title>
          .
          <source>In Intelligent Engineering Systems (INES)</source>
          ,
          <year>2016</year>
          IEEE 20th Jubilee International Conference on, pages
          <volume>293</volume>
          {
          <fpage>298</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [WBRF13] Frank Weichert, Daniel Bachmann, Bartholomaus Rudak, and
          <string-name>
            <given-names>Denis</given-names>
            <surname>Fisseler</surname>
          </string-name>
          .
          <article-title>Analysis of the accuracy and robustness of the leap motion controller</article-title>
          .
          <source>Sensors</source>
          ,
          <volume>13</volume>
          (
          <issue>5</issue>
          ):
          <volume>6380</volume>
          {
          <fpage>6393</fpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [WG95]
          <article-title>[Wol88] [Zha12] Matthias M Wloka and Eliot Green eld</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          <article-title>The virtual tricorder: a uniform interface for virtual reality</article-title>
          .
          <source>In Proceedings of the 8th annual ACM symposium on User interface and software technology</source>
          , pages
          <volume>39</volume>
          {
          <fpage>40</fpage>
          . ACM,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          <string-name>
            <given-names>William</given-names>
            <surname>Wolf</surname>
          </string-name>
          .
          <article-title>German guided missiles henschel hs 293 and ruhrstahl sd1400 x fritz x</article-title>
          ,
          <year>1988</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          <string-name>
            <given-names>Zhengyou</given-names>
            <surname>Zhang</surname>
          </string-name>
          .
          <article-title>Microsoft kinect sensor and its e ect</article-title>
          .
          <source>IEEE multimedia</source>
          ,
          <volume>19</volume>
          (
          <issue>2</issue>
          ):4{
          <fpage>10</fpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>