Robots are no longer just machines programmed to perform a specific task. The future of robotics depends on the ability of these machines to work together in complex networks and coordinate their actions effectively. As a result, the topic of connectivity in robotics has gained significant importance, becoming a key factor in ensuring the overall efficiency and success of robotic systems.

At Spyrosoft Synergy, we recognise the needs of robotics in the field of communication and we strive to meet them by implementing the best possible solutions. To this end, we have established a partnership with Staex, whose product stands out and brings a new quality to the field of communication for robotics (and beyond).

In this article, I’ll explain the connectivity challenges that robotics is facing these days and I’ll explore possible uses of Staex technology to solve them.

What is Staex?

Staex is a revolutionary networking and software orchestration platform. It is a reliable, encrypted, and easy-to-manage system that offers full peer-to-peer communication with no single-point-of-failure.”

Staex has two components:

– StaexMCC (Mesh Companion Container) – for networking

– StaexD (Staex Daemon) – for orchestrating single-board computers in large scale distributed systems

Both are designed to be fully peer-to-peer and run on resource-constrained devices, like industrial IoT and robots.

In this article, we’ll focus on StaexMCC, as it offers certain distinctive features that could be potentially used to solve some of the connectivity challenges that the robotics industry is facing these days.

What is StaexMCC?

StaexMCC is an industrial-grade VPN. It provides an overlay network for all robots and clouds that enables full connectivity between applications running on nodes within the network. The connection is reliable, encrypted and fully transparent for the applications. It is designed to provide reliable connectivity over unreliable networks. Thanks to the state-of-the-art congestion control algorithms and distributed architecture, StaexMCC provides the best performance, even for networks with high packet loss.

MCC is based on a Distributed Hash Table (DHT) – Kademlia as the underlying DHT technology.

What is Kademlia?

Kademlia is a decentralised, peer-to-peer (P2P) network protocol that enables nodes in a distributed network to locate each other and share information efficiently. It was introduced in 2002 by Petar Maymounkov and David Mazières and is known particularly for its use in the distributed hash table (DHT) of the BitTorrent protocol.

The main features of Kademlia include:

1. Decentralisation: There is no central authority or server in the network. All nodes have equal roles and responsibilities in maintaining the network’s functionality.

2. Scalability: Kademlia is designed to handle a large number of nodes, making it suitable for applications with a vast user base.

3. Routing: Kademlia uses a unique XOR-based distance metrics to determine the proximity between nodes, enabling efficient routing and reducing the number of hops required to locate a particular node.

4. Fault tolerance: The protocol ensures data redundancy by storing multiple copies of each data item across different nodes in the network. This redundancy makes the network more resilient to node failures and data loss.

5. Self-organising: Kademlia networks self-organise and adjust to achieve optimal performance based on the number of nodes and their connection capabilities.

Due to its efficiency, scalability, and resilience, Kademlia has been widely adopted in various P2P applications, such as file sharing, distributed computing, and content distribution.

How does it work?

In the Kademlia protocol, routing is based on a unique XOR-based distance metric, which helps to efficiently locate nodes and share information in a distributed network.

Each node in the network has a unique identifier (Node ID). The distance between two nodes is calculated using the bitwise exclusive OR (XOR) operation on their Node IDs. Each node maintains a routing table containing information about other nodes in the network.

When a node wants to find another node or a particular piece of data, it initiates a lookup process. The searching node starts by querying the nodes in its own routing table that are closest to the target Node ID. These nodes, in turn, provide information about nodes closer to the target. This iterative process continues until the searching node has found the target node or has exhausted its search.

The example lookup process is shown on the diagram:

Connectivity in Robotics with Staex

Source: https://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf

As you can see, the lookup process has complexity of O(log2 (n)). That means for a network with 2^n nodes it will take at most n steps to find that node!

The original Kademlia protocol defines a 1-to-1 key/value lookup, while it’d be desirable to have a 1-to-many discovery, so that many providers can be registered for the same service, allowing for fault-tolerance and scalability. Staex has expanded the capabilities of the protocol to include that feature.

How Staex can help us solve connectivity challenges?

It is absolutely essential that networking in robotics is reliable, secure, scalable and efficient. StaexMCC adds significant value to achieve those characteristics.

Reliability

StaexMCC is designed to provide reliable connectivity over unreliable networks. Thanks to the state-of-the-art congestion control algorithms and distributed architecture, it provides the best performance, even for networks with high packet loss.

Security

StaexMCC provides end-to-end key-based encryption for all connections within the MCC network. It uses certificates to alleviate key distribution problems for large scale deployments. MCC is written in Go, but it’s worth noting that it’s currently being rewritten in Rust – a modern, safety-oriented programming language.

Scalability

Thanks to MCC being based on an augmented Kademlia DHT protocol, the network is fully decentralised, self-organises and adjusts to achieve the best performance depending on the number of nodes and their connection capabilities. As a result, it is more resistant to large-scale traffic, damage or even DoS attacks.

Efficiency

In the mobile robots industry, energy efficiency is one of the key aspects. Mobile devices are battery-powered, so their capabilities relies heavily on power consumption. Even though electric energy storage technology is evolving quickly, mobile robots still relies on imperfect chemical batteries. It would be highly inefficient and imprudent to unnecessarily consume electrical energy just to ensure reliable connectivity. The Staex MCC strives to limit the device resource usage to minimum by optimizing the software for small IoT devices and minimising network traffic overhead.

Staex in Spyrosoft robots

Since at Spyrosoft Synergy we develop solutions for robotics, having a technology that solves so many connectivity challenges seemed not only beneficial for our customers, but also for our internal research. We have evaluated Staex internally and verified its capabilities in two use case scenarios: a distributed DHT database for data sharing and an overlay network for simplified connectivity.

Test environment

For testing, a set of virtual machines running Ubuntu 22.04 Server connected within private networks behind NAT. One node has been made publicly available to all other nodes with public IP address to enable Staex network bootstrap. This setup enabled testing most of the Staex key features.

Case 1 – Exchanging data over DHT database

In this scenario, we tested the ability of Staex to exchange data between nodes over decentralised database (DHT) and usage of the provided REST API.

We simulated a node joining the network and publishing some arbitrary data. At the end, the node was disconnected from the network and the data it published was tested whether it was still available within DHT.

An example of adding data to the database:

user@demo_node1:$ curl -X POST http://127.0.0.1:8080/value -H "Content-Type: application/json" -
d '{"key": "demos", "value": "demo1", "expiration": 24}' 

An example of retrieving data from DHT:

user@demo_node2:$ curl -X GET http://127.0.0.1:8080/value/demos 

The distributed nature of the Staex network is a big advantage. There’s no need for any central database to keep the whole product networking ecosystem. This means there’s no single point of failure!

It is, however, designed for relatively large number of nodes. Typically the data in DHT is spread over 20 closes neighbours in the network. While Staex doesn’t add much value to small networks of nodes, it’s worth noting its capabilities to scale over a huge number of nodes.

Case 2 – Direct networking with virtual overlay network

In this scenario a Staex overlay network has been tested and evaluated. In the virtualized environment, two private networks has been connected with each other, keeping the nodes behind NAT:

Each node has been assigned a unique, virtual IP address within the Staex network. To run the node with VPN enable it is as simple as below:

$ mcc -net -net-ip 172.16.0.xx/16 

In conclusion, there was no need for a complicated and time-consuming VPN server configuration. Nodes were able to interconnect with each other in fully decentralised manner!

Simplicity of Staex overlay network, decentralisation and it’s secured end-to-end encryption adds a lot of value that many robot makers would benefit from.

To sum up

Staex MCC is a very good tool that can solve many connectivity challenges in the robotics industry. The simplicity of its use, security and decentralisation make Staex a distinctive technology that brings innovation to the market.

It is worth mentioning that Staex can bring benefit to many related industries, like transport, or public services. Nowadays, the boundary between a regular device and a robot is gradually blurring. Many cars or everyday devices are slowly becoming full-fledged robots, for which Staex may prove to be a valuable technology addressing communication challenges.

Are you looking for a company to which you can entrust your robotics project? Here you can find more about the scope of our professional robotics services and how we bring ideas to life.

About the author

Connectivity in Robotics with Staex

Slawomir Cielepak

Lead C++ Software Engineer