My son built a Simple Telepresence Robot for a Summer / Stay-at-Home project.
What follows here will be a basic description of the Design, the Finished Robot, and a Basic Description of the Code.
Basic Telepresence Robot. Photo property of Linuxslate.com
Design Goals for a Basic Telepresence Robot:
- The Telepresence Robot should allow the operator to communicate with and interact with people at a remote location as if the operator were present at that location.
- In other words, it is just like a Zoom, MS Teams, or Google Hangouts/Chat call, but the remote caller can move around from place to place. Their presence is not fixed to a stationary device, or carried by another person.
- As with the Teleconference call, the call is not limited to the same area or "range" of a point-to-point connection. The Telepresence Robot can be anyplace that there is an adequate internet (WiFi) connection. This could be in a different building than the operator, or even on a different continent. It is different than "Radio Control".
- The Telepresence Robot should be able to move over types of flooring commonly found in a business environment, including carpet, tile, or bare floors. The Telepresence Robot should be able to move over discontinuities typically found in such an environment like thresholds or entering/exiting an elevator. For this implementation, there was no requirement for the Telepresence Robot to navigate steps. It was desired to have some outdoor capabilities such as moving over a surface made of paving stones. The Telepresence Robot should remain stable on such surfaces, including accessibility ramps.
- The caller should be close to eye level with other participants. This was implemented as a compromise between seated participants and standing participants.
- It is assumed that the operator has access to a PC, phone or tablet with internet capability, however the operator may not have the ability or permissions to install special software or an "app". The robot is controlled via a standard Web Browser. Standard teleconferencing software such as those mentioned above is used for the Audio/visual call.
What is different about a Telepresence Robot, and a "normal" Zoom Call, or other Teleconference?
The main difference is that the remote user can move around an area at the remote location; much as the remote person could if they were actually present. Here are some possible scenarios to help the reader understand the difference between Telepresence and a Teleconference.
- A retail store operator who is quarantined at home due exposure to a contagion (such as COVID-19) could continue to greet customers at the store entrance, interact with them, and guide them toward the products they wish to purchase.
- A hotel employee could guide guests to their room, or answer room service calls while continuing to have a real presence in the hotel lobby. Guests may be more comfortable having a robot come to their room than an actual human.
- A product purchaser could monitor the production (and possibly testing) of a product for procurement at their convenience and without the attendance or possible influence of an employee of the company producing the product. The purchaser could move within agreed limits to monitor the production or testing process as they choose.
- An employee could monitor a process in a hazardous area from a remote (safe) location. They could move so as to observe the process from different vantage points without needing multiple fixed cameras, or the required bandwidth of numerous cameras.
Implementation:
- The Basic Telepresence Robot is implemented as a "DOIT" Smart Tank Chassis.
- The Robot control was implemented as a DOIT provided ESPDuino and 2/4 motor controller daughter card. This provided easy USB connectivity for software development and uploading, as well as ESP 8266 WiFi connectivity (Upper Center of above picture).
- Due to the motors used and the desired power, a separate 2 Motor Controller Board from Banggood was used. (Upper left of above picture).
- Remote video for navigation is provided by an inexpensive Web-cam (Lower Center of above picture), and OpenWRT router (Lower Left of above picture).
- Power is provided by a common hobby type lithuim-ion battery.
- The motor controller function of the daughter card is currently not used, but the card is retained for future use for features like manipulators, camera pan/tilt functionality etc.