Skip to content

MeshariAlsh/autonomous-exploration-robot

Repository files navigation

Autonomous Mobile Robot (Webots + Python)

Introduction:

This repo contains code for an assignment involving a SLAM problem. The task was to develop an autonomous robot capable of navigating and exploring any map entirely, regardless of its layout and size. I decided to use the Bug2 algorithm for navigation and the frontier exploration algorithm as the navigation and exploration strategy. Bug2 was chosen for its wall-following behaviour because of its ability to cover large areas, effectively mapping them. Frontier exploration was a good algorithm because it does not rely on arena layout or size to generate goal points to move the robot around. It generates the best goal points based on the heuristic that unknown areas are points next to empty space and are far away from the robot’s current position.

This combination, alongside a generic unstuck algorithm, proved versatile. The robot was able to traverse the area without getting stuck and generate destination points in real time. However, it is not a time-efficient solution, as it takes around 10 minutes to effectively map the entire complex area. Bug2 might be the cause because it traverses along the walls until it reaches a point close to the goal. Sometimes it even follows the entire perimeter of a structure before deciding the goal is unreachable.

Results:

Map Layout:

Map Layout

Before Occupancy Map:

Before

After Occupancy Map:

After

How to Run

  1. Open Webots
  2. Load the project world file
  3. Run the simulation
  4. The robot will autonomously explore the environment

Requirements:

  • Webots R2025a

About

Autonomous robot exploration using Bug2 navigation and frontier-based SLAM in Webots (Python)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages