Autonomous Area Search and Localization

This project tackled the problem of simultaneous localization and mapping (SLAM) using a TurtleBot 3 in a 4’ by 8’ obstacled arena.

To successfully complete this project, we implemented high-level algorithms including A* for path planning, pure pursuit for path following, and frontier detection for picking explorative goals.

We used ROS to manage and offload the multi-threaded computations necessary for the project.

Our implementation allowed us to meet the two criteria for the project:

1.) Successfully map the entire arena and return to starting point

2.) Localize in the map and drive to any point in it (aka, the “kidnapped robot problem”)

Phase 1 Overview

We used the pre-existing ROS gmapping node to filter raw LIDAR readings and pose data into a map of the robot’s estimate of its location in its surrounding.

From this map data, frontiers were calculated by treating the map as an image consisting of known, unknown and occupied space. This allowed us to take advantage of fast, reliable image-processing techniques like binary dilation and contour detection from the OpenCV library to calculate the location of frontiers.

In the path planning and path following implementations we added extra functionality to ensure reliable, fast operations.

While using A* for path planning we recognized that the most optimal path was not the shortest, as we had implemented in previous labs and lectures, but the path the furthest from the walls.

To apply this to our path planning we added the distance to the center to our path cost. We used a breadth-first search through each map point, starting from the walls, to calculate the distance from the wall at each point. Then, this is inverted and normalized so that is can be displayed with our map, which proved to be a very powerful troubleshooting tool.

We chose to implement pure pursuit to smoothly and reliably follow the paths generated by A*.

TurtleBot mapping the arena.

As the path following node controls the robot and drives it around the map, the gmapping node constantly updates the map and robot’s pose in it. Each node updates the next after finishing its calculations.

The robot path plans to stay in the center of the arena to prevent collisions with the wall. Collisions impact the reliaiblity of the filtering done in gmapping as the control inputs no longer align with robot’s movement.

Previous
Previous

Unified Robotics I: Mechanical Applications in Robotics

Next
Next

Project Five