A Distributed Architecture for Interacting with NAO
Demonstrations
/
Badeig, Fabien
/
Pelorson, Quentin
/
Arias, Soraya
/
Drouard, Vincent
/
Gebru, Israel
/
Li, Xiaofei
/
Evangelidis, Georgios
/
Horaud, Radu
Proceedings of the 2015 International Conference on Multimodal Interaction
2015-11-09
p.385-386
© Copyright 2015 ACM
Summary: One of the main applications of the humanoid robot NAO -- a small robot
companion -- is human-robot interaction (HRI). NAO is particularly well suited
for HRI applications because of its design, hardware specifications,
programming capabilities, and affordable cost. Indeed, NAO can stand up, walk,
wander, dance, play soccer, sit down, recognize and grasp simple objects,
detect and identify people, localize sounds, understand some spoken words,
engage itself in simple and goal-directed dialogs, and synthesize speech. This
is made possible due to the robot's 24 degree-of-freedom articulated structure
(body, legs, feet, arms, hands, head, etc.), motors, cameras, microphones,
etc., as well as to its on-board computing hardware and embedded software,
e.g., robot motion control. Nevertheless, the current NAO configuration has two
drawbacks that restrict the complexity of interactive behaviors that could
potentially be implemented. Firstly, the on-board computing resources are
inherently limited, which implies that it is difficult to implement
sophisticated computer vision and audio signal analysis algorithms required by
advanced interactive tasks. Secondly, programming new robot functionalities
currently implies the development of embedded software, which is a difficult
task in its own right necessitating specialized knowledge. The vast majority of
HRI practitioners may not have this kind of expertise and hence they cannot
easily and quickly implement their ideas, carry out thorough experimental
validations, and design proof-of-concept demonstrators. We have developed a
distributed software architecture that attempts to overcome these two
limitations. Broadly speaking, NAO's on-board computing resources are augmented
with external computing resources. The latter is a computer platform with its
CPUs, GPUs, memory, operating system, libraries, software packages, internet
access, etc. This configuration enables easy and fast development in Matlab, C,
C++, or Python. Moreover, it allows the user to combine on-board libraries
(motion control, face detection, etc.) with external toolboxes, e.g., OpenCv.