Software ======== .. toctree:: :hidden: requirements choregraphe/choregraphe_overview monitor/index naosim/index naoflasher/index choregraphe/index **NAO** comes with: * :ref:`embedded-software`, running on the motherboard located in the head of NAO, allowing autonomous behaviors. * :ref:`desktop-software`, running on your computer, allowing creation of new behaviors, remote control and simulations. * :ref:`programmer-tools`, allowing remote control of the robot and also the expansion of its capabilities. .. image:: /medias/sofware-overview.png :height: 339 px :width: 559 px .. _embedded-software: Embedded Software ------------------ .. image:: /medias/sofware-embedded-overview.png :height: 247 px :width: 396 px **OpenNAO** is an embedded GNU/Linux distribution based on Gentoo, specifically developed to fit the **NAO** robot needs. **NAOqi** is the main software that runs on the robot and controls it. Copies of NAOqi also run on your computer in order to let you test your behaviors on virtual robots. .. _desktop-software: Desktop software ------------------ .. image:: /medias/sofware-desktop-overview.png :height: 296 px :width: 474 px **Choregraphe** is a visual programming language. It allows you to: create animations and behaviors for your NAO, test them on a simulated robot before trying them with your real NAO, and also monitor and control NAO. **Monitor** is dedicated to give you an elementary feedback from your robot and a simple access to its camera settings. **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. .. _programmer-tools: Tools for programmers ---------------------- Create your own code, using: * **Choreographe** as a visual programming language and/or, * one of the available **SDKs**. .. image:: /medias/sofware-programming-overview.png :height: 339 px :width: 553 px Depending on the chosen language, programmer is able to: * create a code remotely controlling the robot (all SDKs), * create new **NAOqi modules** and upload them on the robot (C++, Python), * create code to enrich **Choregraphe box library** (Python).