The final project in Unified Robotics IV tasked students to enable a robot to navigate a variety of different mazes autonomously, map it, and perform path-finding using an A* algorithm implementation after localizing using AMCL. This experience provided an introduction to ROS, SLAM, escaping “kidnapped robot” scenarios and complex sensor fusion. I worked in a team of 3; my own responsibilities included supporting testing/development of our overall implementation and stress-testing pathfinding.
Major components of this project included: - (Phase 1) Running gMapping package, transform (tf) listener, pathfinder node and other components necessary to perform Simultaneous Localization and Mapping (SLAM) and save the map locally - (Phase 2) Navigate back to the starting pose from the position/orientation where the map was completed - (Phase 3) Solve the "kidnapped robot" problem; after placing the robot in a completely random location in the maze, using Monte Carlo localization with AMCL, determine the location of the robot on the map and navigate to another pose across the map. - Creation of launch files to quickly create a set of ROS nodes, run "phases" of the final project
The A* algorithm, a costmap implementation, as well as Monte Carlo localization, were critical for pathfinding and solving the "kidnapped robot" problems.