Scalable Robot Collective Resilience by Sharing Resources

Read full text
Authors: Kevin Holdcroft, Anastasia Bolotnikova, Antoni Jubés Monforte, Jamie Kyujin Paik
Cited by: 0

Abstract

Scalable Robot Collective Resilience by Sharing Resources Authors: Kevin Holdcroft, Anastasia Bolotnikova, Antoni Jubes Monforte, Jamie Paik - Reconfigurable Robotics Lab (RRL), EPFL This repository contains the code relevant to controlling and communication of RRL's Mori3 (doi: 10.1038/s42256-023-00676-8) with local resource sharing. Overview ESP8266: Control for ESP8266EX wifi chip External: Overall external control MoriController.X: Main low-level controller PowerShareCharacterisation: Characterisation for local power sharing circuit SensorFusionExperiment: Data generation for the sensor fusion experiment TopologyCalculations: Algorithm for calculating the impact of local resource sharing, among all topologies for a given number of modules. TwoModules_SharedPowerCommsSensing: Experiment from two modules, with one without critical resources ESP8266 WiFi Firmware flashed via Arduino IDE. ESP8266 hardware must be installed: https://arduino-esp8266.readthedocs.io/en/latest/installing.html The above includes the following libraries: ESP8266WiFi.h ArduinoOTA.h External Runs the GUI for operating the Mori3. Execute python3 mainMori.py located in the External folder An MQTT broker is needed handled by a desktop running Ubuntu 20.04 or Raspberry Pi. The broker should have a fixed local IP of 192.168.1.2 Mori controller The main controller of a module consists of a microcontroller driving all core functionalities that interfaces with an ESP8266 over Serial. The 16-bit microcontroller from Microchip, dsPIC33EP512GM604 (datasheet), is programmed via (MPLAB X IDE). PowerShareCharacterisation The characterisation data from the power sharing circuity, and code for generating the graphs in the power sharing characterisation. SensorFusionExperiment The data and code for generating the graphs in the motion capture experiments, demonstrating sensor fusion. TopologyCalculations The data and code used to assess the failure rates of different module topologies. generate_save_graphs.py creates the topologies / failure mode configurations. The topologies are saved into .pkl into the following folders: CirclePickles LinePickles TripodPickles DogPickles WheelPickles Pickles1 Pickles2 Pickles3 You will need to create the folders in the same directory. plot_load_different_probs.py generates the probabilities from the graphs Both can be modified internally to generate the different topologies, with the functions generating the different topologies in the code. TwoModules_SharedPowerCommsSensing The data and code for generating the graphs in the experiment with two modules. One is operating without power, communication, and sensing. Folder corresponding to manuscript graphs This repo contains all software and data to recreate the graphs in the corresponding manuscript: Fig 1: TopologyCalculations Fig 4: TwoModules_SharedPowerCommsSensing Fig 5: SensorFusionExperiment Fig S1: PowerShareCharacterisation Data for graph generation is not applicable to Figs 2, 3, 6, S2, S3, and S4

Publication details

Journal / source
Zenodo (CERN European Organization for Nuclear Research)
Publication date
8 January 2026