Hey, I feel slighted. There's nothing in the thread so far about
software.
This year was different for the TechnoKats in a couple of ways. First, the programming language changed, so none of the previous code was usable. Second, the usual programming mentor was called away on business just when things needed to get started, and I got asked to try to take charge.
With no prior experience with FIRST robotics, and no idea how programming the InnovationFirst system worked, I said yes anyway. I started by planning what I thought was a reasonable software architecture, with the control algorithms decoupled from the actual I/O, having separate bits of code dedicated to mediating between internal program states and the sensors and actuators. It turned out to match what was possible with the system very well. A couple of weeks later, everything was mapped out and most of it looked like it was going to be easy to make work. By the time the robot's motors were wired up, the software was ready to run.
The advance planning paid off again when it came time to implement the autonomous code. The architecture had been designed to make it easy to deal with both manual control and programmed sequences, and it turned out to work that way in practice.
Now that I know my way around the IDE and this year's default code better, I intend to make use of separate source code files better next year. I've already begun sketching out a more easily configurable PID control routine, and I'll probably be working with a couple of students this fall to prototype a motor/feedback package so we can experiment with it.