The rules of the competition dictated a baseline set of requirements that needed to be met in order to be successful:
- Line following - The corridors of the maze were constructed with a black electrical tape line down the center, meant as an aid for the autonomous navigation of the pathways. We saw no reason not to take advantage of it.
- Junction detection - To navigate the maze, Caddy would need the ability to detect when a junction was reach and to identify the type of junction (e.g. "T" junction, straight-or-right-turn junction, etc).
- Ground ball collection - The maximum score without collecting any ground ball is 5 out of 36 possible points - so a ground ball collection system is a must to score well.
- Bonus ball collection - Since the scoring distribution weighted bonus balls so heavily (16 of the 36 possible points are awarded for bonus ball tasks), we also decided that Caddy would need bonus ball collection capability in order to be competitive.
- Ball release-into-nest system - For an additional 3 points per ball, having the ability to release balls into the nest seemed worthwhile and comparatively simple to implement.
In addition to this baseline set of goals, we decided to focus on the autonomous aspect of the Roborodentia competition. In particular we wanted a robot that could actively adapt to the random ball locations, unlike any previous entry had ever done. This was the driver for an additional two requirements:
- Path planning - Caddy needed a way to map the arena and a shortest path algorithm that could find the best path through a sequence of goals.
- Ball finding - To make the best use of the path planning algorithm, we needed a way to actively search for balls down untraveled corridors.