The original plan was to make a 3D mapping robot using the Kinect. The idea was to _ get _ a robot from iRobot and not do their challenge. Of course, when the Kinect ended-up not being compatible with anything we had, we gave iRobot's a go.
What it does
You can control the Roomba with a simple web interface that displays sensor data and a map of the distance you traveled.
There is even a fancy joystick-like interface that's super-usable from a touchscreen. Also, since the robot runs a Node server, it's possible for the client to not be tethered to the robot.
How we built it
Python to interface with the Robot and Node.js to drive the front-end. Flask would have been the obvious choice but it was too late to switch.
Communicating in real-time between Python and Node proved to be a challenge. Luckily, Python provides unorthodox ways to communicate with the external word. Just open
data.py to see how it works...
Challenges we ran into
Communicating between Python and Node.js in an elegant manner.
Accomplishments that we're proud of
Getting the interface to display data. Also, it's powered by nipple.js
What we've learned
Evaluate the stack before you start.
Also, hardware will fail you.
What's next for YAR - Yet Another Roomba
To keep working on it I would need to purchase a Roomba... So you can guess.