Skip to content

Latest commit

 

History

History
190 lines (130 loc) · 4.75 KB

File metadata and controls

190 lines (130 loc) · 4.75 KB

🚀 Usage Guide

Complete guide to running multi-robot exploration simulations


📋 Table of Contents


⚙️ Prerequisites

Before running the simulation, ensure you have:

  • ✅ Ubuntu 20.04 LTS
  • ✅ ROS 1 Noetic (properly installed and sourced)
  • ✅ All dependencies from working environment guide
  • tmux installed: sudo apt install tmux

📝 Note: Make sure to source your workspace: source devel/setup.bash


🎯 Generate Rendezvous Plan

Step 1: Run the Plan Generator

Execute the rendezvous plan generator from the repository root:

python3 ./rendezvous_plan_generator/RendezvousMILP.py 3 5 30 2 5 1.0 10.0

Parameters Explanation

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

Generated Output

The generator creates a rendezvous plan and saves it to the configuration folder:

Rendezvous Plan Visualization

Example rendezvous plan visualization

🔬 Research: Plan details and methodology are explained in our published papers


🏁 Start Simulation

Step 1: Launch Simulation Environment

./src/scripts/demo.sh

This will:

  • 🎮 Open Gazebo simulator
  • 📊 Launch RViz visualization
  • ⚙️ Initialize base simulation environment

Step 2: Spawn Robot Stack

Once Gazebo and RViz are loaded:

./src/scripts/spawn_robot.sh

This will:

  • 🤖 Deploy all robot nodes
  • 🗺️ Initialize mapping components
  • 📡 Start communication systems

Step 3: Start Exploration Mission

Wait until you see the occupancy grid in RViz, then:

./src/scripts/start_exploration.sh Silva2025

Available Methods

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

🔧 Select Policy

Method 1: Command Line (Recommended)

Pass the method as a parameter when starting exploration:

./src/scripts/start_exploration.sh <METHOD_NAME>

Method 2: Script Configuration

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"

📊 Analysis & Results

Automatic Data Collection

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

Bag File Location

# Default location
./bags/<timestamp>.bag

⚡ Quick Reference

Essential Commands

# 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

Troubleshooting

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

📚 Next Steps


Need help? Submit an issue 🐛