Skip to content

mrlspl/CodeRelease

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

Building

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.

Windows

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.

Linux

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 50.6%
  • C 31.4%
  • HTML 11.7%
  • Shell 1.9%
  • Python 1.9%
  • Makefile 1.7%
  • Other 0.8%