this is a follow-on to an earlier proof-of-concept robot found here: http://letsmakerobots.com/node/36052 The brush part of this sweeper is from a Shark hand held sweeper that I found in a thrift store for a few bucks. The previous project just added drive motors and a few sensors to the Shark hand held sweeper, but this one extracted the brush from the Shark and put it in a whole new robot. The base of the robot is a piece of masonite, the body is a microwave plate cover that I found in a dollar store. There are four IR sensors mounted near the bottom of the body and the sonar on top and in spite of that it still got into situations where it couldn't tell it was stuck against something. I resolved that issue by using an optical encoder reading a free wheeling wheel on which was a printed encoder wheel. If the robot gets stuck against something then the encoder wheel stops going around and I know I need to do some avoidance. This project was really fun and a lot of the components were scavenged from old printers and what-not including the MOSFET used to run the brush motor. It uses a subsumption architecture for the program as this is very well suited for a task like this.