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.
- Open Webots
- Load the project world file
- Run the simulation
- The robot will autonomously explore the environment
Requirements:
- Webots R2025a


