Let's Make Robots!

GreenRoomBaa

BaseOverApex's picture
Program takes control of a Roomba vacuum cleaner.
Cost to build: 
$180
Time to build: 
15 hours
Weight: 
3 grams

I got a vacuum cleaner for my birthday. Sorry, Chris, but MY wife is the coolest wife ever.

I didn't have the correct plug for the interface, so I really spent quite a long time on the software while I was waiting. Tonight, I said to my wife: "I connected the vacuum cleaner to the computer." said replied "What took you so long?"

I'm extremely pleased with the result. The video shows:

  • the bot driving around (cautiously - this is not full speed) under control of a Logitech Attack 3 joystick (!)
  • then a quick demo of how I can control the main brush motor, the vacuum motor and the side brush motor (again using the joystick)
  • and finally that I even have control over the colour of the front panel LEDs as I use the Z-axis of the joystick to fade the power LED from green to red and back to green again!

Roomba04.jpgThe robot already contains a serial interface which is spectacularly well documented by the manufacturer. As you can see the interface is TTL (much like the UART in the PIC) so you need to add a MAX-232 to get PC com port line levels. (See photos.) So, in theory, it would interface directly to the PIC without all that nonsense.

Roomba03.jpgThis will never be used as a vacuum cleaner. That would be a terrible waste of technology. This vacuum cleaner should be a compulsoy purchase for anyone wanting to learn to program a floor turtle.

It has been suggested that I empty a vacuum cleaner bag all over the floor, then drive the bot around in order to Write LMR in the dust. I've not ruled it out. Imagine.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Hey!

Im currently working on programming a roomba with labview myself for my final year project in college! The thing is I'm having serious problems getting feedback from my sensors. I know they work and that the cable is ok because I checked this in the SCI tester using the live sensor data button but when I enter the code manually to get feed back it wont in both the sci tester and my labview programme.....just wondering has anybody been able to use labview to get feedback from the sensors ???

 

BaseOverApex's picture

Yeah. There's no problem getting feedback. If you send the byte 0x8E followed by 0x00, you get a 26-byte packet back containing all the sensor data. Make sure you haven't got your VISA serial port timeout set too low, or else it won't wait long enough for the returned data.

Now, here's an odd thing. I don't get sensor data using the SCI tester, but I do with my own program!!

Zanthess's picture

Awesome that they are pretty much encouraging some hacking. I think that's what's boosted their sales so much!

Was it hard setting up the joystick? I like how you can control each separate part of the vacuum.

Do some more with it, I wanna see! :)

BaseOverApex's picture

Totally. It's what Lego realised the should have done with RCX. After they released it, there was demand for an SDK, so they released one. The NXT has always had nearly open source status.

That way they're bound to sell them by the millions. I have no intention of ever using it as a vacuum cleaner. It's perfect marketing.

Ha ha! I have to say, taking input from the joystick was more difficult than controlling the damn hoover! But that's a combination of the pain in the ass way Micro$haft makes us use their pain in the ass software interfaces.

I think the next stage is to map a room.

GroG's picture

BOA - Replace the OS !

Is XP running on the 8086/Roomba? I'm amazed the bloated OS would fit - or are you talking about the SDK on your home computer?  My suggestion would be to dump it along with Micro$oft...  

It's amazing how capable hardware can become when you get rid of the cruddy OS.   eg link

I'm sure you'll come up with something brilliant.  Perhaps, paint on the floor or laser etching.  Is that dog still around?

 

BaseOverApex's picture

Yep, Windoze XP Home is running on the 8086 controlling the Roomba. Would you believe it's so colossal that the computer is too big for the Roomba to carry it around? Well, since teh controller IS my home PC...

The Asus router I'm looking at runs Linux...

The problem i ran into with using an Asus WL500G  was kernel/USB driver hell basically. 2.4 kernels worked fine with wireless but have limited USB hardware support, 2.6 kernels theoretically supported the USB devices i wanted (like UVC video) however the devices did not work, and troubleshooting was troublesome.
OddBot's picture

That's a great hack, I can't wait to see it do the write LMR challenge :-)

Have you thought about mounting that arm you got for Christmas ontop so it can pick up socks? :D

BaseOverApex's picture

 I've thought about mounting a reprogrammed Asus WiFi router and a webcam on top.

I'm still struggling for a DC/DC converter, though. I can't see how to get 5V at 2.5A out of the Roomba's 14.4V supply without spengindg about £40 on a voltage converter.

 

OddBot's picture
If you haven't bought a DC-DC converter yet then check this out :D