Featured Product: Stribe1
Lighted Touch Strip

Javascript Tree Menu
Aibo the Trashbot by slankton | Project Showcase at CuriousInventor.com
make a new project
2007-03-23-phoenix-spring-b_thumb
Aibo the Trashbot ( - 0 + ) by slankton (other projects)
Cute_aibo
May 01 2006 completed

I had a lot of fun “teaching” a Sony Aibo to find and pick up “trash.” This project uses some rudimentary computer vision, simple tracking, audio location, and neural network classification. Plus, its cute!

::Motivation::

This robot, is really just a cute project to play around with the Aibo. However, we made up a whole “back story” so, here it is: There are disorganized objects in the world such as litter, household clutter, etc.

It sure would be nice if there was a robot that could find, classify, acquire and put away that stuff! Lets make the Aibo do that! So, we used green geometric shapes to represent “trash.” The dog finds, classifies, and picks up the trash, then brings it to a base station.

::Locomotion & Implementation::

We used URBI & liburbi for Matlab for all the programming. I’m a big fan of Matlab, of course, and the URBI package made interfacing to the Aibo a breeze. URBI also has a bunch of built-in functions for locomotion. Also, you can use the Webots simulator to play with the Aibo virtually… This is great if
A) you don’t have an Aibo, or
B) you don’t want to deal with charging its batteries!

::Sensing::

We used rangefinders for a basic collision avoidance and for localizing on the object when we were ready to pick it up. To do this, we recorded the distance the robot sees when looking “at infinity” as its head sweeps around Then, we compare that with the values we get in situ to make sure there’s an object there. We also use some cooler sensors like stereo microphones, and vision.

::Audiolocation::

We wanted the robot to be able to return to a “home base” with his collected “trash.” To do this, we had the base broadcast a tone ( we wanted it to be supersonic, but the mics weren’t good enough, so we used 2kHz). Then, based on the phase difference in the two microphones, we determined the angle to the source. This is a technique known as Phase Interferometry.

::Vision::

Since we cheated a little and made all of our objects green, segmentation was simplified somewhat. We mapped our image to a chromatic color space known as YBR. This has three components like the familiar RGB, but Y is intensity (the grayscale version of this image), and B and R are the percentage of red and blue respectively that make up the intensity. Now, based on some training data, we produced a probability distribution function for the objects very similarly to these guys. Based on this probability we can extract segmentations. These are important for tracking the object (we extract its centroid), and for classification…

::Classification::

The geometric shapes that represented different kinds of “trash” were cubes, spheres, and tetrahedrons. We used a neural net for classifying the objects. We tried a bunch of features before finding one that worked well. The trick finally ended up being border angles. We computed the angle from one point to the next along the border of the shapes. This ended up being a great way to do shape classification with neural networks!

We used a backpropogation network and did the whole implementation with the Matlab toolbox. I was amazed how well it worked.

::Conclusion::

It would be fun to try to do this with fewer assumptions (more complex vision, more object classes, etc.) Also, the Aibo wasn’t really the best platform for this application. A wheeled robot would have been much more capable (but far less cute).

Check out the full description, source code, and all the pictures at my site: Aibo the Trashbot Project

Also, check here for current projects and research: shawnlankton.com

Cute_aibo Angles_diagram_thumb