Thursday, January 14, 2010

Linguo: a Telepresence Robot Using an iRobot Create

Two Christmases ago my roommates gave me an iRobot Create. I decided to make a telepresence robot similar to the one my friend, Damon, constructed.



Hardware
The key electronic components were:
  • iRobot Create® Programmable Robot
  • Samsung NC10 Netbook
  • Quickcam 4000 (an old one I had lying around)
The hard parts in constructing this robot was mounting everything cleanly and securely. I turned to acrylic and a laser cutter for this task. While this was my first foray into this type of construction, it went very well. A critical step in this process was constructing a prototype using cardboard and hot glue. This caught several physical mistakes that came as a result of my poor spatial reasoning.



Software
With the hardware in place, I wrote two quick python scripts to control Linguo. One to get the commands from the user and the other to actually control the robot. These talked via Skype using its API. Skype was an excellent choice for this project because both video and audio came for free. In addition communication is done between screen names so there was no worrying about changing IP addresses.

The control script was pretty simple. It initiates a call via Skype, maps key presses to commands, and sends those commands as a Skype text message.


The other script (the one controlling the robot) automatically answered the call (super convenient), turned on the video, and waited for commands. When it received commands and requests, it controlled the Create and read from its sensors using PyRobot.

Lessons
  • Everyone's first reaction to Linguo is to stand in front of it and "see what it does." Damn you human curiosity!
  • People are very hard to identify by their shoes.
  • Houses are surprisingly dark, it would have been nice to have a flashlight.
  • Operating live controls (i.e. where the length of the button press denotes how far the robot should go) over a high latency connection is very frustrating.
  • Don't think driving the robot in your room next to your computer is truly the same as controlling it from New York to San Francisco (which I did). You miss very important things like having a detailed charge and battery status and important perspective on how hard it is to drive using just the camera and microphone.
  • Telepresense is frikin' awesome!
Technologies: iRobot Roomba, Python, Skype, TkInter, PyRobot

3 comments:

Unknown said...

Terrorized any pets with it yet? Would only be fair to let Damon do that after what we did to his cat.

Adelaide said...

You are such a NERD

Thomas said...

Brett: For some reason whenever I ask my friends to "borrow their dog so I can chase it with a robot" they don't seem very interested. Maybe I need to work on my pitch :)

Addie: What ... you know you want one.