The Northern Bites' code base for RoboCup soccer competition on the Aldebaran Nao, Standard Platform League
C++ Python R Other
Latest commit 656687f May 10, 2010 1 Andrew Lawrence fixes print statement chown left on
Failed to load latest commit information. changing default color table Apr 18, 2010
cmake updating location to master Apr 17, 2010
comm Implemented Bill Silver's pointer optimizations in Thresholding loop.… Apr 26, 2010
corpus fixed IP fetching Apr 16, 2010
frames fixes grab script to set correct permissions Apr 17, 2010
include updating location to master Apr 17, 2010
motion working goalie Apr 17, 2010
noggin tweaked pBrunswick to do the around the ball less Apr 18, 2010
scripts Added scripts folder and the setup-autologin script for setting up au… Dec 18, 2009
tables Added diffing ability to sync scripts. Jan 27, 2010
vision fixes print statement chown left on May 10, 2010
.gitignore Merge branch 'cleanups' into lines Jan 3, 2010
.gitmodules added 'tables' submodule Nov 3, 2008
COPYING added the texts of the GPLv3 and LGPLv3 Sep 23, 2008
COPYING.LESSER added the texts of the GPLv3 and LGPLv3 Sep 23, 2008
Doxyfile Fixed Doxygen to correctly display repository name. Aug 17, 2009
Makefile Merge commit 'refs/remotes/northern-bites/master' Apr 8, 2010
Man.cpp Made a few minor profiling and nanosleep changes. Feb 18, 2010
Man.h Actually setup the _lights python module. Also moved … Jun 20, 2009
README.txt README spell checking and updating. Oct 13, 2009
TMan.cpp Threaded Leds into Man. Fixed led names. Started work on color manipu… Jun 20, 2009
TMan.h Threaded Leds into Man. Fixed led names. Started work on color manipu… Jun 20, 2009 Merge commit 'refs/remotes/northern-bites/master' Apr 8, 2010
TTMan.cpp Threaded Leds into Man. Fixed led names. Started work on color manipu… Jun 20, 2009
TTMan.h Threaded Leds into Man. Fixed led names. Started work on color manipu… Jun 20, 2009 man - reorganized Python packages and imports Aug 5, 2008
manmodule.cpp Removed vestiges of old LED code Jun 20, 2009
manmodule.h Split Man into two files, bound methods for NaoQi1.0 compatability Jan 20, 2009
nao_soccer_player.cpp Threaded Leds into Man. Fixed led names. Started work on color manipu… Jun 20, 2009
searchman Fixed small bug in searchman Jun 10, 2009



In order to compile the man binaries, you must first have the NaoQI libraries  and associated cross compiler installed on your machine. These libraries are the property of Aldebaran Robotics, but are mirrored on our server for those with a Bowdoin login. You may contact Aldebaran for the libraries.

 The default configuration is to install to /usr/local/nao.

NOTE: The given commands should be executed from the directory where you downloaded the archives. Also, depending on your system setup, you may need root privileges to install to /usr/local/nao

First, get the NaoQI libraries by retrieving the file <>. You should then extract the contents to /usr/local/nao (i.e. there should be a file /usr/local/nao/Release-notes.txt)

	sudo tar -xvzf NaoQiRobocup-1.2.0-Linux.tar.gz -C /usr/local

If the directory /usr/local/nao already exists you should move it first

        sudo mv /usr/local/nao /usr/local/nao-old

Then you should move the NaoQi directory to /usr/local/nao

	sudo mv /usr/local/NaoQiRobocup-1.2.0-Linux /usr/local/nao

You will also need the cross compiler, so start by creating its directory:

	sudo mkdir /usr/local/nao/crosstoolchain

Next, the new (1.0) cross tool chain is available from <>

Double check to make sure you have folders named 'cross' and 'staging' in $AL_DIR/crosstoolchain

Download the Northern Bites Nao tools from

Extract the archive using the following command:

tar -xvvjf darwin-nao-1.2.tar.bz2

NOTE: if you currently have /usr/local/nao you should move it with the following command if you do not want to lose the contents:

sudo mv /usr/local/nao /usr/local/nao-old

Now move the archive to /usr/local/nao:

sudo mv ./nao-darwin /usr/local/nao


We use CMake for compiling and installing our code.  It has most of GNU Make's
features along with some other niceties.

How you are going to use the code greatly determines how you should configure
the build.  For most applications you will be compiling code to be run on the
robot.  Thus you want to execute the following commands to cross compile for the
robot's OS.  Do so with the following commands (where $ROBOCUP_HOME is the path
to your robocup directories):

   cd $ROBOCUP_HOME/man
   make cross

This will take you to a configuration screen.  If you want to simply test if
your code compiles, than press c to begin configuration and then press g to
generate the configuration files.

If you are compiling for the robot you should make sure @MAN_IS_REMOTE@ is set
to OFF.  If it is set to OFF, you can change it by moving over the OFF text area
and hitting the enter key.  Here you should also set the appropriate player for
the robot and the IP address. Help for the configuration tool is accessible by
typing h while the tool is running.

Now to compile the code simply run:


If there are errors compiling and you need to change configuration files you can
delete the configuration files and make the code base ready for recompiling via:

   make clean

If you have an error compiling and need to clean your code base, but do not wish
to delete your configuration files you can delete the binaries only by using the

    make cclean

Once you have built the binaries they can be installed on the robot with the
following command:

    make install

Set the IP address of the remote robot on the configuration screen as described above.
Next, ssh into the robot as root and edit the file /opt/naoqi/modules/lib/autoload.ini using `nano autoload.ini`  This file lists all the modules that are loaded by NaoQi on boot time. If you are running as a dynamically linked library, you must ensure that the line
man is present in that list. Additionally, you must disable pythonbridge for the Python to run correctly in our code (if you don't do this, you will get a segfault).

See the directions at

Still having trouble?  Take a look at our wiki at Particularly, the page might give links to more detailed instructions then those shown here.

SIMULATOR (in robostadium contest mode without NaoQi):
	  -angleX and angleY are calculated incorrectly (they are just 0.0)
	  -GameController (i.e. Comm) is not working, so switching into playing is not possible
	  -Use the "webots.mtb" table

 LocalWords:  NaoQI robocup