Tutorial: How Anki Vector communicates?
Part 1: Protocol Buffers: How to connect distributed systems with secure connections and streaming data?
One of the key features that the Anki Vector robot (now owned by Digital Dream Labs (DDL)) allows is the ability to connect to it and control it from a computer using the Anki Vector SDK. While this might seem simple, there is a lot of technology in the way a secure connection is maintained with the robot, commands issued, and responses received. This tutorial explores this technology in detail.
The main underlying technology that Vector uses is gRPC and Protocol Buffers. The main contribution of gRPC is that it provides a standardized framework for services in remote machines to talk to one another, even when the services are built on different languages/ platforms. As an example, consider the following illustration of what happens when a program in your computer connects to Anki Vector and asks it to move up its lift
Two different devices (the laptop and the Vector robot) running two different operating systems (Windows and Yocto Linux respectively) with programs written i…