WildFire: Autonomous Fire Truck Simulation
WildFire simulates an autonomous Mercedes fire truck that must respond to fires ignited by an arsonist and suppress them before they spread to neighboring trees, developed as part of the RBE550 Motion Planning course at Worcester Polytechnic Institute. The environment runs in accelerated time (1 real second ≈ 5+ simulation seconds), demanding rapid replanning as the fire landscape evolves.
Planning Architecture
The system uses a two-layer planning hierarchy — a global roadmap built once at startup, and a local kinematic planner that queries it at runtime.
Global Planner: Probabilistic Road Map (PRM)
At initialization, thousands of random configurations are sampled across the environment and checked for collisions. Valid samples are connected to their nearest neighbors (via a KD-tree for efficient lookup), forming a dense roadmap. When a new fire location is identified, A* searches the PRM for a collision-free route to that goal.
Local Planner: A* with Kinematic Primitives
The truck steers via Ackermann steering (fixed turning radius), so the local planner expands states using a set of kinematic motion primitives that respect the vehicle’s non-holonomic constraints. A Euclidean distance heuristic guides the search toward the goal node on the PRM.
PRM Pathfinding Demo
Challenge
The fire spreads stochastically to adjacent trees over time, requiring the truck to continuously re-prioritize targets as the environment changes. A fire left unattended too long can cascade beyond reach, so the planner must balance travel time against suppression urgency — a real-time dynamic replanning problem.
| Component | Method |
|---|---|
| Global roadmap | Probabilistic Road Map (PRM) |
| Graph search | A* with Euclidean heuristic |
| Nearest-neighbor lookup | KD-tree (scikit-learn) |
| Vehicle model | Ackermann steering |
| Fire spread | Stochastic neighbor propagation |