The objective of this project is to develop technologies for advanced test and evaluation of the control software for intelligent autonomous systems.
One significant problem in the development of autonomous systems is how to test and evaluate systems which can learn and adapt, and which have high levels of intelligence and decision making, particularly when such systems have long duration missions and might not have continuous communications. In long duration missions, where communications with the vehicle can be intermittent at best, autonomy becomes essential. As duration of the mission increases, there are real concerns about whether the autonomy algorithms will give correct behavior. In long duration missions, the chance of various failures occurring (including hardware, software and unanticipated environmental conditions) increases. Trust in the autonomy is critical, particularly the software’s ability to handle unanticipated failures and events. The objective of this project is to develop technologies for advanced test and evaluation of the control software for intelligent autonomous systems. The methodology, adaptive testing, addresses this problem using an automated systems-of-systems approach to robustness testing.
Adaptive testing involves subjecting the autonomous control system to an adaptively chosen set of fault scenarios within a high-fidelity vehicle simulator, and automating the search for combinations of faults over time that drive the autonomous control (and consequently the autonomous vehicle or system) to unsafe or failed behavior. Simulated vehicle missions are run with adaptively learned faults that are instantiated over time to test the robustness of the autonomous controller under various unanticipated conditions. The instantiated faults might affect vehicle sensors, actuators, internal subsystems or components, or might make changes to environmental conditions (for example a change in the sea state).
Machine learning techniques in the form of evolutionary algorithms and reinforcement learning are applied to learn the minimal number of faults that cause minimal or failed behavior of an autonomous system which is under the control of autonomy software -- the autonomy software is the system under test. The method uses high fidelity simulations of the vehicle and the environment, and tests are performed in that simulation.
Given a vehicle simulation (including a model of the environment), a mission, and an intelligent, autonomous controller for that vehicle, what methods are available for testing the robustness of the autonomous controller? Validation and verification do not solve the problem of guaranteeing that the program will perform as desired. The controller may perform as specified, but the specifications may be incorrect; that is, the vehicle might not behave as expected. Testing all possible situations is obviously intractable due to the complexity of the system involved. Analysis techniques exist for testing the robustness of low-level controllers in isolation, but the methods are not applicable to testing the vehicle as a whole. Traditional approaches to performance testing of controllers can be labor intensive and time consuming.
Adaptive testing provides an automated system to assess the overall behavior and mission effectiveness of an autonomous system under various environmental conditions and missions. The system stimulates the autonomous system by injecting various hardware and software faults, and making changes to the operating environment. The method may be applied to a system of autonomous systems, allowing the assessment of not only a single autonomous system, but also a system of autonomous systems.
The methodology has several advantages to current approaches: Since the method is simulation based, safety and trust in the autonomous system may be gained by allowing the system to be stressed prior to live environmental testing; Because it is simulation based, many iterations of missions may be tested for failure conditions and mission effectiveness in less time; Because the method is population based, classes of failure modes may be identified, with the population containing variations on that fault mode, allowing test engineers to retest a system after it has been patched; Since the method is learning based and automated, it helps to identify failures due to multiple, seemingly independent conditions that lead to the failure, helping to prevent biases test engineers may have about what may or may not fail; The methodology is platform agnostic and is generally applicable to any autonomous system.
Alan C. Schultz
Naval Research Laboratory
Washington DC 20375
Email: w5510 "at" itd.nrl.navy.mil