Engineering Autonomous Space Software



Asteroid mission Satellites Exploring an Asteroid Field

The Engineering Autonomous Space Software project was an EPSRC-funded collaboration between Computer Science researchers at the University of Liverpool and Autonomous Control Systems and Astronautics researchers at the University of Southampton.

Department of Computer Science, University of Liverpool
School of Engineering Sciences, University of Southampton


Two post-doctoral researchers worked on this project:

Louise Dennis, Liverpool
Nick Lincoln, Southampton


Satellites in FormationSatellites Flying in Formation

This project aimed to tackle the general problem of engineering autonomous space systems (EASS). In particular, we were concerned with developing a new declarative programming methodology that would allow the control software for multiple, interacting, autonomous satellites to be produced in a clear, high-level way. The practicality of the methodology was demonstrated by programming hardware in a ground-based multi-satellite testbed.

The main objectives of the project were as follows.

  1. To develop a rational agent theory (and architecture), with the ability to carry out predictive modelling of continuous time (or variable sampling rate) phenomena, and to use these in planning.
  2. To augment this agent architecture with the ability to undertake multi-resolution and multi-layered modelling in order to reduce the time it takes for an agent to find a solution using its predictive modelling capabilities.
  3. To develop a declarative agent programming theory, and a practical language, that can handle real world modelling and control by the agents.
  4. To demonstrate the methodology on the Southampton Spacecraft Autonomy Testing (SAT) Facility. A rendezvous demonstration will be produced, involving 2 vehicles: active chaser and passive/active target, and demo will be extended (in simulation where needed) to more than 2 vehicles for future missions such as XEUS and PROBA-3.


One of the problems faced by operations in space is the time taken for communications to reach Earth and for replies to be returned. Extending satellites with the capability to make simple decisions, such as to take evasive action or fix internal problems as they arise, should increase their effectiveness and robustness. It should also allow more ambitious missions to be planned in which satellites work in close proximity to each other or objects such as asteroids since they will have a much greater capacity for avoiding collisions.

Satellite control is currently implemented using well understood technology from the field of Control Systems. At the heart of these systems is a feedback loop controller which monitors data from sensors and compares it to the data that is expected. The system then uses standard mathematical equations to tweak things such as output from the thrusters in order to make small corrections. In this way control systems can easily follow smooth paths, and compensate for minor irregularities. However these techniques do not work well in situations where dramatic changes are required, for instance taking sudden evasive action, or switching between internal components.

The field of Artificial Intelligence has developed many techniques for computer decision-making. One of the most successful of these has been rational agents which react to events based upon their "beliefs" about the state of the world and their current "goals" (e.g., mission objectives in the case of satellites). However these techniques are not well equipped for subtle fine-grained control.

This project aimed to combine current state-of-the-art control systems technology with rational agent technology to produce a system that could both perform fine-grained monitoring and make large-scale decisions.

We have done theoretical work to describe such a system in a general mathematical way which does not depend upon the particular tools (MatLab and the Gwendolen programming language) which we used to build a demonstrator. This allows the high level ideas developed by the project to be used for other satellite programming set-ups and in other autonomous vehicle control situations: for instance, deep-sea exploration is also hampered by unreliable communications; and in search and rescue situations there may be comparatively few human operators available but a short-term need for a lot of robots. Preliminary steps have also been taken towards understanding how guarantees can be given that the decision-making subsystem will always take the correct decisions given the information it receives from the sensors.

An actual system has been implemented and tested both in a simulated environment and on a hardware test bed at the University of Southampton. This system includes a number of experimental sub-systems such as a simulation engine, which can be used to assist in decision making by simulating possible outcomes of actions and events, and an abstraction engine which monitors incoming sensor data and can use it to deduce general facts such as "all the thrusters are working correctly". We have also examined how groups of satellites can make communal decisions about moving into and maintaining formations, or efficiently examining a set of objects such as asteroids. We have shown experimentally that the effort required to produce a program in this system scales very well as the application becomes more complicated. This compares favourably with the effort required using hybrid automata which form the major alternative approach to this kind of problem.


  • A leaflet describing a high level description of the project.


Agents in LineSatellites Flying in Formation
  • N. K. Lincoln, S. M. Veres, L. A. Dennis, M. Fisher, A. Lisitsa. Autonomous Asteroid Exploration - Agent Based Control for Autonomous Spacecraft in Complex Environments. IEEE Computational Intelligence Magazine: Special Issue on space systems and operations, 2013.
  • N. K. Lincoln, S. M. Veres, L. A. Dennis, M. Fisher, A. Lisitsa . Agent Based Approaches to Engineering Autonomous Space Software. ESA Workshop on Avionics Data, Control and Software Systems (ADCSS) ESA/ESTEC, Noordwijk, The Netherlands, 23-25 October 2012.
  • N.K. Lincoln and S M Veres. Natural Language Programming of Complex Robotic BDI Agents, Journal of Intelligent & Robotic Systems (in print), Springer, 2012
  • S. M. Veres. Theoretical foundations of natural language programming and publishing for intelligent agents and robots. In 11th Conference Towards Autonomous Robotic Systems (TAROS 2010), 2010.
  • Nicholas Lincoln , Sandor Veres , Louise Dennis , Michael Fisher and Alexei Lisitsa. An Agent Based Framework for Adaptive Control and Decision Making of Autonomous Vehicles. Adaptation and Learning in Control and Signal Processing (ALCOSP 2010), 2010.
  • Louise A. Dennis, Michael Fisher, Nicholas K. Lincoln, Alexei Lisitsa, and Sandor M. Veres. Reducing Code Complexity in Hybrid Autonomous Control Systems. The 10th International Symposium on Artificial Intelligence, Robotics and Automation in Space (iSAIRAS 2010).
  • Louise A. Dennis, Michael Fisher, Nicholas K. Lincoln, Alexei Lisitsa, and Sandor M. Veres. Declarative Abstractions for Agent Based Hybrid Control Systems. Proceedings of Declarative Agent Languages and Technologies (DALT 10), 2010.



Some of the software produced as part of the project is included in the distribution of AJPF on sourceforge.

Project Details

  • Project duration: 42 months
  • Start date: 1st Dec 2008
  • EPSRC grant references

Relevant Links