Programming and Compiler Toolchain for Swarm Robots

Team

Supervisors

Table of content

  1. Abstract
  2. Related works
  3. Methodology
  4. Experiment Setup and Implementation
  5. Results and Analysis
  6. Conclusion
  7. Publications
  8. Links

Abstract

This research aims to create an Integrated Development Environment (IDE) for swarm robots, compatible with virtual and physical platforms.

The literature review focuses on swarm programming tools and swarm behavior algorithms.

Swarm Programming Tools-based Studies

Swarm Behavioural Algorithms-based Studies

Some of the swarm behaviours that we encountered during our literature review are listed below.

Problems identified

Methodology

The following sections detail the essential steps and strategies integral to the development process.

System Architecture

The IDE features a React frontend, a Node.js backend in a Docker container, and integrates with PlatformIO and Maven compilers. It supports both Virtual and Physical Swarm Robot platforms.

High-level Algorithm Composition

The system simplifies algorithm composition for swarm behavior research, featuring a block-based visual programming interface with Google Blockly. It categorizes behaviors into atomic, pair, cluster, and global levels, enabling intuitive design and ensuring consistency between physical and virtual platforms.

Dynamic Code Generation and Compilation

The IDE converts block-based algorithms into C++ and Java code using Google Blockly. It supports remote cross-compilation via PlatformIO and Maven, enabling efficient deployment of binaries and jar files with version control for swarm robots.

Over-the-Air (OTA) Code Upload and Execution

Using WiFi and MQTT, the IDE facilitates OTA executable downloads for swarm robots, ensuring seamless updates without manual intervention while monitoring the process for accuracy.

Enhancement of IDE Capabilities

The IDE supports behavior programming, virtual arena visualization, and executable generation for multiple robots. It includes pre-developed algorithms and robust MQTT connectivity, empowering users to efficiently create and test swarm behaviors.

Experiment Setup and Implementation

Dynamic Task Allocation Behaviour

The dynamic task allocation behavior is programmed using a block-based interface, allowing users to code from scratch, use built-in behaviors, or utilize level-based blocks. In the experiment, the third approach was used, generating Java code for execution in the virtual platform. The successful results validate the IDE’s programming, compilation, and execution capabilities.

Object Finding Behaviour

In the experiment, virtual robots used object detection with obstacle avoidance to locate a specific-colored object, incorporating color detection, dynamic responses, and visualization. Physical robots used color and distance sensors for forward-path detection, adapting their position and visualization based on object proximity and characteristics.

Conclusion

The study presents a framework for swarm behavior development using a unified IDE with block-based visual programming for virtual and physical platforms. Features like code generation, compilation, and OTA updates enhance usability. Experiments on task allocation and object-finding behaviors demonstrate swarm adaptability and reliability, making the IDE a valuable tool for education and research in programming complex swarm behaviors.

Publications

  1. Semester 7 report
  2. Semester 7 slides
  3. Semester 8 report
  4. Semester 8 slides