A. General Philosophy
The analysis for 2014, and to a lesser extent for 2013, is colored by the philosophy I have toward robotics. As with any project, there are some starting assumptions about the software and equipment that will be used which color the analysis and design.
Overall, my approach was driven by KISS: keep it simple, Salisbury. (Salisbury is the name of the lake at Institute Park where the challenge is held.)
An overriding aspect is that I am a software engineer, not a mechanical engineer. I want to spend most of my time working on the software and not designing the mechanical platform for the robot. Because of this I selected a commercially available robot chassis, use an ITX based computer and case, and controllers with USB for control and sensing.
After the 2013 challenge I vowed to learn Linux and switch to using the Robot Operating System and OpenCV. The 2013 rovers used Windows XP, totally custom C++ software, and RoboRealm for vision processing. In my decades long career I have worked with numerous operating systems although I never worked with Unix or Linux. Every couple of years I install a version of Linux and vow to learn to develop on it. Every time Linux drives me nuts. It happened again in the summer of 2013. So much for that vow.
Unless I have a major epiphany, I will stay with Windows and my C++ code. The use of RoboRealm is still an open question, as is the use of OpenCV or another vision processing library.
In contrast with many robotics developers I am opposed to wheel encoders, especially for outdoor robots. The uncertainty caused by wheel slippage seems overly problematic. People do not walk in a straight line, say, because of our kinesthetic sense in our legs. Instead, we are guided by vision. (This was ably demonstrated by MythBusters who tried, and failed, to walk across an open field and swim across a pond blindfolded.)
Vision was the main sense for '13, and will be again for '14.