Today I wanted to share a project I’ve been working on for the last couple months. At the company I work for, our main office is in Chicago, but the director of development lives and works in Toronto. We decided he needed a telepresence robot so he could attend meetings and interact with everyone in Chicago.
I used a Nexus 10 and a Roomba Create for the robot. The robot is controlled by a Python program with a graphical joystick that interprets movement commands and sends them over the internet to the Android. The Python interface also has a text input field where you can type in what you want the robot to say, and the robot will say it in a robo-voice.
Here’s a video of me taking it for a test drive around the office. (If this link doesn’t work for you, click here to watch it on Vimeo)
The Android tablet runs a service that listens for new messages and parses them into commands for the Roomba. It then sends the commands over it’s USB connection to the Roomba’s serial port. Most Roomba hacking projects use a Bluetooth receiver to relay messages to the Roomba. I like this way better because it saves you the cost of a Bluetooth receiver, and eliminates connection issues. As soon as the Roomba’s USB cable is connected to the Android (by way of a USB OTG cable), the Android recognizes the device and launches the telepresence app.
The video chat part is done over Skype. The Android tablet is set to auto-answer Skype video calls, and when it receives a call it notifies the telepresence app so it can make sure all the connections are ready to go.
We are working on welding up an aluminum body for the robot, but for the time being it’s body is an Amazon box. Further enhancements to the robot might include a Nerf gun attachment or beer launcher. I’ll post more pictures as it evolves.
Special thanks to Kerry McCrory for the awesome video!