Project information

Robotcis Exploration and Coverage

Context

This project was developed as part of the CS-7630 Autonomous Robotics course at GeorgiaTech. The goal of this project was to implement a ROS package to autonomously explore an unknown environment and map the WIFI access points in the environment using a Turtlebot3 robot.

Actions

  • Collision and Obstacle Avoidance: I implemented a ROS package to avoid collisions and another ROS package to avoid obstacles using the robot's laser scanner and RGB-D camera. The obstacle avoidance algorithm was implemented using a dynamic window approach.
  • State Estimation: I implemented ROS packages to estimate the robot's pose. Kalmann filters and particle filters were used to estimate the robot's pose.
  • Exploration and Coverage: I implemented a ROS package to autonomously explore and map an unknown environment. I implemented a frontier-based exploration algorithm to guide the robot's exploration.
  • Mapping: I implemented a ROS package to map the different WIFI access points in the environment using an occupancy grid strucure.
  • Path Planning: I implemented a Dijsktra and A* path planning algorithm to find the optimal path between the robot position and the next frontier.
  • Autonomous exploration: I implemented a ROS package to autonomously dock the robot to a charging station when the battery is low and resume exploration when the battery is charged.

Results

The robot was able to autonomously explore and cover the environment and map the WIFI access points, while avoiding obstacles and maintaining a safe distance from the walls.

The exploration was not optimal in terms of time. The algorithm used for selecting the next frontier was very simple. A more complex algorithm could have been used to improve the exploration time.