A move_base global_planner plugin implementing the D* Lite path-planning algorithm. D* Lite efficiently replans in the presence of unexpected or dynamic obstacles, making it suitable for navigation in changing environments.
- ROS nav_core::BaseGlobalPlanner plugin for move_base.
- Incremental planning using D* Lite for fast replanning after map changes.
- Compatible with standard ROS navigation stack.
D* Lite is an incremental search algorithm introduced by Koenig & Likhachev (2002). It reuses previous search results to compute updated paths quickly when the environment changes.
- ROS navigation stack (nav_core and move_base)
- Eigen3 (libeigen3-dev)
- Boost >= 1.46
- C++17 or later (configured via the package CMakeLists)
Install system dependencies (example)
- Replace $ROS_DISTRO with your ROS distribution (e.g., noetic, melodic)
sudo apt-get update sudo apt-get install -y libeigen3-dev libboost-dev ros-$ROS_DISTRO-navigation
- Clone into your catkin workspace src folder:
cd ~/catkin_ws/src git clone <repository-url> # replace with the actual repository URL - Build the workspace:
cd ~/catkin_ws catkin_make # or catkin build
- Ensure dependencies are available (see Requirements).
- If using colcon or a different workspace tool, adapt build commands accordingly.
- To use this planner with move_base, set the
base_global_plannerparameter to:"srl_dstar_lite/SrlDstarLite"
Example YAML snippet (costmap and planner parameter excerpt)
# Replace with your usual navigation parameter file
planner_server:
base_global_planner: "srl_dstar_lite/SrlDstarLite"
Example launch snippet (launch file)
<!-- minimal launch snippet for move_base integration -->
<launch>
<!-- ...existing move_base and costmap config ... -->
<param name="base_global_planner" value="srl_dstar_lite/SrlDstarLite"/>
<!-- ...existing code... -->
</launch>
- Built on ideas from Luigi Palmieri and core algorithms from Koenig & Likhachev (D* Lite).
- Include an appropriate open-source license file in the repository (e.g., BSD, MIT). This README does not change licensing — make sure a LICENSE file is present.
- Koenig, S. and Likhachev, M., "D* Lite", 2002.