Overview
This project aims to develop an autonomous frontier exploring robot capable of navigating through obstacles and creating an accurate 2D map of unexplored environments. The system utilizes BFS-based frontier cell clustering and centroid selection to determine goals, which are then processed by the Nav2 stack for autonomous navigation. Real-time map visualization is handled via RViz2, allowing for a seamless transition from simulated environments to real-world hardware.

Approach
- We began by learning the fundamentals of ROS 2 using the Turtlesim package, focusing on publishers, subscribers, services, and actions.
- Using these basics, we implemented custom nodes for the turtle, including Spiral Trajectory, N-Sided Polygon, and Go To Goal logic.
- We transitioned to Gazebo Classic to simulate the TurtleBot3 Burger model, learning to publish sensor data and send velocity commands within a 3D environment.
- We tested mapping and localization algorithms using the TurtleBot3‘s official model ‘TurtleBot3 Burger’ to ensure stability before physical deployment.
- We implemented SLAM (Simultaneous Localization and Mapping), starting with SLAM Toolbox in simulation for its stability and moving to Google Cartographer for real-world hardware to handle sensor noise and drift.
- We utilized RViz2 to debug exploration algorithms, visualizing LIDAR scans, occupancy grids, and publishing markers for detected frontiers and Dijkstra paths.
- Finally, we integrated the Nav2 (Navigation2) stack to handle path planning, obstacle avoidance, and autonomous movement toward generated goal coordinates.
Key Modules
- Frontier Exploration Logic
- Frontier Detection: The occupancy grid is scanned to find “frontiers”—the boundary cells between explored free space and unexplored unknown space.
- Clustering (BFS): Frontier cells are detected and grouped into clusters using a Breadth-First Search (BFS) algorithm to form frontier edges.
- Centroid Selection: Centroids are calculated for each edge. The farthest centroid is selected as the optimal goal to maximize exploration efficiency.

- Simulation and Hardware
- Gazebo Classic: A 3D simulator used to test algorithms without hardware risks. It provides clean sensor data and odometry for initial SLAM Toolbox testing.
- TurtleBot3 Models: We utilized modular model (TurtleBot3 Burger) to test sensor capabilities and navigation stability.
- SLAM Systems:
- SLAM Toolbox: Used in simulation for lightweight and stable 2D laser-based mapping.
- Google Cartographer: Used on real hardware for its robust graph-based mapping that accounts for wheel slip and timing jitter.

- Navigation and Visualization
- Nav2 Stack: The core autonomous engine. It uses the SLAM map to plan safe paths, avoid obstacles, and send velocity commands to the motors.
- RViz2 Dashboard: Acts as the primary debugging interface, displaying real-time markers for frontiers, centroids, and the computed Dijkstra path.

Summary
- The system updates an occupancy grid via SLAM as the robot moves.
- Frontiers are detected at the boundary of free and unknown space.
- BFS clusters these cells into meaningful explorable targets (centroids).
- The farthest centroid is chosen as the navigation goal.
- Nav2 autonomously drives the robot to the goal while avoiding obstacles.
- The cycle repeats until the entire environment is mapped.

Team Members
- Aryan Shinde
- Mayank Singh
- Sharvansh Singh
Mentors
- Shauvik Gogoi