Faults can occur in any robotic system but are particularly devastating in an AUV where small faults can easily escalate to complete system loss. While sensors can be installed to monitor potential points of failure, it can be extremely costly or infeasible to install such sensors and not every possible type of fault can be anticipated. Furthermore, if the fault goes unnoticed by the AUV, it will continue to operate as if everything were normal, potentially escalating the damage.
In our AUV, Minnebot, a relatively common unmonitored fault is for one of its flipper to snap which can cause Minnebot to start swimming in unintended directions. To enable Minnebot to detect this type of fault, we aimed to designed a system that would be able to run in the background while Minnebot operated to detect unmonitored faults via their indirect effects. We accomplished this by training a recurrent neural network with LSTM blocks to predict Minnebot's future "normal" swimming motion and comparing the predicted motion to the actual motion. Then we used a collective anomaly detection algorithm to detect collective anomalies in the prediction error in sliding windows and then run a second sliding window over the first set of sliding windows to determine if a fault is occurring.
As shown in the table below, our system was able to reliably indicate when faults had occurred for Datasets 4, 7, and 8. Furthermore, in Datasets 1 and 2, it shows no false positives at all, making it a better fit for a background system since it avoids the "boy who cried wolf" effect. Unfortunately, it doesn't perform as well in an ocean, presumably due to differences such as currents, waves, and ballasting setup compared to the training data which was collected in a swimming pool.
|Dataset's Special Conditions||
Percentage of Stacked Sliding Windows Indicating a Fault
|Dataset 4||Missing Front-Left Flipper||84.2%|
|Dataset 5||Swimming in the Ocean||73.8%|
|Dataset 7||Missing Middle-Left Flipper||95.5%|
|Dataset 8||Missing Front & Middle-Left Flippers||100.0%|
Further details of the implementation and results can be found in the actual paper on the project page.
While the scope of this project was limited in scope, it builds a foundation for future work in developing a more robust system for fault detection in our AUV. Avenues for development include, but are not limited to, varying RNN architectures, measuring efficiency of the system when run on a mobile GPU, actual diagnosis of the fault, and methods for communicating to a human that a fault was detected.