Close

MESH analysis

A project log for Swarmesh NYU Shanghai

Scalable swarm robot platform using ESP32 MESH capabilities and custom IR location

rodolfoRodolfo 09/11/2019 at 03:450 Comments

So far we have been switching from MicroPythonArduino IDE, Platformio to IDF. Now that we are tuning up the first prototype, we are re-exploring the needs of our swarm network.

Espressif provides an insightful explanation about how it handles MESH communication: 

https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/mesh.html

So far we have been working with their IDF environment to develop basic tests. Surprisingly enough, there is an Arduino Library that could make our work approachable by beginners: painlessMesh.

With the first tests of this library, one of the essential things that we noticed was that nodes were dropping and re-appearing. Also the switching seemed to be a bit mysterious, so there was a bit of reluctance in our team of handling a black-box. So we decided to investigate MESH a bit more. 

The first key concept that was key to understand the behavior was the automatic root node selection. 

Diagram of Self Healing From Root Node Failure

Another concept that helped us understand what was going on was this diagram for root node switching failure.

Diagram of Root Node Switch Example

Among these, some of the node behaviors were clearer. Still, the painlessMesh library has many dependencies and among them, the examples use a task scheduler. This was far from ideal for our application, but thankfully we realized that MESH takes care of all the internal switching and that handling the data stream is up to the user software. 

Discussions