Reader [Julian von Mendel] and his team built this tennis ball fetching robot for a competition (translated). The first version used distance sensors to locate the tennis balls for pick-up, but they changed to a camera based approach. The robot has three omniwheels and is designed to calculate the shortest path to the ball despite orientation since it can rotate while traveling. The wheels are monitored using rotation sensors from PS/2 mice. The control is provided by 3 Atmel microcontrollers that communicate via SPI. The multiprocessor design is fairly generic and could be reused for a different style of robot. While their robot performed fairly well, there were some shortcomings. The limited storage space meant frequent trips to drop off balls. The tilting bucket kept them from picking up tennis balls that were against the wall. Also, the bot had to be disassembled for battery swaps. The project is very well documented and they’ve released all of their control code. You can see the robot retrieving a ball after the break.