SLAM Maze Exploration Robot

I worked in a team of 3 programming a TurtleBot3 robot to explore an unknown maze without colliding and efficiently navigate to any points given on the map. Attached to the robot at the top was a LiDAR that gave a point cloud of detected objects. The map and location of the robot were visualized with Gazebo and RViz. I was mainly in charge of setting up all the ROS nodes, topics, and services for communication. 

RBE 3002 Exploration.mp4

Exploration phase

To explore an unknown maze, the robot used gmapping to create the map while using a modified Dijkstra's algorithm to explore the map and the A* algorithm to find the most optimized paths. A dynamic c-space was used to stay at a safe distance from obstacles while remaining thorough to get every part of the map. A LAN cable was used here as the wifi was too slow and caused some performance issues with ROS. Once the robot has finished exploring, it navigated back to where it began.

RBE 3002 Navigation.mp4

Navigation phase

Once the map was fully explored and saved, the robot was kidnapped to a random spot on the course, where then it was given a target location to go to. It first needed to re-localize itself which we achieved by having it spin in place while running AMCL with a particle filter.  It then use A* to plot the most efficient path to the goal while using a static c-space to avoid the obstacles.