Ok. So the competition is over. Here is our advice for future robot soccer enthusiasts:
1) Kickers take a lot of time, money, space, mass, and need decent control to be an advantage. Plan wisely. (Same advice for spinners)
2) Design hardware with your control in mind. (Center of Mass == Center of Rotation, etc)
3) Team communication is key. Make sure someone isn't off working on their own thing without letting the team know their progress. A lot of times we each wrote a function to do the same thing. Make a good plan and stick to it.
4) Some things that we may have done differently with our new power supply include using nickel metal-hydride batteries, matching the battery packs, and using a current and voltage regulator on the supply. Nickel metal-hydride batteries, available at any local store, do not have the memory effect that NiCads have. They also have a current rating that is nearly twice as large, so Doyle’s batteries would not have to have been charged as frequently. The two batter packs we combined to get 19.4 V were not well matched. One would usually discharge quicker than the other because it was older. Better matched battery packs, would have increased Doyle’s battery life. Finally adding a current and voltage regulator to the new power supply would have been a big advantage. This is because our control code was very dependent on the motor response and hence the supply voltage and current. If the voltage and current had been regulated, than our control could have been more consistent, and we would have spent less time tweaking feedback constants.
5) Learn how to tweak "constants"
6) Linearize the duty cycles of your motors. Increasing your motor voltage decreases the linearity of your motor response/voltage.
7) The simulator is useful for testing purposes, but the real world is very different. Get good batteries and start running in hardware as soon as possible.
8) 2nd order feedback linearization control is the bomb.
9) Follow the white rabbit. (ie, avoid other robots)
10) The Kalman filter was useful for cleaner velocities (for ball prediction/ get unstuck). But it really didn't help for feedback linearization.
11) For cleanest velocities use encoders on your motors.
12) Lighter == faster == more agile Heavier == slow == more inertia == more pushing power. Plan accordingly.