Complete guide to running multi-robot exploration simulations
- 📋 Table of Contents
- ⚙️ Prerequisites
- 🎯 Generate Rendezvous Plan
- 🏁 Start Simulation
- 🔧 Select Policy
- 📊 Analysis & Results
Before running the simulation, ensure you have:
- ✅ Ubuntu 20.04 LTS
- ✅ ROS 1 Noetic (properly installed and sourced)
- ✅ All dependencies from working environment guide
- ✅
tmuxinstalled:sudo apt install tmux
📝 Note: Make sure to source your workspace:
source devel/setup.bash
Execute the rendezvous plan generator from the repository root:
python3 ./rendezvous_plan_generator/RendezvousMILP.py 3 5 30 2 5 1.0 10.0| Parameter | Description | Example Value |
|---|---|---|
robots |
Number of robots | 3 |
rendezvous_events |
Total time steps | 5 |
duration |
Mission duration (minutes) | 30 |
robots_per_plan |
Minimum gap between meetings | 2 |
minimum_job_size |
Maximum gap between meetings | 5 |
alpha |
Work done weight | 1.0 |
beta |
Job deviation weight | 10.0 |
The generator creates a rendezvous plan and saves it to the configuration folder:
🔬 Research: Plan details and methodology are explained in our published papers
./src/scripts/demo.shThis will:
- 🎮 Open Gazebo simulator
- 📊 Launch RViz visualization
- ⚙️ Initialize base simulation environment
Once Gazebo and RViz are loaded:
./src/scripts/spawn_robot.shThis will:
- 🤖 Deploy all robot nodes
- 🗺️ Initialize mapping components
- 📡 Start communication systems
Wait until you see the occupancy grid in RViz, then:
./src/scripts/start_exploration.sh Silva2025| Method | Description |
|---|---|
Silva2025 |
Latest MILP-based approach with Rendezvous Tracking for Unknown Scenarios (RTUS) (ICAR 2025) |
Silva2024 |
Communication-constrained method (IROS 2024) |
priority_allocation |
Priority-based allocation |
randomized_social_welfare |
Social welfare optimization |
yamauchi_1999 |
Classical frontier-based approach |
Pass the method as a parameter when starting exploration:
./src/scripts/start_exploration.sh <METHOD_NAME>Edit the method variable in spawn_robot.sh:
# Available options:
method="Silva2025" # Default - Latest MILP approach
# method="Silva2024" # IROS 2024 method
# method="priority_allocation"
# method="randomized_social_welfare"
# method="yamauchi_1999"The simulation automatically saves a ROS bag file containing:
- 📡 Communication logs - Rendezvous events and data exchange
- ⏱️ Performance metrics - Waiting times at rendezvous locations
- 📊 Coverage statistics - Total and average area explored
# Default location
./bags/<timestamp>.bag# Complete simulation workflow
python3 ./rendezvous_plan_generator/RendezvousMILP.py 3 5 30 2 5 1.0 10.0
./src/scripts/demo.sh
./src/scripts/spawn_robot.sh
./src/scripts/start_exploration.sh Silva2025| Issue | Solution |
|---|---|
| Gazebo won't start | Check ROS environment: echo $ROS_PACKAGE_PATH |
| No occupancy grid | Wait longer, ensure gmapping is running |
| Robot spawn fails | Verify all dependencies are built: catkin build |
| Script permissions | Make executable: chmod +x src/scripts/*.sh |
- 📖 Explore robot configurations
- 🗺️ Learn about available maps
- 🔬 Read our research papers
- 🤝 Contribute to the project
Need help? Submit an issue 🐛
