## 2 Background
### Autonomy in Space  
The Jet Propulsion Laboratory was an early leader in the development of autonomous systems for space exploration. In 1972, JPL started work on artificial intelligence technologies for a Mars rover vehicle. In 1975, with a need for additional planning capabilities, they started work on DEVISER system to create and transmit commands to the Voyager spacecraft. The FAITH system was created to diagnose problems on Voyager and other spacecraft [6]. The Soviet Union, it would appear, embraced the use of autonomy even in situations where humans were present to prospectively perform the work. Their spacecraft docking technologies, IGLA (first demonstrated for in-space docking in 1986) and its replacement KURS (first used in 1989), were autonomous based on radar and calculated the relative position and orientation based on differences in signal strength between multiple antennas. IGLA was used for the Soyuz T spacecraft; KURS performed docking maneuvers onboard the Progress M and Soyuz TM spacecraft [7]. The United States (U.S.) attempted autonomous docking in 2005, resulting in a failure, with the National Aeronautics and Space Administration (NASA) Demonstrator to Test Future AutonomousRendezvous Technologies in Orbit (DART) mission. This resulted in the loss of both spacecraft. The U.S. Defense Advanced Research Projects Agency (DARPA) demonstrated this capability successfully in 2007 with ASTRO and NextSat [8,9]. The Jet Propulsion Laboratory's Sojourner Mars rover was the first demonstration of rover control for planetary science. Launched in 1996, the craft started Martian exploration in July of 1997. Planning for Sojourner was performed on Earth and uploaded to the craft. The craft was able to respond to emergencies and changing conditions; however, any planning changes required operator intervention [10,11]. Spirit and Opportunity, launched in 2003 and operating on Mars starting from January of 2004, initially followed this same approach. Software, developed by Carnegie Mellon was tested on the rover in 2006. This software (in its most autonomous mode) extended the robot's driving capabilities by utilizing an onboard terrain map and allowing the robot to plan and update, if needed, its route based on human controller-provided activity and constraint rules [12, 13, 14]. Autonomous control of spacecraft has also been demonstrated. The Deep Space One (DS1) spacecraft, launched in 1999, demonstrated three autonomy technologies. These included the Remote Agent Experiment (RAX), the AutoNav system and beacon software. RAX was allowed to control DS1 for several days--making DS1 the first spacecraft to be largely controlled by an onboard agent. During this time, it demonstrated its ability to manage mission objectives, perform planning and scheduling and health monitoring. Despite a failure during its first test, a second test operated without issue. The test also demonstrated a fiscal benefit of the use of autonomy: significantly less ground staff were required to operate it than with previous similar craft [15, 16, 17, 18, 19, 20, 21]. The AutoNav system automated the navigation control aspects of the spacecraft. It was progressively tested between 24 October 1998 and 20 April 1999 when it was placed in complete control of the spacecraft [22]. The beacon software demonstrated a new approach in craft-to-ground communications. With the beacon, the spacecraft determines when it needs assistance and conveys this to controllers, limiting the use of congested deep space communications resources for status messages and \"status normal\" telemetry [22]. In 2003, additional autonomy onboard a spacecraft was demonstrated with the Autonomous Scinececraft Experiment (ASE) onboard Earth Observing-1. The onboard CASPER software performed planning and data prioritization, increasing the amount of important science data that could be transmitted over the fixed-capacity communications link via data prioritization. ASE also allowed the spacecraft to respond quickly and thus capture short duration phenomena.