Skip to content

Latest commit

 

History

History
86 lines (61 loc) · 2.82 KB

File metadata and controls

86 lines (61 loc) · 2.82 KB

Enhanced-Path-Planning-through-Comparative-Analysis-of-RRT-and-Its-Variants-on-TurtleBot-in-Gazebo

This repository showcases enhanced path planning through a comparative analysis of RRT and its variants, including RRT, RRT*, RRT*-Smart, and RRT-Connect, implemented on a TurtleBot in the Gazebo simulation environment.

Overview

This project focuses on optimizing path planning algorithms to achieve efficient navigation for TurtleBot in both 2D and 3D environments. The implemented RRT variants are evaluated, and their performances are compared, providing valuable insights into their strengths and weaknesses.

2D Simulaton Results:

2D Results 1

2D Results 2

3D Simulation Results in Gazebo on TurtleBot (Youtube Video links below)

RRT Execution:

RRT Execution

RRT-Connect Execution:

RRT-Connect Execution

RRT* Execution:

RRT* Execution

RRT*-Smart Execution:

RRT*-Smart Execution

Instructions to Run

  1. Setup:

    • Download or clone the repository.
    • Build the workspace using catkin build or catkin_make.
    • Source the workspace.
  2. Run 2-D Path Planning Algorithms: Navigate to the final_project/scripts/ folder and execute the desired algorithm.

    • RRT

      $ cd final_project/scripts/
      $ python3 rrt.py
    • RRT*

      $ cd final_project/scripts/
      $ python3 rrt_star.py
    • RRT*-Smart

      $ cd final_project/scripts/
      $ python3 rrt_star_smart.py
    • RRT-Connect

      $ cd final_project/scripts/
      $ python3 rrt_connect.py
  3. Run Gazebo + Rviz Simulation:

    • Uncomment relevant lines in the move.py script based on the algorithm choice.

    • Run the simulation:

      $ roslaunch final_project world.launch
    • In another terminal, launch the navigation stack:

      $ roslaunch final_project navigation.launch 
    • Adjust the map alignment in RViz using 2D Pose Estimate.

    • Open a new terminal and execute:

      $ cd final_project/scripts/
      $ python3 move.py

References:

For an additional implementation and insights, you can refer here.