Robots can be controlled by a microcontroller (MCU) or a computer installed on-board – autonomous robots, or connected to a computer via communication channel – remotely operated robots. Both approaches have pros and cons:
- Autonomous robots have everything they need on-board, they do not depend on a quality and bandwidth of communication channels. But they may have limitations on computer performance and size, its not easy to modify controlling algorithms and monitor state.
- Remotely operated robots can be controlled by more powerful computer, monitoring is available for operator or developer, modification of a controlling program is much easy. But quality and bandwidth of communication channels are critical and limiting part of such system.
Intermediate solution is develop the controlling program on remotely operated robot and when it is completed – setup the program on on-board computer, leaving communication channel only for monitoring which is not such critical.
This article describes how remotely operate a robot where on-board MCU (represented by Arduino) takes care about hardware – controlling motor-drivers, monitoring sensors, providing communication, etc; a remotely connected computer displays monitored data and runs controlling algorithm. Program will be implemented on C++. Platform is Ubuntu.