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.
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
Available build targets:
Available build configurations:
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.
- 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.
- clang (4.0 is compatible, other versions might be)
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
<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.