|
Software:
Without software, Calculon would be like a brainless rabbit, unable to do much more than drive around randomly. Since brainless random rabbits aren't much use (to us I mean - wolves might find brainless rabbits tasty), Calculon needs software to fill in. The end result is we have a brainy robot rabbit that gathers information about the world, processes this data, and decides what to do. One day we hope the software on Calculon will advance to the level of a trained dog. In the mean time, we do the best we can. Just as a brain has specific areas to control different behaviors of the human body, Calculon has many software systems. Each system has an area of expertise, such as interfacing to sensors, building maps, planning where to go, or saying "STOP, WE ARE GOING TO HIT SOMETHING!"
To run the software, Calculon has a pretty hefty laptop (3.4 GHz P4 processor with 1 GB RAM) loaded with Windows XP. Much of Calculon's code will run on Linux with minor changes. All the software for Calculon is written in C or C++ for the fastest possible overall system (anybody who mentions the word "Java" will be taken outside and beaten up as thoroughly as possible - you have been warned).
So how much code does it take to make an autonomous robot? Obviously the number varies, but consider Calculon. Within a year, we had developed just over 100,000 lines of code for Calculon. Because we don't use commercial packages (or many packages in general) such as OpenCV or LabView that would automatically take care of robot vision or control, that number is probably on the high side. Of course, with such an large amount of code, it makes sense to break it down into multiple systems for each specific part of Calculon. Additionally, this means that commenting, following code standards, and documentation is extremely important for other people who want to use or understand our code.
Calculon has 5 major software components:
|
|