Content area
Deploying an autonomous robot into a dynamic environment can lead to actions becoming unreliable over time, producing unexpected outcomes that were unforeseeable before runtime. Most agent programming languages, commonly used for high-level control of autonomous robots, do not support the adaptation of agent programs at run-time to deal with changes in an environment. In addition, modifying an agent program at runtime can be dangerous due to the unpredictable consequences.
These limitations present significant challenges for autonomous systems, as environmental changes can render pre-programmed behaviours ineffective or even counterproductive. As a result, an agent-controlled autonomous robot may be left without a viable plan and forced to abort the mission.
This thesis aims to provide a comprehensive framework for creating more adaptive and resilient autonomous agents, capable of operating effectively in dynamic and unpredictable environments. In pursuit of this aim, this thesis makes four main contributions. A formal semantics for actions with explicit durations, pre-conditions, post-conditions, and terminating conditions; a method for detecting persistent action failures using a recorded history of action execution outcomes; a method for learning new action descriptions; and a cohesive implementation that combines these three contributions with a framework for reconfiguring agent plan libraries.
Together, these extensions to agent programming languages enable agents to monitor actions during missions, detect when actions are no longer performing as expected, learn updated action descriptions from data gathered during action executions, and then use these new descriptions to repair plans that contained failing actions.
An implementation of the extensions was written for the GWENDOLEN programming language and combined with an existing framework for reconfiguring agent plan libraries. The integration of these components creates a comprehensive framework that can adapt to unexpected action failures at runtime whilst prioritising safety. The implementation was then validated with an evaluation in simulated dynamic environments, demonstrating a 55% average increase in agents completing their assigned missions after experiencing failures on every available action.
The extension of agent programming languages to enable graceful degradation and long-term autonomy in dynamic environments is an important foundation for the future development of reliable and resilient robotic systems that can operate entirely without human intervention.