I’ve been playing with three robots this summer:

Carnegie-Mellon’s Educational Robot – “The Finch” iRobot Roomba Pet Series 562 Vacuum Cleaning Robot “Moe” – Home-brewed Arduino-based Robot

Carnegie-Mellon announced “The Finch” on May 5th and I only waited a few days before deciding I had to have one. The Finch was developed as an educational tool and as a potential textbook replacement. At $99, it is an affordable personal robot that can also be used as a sophisticated input device. There is also a wealth of available material for programming The Finch and for using it in the classroom.

The Finch comes with a long USB cable and is meant to remain tethered thereby foregoing the need for batteries and comes equipped with the following hardware:

  • Three obstacle sensors
  • Two light sensors
  • Temperature sensor
  • Accelerometer
  • Two motors and attached wheels
  • Full color LED in “beak”
  • Internal buzzer

The Finch is fun and easy to program in a variety of languages, though its native language is Java. I hope that we can use The Finch in our programming classes here at PSCC. The Finch is a textbook that students will actually want to “read.” The curious among them will dissect it and make it do unbelievable tricks. The gifted will see it as a doorway to many other kinds of knowledge.

I had a great time playing with The Finch, but the housework (and everything else) suffered as a result. The floors looked terrible and cat hair seemed to be hanging off of everything, so I did the logical thing – I cleaned the floors.

LOL. I didn’t really do that of course. Instead, I finally broke down and bought a Roomba. (Click on the picture to the left to see Persephone’s first encounter with it.)

I’ve always been curious about the Roomba robot vacuum cleaner and its sibling the Scooba floor washing robot. Both are products of the iRobot Corporation, formed by Rodney Brooks, Colin Angle and Helen Greiner from MIT’s Artificial Intelligence Lab. I became a fan of Rodney Brooks after watching him in the movie “Fast, Cheap and Out of Control” and I also just read his book “Flesh and Machines: How Robots Will Change Us.”

Brooks has made a career out of challenging the existing techniques and underlying beliefs of the Artificial Intelligence community. He asserts that his mode of thinking about any problem is to first negate the prevailing belief that underlies the previous research and to ask what if this belief is not true? What if the supposed limitations were not limitations after all?

Brooks felt that the underlying belief of the AI community was that robots needed a top-down intelligence that mapped out the landscape and then instructed the various motors to navigate through. He wondered why “simple” creatures like insects were able to navigate an ever-changing real-world landscape with grace and dexterity, while robots required immense computing resources but still could not operate in changing real world situations, requiring instead artificial static environments.

The Roomba embodies Brooks‘ “New AI” ethos. Its excellent performance belies the fact that it lacks of an overall plan. It takes the Roomba much longer to vacuum an area than a human (unless the human is like me in which case the floors never get done), and it goes over the same places many times, but it eventually gets almost the entire floor cleaned. There is no algorithmic guarantee that all the space has been covered, but I have been very impressed with its performance (but to be honest, it’s been so long I’m not exactly sure what the floors are supposed to look like when clean).

iRobot also sells a development platform based on the Roomba, as well as a variety of ground-based and even maritime robotic platforms for developers to create their own robots.

I have been wanting for some time to create a robot from scratch. I’ve used two different small robot platforms in my “Introduction to Information Technology” class. We used the Parallax Boe-Bots a few years ago and more recently the Lego Mindstorm NXTs. After whetting my appetite with the The Finch and the Roomba, I decided to build a robot of my own design.

On May 10, 2011 at Google I/O, Google announced their intention to work with Arduino to create an open-source development environment for creating Android peripherals. Arduino makes open-source microcontroller boards than can be used to communicate with the Android, or to make robots. The Google announcement was a good incentive for me to learn something about the Arduino environment, so I decided to use an Arduino board for the brains of my home-brewed robot.

Here is what I’ve done so far:

  1. I decided to cannibalize one of the Parallax Boe-Bot platforms. I replaced the Boe-Bot’s BASIC Stamp microcontroller board with a small piece of Plexiglas onto which I mounted an Arduino Uno microcontroller board and a small breadboard for connecting sensors and servos to Uno pins.
  2. I bought and assembled a sub-micro pan-tilt kit with two servo motors to act as a neck.
  3. I made a head out of a cardboard box by cutting holes to mount the eyes (Ping Ultrasonic Range Finder), ears (Passive Infrared Motion Sensors), mouth (a micro-sized speaker) and antennae (an RGB LED).
  4. I mounted the pan-tilt kit on the front of the plexiglass mounting board.
  5. I wired the sensors and servos to the Arduino Uno through the breadboard.
  6. I wrote an initial program in the Arduino IDE to sense motion on either side and if motion is detected, to rotate the head in the direction of the motion and tilt the head up and down.

You can click on the image above (or here) to see a short video of the robot moving its head around.

My ultimate goal is to create a “social robot.” More on this in a later post. I’ll end with a list of some of the robot-related videos, books and papers that I’ve been looking at this summer:

I also found that there is a local robotics group – the Knoxville Area Robotics Club which is made up of a great group of people.