No description, website, or topics provided.
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Nao Devils Code Release 2017

This is the 2017 Nao Devils Code Release based on the B-Human code release 2015.

The code release from 2016 is tagged with CodeRelease2016.

Getting started

Please refer to the original B-Human Code Release pdf for additional information.


Make sure to download the NAOqi C++ SDK for Linux from Aldebaran/Softbank (account required!). There is a script available, that extracts and copies the various header files to their required directories (Install/installAlcommon). The project uses a custom build tool called mare, all marefiles are in the directory Make/Common.

Available build targets:

  • Nao
    • libbhuman
    • libgamectrl
  • SimRobot
    • SimRobotCore2
    • SimRobotEditor
    • SimRobotHelp
    • SimulatedNao
      • Controller
      • qtpropertybrowser
      • libqxt
  • bush

Available build configurations:

  • Debug
  • Develop
  • Relese

It is enough to build the three main targets as they depend on all other ones. Nao (cross) compiles the robot's code, SimRobot compiles the Simulator and bush is the deployement tool by B-Human.


Required software:

  • Visual Studio 2015 +
  • Cygwin x64 with rsync, openssh, ccache and clang (4.0 at the time of this release, there is no gurantee the code will compile with later releases of clang)

Mare includes exporting a native project to Visual Studio. You can run the Make/VS2015/generate.cmd batch file to generate Visual Studio solution and project files. Remember to generate new project files each time you add or remove a file from the project, e.g. if you are switching branches.


Required software:

  • qt4-dev-tools
  • libglew-dev
  • libjpeg-dev
  • clang (4.0 is compatible, other versions might be)
  • libxml-dev

You have multiple options to export the marefiles to project files. You may use your own editor and simple invoke

make <target> CONFIG=<config>

inside the directory Make/Linux, where <target> is one of the targets and <config> is one of the build configurations.

Note that CodeLite and NetBeans fail to expand some of the new preprocessor macros and streaming functions. This will result in poor auto completion. That is why we've added a CMakeLists.txt inside Make/LinuxCMake. The generate script in this directory will copy this file to the root directoy. After that you may load the project with any CMake compatible IDE. The CMakeLists.txt simply grabs all cpp and header files and puts them into a dummy target, so that the IDE will show these files as project files. For each target of the framework, there is a custom target that simply invokes the above make commands as custom commands. We recommend QTCreator or kDevelop 5 in connection with cmake.

Setting up the Nao

Please refer to the B-Human Code Release report, as the process is the same. Note that we've enabled connecting to the nao via ssh as root. If you do not wish to do this, remove lines 48 to 50 in Install/Files/install, but be careful, this will break the NTP synchronization while deploying, since root is required to set the time. Also, the ssh keys provided in this code release are the ones provided by the B-Human Code Release, for security reasons you might want to change these as well.

Copying the compiled files

You can either use the Make/Common/copyfiles (or the OS specific links to the script inside the Make/<OS/IDE> folders) script or bush (detailed usage see B-Human Code Release). Note, that we have change the way that the robots synchronize time with each other. Instead of transforming timestamps in network packages from other robots to local time, we synchronize the time with a NTP server when the robot is deployed. You need to change the IP Adress of the server inside the Make/Common/copyfiles script, line 57.