Gazebo Robot Maze - Sonar (C++, Gazebo) (Figures in process)

Overview:

In this project, a Gazebo tank bot with a sonar sensor was used as the platform for a controller to guide the robot to the goal of a maze. The simulated sonar sensor has a angular range of about 30 degrees and a distance range of 2 meters and returns a distance value if an object is within this range.

Example of a Gazebo World maze to be navigated.
Goal at coordinates (20, 0) and robot at bottom of maze with simulated sensor range.

Purpose:

  • To independently design a robot controller algorithm (C++) that uses a basic range sensor to navigate to the goal of a maze.
  • Implement designs in Gazebo.

Challenges:

  • Range sensor has limited angular range and does not return angle of detection.
  • Limited sensors required navigation algorithm to have different states in order to avoid cases where bot would get stuck.

Outcome:

  • Implemented an algorithm to succesfully navigate to the goal of a maze with limited sensor data.
  • Algorithm:
    • Wall follow allows for navigation to next "doorway"
    • When at a "doorway" and previous wall has been cleared (no object detected), bot turns towards goal
    • When met with another obstacle, turn based on alternating turn variable (prevent bot from getting stuck)
    • Continue wall follow on current obstacle
    • Repeat until goal reached

Skills Learned:

  • Implementation of custom algorithm with limited input
  • Gazebo simulation