Java for FIRST Robotics Competition

I spent the end of last week in Atlanta at the finals for the FIRST Robotics Competition. This is a competition where high school students build robots that perform some task. This year's task looked an awful lot like building a robotic basketball player. I was there partly because it's just a cool event; but mostly because we were announcing (along with the folks from FIRST and from the Robotics lab at WPI) that beginning with next years event, students could do their programming in Java. The controller that all teams use is the Compact RIO from National Instruments. It's a nice enough unit, but the C programming environment is brutal: when bugs cause crashes, the most you'll get is a register dump with (maybe) a listing of the assembly code around the crash site. There's no protection between the OS and the application, so the whole OS goes down when the application crashes. This is a tough place for professionals to work, let alone high school students. As a consequence, the amount of programming that is done is pretty minimal. So the robots are mostly mechanical engineering, with very little robotic ability to operate autonomously. We were demoing the new Java environment where NetBeans could be used to remotely (over the wireless link) debug Java programs live inside the robot: stack traces, breakpoints, looking at variables, ... all the cool NetBeans deployment and debugging tools totally transform the development experience.
April 19, 2009