Charles River’s PRINCESS incorporates machine learning and probabilistic modeling to build adaptable software systems
Sailors move a REMUS UUV during a research and training exercise [Defense.gov photo]
“We envision military software that can make significant adaptations on its own. With PRINCESS, we are closer to software that can quickly and autonomously adapt to changes in its environment.” – Dr. Avi Pfeiffer, PRINCESS Principal Investigator
Many DoD software systems run on long-lifespan platforms that operate in diverse environments. Countless hours are spent manually adapting this software to operate effectively when hardware and external resources change. If this software could automatically adapt to these ecosystem changes, it would significantly reduce the time and effort required for maintenance.
Applying PRINCESS to UUVs
Unmanned underwater vehicles (UUV) tackle challenging missions in changing internal conditions and external ecosystems. These vehicles must adapt to system failures (e.g., a battery loss) and changes to the environment (e.g., a force on the UUV).
In our PRINCESS effort, part of DARPA’s BRASS program, we developed methods that would allow the UUV’s software to adapt to change, both within the UUV itself and in its external ecosystem. We experimented with different techniques in machine learning and probabilistic programming to enable UUV software to adapt to internal change, such as upgraded sensors or computer hardware. We also explored how UUVs can acclimate to an evolving external ecosystem, such as a mission’s changing priorities.
Our team researched three UUV software adaptations:
- Sensor adaptation accommodates new and upgraded sensors, and compensates for sensor degradation while the UUV is on a mission.
- Control adaptation responds to online system failures in real time. Our probabilistic verification techniques ensure that these adaptations do not result in dangerous plans for the UUV.
- OS adaptation responds to changes in the UUV’s computer hardware by synthesizing parts of the OS and compiler tool chain.
A UUV such as the REMUS 600 is an ideal platform to study many aspects of software adaptation. In PRINCESS, we successfully demonstrated adaptation to upgraded and degraded sensors, system failures, new architectures, and changes in the ecosystem.
A REMUS 600 autonomous underwater vehicle (U.S. Navy photo by John F. Williams/Released). PRINCESS applies machine learning and probabilistic programming to help UUV software adapt to ever-changing ecosystems.
Beyond UUVs: Next Steps for PRINCESS
In our ongoing PRINCESS research, we will generalize our methods to apply to other software systems. For example, our control adaptation uses general techniques of program transformation and machine learning, which can be applied to a wide variety of systems in different programming languages. When software can organically adapt to its dynamic internal and external environments, its lifespan will increase, saving time and money for any system or platform.
Distribution Statement “A” (Approved for Public Release, Distribution Unlimited)
This material is based upon work supported by the United States Air Force and the Defense Advanced Research Projects Agency (DARPA) under Contract No. FA8750-16-C-0045. Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the United States Air Force and DARPA.