= What is this and how does it work? =
[wiki:wikiIntro Robocup Wiki Introduction]

= Nao Robocup Toolkit DP1 =

[wiki:Nao Nao Robocup Toolkit DP1]

= Getting started =
[wiki:NaoGettingStarted Software Installation]

= Where can I get the code? =
[wiki:SubversionRepository Subversion Repository] (https://192.168.0.200/svn/robocup/trunk/)
At the moment the above address is for the old code for the aibo, we really should be moving it else where.

= The Robocup 2006 (Sony aibos page) =
[wiki:Robocup06 Robocup 2006] - for all the information about the old Sony Aibo platform

= Standard Platform league =
Aledebaran Robotics's [wiki:Nao Nao] has superceeded Sony's Aibo as the new robot for robocup which also got renamed to the Standard Platform League. Some information can be found at [http://www.aldebaran-robotics.com/eng/pageProjetsNao.php]

= Some interesting literature =
  * An effective trajectory generation method for bipedal walking (on ScienceDirect)
  * Automatic motion generation exploiting the global structure of nonlinear dynamics based on finite-time reachability (also on ScienceDirect)
  * Biped Dynamic Walking Using Reinforcement Learning.pdf
    * The first few chapters give a good introduction on biped walking and learning.

= Some interesting, but not so useful literature =
  * Learning from demonstration and adaptation of biped locomotion.pdf
    * Too many mathematical symbols :-).

= Coding/interface/documentation =
  * code that requires change I've flagged it by doing:
{{{
// change required
...
// /change required
}}}
  * in gps.cc: GPS::resetGaussians() theres a comment that says !FIXME change the interface for this function so that we can also specify the new covariances of the ball vector. Maybe we could change it now.
    * this is sort of handled by doing this, where BALLSPEED95CF is 56.25
{{{
void GPS::resetGaussians(double x, double y, double h,
    double covX, double covY, double covH,
    double dxCov = BALLSPEED95CF, double dyCov = BALLSPEED95CF)
}}}
  * double get95CF(double standardDeviation) supposed to give a 95% confident factor of a given std deviation and is defined as

{{{
inline double get95CF(double standardDeviation) {
    return SQUARE(standardDeviation) / 4;
}
}}}
    * squaring SD gives you variance then divide by 4??? A lot of the usage has been passing the length of the field and HALF_CIRCLE as parameter which isn't even a SD???
  * At the moment we keep 2 separate gaussian matrices that seems to store the same information, the shared_gaussian and the world model, maybe its possible to just use 1 and extract a matrix from the world model whenever we want to send our info ti our teammates?
  * WorldModelParams doesn't have a single word of documentation, anyone care to find out what it does?
    * look as though the first n-1 parameters are factors and the last is a constant
    * it semi makes sense because kalman filters are linear recursive estimators, then the linear equation would be c1x1 + c2x2 + ... + c(n-1)x(n-1) + cn, no idea where they got the actual coefficients from though

= Design/ideas =
 * Approach?
    * modular, layered system with multiple threads doing stuff like vision, networking, thinking?
    * modular, single layer system?
 * Balancing
    * machine learning?
    * neural networks?
    * tuning it by hand to obtain posture balance seems creditably difficult
  * Strategy
    * Since robots don't have stamina issue, maybe we should try total football =)

Possible design
  * [wiki:Modular Modular Design]