The boat is monitoring substrates. For the purpose of path planning, I consider the substrates as generic entities. I typically think of them as seagrasses, since I am particular interested in marine plants and have done work in mapping seagrasses automatically in turbid shallow water.

I created a simple cellular automata for growth and decay of the N entities that are being monitored. Basically, a pixel with more neighbors of an entity is more likely to become that entity (growth) and with less neighbors, more likely to die (decay).

A table is used to specify the weights on the growth and decay rates for each entity so that the can exhibit particular characteristics. An input PNG image sets an initial state of the region’s entities where colors are code for an entity’s presence at that pixel/cell.

The boat receives a periodic aerial image with an updated view of the entities. The boat should identify interesting areas and select those as targets. How can the boat decide if something is interesting? This is the role of the ‘analyst’ agent in my scheme with cooperation between ‘analyst’ and ‘navigator’ roles. A simple metric is the proportion that a particular entity has been observed. Recency of observations should also be considered. Even if entity ‘B’ has been observed for 60% of the time, it should still be of interest if those observations were made weeks before.

But more interesting would be events. Sudden changes in the growth or death rate in an area could be indicative of something worth investigating. To support this, the cellular automata has been augmented to support events. This is a script where each line is an iteration and an event that should occur at that iteration. Two events are currently supported. ‘Seeds’ are a specific birth of an entity at a specified location. Represents drifting seeds that may start new colonies. ‘Holes’ are damage done to colonies. They have a specified radius and probability of death within that radius. The probably affects the damage density for more realistic holes. Damage could be diseases or destruction from actors such as a boat. Shapes can be made by chaining up hole events.

I have ideas for the calculation of recency-weighted coverage goals, but am still thinking about how to best identify and rank the interest level of events.

Currently running the model to generate a number of scenarios. Once I have them, I can start coding the fitness function to observe targets with PSO. I should post some animations of the scenarios tomorrow.