Reconfigurable Autonomy: Architecture and Configuration Language

A rational agent is responsible for taking high level decisions about how to proceed. We distinguish a rational agent from other sorts of agent as one which takes these decisions based on explicit goals and beliefs and can therefore potentially explain its decisions naturally in a high-level way easily comprehensible to a human1. Goals will be derived from the mission goals, while beliefs will depend upon information from sensors and advisory systems and some world model. A decision, in this context, means selecting a plan for execution from some plan library and instantiating it where necessary (e.g., stating which rock a rover is to explore in some explore rock plan). The plan library contains both plans provided by human programmers and, potentially, plans provided by other parts of the system (e.g., a planning adviser). The rational agent does not, itself, generate plans it simply makes decisions about which plan is to be executed when. We anticipate that most operation will take place without the intervention of the agent. The agent may make the decision to move to point B, but it will then request an appropriate path (if needed) from an advisory system, and trust the underlying control system to follow the path without intervention. It will only be if something changes, or fails, while the path is being followed that the agent will need to perform additional reasoning. As hardware components degrade, or are changed, the rational agent, and adviser sub-systems (and possibly the control systems) can adapt to these changes. Such a change will be signalled to most sub-systems via changes in the knowledge base (or world model) that describes the global system. It should also be possible to change the adviser sub-systems available to the agent, this may include co-opting routines from other pieces of hardware and integrating them via wireless communications. The shared information necessary for all these systems to collaborate is stored in the knowledge base (or world model). This contains several sort of information: the existing components of the system, their capabilities, data streams and composition (we call this the configuration); current ground facts about the world generated from sensors and diagnostics (we call these the percepts); models, route plans, maps, metrics, and other miscellaneous data in program specific formats that must be shared by components (we call these the program data); rules for abstracting information and establishing a shared understanding of concepts (we tentatively refer to this as the ontology). At the moment we have no section of the knowledge base dedicated to the modelling of continuous information about the system and its environment in a consistent fashion (it may be that SENGLISH [13] and the ontology can do this). We have yet to make any decisions about the underlying implementation of the knowledge base (or world model), but it should be possible for the rational agent to view the information about the configuration, percepts and ontology as statements in first order logic. Stream transformers transform data content and rate – e.g., continuous data can be made discrete and data can be sampled in various ways to prevent overloading of other components. The rational agent (and possibly other sub-systems) has the power to create and destroy the stream transformers between components. Only the rational agent and the knowledge base (or world model) will be constant across all instantiations of this architecture. Each individual application will need a different set of control and adviser systems.