Overview

The goals for this section:

  1. Run Frontier Exploration on the TurtleBot.
  2. Use the image classifier from Section 6 to perform Frontier Exploration until a stop sign is found.
  3. This section uses the heading controller, AStar planner, image classifier, and frontier exploration code that you have been developing throughout the quarter. It is a final test of your autonomy stack! Congratulations on making it this far 😃

Setup

Task 1.1 — Cleanup. Remove directory ~/autonomy_ws if it exists. This may be leftover from a previous section.

Task 1.2 — Directories. Create the base directory structure for your group’s ROS workspace, ~/autonomy_ws/src.

Task 1.3 — Clone and Branch. Clone your group’s GitHub repo to the src/ directory, and create a new branch called section7.

Task 1.4 — Copy homework code. We will be adding the code you wrote in HW4 to your autonomy stack. Copy your frontier exploration node file to the folder ~/autonomy_ws/src/<group_repo>/autonomy_repo/scripts and the launch file to the folder ~/autonomy_ws/src/<group_repo>/autonomy_repo/launch on the AA274a laptop.

Task 1.5 — Build. Update the autonomy repo CMakeLists.txt file, and make sure your node is executable. Navigate back to the root of your workspace, ~/autonomy_ws/, and build your ROS workspace with colcon build.

Frontier Exploration (Simulation)

Task 2.1 — Launch simulator. Firstly, we will test out your HW4 code before you can test it out on the actual robot. Start your TurtleBot simulator by running:

ros2 launch asl_tb3_sim root.launch.py

Task 2.2 — Launch frontier exploration. In a new terminal, source your workspace, and then launch your frontier exploration:

source ~/autonomy_ws/install/setup.bash
ros2 launch autonomy_repo <your_frontier_exploration_launch_file>

Checkpoint — Call a CA to show that your TurtleBot in Gazebo performs Frontier Exploration.

Frontier Exploration (Hardware)

Task 3.1 - Time to test this out on the actual robot! Get a CA to give you a robot based on your $ROS_DOMAIN_ID and set up the robot using the same steps covered in past sections.