Aldebaran Nao
Nao is a commercially available humanoid robot built by Aldebaran. The ROS driver was originally developed by Freiburg's Humanoid Robots Lab and Armin Hornung. It essentially wraps the needed parts of Aldebaran's NaoQI API (versions 1.14 and 2.1) and makes it available in ROS. It also provides a complete robot model (URDF).
Robots using ROS: Aldebaran Nao
Robots using ROS: Uni Freiburg's "Osiris" Nao
Contents
Community
There is an official SIG for NaoQI and Aldebaran's robots at https://groups.google.com/forum/?fromgroups#!forum/ros-sig-aldebaran. Please subscribe to it to get the latest news !
Tutorials
A complete list of tutorials can be found under tutorials. This includes the installation, startup and further advanced instructions how to connect ROS with your NAO.
Start all robot nodes: nao_bringup
See getting started for a walk-through guide to installing ROS, NAOqi, and rviz (may be outdated by now).
Library Overview
The core functionality is implemented in the nao_robot stack (can be installed on the robot or on a remote PC), extended with further functionality in nao_extras (should be installed on a remote PC).
sudo apt-get install ros-.*-nao-robot sudo apt-get install ros-.*-nao-extras
For an outline of the libraries included, please see the tables below.
Basic Configuration
Capability |
ROS package/stack |
Robot-specific Messages and Services |
|
Robot model (URDF) |
|
Robot meshes |
Hardware Drivers and Simulation
Component |
ROS package/stack |
Actuator drivers |
naoqi_driver naoqi driver C++ |
|
naoqi_driver_py naoqi driver Python |
Basic sensor drivers |
naoqi_driver naoqi driver C++ |
|
naoqi_driver_py naoqi driver Python |
Sensor drivers |
|
Robot control |
High-Level Capabilities
Component |
ROS package/stack |
Teleop |
|
Footstep planning |
|
Execute / manage body poses |
|
Follow 2D path / walk to target |
|
Diagnostics / Visualization |
|
Interaction |
|
Planning / MoveIt! |
And more at nao_extras.
Simulation
You have the following options for simulating NAO:
You can use a simulated Nao in Webots and program it from ROS, from the Webots API or connect the driver to NaoQI on your local machine using naoqisim.
You can use a simulated Nao in Gazebo using plain ros_control architecture and no NaoQI features.
You can use a simulated Nao in Gazebo and connect the driver to NaoQI on your local machine.