public
Description: The Northern Bites' code base for RoboCup soccer competition on the Aldebaran Nao, Standard Platform League
Homepage: http://robocup.bowdoin.edu/blog
Clone URL: git://github.com/northern-bites/nao-man.git
name age message
file .gitignore Sun Aug 09 16:06:18 -0700 2009 Added a Doxygen config file [jstrom]
file .gitmodules Sun Nov 02 22:48:07 -0800 2008 added 'tables' submodule Automatically load ... [jfishman]
file COPYING Mon Sep 22 22:29:56 -0700 2008 added the texts of the GPLv3 and LGPLv3 Put ... [jfishman]
file COPYING.LESSER Mon Sep 22 22:29:56 -0700 2008 added the texts of the GPLv3 and LGPLv3 Put ... [jfishman]
file Doxyfile Mon Aug 17 09:16:11 -0700 2009 Fixed Doxygen to correctly display repository n... [Tucker Hermans]
file Makefile Thu May 28 17:45:12 -0700 2009 Fixed some make/cmake options for Webots and 223 [jstrom]
file Man.cpp Sat Jun 20 21:04:11 -0700 2009 Fixed ConcreteCorner to string behavior. Added ... [Tucker Hermans]
file Man.h Sat Jun 20 13:45:50 -0700 2009 Actually setup the _lights python module. Also ... [jstrom]
file README.txt Tue Oct 13 11:15:20 -0700 2009 README spell checking and updating. [jgmorris]
file TMan.cpp Fri Jun 19 19:48:04 -0700 2009 Threaded Leds into Man. Fixed led names. Starte... [jstrom]
file TMan.h Fri Jun 19 19:48:04 -0700 2009 Threaded Leds into Man. Fixed led names. Starte... [jstrom]
file TODO.org Sun Aug 09 06:57:19 -0700 2009 Added a README to noggin module. Small document... [Tucker Hermans]
file TTMan.cpp Fri Jun 19 19:48:04 -0700 2009 Threaded Leds into Man. Fixed led names. Starte... [jstrom]
file TTMan.h Fri Jun 19 19:48:04 -0700 2009 Threaded Leds into Man. Fixed led names. Starte... [jstrom]
file __init__.py Mon Aug 04 22:08:46 -0700 2008 man - reorganized Python packages and imports ... [jfishman]
directory cmake.man/ Sun Jul 19 13:23:15 -0700 2009 Changed back Field and Color Table constants fo... [jstrom]
directory cmake/ Sun Jun 21 23:06:28 -0700 2009 Added a NBINNCLUDE library to put method bodies... [jstrom]
directory comm/ Fri Nov 13 12:27:13 -0800 2009 turns off annoying print line for packets, reve... [alawrenc]
directory corpus/ Tue Oct 13 11:41:05 -0700 2009 Re-added Sensors frame saving upper limit. Set ... [jgmorris]
directory frames/ Wed Sep 23 20:25:12 -0700 2009 Fixed frames sync script. [jgmorris]
directory include/ Wed Jul 01 10:35:51 -0700 2009 WOrking on blue shoulder problem - looking at s... [Eric Chown]
file manmodule.cpp Sat Jun 20 13:59:19 -0700 2009 Removed vestiges of old LED code [jstrom]
file manmodule.h Tue Jan 20 15:26:08 -0800 2009 Split Man into two files, bound methods for Nao... [jstrom]
directory motion/ Tue Oct 13 11:32:46 -0700 2009 Merge commit 'wdawson/master' [jgmorris]
file nao_soccer_player.cpp Fri Jun 19 19:48:04 -0700 2009 Threaded Leds into Man. Fixed led names. Starte... [jstrom]
directory noggin/ Fri Nov 13 12:51:09 -0800 2009 gets rid of an unnecesssary enumerate [alawrenc]
file searchman Wed Jun 10 11:39:20 -0700 2009 Fixed small bug in searchman [jstrom]
directory tables/ Fri Sep 11 19:24:39 -0700 2009 Added sync script to tables. [Jack]
directory vision/ Tue Sep 22 19:27:52 -0700 2009 Fixed missing include in VisionHelpers for gcc ... [jgmorris]
README.txt
 INSTALLING LIBRARIES AND CROSS COMPILER

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

LINUX:
First, get the NaoQI libraries by retrieving the file 
<https://robocup.bowdoin.edu/files/software/nao/NaoQi/1.2.0/linux/NaoQiRobocup-1.2.0-Linux.tar.gz>. 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 
<https://robocup.bowdoin.edu/files/software/nao/NaoQi/1.2.0/ctc-robocup-1.2..tar.bz2>

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

DARWIN (MAC OS X):
Download the Northern Bites Nao tools from
<https://robocup.bowdoin.edu/files/software/nao/NaoQi/1.2.0/darwin/darwin-nao-1.2.tar.bz2>

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

COMPILING & INSTALLING

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:

    make

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
command:

    make cclean

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

    make install


RUNNING THE CODE
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).


SIMULATOR:
See the directions at http://robocup.bowdoin.edu/trac/wiki/Webots


TROUBLESHOOTING:
Still having trouble?  Take a look at our wiki at http://robocup.bowdoin.edu/trac. Particularly, the page 
http://robocup.bowdoin.edu/trac/wiki/PracticalNao might give links to more detailed instructions then those shown here.



KNOWN BUGS:
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