Data from: Secure and secret cooperation in robot swarms
Creators: name: Castelló Ferrer, Eduardo
name: Hardjono, Thomas
name: Pentland, Alex
name: Dorigo, Marco
Publisher: name: Zenodo
Year: 2021
Subjects: Merkle trees
Swarm Robotics
Cryptography and Security
Data Structures and Algorithms
Emerging Technologies

description: The importance of swarm robotics systems in both academic research and real-world applications is steadily increasing. However, to reach widespread adoption, new models that ensure the secure cooperation of large groups of robots need to be developed. This work introduces a method to encapsulate cooperative robotic missions in an authenticated data structure known as Merkle tree. With this method, operators can provide the "blueprint" of the swarm's mission without disclosing its raw data. In other words, data verification can be separated from data itself. We propose a system where robots in a swarm, to cooperate towards mission completion, have to "prove'' their integrity to their peers by exchanging cryptographic proofs. We show the implications of this approach for two different swarm robotics missions: foraging and maze formation. In both missions, swarm robots were able to cooperate and carry out sequential tasks without having explicit knowledge about the mission's high-level objectives. The results presented in this work demonstrate the feasibility of using Merkle trees as a cooperation mechanism for swarm robotics systems in both simulation and real-robot experiments, which has implications for future decentralized robotics applications where security plays a crucial role. This dataset includes all experimental data generated for this paper.
description: <strong>Content and structure</strong> This dataset is composed of four compressed tarball files (tar.gz), each one representing one of the following categories: <code>real_robots</code> This file contains all the data collected during the real-robot experiments presented in the paper. The structure of the subdirectory hierarchy is the following: |-- (type of mission) -&gt; either foraging or maze_formation<br> | `-- R (number of robots)<br> | `-- T (number of tasks) At the end of this tree hierarchy, two folders can be seen: data and videos. Within videos, you will find one <code>.avi</code> file for each real-robot experiment. The name of the file is generated based on the experiment's timestamp (e.g., 2020-07-23-04-49-43). For each video file there is one corresponding data file (with the same timestamp) in the data folder. <code>real_robot data file (.bag)</code> Within the data folder you will find one <code>.bag</code> file per experiment. As mentioned in the supplementary material of the paper, ROS (Robot Operating System) was used in order to publish/subscribe information to/from the robots. Accordingly, we used the rosbag toolbox to record every message the robots sent/received during the experiment into a <code>.bag</code> file. Therefore, you can recreate each experiment by "playing" each <code>.bag</code> file in your ROS environment: <code>$ rosbag play file.bag </code> For more information about how to filter, reindex, or obtain additional information from these files, please take a look here. <code>simulation</code> This file contains all the data collected during the simulation experiments presented in the paper. The structure of the subdirectory hierarchy is the following: |-- (type of mission) -&gt; either foraging or maze_formation<br> | `-- R (number of robots)<br> | `-- T (number of tasks)<br> | `-- SIM (number of simulation run)<br> <code>simulation data files (.dat &amp; .json)</code> Within each SIM folder you will find two files: <code>.dat</code>, this file contains information about the progress of the simulation. In particular, how many robots completed their Merkle tree copy and at what time they did it. The structure of this file is the following: time step number of robots with a completed Merkle tree For instance, in simulations where there are two robots involved (R2), the value for the last row for the "number of robots with a completed MT" field would be 2. In this regard, the last value of the column "time step" would be the time all robots completed their Merkle tree copies. <code>.json</code>, this file contains a list of objects (one for each time step) that describes the folllowing information: <code>robots</code> -&gt; list containing all information from the robots: <code>id</code> -&gt; id of the robot currently displaying information <code>mk</code> -&gt; Merkle tree object for robot with <code>id</code> as identifier <code>by_robot</code> -&gt; leaf id completed by the robot itself <code>leaf_received</code> -&gt; leaf id received from another robot <code>from_robot</code> -&gt; robot id that sent the leaf described in <code>leaf_received</code> <code>neighbors</code> -&gt; information about the robot neighbors <code>id</code> -&gt; robot neighbor id <code>range</code> -&gt; robot neighbor range <code>time</code> -&gt; current time step <code>Merkle_tree_statistics</code> This file contains all the data collected in order to recreate Table 1. Each <code>.pickle</code> file contains three lists (one for each LEGO model) for the following concepts: <code>merkle_creation</code> -&gt; creation time of the complete Merkle tree <code>proof_generation</code> -&gt; proof generation time for a random leaf in the Merkle tree <code>proof_validation</code> -&gt; proof validation time for a random leaf in the Merkle tree These files have been generated using the pickle python library. This library allows to convert a python variable to bytestream and viceversa. You can read each <code>.pickle</code> file and convert it into a python "list of lists" variable by ussing the following command in your python environment: <code> # Load the pickle library<br> import pickle</code> <code> merkle_creation_times = pickle.load( open( "merkle_creation.pickle", "rb" ) ) </code> More information about the pickle library can be found here. <code>marketplace</code> This file contains all the data collected during the IRIDIA marketplace set of experiments. The folder structure of this directory is the following: data -&gt; <code>.bag</code> files for the completed services videos -&gt; <code>.avi</code> files for the completed services pics -&gt; <code>.png</code> files for the completed services <strong>Demos</strong> This list contains one high-quality demo video for each scenario presented in this dataset: M1. Foraging - 16 Robots, 8 Tasks (Simulation).mp4 M2. Foraging - 16 Robots, 8 Tasks.mp4 M3. Maze formation - 16 Robots (Simulation).mp4 M4. Maze formation - 16 Robots.mp4 M5. Tangible Swarm (Supporting features).mp4 Funding provided by: H2020 Marie Skłodowska-Curie Actions<br>Crossref Funder Registry ID: http://dx.doi.org/10.13039/100010665<br>Award Number: 751615Funding provided by: Fonds De La Recherche Scientifique - FNRS<br>Crossref Funder Registry ID: http://dx.doi.org/10.13039/501100002661<br>Award Number: