Home‎ > ‎


The Roomba is a excellent piece or robotics hardware, and it's so easy to build projects upon. I  was interested in using one as a base for a larger project. I initially looked at the iRobot Create but it's $129 for a base unit that doesn't even come with a battery, yet I could get a as-is Roomba Discovery series on eBay for less that $50. So why not use a Roomba instead of a Create?

Below is my Roomba with the vacuum assembly removed:

In the near future I plan to write up a detailed guide to removing the vacuum assembly from the Roomba, for now though I will point you to the excellent tutorial that I used to open the Roomba. With the brush deck removed there is a ton of room in the bottom of the robot. This area on my Roomba is going to be filled with a custom high capacity battery pack.

I installed some screws through the top of the Roomba so I can mount a Plexiglas plate on top that will serve as a deck for all the additional electronics.

Here are two screws that are installed though the top of the Roomba and into the top of the dustbin. Once the vacuum motor was removed from the Roomba the clip that held it in place didn't work anymore, the screws now hold the bin in place.

With all the machine screws stickign out of the top the Roomba is beginning to look like a robotic hedgehog.

I needed a way to hold the laptop upright on the Roomba, so I used two pieces of aluminum angle to machine a bracket
I cut the two pieces of aluminum to length then put a bolt near the bottom to stop the laptop from going all the way to to bottom thus allowing me access to the ports. I also cut a smaller piece at the end to act as a base to put a nut and blot into. I riveted this bottom piece onto the large aluminum angle.


I got my Plexiglass circles cut today, and installed the first one on the Roomba.

Here is the disk being drilled, on the drill press, with holes matching the screws on top of the robot.

Here is the disk mounted to the top of the Roomba with the laptop and laptop bracket installed.
The battery on the front is just acting as a counterweight to offset the laptop. This is only temporary until I get a caster for the back of the Roomba.

Here is the robot so far, with the top disk attached.

Here is the robot so far, as you can see I have added a different camera, with a pan/tilt/telescope assembly ( I will add more pictures and detail on that soon). I also decided to move the computer towards the front of the Roomba to correct some balance issues.

I added some external speakers to the robot, the internal ones just weren't loud enough with the lid closed.

I also started working on the power distobution and servo controller board. I am using an 8 channel Pololu serial servo controller to run the pan/tilit/telescope for the camera. Unfortuneltly the Pololu can't pass enough piower to run all the servos' so I built a breakout board that steps the 14 volts from the Roombas battery down to 6 for the servos.

I mounted the board to the polycarbonate middle sheet.

Here is the robot in it's entirety:


Ok, Long time since I've posted anything. Unfortunately I have been working on the robot but I haven't been documenting it like I should have.

So the main things that I have done:
  • I ditched the white plastic disk that was on the top of the robot originally. It made the pan/tilt/telescope assembly sit to high.
  • Installed the high capacity battery pack
  • Installed the metal outer skin
  • Painted the Roomba to match the new skin.

Ok here is the battery pack:

This pack is only half finished I have another 12 cells to add to the pack. The pack already trumps the factory Roomba pack because it uses full C cell that are rated for 9ah instead of the sub-c cells that the factory pack uses that are rated for 3ah. I am currently uses a empty Roomba battery pack to connect the new cells to the Roomba. I plan on routing the wires up through the area where the brush deck was and into the Roomba's insides. I originally thought I could just plug the new batteries into the Roomba and everything would be cool, but that wasn't the case, i forgot about the thermistor that the Roomba need to keep on eye on the battery packs temperature. Instead of trying to figure out the exact thermal properties of the thermistor and order a new one, I just bought a busted battery pack off eBay and pulled it's thermistor out and nestled it into the new cells.

I added some l brakets to hold and support the outer metal skin.

Here is the metal covering removed from the robot.

The metal is just thin galvanized sheet steel that I bought from Home Depot. I took it to a metal shop and got it cut on a press to the correct height. I was able to cut the smaller piece down to size with tin snips and then cover the ugly edges by bending it over.

Here is the larger piece fitted on the robot.

Here is the latest version of the robot:
You can see the Logitech PTZ camera mounted, as well as the new dual-core laptop, and the arm assembly.

I am currently using Roborealm to run the robot. It allows me to control the servo controllers, Sabertooth motor control (that runs the arm), allows for control of the Roomba and the Logitech camera. Below is a screenshot that shows the teleoperation program. With this I am able to use the USB connected XBOX controller to run the Roomba, and cameras.

I am still working on getting the sensors to work with the robot. 

I have successfully been able to get the arm moving via the buttons on the Xbox controller. The rest of the functions were working via the controller and this was the last thing I had to get working. I am currently having a problem with the turn function. The robot sometimes seems to want to lock into a spin if I turn it, I hope that the OSMO firmware update will correct this.

Below are pictures after I tidied up the cable mess:

Here is a short video showing the teleoperation in use:

Here is the current teleoperation code:

Erik Leonard,
Apr 7, 2011, 7:46 PM