The project is a Pygame simulation of improved motion-primitive A* path planning and arc-based tracking for planetary rovers. It is a Pygame-based simulation and experimental code for evaluating path-planning and tracking control methods for planetary rovers. It implements and compares the following things

  • Improved A* with motion primitives (rover_control_sim_fast.py) — global planner that expands constant-curvature motion primitives in ( x , y , θ ) space and uses a terrain-aware cost model.
  • Grid-based A* (rover_control_sim_astar.py) — baseline classical 8-connected grid planner with per-cell terrain costs.
  • Arc-based local controller — reactive controller that samples short circular arcs, scores them by multi-objective criteria (progress, alignment, safety), and executes the best arc.
  • Utilities to generate synthetic DEMs, place procedural rocks, visualize simulation, and plot experimental results.

Background

This project was my attempt to develop as a case study for the research paper by Zhang et al (2025) that tries a advanced path planning and tracking control method for planetary exploration rovers. 1 The paper, a great read, is implemented with the following features in mind

  • Procedural terrain generator (DEM with Gaussian bumps + noise)
  • Per-cell traversability / cost model (slope, roughness, rock proximity)
  • Motion-primitive-based A* planner (constant-curvature arcs)
  • Baseline grid A* planner for comparisons
  • Arc-based local tracking controller
  • Pygame visualization with interactive controls
  • Logging utilities and plotting scripts to reproduce figures (e.g., planning time histogram)
  • Easy-to-tune parameters for planner, controller, and terrain

Footnotes

  1. Zhang, H., Jiang, F., & Li, Q. (2025). An improved path planning and tracking control method for planetary exploration rovers with traversable tolerance. Biomimetic Intelligence and Robotics, 5(2), 100219. https://doi.org/10.1016/j.birob.2025.100219