It strikes me that the success of the iRobot Roomba robotic vacuum cleaner comes largely from what they cleverly left out of the spec. Many people question these missing features even after seeing the robot working and hearing of its commercial success. The two missing features are:
1. No knowledge or map of the room layout
2. No large dust bag
Why do these help? Forming a model such as a 2D map of the room to be cleaned is a complicated task, which would need power hungry processors and more accurate sensors. The model would be prone to errors, resulting in parts of the room being missed. Worst, the model would cope badly with changes like chairs or other objects being moved, either by the robot, poeple or pets. It turns out a set of simple behaviours, similar to those displayed by insects, are sufficient to give good and reasonably efficient coverage. The primary behaviour is cross the room then bounce at a random angle off the wall or object.
The other standard assumption, that the robot needs a sizable dust bag, like a standard vacuum cleaner, is also critical. With large storage the robot would need to be much bigger, leading to several problems. A large size would drain the battery quickly when moving around. A large, heavy robot would be in danger of damaging things it knocked into. And perhaps most importantly it couldn't get into small spaces and under low furniture.
Another design, with a striking 'missing' feature is the Internet Protocol, aka the IP in TCP/IP. The Internet Procotol delivers a single packet of data to the specified address. But with no guarantee it will get there! The advantage is the protocol can perform its stated function very well indeed. Meaning protocols built on top can rely on it. This works well with the stacked protocol approach used in networking.
What features could you drop from the specs in your projects to give increased success?
Recent Comments