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

PRM pathfinding animation

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

View Code on GitHub