A discussion of approaches and tools for effective telecommuting and software development.

Wednesday, July 27, 2011

DIY Telepresence Robot - Part 1

This is the first in a series of posts on how to build a telepresence robot. As I mentioned in the previous post - my robot has fundamentally improved my telecommuting experience. It facilitates casual and more personal contact with coworkers, improves the quality of communication with them, allows me to participate in impromptu discussions and meetings, enhances my feelings of involvement at the office, and improves the perception of my availability and work ethic among my coworkers. I highly recommend it to anyone who telecommutes regularly.

First off - I owe a huge amount of thanks and credit to Johnny Lee and his blog for the idea. I have been following the development of professional telepresence robots for the last 3 or 4 years with growing anticipation, because I immediately understood what a huge impact they could have on my telecommuting experience. Unfortunately their development has been slow and the few that are available are all marketed towards CEO's and upper management and thus cost on the order of $10K+. When Johnny's robot hit the Web a few months ago, it was a revelation to me. Instead of waiting for the market, I realized that even a software guy like me could assemble a working robot without too much cost or engineering expertise. I started designing my own robot almost immediately.

The result is what I consider an incremental yet much improved design over Johnny's robot. The basic design is the same. A small netbook on a raised platform mounted on a Roomba vacuum cleaner - basically just a roving netbook. Wireless communication and custom software loaded on the netbook is used to control the Roomba from a remote location and move the whole contraption around. Skype video conferencing is used to see during navigation and also to communicate face-to-face with other people. A self-charging docking station is used to keep the batteries charged and the unit powered.

Telepresence Robot

Additionally I developed a number of improvements over the original design. They are...

The power system has been completely redesigned to power the netbook directly from the iRobot battery. The electrical system is simpler, easier to construct, and more elegant. Also no dangerous and warranty voiding electrical modifications need to be made to any of the components which makes the robot much safer to install in a place of business.

A rotating "neck" has been added to the robot so that it can look up/down and side-to-side independently from the robot base. This comes in handy during navigation (avoiding floor obstacles) and when looking upwards to talk to a person that is standing.

The body frame and netbook have been reversed so that they face towards the front of the iRobot allowing the front bumper sensors to be used. The robot immediately stops when it bumps into obstacles

The body frame is simple, light, and easy to construct

The structural weight has been reduced to less than 5lbs (the carrying capacity of the iRobot). At this weight the robot has no trouble auto-docking.

A high quality webcam was added to improve vision and navigation.

The control software transmissions piggy-back over the Skype connection. No custom ports must be opened on the corporate firewall. If Skype can get out of the network, then the robot can be accessed. Likewise, the controller software only needs Skype access, so I can just as easily use the robot from my laptop at Starbucks or from an airport as I can from my home.

To be fair there are also a few disadvantages to my design. With more parts and more complexity comes less stability. Software exceptions, hardware errors, or battery drains occur fairly frequently (two or three times a week), and I often require assistance from coworkers to tinker with the robot. However, each software iteration has gradually reduced these problems. Also the additional parts are an additional expense. I created my robot for about $1000 instead of Johnny's purported $500 - although I don't actually believe his figure. That quote really only includes two major parts (iRobot and netbook) and cannot possibly include things like the docking station, body frame, etc.. The actual cost of his robot I speculate is closer to $700. My cost estimate includes all of these additional parts plus the shipping costs.

In the coming posts I will give the parts list and a detailed construction tutorial. The construction is actually quite easy requiring no special skills or knowledge (not even soldering) and utilizing only basic tools and an electrical kit. The source code, binaries, and installation instructions will be provided as well.

WARNING: The hardware design and software are offered for free without any guarantees of quality or obligations of support. I have done my best to disclose accurate information about the performance, successes, and shortcomings of the robot. Make no mistake - this is very much a prototype piece of equipment and there are still many unresolved issues, so if you decide to build one you should expect some problems and you should plan on having to monitor the robot and make frequent adjustments.

Traditional video conferencing software is arguably the most important tool used by telecommuters in the workplace today. However, remote workers know how difficult it can be to schedule a call or ask someone to set up a laptop for video chat.