As I look at hobby robot builders web sites I've concluded that most build a nice piece of hardware that doesn't really accomplish anything real. I've seen some beautiful robots that are the delight of machinists. But there is no mention of any software driving them that makes them meaningful. As I looked at the robots from the 2012 SRR Challenge competition I wonder how many of them spent many hours on the hardware and let the software go until the last minute.
I know from experience in embedded systems development that the hardware is always late. Since there are limits to what can be accomplished in software when you don't have even the preliminary hardware that makes the software late. (And software gets the blame for the project being late!)
I am going to avoid this trap by focusing on the software first. Still, I need some hardware to make progress but that is for the next entry.
I've thinking about the actions the robot needs to accomplish. Some of these are trivial, some need a lot of detail chasing but are straightforward, others are challenging, and still others are possibly beyond my capabilities.
If there are any of the last group I probably cannot enter a credible entry into the challenge. I won't know until I try. A prime example of this is using the vision processing to identify samples at a distance. Another is maintaining the location of the robot in the search area so (1) all the area is searched and (2) the starting platform can be located so samples can be returned properly.
The trivial items are the basics of controlling the robot:
- Controlling the motors to drive where needed,
- Read sensors to determine orientation (gyroscope),
- Drive servos for positioning the picker or cameras,
- Etc.
- Drive to a potential sample that was located,
- Etc. (Which means I haven't identified these.)
Challenging items...well, I'm not sure yet. More analysis is needed to identify these.