No version for distro humble. Known supported distros are highlighted in the buttons above.
No version for distro jazzy. Known supported distros are highlighted in the buttons above.
No version for distro kilted. Known supported distros are highlighted in the buttons above.
No version for distro rolling. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.0.0
License TODO: License declaration
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description Curated Learning Path for Robotics Software Engineer . Theory , Programming and Research
Checkout URI https://github.com/robotisim/robotics_software_engineer.git
VCS Type git
VCS Version main
Last Updated 2025-06-06
Dev Status UNKNOWN
CI status No Continuous Integration
Released UNRELEASED
Tags opencv robotics computer gazebo cpp17 pcl drones mobile-robots ros2 robotic-arm moveit2 rviz2
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

TODO: Package description

Additional Links

No additional links.

Maintainers

  • luqman

Authors

No additional authors.

Path Planning Package

The path_planning package contains comprehensive set of algorithms and utilities for implementing various path planning strategies in robotic applications. This package includes refined implementations of A* (A-star), Grid Sweep, and Rapidly-exploring Random Tree (RRT) algorithms, all tightly integrated with ROS 2 for seamless deployment and visualization

Source Files and Headers

Note: File names might have changed since the initial lectures, as this represents the final form of the package as it evolved by the last lecture.

  1. path_planning.cpp (Improved Version)
    • Purpose: Acts as the central node integrating all path planning algorithms (A*, RRT, Grid Sweep) and provides a unified interface for executing them based on the scenario.
    • Key Functions:
      • void PathPlanning::choose_algorithm() - Allows selection of the most appropriate path planning algorithm based on the current environment and task.
      • void PathPlanning::execute_algorithm() - Executes the selected path planning algorithm and outputs the resulting path.
      • Improvements: Enhanced logic for better decision-making when choosing the path planning algorithm, optimizing the execution flow, and integrating more robust error handling mechanisms.

Launch Files

  1. path_plan_rviz.launch.py
    • Purpose: Launches the occupancy grid and path planning nodes along with RViz for visualization.
    • Nodes Launched:
      • occupancy_grid_node - Manages the occupancy grid for path planning.
      • path_planning_node - Executes the chosen path planning algorithm.
      • rviz2 - Visualizes the environment, occupancy grid, and planned path.
    • Command to run:
   ros2 launch path_planning path_plan_rviz.launch.py
   

Algorithms Implemented

  1. A* (A-star)
    • Description: A grid-based algorithm that efficiently finds the shortest path using heuristic search techniques.
    • Use Case: Best suited for structured environments with well-defined grids, such as indoor navigation.
  2. Grid Sweep
    • Description: Ensures complete coverage of a grid by systematically sweeping through all areas, ensuring no spot is left unvisited.
    • Use Case: Ideal for applications requiring full coverage, such as vacuum cleaning robots or agricultural drones.
  3. RRT (Rapidly-exploring Random Tree)
    • Description: A versatile algorithm that quickly explores complex, high-dimensional spaces, making it suitable for environments where grid-based methods are impractical.
    • Use Case: Best for unstructured environments where traditional methods struggle, such as outdoor or dynamic environments.

CMakeLists Information

The CMakeLists.txt file is configured to build and link all components of the path_planning package:

  • Executables:
    • occupancy_grid_node
    • path_planning_node
  • Libraries:
    • algo_astar
    • algo_grid_sweep
    • algo_rrt
  • Tests:
    • GTest-based unit and integeration tests for RRT implementations, ensuring algorithm robustness and reliability.

Building and Running

To build the package:

colcon build --packages-select path_planning

To source the setup file:

source install/setup.bash

To run the tests:

colcon test --packages-select path_planning

Example Commands

  • Path Planning with RViz:
  ros2 launch path_planning path_plan_rviz.launch.py
  

Test your Learnings with Assignments

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Name Deps
art_art5_meta

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged path_planning at Robotics Stack Exchange

No version for distro noetic. Known supported distros are highlighted in the buttons above.
No version for distro galactic. Known supported distros are highlighted in the buttons above.
No version for distro iron. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.