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.

Hart, Nilsson, Raphael — 1968

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.

Koenig, Likhachev — AAAI 2002

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.

Harabor, Grastien — AAAI 2011

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.

Fox, Burgard, Thrun — IEEE RA Magazine 1997

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.

Daniel, Devin, Dexter, Kat, Oliver, Raquel — Carleton College 2026

Project Proposal Draft Download PDF

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 jazzy for humble in 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