This repository setup is used to launch the Project Emerge experiment environment, including the system services, dashboard, and robot emulation.
The default scenario is Point to Leader, where all robots orient themselves toward a selected leader robot. But you can change the formation scenario from the dashboard to see different behaviors---see the Using the Dashboard section for details.
Clone the required repositories:
git clone https://github.com/Project-Emerge/Project-Emerge-system
git clone https://github.com/Project-Emerge/robot-emulationYou should now have the following folders:
Project-Emerge-system/
robot-emulation/
Before starting, make sure you have the following tools installed:
- Docker
- Docker Compose
- Python
- Poetry
Move into the Project-Emerge-system repository:
cd Project-Emerge-systemStart the required services:
docker compose up -d --build mqtt-broker dashboard neighborhood-system aggregate-runtimeThis command starts:
mqtt-brokerdashboardneighborhood-systemaggregate-runtime
Once the services are running, open the dashboard in your browser:
http://localhost:5173/
Open a new terminal and move into the robot-emulation repository:
cd robot-emulationInstall the project dependencies with Poetry:
poetry installLaunch the robot emulation:
poetry run python src/robot_emulation/main.py --robots 12 --mqtt mqtt://localhost:1883 --world-size 5.0This starts an emulation with:
12robots- MQTT broker running at
mqtt://localhost:1883 - world size set to
5.0
Open the dashboard at:
http://localhost:5173/
By default, the selected scenario is Point to Leader, where all robots orient themselves toward a selected leader robot.
Since no leader is selected by default, the robots should keep rotating indefinitely.
To select a leader:
- Click on a robot in the dashboard.
- Open the contextual menu.
- Select Make Leader.
See this video for a demonstration of the expected behavior:
After selecting a leader, the other robots should start orienting themselves toward it.
In the top-left corner of the dashboard, you can select a different formation scenario.
Available formations may include:
- Circle
- V-shape
- Other available formations from the scenario selector
Select a formation from the dropdown menu to change the behavior of the robot swarm.
See this video for a demonstration of changing the formation:
cd Project-Emerge-system
docker compose up -d --build mqtt-broker dashboard neighborhood-system aggregate-runtimecd robot-emulation
poetry install
poetry run python src/robot_emulation/main.py --robots 12 --mqtt mqtt://localhost:1883 --world-size 5.0From inside the Project-Emerge-system repository:
docker compose downMake sure the dashboard service is running:
docker compose psThen open:
http://localhost:5173/
Check that the robot emulation is running and connected to the MQTT broker:
poetry run python src/robot_emulation/main.py --robots 12 --mqtt mqtt://localhost:1883 --world-size 5.0Also make sure the system services were started before launching the emulation.
This is expected in the default Point to Leader scenario when no leader has been selected.
Click on a robot and choose Make Leader to assign a leader.
- Clone both repositories.
- Start the system services with Docker Compose.
- Open the dashboard at
http://localhost:5173/. - Install and start the robot emulation.
- Select a robot and click Make Leader.
- Optionally change the formation from the top-left selector.
Keep both terminals open while running the experiment:
- One terminal for the Docker Compose services.
- One terminal for the robot emulation.
Stopping either one may interrupt the experiment.
