“Over 8000 fires occur each year, and burn an average of 2.1 million hectares in Canada alone. Our robot could help in the simulation and detection of forest fires.”

The project that we have been working on for the last few months is essentially a computer program (written in Python) that runs a fully functional and autonomous robot we’ve built. Our robot could help in the simulation and detection of forest fires. We were inspired to work on this project due to the devastation caused by wildfires. According to the National Forestry Database over 8000 fires occur each year, and burn an average of over 2.1 million hectares in Canada alone. This causes billions of dollars in damages, as well as ruining communities and ecosystems.

The project that we have been working on for the last few months is essentially a computer program (written in Python) that runs a fully functional and autonomous robot we’ve built. Our robot could help in the simulation and detection of forest fires. We were inspired to work on this project due to the devastation caused by wildfires. According to the National Forestry Database over 8000 fires occur each year, and burn an average of over 2.1 million hectares in Canada alone. This causes billions of dollars in damages, as well as ruining communities and ecosystems.

The Robot

The robot features factors such as ultrasonic sensors, thermal sensors, photoresistors, and a humidity-temperature sensor, all of which were controlled by an Arduino. The Arduino was also used to run the autonomous navigation code and for the accumulation of data. The robot has the ability to detect temperatures above a certain threshold (such as that of fire) and stop to navigate around it. The data collected by the sensors (from the robot’s external environment) would be sent wirelessly back to a computer using a Node.js server and a MySQL database with a Raspberry Pi (the second server was run on the computer, to take the data from the back-end to the front-end). This data would be fetched by the Python program, where the data would be analyzed, and probabilities of fire spreading from one place to the next would be determined this way. To complement the algorithm we developed a mathematical model, which aided in determining the likelihood of a fire occurring within a random cell of a computer generated simulation. A simplified version of the data algorithm is displayed below:

Devising the Formula

We used cellular automata within the program. This means that we generated a grid, where if there was a fire burning in one grid square, then the other squares located within the von Neumann neighbourhood around this square would have a certain probability of catching on fire in the next iteration of the program. This probability was based on the data gathered by the robot (data was determined along with location, in order to have accurate data in each grid square).

The robot also had the capabilities to estimate how close the trees are together by taking into account how many times it had to turn to avoid something, in relation to the distance that it had travelled. The robot was able to avoid objects somewhat, but wouldn’t fare particularly well in a dense forest at the moment, due to the fact that the hardware is not equipped to deal with rocky terrain, and we only had the budget for one ultrasonic sensor.

Furthermore, on top of the algorithm we also wrote programs to generate graphs. The fire spread program creates a spatial density vs amount of land burned graph, and the second graph, depicts the spatial density in a forest vs iterations. This graph is in accordance with the results from Grassberger, in that the optimal tree density, also called the critical density is 0.6.

Launching the Simulation

At the moment, it is quite hard to test this simulation for accuracy, but we looked at other forest fire models that utilize cellular automata, and tried to make our probabilistic calculations as accurate as possible (The coefficients that generate the final probability can be changed, considering forest fire behaviour can sometimes be so volatile in different places and at different times). In addition to the factors that the robot detects, wind direction, wind magnitude, and coordinates of hills and slopes can be entered into the simulation, adding to the probabilistic calculations. The accumulation of data is displayed on a screen with the robots relative coordinates:

The simulation works by initializing a 2-D lattice and having the coordinates inputted into the system. Starting from the point of inception the fire spreads to adjacent squares in accordance with the simulation algorithm, until the parameters of the fire have not been met to transfer to another cell, i.e. an empty cell. The advantage of such a simulation is evident as where the fire will spread can be anticipated, and the fire-fighting services can notified within seconds of detection. The simulation which runs on a software we developed from scratch looks like this mid-progress:

Final Result

Due to the proof of concept nature of this project, there are many aspects to it which can be optimized to increase its capacity to model wildfires, and improve in its ability to contain them. Although, the robot does not carry a device in which it can directly manage the fire itself, with the proper system in place it can inform the correct authorities to do so, with a visual aid of how the fire will spread. The system in question involves the usage of “Control Centers,” which are in the vicinity of their respective locations. With a sophisticated tracking system in place, the placement of tens of these robots would follow in forests in which fires are common place, or locations whose preservation are vital (ex. national parks, forests containing endangered species, etc).The robots themselves are low-maintenance and cost-effective, making their deployment a reasonable endeavor. Within the control centers there would be monitors each corresponding to an individual robot and their status, thus ensuring immediate action the instant a fire is detected. The finished robot looks like this:

This project still has many of flaws, in the hardware, the software, and the probabilistic calculations, but we were able to create fairly decent working first prototype, and we hope to improve it in the future with machine learning, neural networks, and computer vision.


If you want to check out the code for the algorithms and other software aspects pertaining to the project, it can all be found on Github at @Lucaman99.

  Abdullah Hadi  Robert Bateman High School LinkedIn

    Jack Ceroni     Robert Bateman High School LinkedIn



.
.
.
.
.
.
.