Unzip to /usr/local/ To run: copy the contents of ms over your memory stick, run ControllerGUI, go to Mode Switch, hit Go, and activate ChaseDemo or PenaltyGoalie To compile: in order to run there needs to be some changes made to the core Tekkotsu files, I didn't include them in the zip ------------------------------------------------------------------------------- ChaseDemo: Find, chase, and kick the ball using a state machine. The machine runs in a loop, the order of the states is: 1. Search (keep turning around and look for the ball) 2. Track (track the ball and move closer) 3. Kick (run the kick motion) 4. Wait (wait for a little bit before starting the search node again) then back to Search again ChaseDemo.h holds the logic of the state machine (setting up nodes and transitions) and starts the loop. The rest of the implementation is inside the 4 node files: SearchStateNode.h, TrackStateNode.h, KickStateNode.h, and WaitStateNode.h The 5 nodes in the machine (including the ChaseDemo class, which also has to be a node) extend the Tekkotsu StateNode class. Transitions were made using the EventTrans class. The behavior uses timers, a custom kick motion, and pink ball detection. ------------------------------------------------------------------------------- PenaltyGoalie: The dog sits in the goal panning his head and waiting for a ball to be kicked to him. When a ball approaches he will play the save motion, then get up and watch for the ball again. The implementation is in PenaltyGoalie.h and PenaltyGoalie.cc The behavior uses multiple timers (one always runs for panning, the other times how long to lie down and save), custom motions (for panning, saving, and getting back up), and pink ball detection.