Using the 3pi platform, Bob Rudolph and Tom Eliot built a telepresence robot. The robot allows you to have a remote physical presence anywhere in cell service.
Our telepresence robot is based on the Pololu 3pi platform. We’ve added an ESP8266 wireless module that acts as a TCP client to provide remote control. It connects to the 3pi via serial. The ESP8266 uses the iPhone’s cellular data connection to connect to the internet. The iPhone runs Facetime to provide remote audio and visual.
We control the robot using a server and facetime on a computer. The server is written in Python, it takes keyboard commands and sends TCP packets.
We noticed that inhabiting the robot can cause some interesting effects. Controlling the robot can give the feeling of reduced responsibility, resulting in actions that divert from social norms. The robot lives on the floor, giving the user the perspective of a mouse. Humans and their feet become dangerous. After inhabiting the robot for more than 30 minutes continuously, I became frustrated with the helplessness I felt.
Future improvements could include: Changing to the form of the robot to be more playful and inviting. Controlling the robot using facial recognition. Scripting interactions
Robot Control Server: robotControl.py Note that the machine you are running the server on must have it's TCP port exposed to the internet. If your machine is on the 'CMU' (unsecured) network, this is already the case. Almost anywhere else, you need to set up port forwarding on your router. It also helps to have a static IP, so you never have to program a new server IP into the ESP8266.
ESP8266 code: TCPClient.ino This code is for the Arduino IDE. You can install ESP8266 support in the IDE: Enter http://arduino.esp8266.com/stable/package_esp8266com_index.json into Additional Board Manager URLs field in the Arduino v1.6.4+ preferences. The schematic for programming the ESP8266 can be found here http://www.xess.com/blog/esp8266-reflash/. They use a different utility for programming but the schematic works.
Robot code: 3pi code Upload using Atmel AVR studio