Modules - The-Bug-Bashers/iBOARCode GitHub Wiki

What is a Module?

The iBOAR system is organized into independent modules (services) that each handle a specific aspect of the robot’s behavior.
Modules communicate using MQTT (Message Queue Telemetry Transport) - a lightweight publish/subscribe messaging protocol.

  • Each module can be developed, tested, and deployed independently.
  • Modules communicate by publishing or subscribing to MQTT topics.
  • This architecture allows flexibility, fault tolerance, and scalability.

Available Modules

Click on a module below to see its documentation, setup, and usage instructions:


Dependencies

  • Linux (tested on Arch)
  • MQTT Broker: Mosquitto
  • C++ build tools
  • Java, Maven, Spring Boot
  • RPLIDAR SDK

[!TIP] The first setup script installs all the dependencies automatically.


Conventions

  • Always start the MQTT Broker first, then start individual modules.
  • Use named screen sessions so that utility scripts (like stop.sh) can manage them correctly.
  • Each module page provides basic commands for build, run, test, and stop.
  • Every dependency is autocratically installed by the setup.sh script

[!TIP] There are scripts which automate the start and stop process.