Autonomous Navigation

picture of project picture of project

Project Description

In this project, I used ROS and Gazebo to automate a Turtlebot3 Waffle Pi to perform three taks: (1) autonomous exploration, (2) navigation in static environment, and (3) navigation in dynamic environment.

The first part is to explore an area autonomously and generate a map by using a wall following algorithm and the turtlebot's built in SLAM techniques. Navigating autonomously the entire area had to be done under 10 minutes. Moreover, the program had to be robust enough to work on any given space.

The second part consisted on navigating that area to an input goal location using the map generated in the first part. For this, the map was converted from pixels to meters, A star algorithm was implemented to go from the initial to goal pose, and a PID was introduced and tuned to follow the path precisely.

The third and final part adds a new variable to the second milestone: moving objects. The goal is to navigate from initial pose to end pose, using the map generated, and avoid the moving green trash cans. For this, the turtlebot's front camera was used; these images were processed to detect green. MOreover, the PID controller was modified to bring the robot to a stop whenever the trash cans where detected and move again once the way is clear.

Media

Task 2: Autonomous Static Navigation

Task 3: Autonomous Dynamic Navigation