Hardware Modifications:
Replace the motors with slower ones. Currently, the slowest speed is so fast that if the robot starts turning towards a bright light, it may miss it before it realizes it has passed.
Sofware Modifications:
Rewrite makefile in a way to allow programs to access the Teleo library directly, for those who wish more direct control.
To Add:
Video camera, perhaps on a pan/tilt head, and a video-processing library.
Encoder on wheels so robot can figure how far its gone, and also for detecting when it's jammed
Whiskers, for collision avoidance
Compass, so robot knows which way its pointing
Add two light sensors pointing to the floor, for line following.
Mount light sensor and distance measuring sensor on a rotating platform so that robot can "look around" and know where (at what angle) a given feature is. Might do this with a hobby servo, might do this with a more elaborate rotating device and some kind of position encoder.
Other sensors, which may require more inputs
Build a charging station to which the robot can connect using only its motors. This project consists of multiple steps, including (1) how to locate the station (2) developing contacts that are reliable and yet easily inserted and removed (2) developing charging circuit that can be connected live to the robot (I don't think the current power supply will tolerate the higher voltage of the charger).
Document the code and the API better. Document the interface to the hardware via Teleo. Document librobot. Support applications that wish to interface directly to the Teleo hardware, without librobot.
Challenges:
- A "fetch" program: Goal is to find some "beacon" that can be detected by robot and hidden by human, like a flashing light. Extra points if it can distinguish between the beacon flashing at some known frequency and other random lights.
- Line following program
- Avoid obstacles
- Find the dog
- Move around the house
- Map the house
- Find a fire (requires temp sensor and candle)