We worked on building a telepresence robot. A telepresence robot is a robot that allows one person to, in a way, be in two places at once and interact with people from far away. Potential applications are far-ranging, from hospitals (relatives who can't travel making visits) to business meetings (attending a meeting in another country without traveling).
A camera on the top provides 360˚ vision for navigation in crowds, one on the front is for communication, and the final one, on an extendable arm, can search for obstacles on the ground and read documents sitting on a table. There's a display on the front that can be used for two-way videoconferencing, or display images or other files.
There's another, more morally challenging use case for this robot: government surveillance. The robot can be programmed to operate semi-autonomously with relative ease, and it could be used to observe crowds or record video for later analysis by law enforcement. We strongly discourage this use case due to privacy risks, but it would be possible.
The robot is powered by a computer running an interface.js server passing information into Max MSP Runtime. Video data can be sent over facetime or skype, or potentially webRTC. The interface is a mobile-compatible website with touch-friendly controls, and data is sent to the computer over websockets. The computer then sends data to a pair of microprocessors which pass it to the motor controller.