A Distributed Architecture for Interacting with NAO

NAOLab is a middleware library for developing robotic applications in C, C++, Python and Matlab, using the humanoid robot NAO

Software Download | Publications | People | SupportAcknowledgements

Architecture Overview

NAOLab is a middleware for the development of robotic applications in C, C++, Python and Matlab, using the humanoid robot NAO networked with a PC. NAOLab enables the joint use of NAO’s on-board computing resources and external resources. More precisely, it allows the development of applications that combine embedded software (motion control, synchronized acquisition and communication of image sequences and of audio signals, etc.) with external toolboxes, e.g., OpenCV, Matlab toolboxes.

The NAOLab toolbox has the following characteristic. The middleware complexity is transparent to the users. An user-friendly interface is provided through C++ and Python libraries extended with mex functions for Matlab. This enables the development of advanced audio and visual processing algorithms without the stringent programming constraints of NAOqi.

NAOLab and NAOqi share the same modular structure, namely there are three types of modules: vision, audio and motion. An interface (vision, audio, and motion) is associated with each NAOqi module. Each interface deals with sensor data access (cameras and microphones) and actuator control. The role of these interfaces is twofold: (i) to feed the sensor data into a memory space that is subsequently shared with existing software or with software under development, and (ii) to send to the robot commands generated by the external modules.

March 2017. An example of the use of NAOLab for simultaneous tracking and robot motion control can be found here.

NAOLab Software Package can be freely downloaded. NAOLab is distributed under LGPL. It requires a NAO robot V5 and NAOqui middleware V2.1 (or higher), both manufactured and distributed by Aldebaran Robotics

Download NAOLab
Download tutorial video to install NAOLab
Documentation for naolab v0.8.0

This video overviews and illustrates NAOLab


F. Badeig, Q. Pelorson, S. Arias, V. Drouard, I. D. Gebru, X. Li, G. Evangelidis, R. Horaud. A Distributed Architecture for Interacting with NAO. International Conference on Multimodal Interaction, Nov 2015, Seattle, WA, United States.

ICMI15_demo poster_IROS2015_small
  TITLE = {A Distributed Architecture for Interacting with {NAO}},
  AUTHOR = {Badeig, F. et al.},
  BOOKTITLE = {International Conference on Multimodal Interaction},
  ADDRESS = {Seattle, WA, United States},
  YEAR = {2015},
  MONTH = Nov,
  DOI = {10.1145/2818346.2823303}


INRIA: Soraya Arias, Guillaume Sarrazin, Fabien Badeig, Quentin Pelorson

Softbank Robotics Europe: Alexandre Mazel


This work has received funding from the EU-FP7 STREP project EARS (#609465) and ERC Advanced Grant VHIA (#340113) and has been supported by Softbank Robotics Europe (formerly Aldebaran Robotics).

Comments are closed.