LawrieGriffiths
Posts: 3
Joined: Fri Aug 17, 2012 7:37 am
Location: Manchester, UK

Roomba robot

Fri Aug 17, 2012 8:24 am

Image
This is a Raspberry Pi controlled Roomba robot for fetching things. It streams video from a webcam as it moves.

Hardware used:

-Raspberry Pi
-Roomba 560
-Arduino Uno (to provide the USB interface to the Roomba)
-Maplin/OWI robotic arm
-Powergen mobile juice pack
-Edimax wifi adapter
-USB hub
-Webcam
-Some HDPE plastic sheets
- A few nuts and bolts, assorted cables, some Velcro and a bit of LEGO

Software used:

-pyusb
-pyserial
-motion

It is currently keyboard controlled, but I am considering adding control from a web page that will include the streaming video feed. I may also add voice control. Possibly also control from an Android app.

I might add an Android tablet for telepresence, and possibly an Asus Xtion Live Pro to give it navigation and mapping capability.

It can clean as it moves, if required.

Ravenous
Posts: 1956
Joined: Fri Feb 24, 2012 1:01 pm
Location: UK

Re: Roomba robot

Fri Aug 17, 2012 1:05 pm

Impressive!

How much does that thing weigh? Is the roomba OK with all that stuff on top of it? :shock:

User avatar
woopderson
Posts: 35
Joined: Fri Aug 10, 2012 4:06 pm
Location: Toronto, Canada

Re: Roomba robot

Fri Aug 17, 2012 1:11 pm

It fetches drinks and it cleans while doing so? Excellent :lol:

LawrieGriffiths
Posts: 3
Joined: Fri Aug 17, 2012 7:37 am
Location: Manchester, UK

Re: Roomba robot

Fri Aug 17, 2012 1:27 pm

The arm is quite heavy, mainly due to its batteries. The Roomba seems fine; I think it could take a lot more weight. They put a lot more stuff than this on Willow Garage TurtleBots (http://turtlebot.com/), which is an expensive kit to do roughly the same as this. If I can run ROS on the RPi and drive an Xtion, then this will be equivalent to a TurtleBot. I will probably need multiple Raspberry Pis to handle the load.

JoeDaStudd
Posts: 274
Joined: Fri Jan 27, 2012 1:34 pm

Re: Roomba robot

Fri Aug 17, 2012 3:51 pm

Awesome job.

How do you control it?
Just sending commands forward, backwards, left, right or can you program in to have set locations?
I know the more expensive models can self dock using something similar to gps.

I was thinking about doing something similar with a RC car, but alas I never managed to find a powerful enough rechargeable one within budget.

LawrieGriffiths
Posts: 3
Joined: Fri Aug 17, 2012 7:37 am
Location: Manchester, UK

Re: Roomba robot

Fri Aug 17, 2012 8:28 pm

The Roomba serial protocol (http://www.irobot.com/images/consumer/h ... manual.pdf) is very flexible. It includes a command to dock the robot. You can also detect virtual walls using the Roomba infrared beacons. I use pyserial to send commands via a USB connection to an Arduino. There is a USB adapter you can buy instead. I am using a variant of the code at http://www.aonsquared.co.uk/robot_arm_tutorial_1 to control the arm.

I currently have keyboard command like, forward, spin left, stop, etc. The Roomba detects bumping into things, going over cliffs etc., so its easy to program simple autonomous behaviours like the Roomba uses when cleaning a room. I have done a very simple version of this.

The Roomba does not map a room, so does not know about locations other than the dock and virtual; walls. However, if you use the ROS turtlebot code (http://turtlebot.com/) and a Kinect or Xtion, you can map rooms and then it becomes possible, in theory, to program it to do things like "go to fridge and fetch me a beer".

Return to “Automation, sensing and robotics”