For a basic installation of ROS components please refer to the ROS Installation
To install the Aldebaran NAOqi SDK, you need to be a registered NAO user.
Login and download it from here: https://community.aldebaran.com/
For the time of writing, we strongly recommend using the official 2.1.2 SDK version of C++ or Python.
However, a precompiled NAOqi binary is now included with the Webots 6.4.4 simulation software, so this will be covered in a different tutorial.
This section covers installing NAOqi on your local PC, to remotely control the Nao, however if you want to install NAOqi on the robot itself then you need to investigate cross-compiling ROS for the Nao.
In the following, we will setup the support for the NAOqi SDK and Python bindings. Create a new directory and copy the downloaded tars inside. Please change the files and download destination according to where you placed your files. In the following, we install SDK version 184.108.40.206-linux64. Please change the coming lines to your downloaded version.
$ mkdir ~/naoqi $ cp ~/Downloads/naoqi-sdk-220.127.116.11-linux64.tar ~/Downloads/pynaoqi-python2.7-18.104.22.168-linux64.tar ~/naoqi $ cd ~/naoqi
Execute the following commands to extract your SDK.
tar xzf naoqi-sdk-22.214.171.124-linux64.tar tar xzf pynaoqi-python2.7-126.96.36.199-linux64.tar
Check the installation by executing NAOqi:
You should see an output similar to:
Starting NAOqi version 188.8.131.52 . NAOqi is listening on 0.0.0.0:9559 . . NAOqi is ready...
Press CTRL-C to exit.
Next, we verify the installation of the Python bindings. Add the NAOqi library path to PYTHONPATH. e.g.
$ export PYTHONPATH=~/naoqi/pynaoqi-python2.7-184.108.40.206-linux64:$PYTHONPATH
To make this permanently available for every future terminal, edit your PYTHONPATH in your bashrc file too. e.g.
$ echo 'export PYTHONPATH=~/naoqi/pynaoqi-python2.7-220.127.116.11-linux64:$PYTHONPATH' >> ~/.bashrc
To verify your correct installation of the Python bindings, open a python shell and try to include the ALProxy from naoqi.
$ python inside python shell >>> from naoqi import ALProxy
If these commands fails, please double check that your extracted python SDK folder is correctly in your PYTHONPATH
ROS packages for the Nao robot
Regardless whether you want to run ROS on your local remote computer or directly on the robot, some extra ROS packages are required in order to display all components of the ROS bridge. So for ROS indigo please execute the following command to install those packages:
sudo apt-get install ros-indigo-driver-base ros-indigo-move-base-msgs ros-indigo-octomap ros-indigo-octomap-msgs ros-indigo-humanoid-msgs ros-indigo-humanoid-nav-msgs ros-indigo-camera-info-manager ros-indigo-camera-info-manager-py
Please note to change those packages to meet your local installation of ROS (e.g. replace ros-indigo-* with ros-hydro-* ).
If you want to use simply use RViz or other supported ROS tools, simply install the official release packages for NAO.
sudo apt-get install ros-indigo-nao-robot
This will install all necessary components to quickly get you started with NAO. If you executed that, you can directly continue with the getting-started tutorial.
ROS packages from source
In case you want to checkout the source code and start developing applications with your robot, please refer to one of the following tutorials.
Several options are possible to install ROS:
1. Beginner: If you just begin learning about ROS and NAO, you can try to install ROS on a computer and running some ROS nodes to connect to NAO, as explained in this link: ROS on a remote PC
2. Intermediate: You know ROS and really want to install it onto your NAO, then head to ROS directly on the robot. This is the recommended way to install ROS on Nao.
3. Advanced: So you're a hardcore programmer and really want to know all the "behind the scene" steps to compile and install ROS onto NAO, this link is for you: ROS from source for NAO. This is similar to the Intermediate approach, except all ROS packages are compiled by hand instead of using the robotpkg package manager.
Developing ROS in C++ for NAO
The easiest way is to use the VM as explained above in step 3: it is the official way to develop according to Aldebaran. It also helps you with third party dependencies as you can use Gentoo's emerge.
Now, you do not have to use the VM: you can use the official toolchain, but you might get blocked by using third party software that does not use CMake. Please follow the ROS compilation with NAO's toolchain tutorial.
Instructions for older ROS / NAO
If you are on an Atom NAO with NAOqi 1.14 and on Fuerte you can follow the:
If you have a Geode head, you can follow the: