Sources
Literature review, algorithm references, and documentation links
Literature Review
A* Search Algorithm
Hart, P. E., Nilsson, N. J., & Raphael, B. (1968). A formal basis for the heuristic determination of minimum cost paths. IEEE Transactions on Systems Science and Cybernetics, 4(2), 100–107. The original paper introducing the A* algorithm and its heuristic admissibility conditions.
D* Lite — Incremental Heuristic Search
Koenig, S., & Likhachev, M. (2002). D* Lite. Proceedings of the AAAI Conference on Artificial Intelligence, 476–483. D* Lite is a simplified version of D* that uses Lifelong Planning A* to efficiently replan paths when the robot's map changes during navigation.
Jump Point Search
Harabor, D., & Grastien, A. (2011). Online graph pruning for pathfinding on grid maps. Proceedings of the AAAI Conference on Artificial Intelligence, 1114–1119. Introduces Jump Point Search, which prunes symmetrical paths in uniform-cost grids to accelerate A* by orders of magnitude.
Dynamic Window Approach
Fox, D., Burgard, W., & Thrun, S. (1997). The dynamic window approach to collision avoidance. IEEE Robotics & Automation Magazine, 4(1), 23–33. The foundational paper for DWA, describing velocity-space sampling with kinematic constraints for reactive local navigation.
Project Proposal & Literature Review
Daniel, Devin, Dexter, Kat, Oliver, & Raquel. (2026). Obstacle Avoiding Path Planning: A Comparative Study of A*, D* Lite, Jump Point Search, and Dynamic Window Approach on a TurtleBot4. Carleton College Senior Capstone. This proposal outlines the motivation, related work, algorithm descriptions, experimental methodology, and evaluation criteria for the project.
Project Code & Repository
- obstacle-avoidance-comps — GitHub Main project repository containing all ROS 2 algorithm packages: A*, D* Lite, JPS, DWA, and the Hybrid A* + DWA stack. Includes launch files, parameter configs, and map files.
- Project Website This project site with overviews, video demos, and results data.
ROS 2 Documentation
- ROS 2 Jazzy Documentation Official documentation for ROS 2 Jazzy Jalisco — the primary ROS 2 distribution used in this project. Covers installation, core concepts, topic/service/action communication, and TF2.
-
ROS 2 Humble Documentation
Documentation for ROS 2 Humble Hawksbill (LTS). This project also supports Humble — swap
jazzyforhumblein all commands.
Nav2 Documentation
- Nav2 — The ROS 2 Navigation Stack The Nav2 project provides a complete navigation system for ROS 2 robots, including global planners, local controllers (DWA-based), costmaps, AMCL localization, and behavior trees. Our Hybrid stack mirrors the Nav2 planner/controller architecture.
- Nav2 — DWB Local Planner Configuration Reference for Nav2's DWB (Dynamic Window Base) local planner — the production version of DWA. Useful for comparing our custom DWA parameters against the Nav2 defaults.
- Nav2 — NavFn (A*) Global Planner Configuration Nav2's NavFn global planner implements Dijkstra's algorithm and A*. Reference for comparing our custom A* implementation with the Nav2 baseline.
TurtleBot4 Documentation
- TurtleBot4 User Manual Official documentation for the TurtleBot4 platform — covers hardware setup, out-of-box experience, networking (Discovery Server), and integration with ROS 2 Nav2.
- TurtleBot4 — Navigation Tutorial Step-by-step guide for running SLAM, saving maps, and using Nav2 navigation with the TurtleBot4. Basis for our experiment workflow.
- TurtleBot4 — GitHub Repository Official TurtleBot4 ROS 2 packages including turtlebot4_navigation, turtlebot4_viz, turtlebot4_gz_bringup (Gazebo), and configuration files used in our project.
SLAM & Localization
- Nav2 — Navigation with SLAM Toolbox Guide for using SLAM Toolbox to build maps with TurtleBot4 in ROS 2, which we used to generate all maze and corridor maps for our experiments.
-
Nav2 — AMCL Localization Configuration
Reference for the Adaptive Monte Carlo Localization (AMCL) node used in all our
physical robot experiments. Our custom
amcl_params.yamlauto-initializes the map frame at startup.