I first thought about this over the summer and thought it would be kind of fun to try... I originally was thinking about a robotic lawn mower, but a vacuum cleaner is really the same thing.
The idea would be to map out a room and then calculate an efficient way of covering the entire room, including any obstacles. The goal would be to minimize the amount of areas that are covered twice. Also, a primary requirement (in the case of a lawn mower) would be to avoid moving objects -- possibly just stop and resume once the obstacle is gone or to dynamically recalculate a route to avoid it and finish up the skipped portion of the room later.
I don't have any partners yet -- looking for a couple people to join up with. Also, I haven't discussed this with the professor yet... I'll do that Thursday to get a more specific idea of what is appropriate.