Main Content

Scout. WebRTC controlled robot

Scout is an open-source robot platform. It works with, supports real-time video, and controls streaming over WebRTC.

A few months ago, I got an idea to build a robot you can control over the internet. The main requirement for this project is to avoid any overhead on the network setup. It should work without the real, known, or static IP address of the robot. Also, the implementation should work well with cellular connections.

Another critical point that is worth mentioning is latency. If the delay between user action and feedback will be significantly more than 100 ms, it will be uncomfortable to interact with such a robot. In other words, if I’m observing the video stream from the robot and pressing the key on the keyboard to move it forward, I’ll feel frustrated if I’ll see the response to my action in 500 ms.

Considering the requirements, the solution that I chose is peer-to-peer communication with WebRTC. It supports both media and data streaming which is making it almost perfect for such applications. It is almost because we need to host the server to establish communication between the robot and control panel. Also, the implementation might be a bit tricky.

That’s why I decided to build beforehand to have a generic service for building robotics applications, so it took me several months of preparation before making the robot itself.

Robot design
The Scout platform is four wheels drive with tank-a-like differential steering. It has a simple suspension to enable movement on uneven terrain - the halves of the robot’s body are connected via join. There are no dampers in place, but soft silicone wheels are reducing vibration a lot.

The chassis is 3D printed using the PLA. All the parts are connected with nuts and bolts. Threaded inserts are heavily used as well. Wheels are mounted on the standard 1:10 scale RC car axels.”

Link to article