Exploration Algorithm Comparison and Simulation

Project Overview


This project aimed to study autonomous exploration strategies by testing three different algorithms in a 2D grid simulation and later validating the best-performing one in a Gazebo simulation with TurtleBot3. This project had two following stages:


  1. Initial Testing in a 2D Simulation Environment:
    • Implemented three different exploration algorithms:
      • Complete Coverage Path Planning (CPP)
      • Next Best View (NBV)
      • Frontier-Based Exploration
    • Simulated exploration in a grid-based environment using Pygame.
    • Compared algorithms based on coverage efficiency, and speed.


  1. Final Testing in a Gazebo Simulation:
    • Selected Frontier-Based Exploration due to its superior performance (40% better in computation and time required).
    • Integrated the algorithm into a ROS2 package.
    • Tested it in Gazebo with TurtleBot3, using Nav2 for navigation.

2D Exploration Testing**


In the first phase, the exploration methods were evaluated in a 50x50 grid-based environment with a virtual robot equipped with:

Each algorithm was tested independently:

1️⃣ Complete Coverage Path Planning (CPP)



2️⃣ Next Best View (NBV)



3️⃣ Frontier-Based Exploration



Gazebo Simulation with TurtleBot3


After determining Frontier-Based Exploration as the best approach, we:

  1. Implemented the algorithm in ROS2 and integrated it with Nav2.
  2. Ran the TurtleBot3 simulation in Gazebo, with separate terminals managing:
    • The TurtleBot3 simulation.
    • The Nav2 navigation stack.
    • The custom exploration node.
  3. The robot autonomously explored the environment, selecting frontiers dynamically and avoiding obstacles.


GitHub Repository

The complete implementation is available at:
🔗 GitHub Repository