Monitoring a system for anomalies is a common approach to detect conditions that may lead to failures and to take corrective actions. Such monitors must be carefully crafted by engineers with the domain knowledge to understand what could constitute abnormal behavior. This process becomes increasingly challenging as the system and its operating scenarios increase in complexity. It is unlikely that the system engineer will consider all possible scenarios. To alleviate this challenge, we propose an approach to automate the synthesis of monitors from the traces of robotic systems.
As shown in the figure, system S and an optional configuration file Cfg serve as the only inputs to the approach. S is instrumented to capture the messages passed between the nodes in the system, constituting system S’ . When S’ is executed with the training set TS , a set of |TS| traces Traces is generated, where each trace will contain a sequence of variable-value pairs found in the messages. The approach will then attempt to instantiate the predefined invariant templates based on the information found in the traces and in the configuration files. Each instantiated invariant is a boolean expression that characterizes the variables values observed in the Traces. Last, the invariants generated are synthesized into a monitor that can be incorporated as a node into the system S.
We implemented it on a system designed to land a UAV on a moving platform. The tests showed the monitor reduced failure rates significantly when faced with unexpected faults. As a result, the approach was able to automatically infer rich invariants for a robotic system based on a training set, and it was able to detect the violation of those invariants and avoid failures under various scenarios of enough complexity to illustrate the potential of the approach.
This work was partially supported by NSF CNS-#1217400 and AFOSR #FA9550-10-1-0406. People working on this project include:
- Sebastian Elbaum (PI, Computer Science and Engineering)
- Carrick Detweiler (PI, Computer Science and Engineering)
- Hengle Jiang (Computer Science and Engineering)