Software in and out of the robot

NAO comes with:

  • Embedded Software, running on the motherboard located in the head of the robot, allowing autonomous behaviors.
  • Desktop software, running on your computer, allowing creation of new behaviors, remote control and simulations.
../_images/sofware-overview-bis.png

There are also Tools for programmers, allowing remote control of the robot and the expansion of its capabilities.


Embedded Software

../_images/sofware-embedded-overview-bis.png
OpenNAO is the Operating System of the robot.
It is an embedded GNU/Linux distribution based on Gentoo, specifically developed to fit the robot needs.
NAOqi is the main software that runs on the robot.
Creating behaviors for the robot means calling modules and methods advertized by NAOqi.

Desktop software

Choregraphe is a visual programming language.
It allows you to create animations and behaviors, test them on a simulated robot before trying them with your real robot, and also monitor and control NAO.
../_images/sofware-desktop-overview-bis.png
Monitor is dedicated to give you an elementary feedback from your robot and a simple access to its camera settings.
For further information, see Monitor.

NAOsim is a simulator where you can test NAO behaviors and your algorithms in a virtual world. You can modify the environment by inserting and modifying objects of various shapes.
For further information, see NAOsim.

NAOqi can also run on your computer in order to let you test your behaviors on virtual robots.
For further information, see What is a simulated robot.

Getting started

To install desktop software, see Software Requirements and Software Installation.


Tools for programmers

Create your own code, using:

  • Choregraphe as a visual programming language and/or,
  • one of the available SDKs.
../_images/sofware-programming-overview-bis.png

Depending on the chosen language, SDKs allows you to:

  • create code to enrich Choregraphe box library (Python),
  • create a code remotely controlling the robot (all SDKs),
  • create new NAOqi modules and upload them on the robot (C++, Python).