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
-
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 ↩