Flight software
Flight software has to run the vehicle’s sensing, actuation, fault response and command execution on a processor that is slow by ground standards, with memory that cannot be inspected or replaced, behind a communications link that gives a few tens of minutes of uplink per sol at a few kilobits per second. A surface rover cannot be reset by a technician, and a lost command cycle can cost days of mission time. Across NASA Mars surface missions, 48 major anomalies (four or more consecutive sols of lost progress) took 11 percent of prime mission duration, and software accounts for 11 of them and computer hardware for 8 [21].
Design space
Section titled “Design space”Four design choices recur: the processor and operating system, the software architecture or framework, the scheduling model, and the means of changing the software after launch.
Processor and operating system. Radiation tolerance and flight heritage have held the processor class to a few generations behind the commercial state of the art. The MER flight software ran as 97 prioritized VxWorks tasks over 93 modules and roughly 300,000 source lines of C [1]. Pathfinder’s 1997 resets came from a priority inversion in that same task model, on a bus-management cycle of 8 Hz, and took under 18 hours to reproduce in the laboratory once the cause was suspected [2]. Real-time executives other than VxWorks are used on smaller vehicles; RTEMS context-switch overhead and interrupt latency were measured on an ERC32 at 12 MHz for that reason [12]. Commercial multicore and Linux-class parts are the other direction: Perseverance runs its onboard global localization on a Snapdragon 801 in the Ingenuity base station [24], and benchmarks of Mars 2020 vision processing and the GFOLD divert solver on next-generation processors address the same gap [29]. Multiprocessor designs for fault tolerance without radiation-hardened parts have been proposed and ground-tested, not flown on a surface vehicle [27]. See Flight computers and RTOS.
Architecture and frameworks. Two open frameworks cover most of the reuse. The core Flight System (cFS) is a layered executive and application set; on the Global Precipitation Measurement observatory it made up 42 percent of flight software lines and about 35 percent of the most constrained memory, and an estimate for rewriting the suite for a Class B mission is 49 person-years [9]. F Prime is a component and port framework: ASTERIA’s flight software had 54 component types in 93 instances, 17 of them inherited unmodified [10]. On Ingenuity about 60 percent of the code was auto-generated by F Prime and about 20 percent was unique to the helicopter [11]. As of a 2024 briefing, F Prime is C++ 11 with generated boilerplate and fully supports embedded Linux, x86_64, arm, aarch64 and bare-metal microcontrollers with hardware-in-the-loop testing, while VxWorks 7, RAD750 and RISC-V are roadmap items; Lunar Flashlight flew it and performed one in-flight update in January 2023, and its self-assessment lists time and space partitioning as not supported out of the box [34]. A survey of six frameworks for small spacecraft compares cFS, F Prime-class alternatives and others on portability and process, not on measured flight performance [23]. Robotic autonomy architectures such as CLARAty layer a decision layer over a functional layer and were validated on rover testbeds and flown in part [28]. See Core Flight System.
Scheduling. Hard-real-time guarantees rest on the fixed-priority and deadline-driven schedulability bounds of 1973 [13]. The onboard activity scheduler is a second, slower layer: the Mars 2020 design replaced a 6-minute fixed-cadence baseline with event-driven invocation, flexible execution and a 1-minute commit window, after simulation on a workstation surrogate of the RAD750 scheduler [14]. Parallel execution is the other scheduling gain: by sol 570 Perseverance had accumulated 329 hours 52 minutes of parallel activity, about 30 to 35 minutes per sol, and testbed runs showed Mastcam-Z video commanded in parallel with communication window preparation completed only 16 to 19 Mb of data against 385 Mb with nothing in parallel, so CPU contention and flight software priority bind rather than the plan [33]. EO-1’s CASPER planner is the documented price of onboard planning on a small processor: 4 MIPS of an 8 MIPS machine and 40 MB of memory, with the code image cut from 12 MB to 5 MB for flight [15]. See Timing and scheduling.
Fault tolerance in the software. The hardware-voted and software-voted computers of the 1960s to 1980s set the vocabulary: JPL-STAR with self-testing and repair [17], and SIFT, which put redundancy management in software across independent processors [18]. The dependability taxonomy of faults, errors and failures from the wider computing literature is the common terminology [31]. On Mars the redundancy is a pair of flight computers with one prime, and the software on top is a fault-protection engine that arbitrates more than 1000 monitors [25]. Partitioned (ARINC 653 style) architectures are proposed for reuse and containment of faults, not flown on a surface rover [26].
What changed and what it enabled
Section titled “What changed and what it enabled”Early flight software was written once and flown. Since MER, rovers have had their flight software replaced in flight: MER completed two full loads and one patch, a full load needing about 8 MB of uplink and the February 2005 patch about 2 MB, at about 15 minutes of UHF pass at about 1000 bits per second [6]. MSL has had nine full updates and cold patches between sol 1 and sol 2960; a release binary is about 10 MiB in 49 files [5]. The Spirit sol 18 reboot loop was a flash file system directory limit and cost 15 sols [3][21]. The Curiosity sol 200 anomaly was uncorrectable errors in commercial NAND flash, with a swap to the backup computer commanded 16 hours after the first error message and 35 days of margin before solar conjunction [4]. R-Hope, a special build that moves the non-volatile file system from NAND to 64 MB of NOR, restored the failing computer as a backup, with a 99 percent reduction in file system volume [5].
Updates change capability as well as repair defects. Ingenuity’s Release 8.0 added landing hazard detection at 3 Hz and a digital elevation map in the navigation filter, with a measured waypoint miss of about 3 m on one leg; it also introduced a defect in which landing sites inside 500 Hz packets were discarded as stale, patched in Release 8.1 [16]. A hot patch to Curiosity’s arm kinematics is the corresponding rover case [30]. Code volume grew with this: the Mars rover missions’ flight software size growth and the NASA multi-center study of flight software complexity both point to rising size and the cost of verification [7][8]. See Onboard software update.
Specifics
Section titled “Specifics”| Subsystem concern | Representative flown evidence | Status |
|---|---|---|
| Preemptive tasks on VxWorks, RAD6000 and RAD750 | MER, MSL, Mars 2020 [1][7] | Flown |
| Open component frameworks | cFS on GPM, F Prime on Ingenuity [9][11] | Flown |
| Flexible execution and event-driven scheduler | Mars 2020 onboard scheduler [14] | Flown; evaluated by simulation |
| Onboard planner on a small processor | CASPER on EO-1 [15] | Flown in Earth orbit |
| Software update after landing | MER, MSL, Ingenuity [6][5][16] | Flown |
| Commercial processors for localization | Snapdragon 801 on Mars 2020 [24] | Flown |
| Dependable multiprocessor cluster | ST8 concept [27] | Ground-tested |
| Partitioned operating system | ARINC 653 study [26] | Proposed |
Verification of flown autonomy software, from the Deep Space 1 Remote Agent to the Mars 2020 onboard scheduler, rested on testing and informal methods; formal methods were mostly limited to static analyzers, with SPIN model checking of the Remote Agent executive and of MSL flight software as the exceptions [35]. For distributed spacecraft, a hybrid event-driven simulator that runs compiled flight software with modeled scheduling and heap use reported a 7,500x faster-than-real-time speedup over 33 months of use on two in-house packages, in Earth orbit only [32]. Defect data bound what testing can find. Of 199 critical post-launch anomaly reports on seven JPL spacecraft, 41 percent were triggered by data access or delivery problems, and roughly a third by rare events that led to new fault-protection requirements [20]. The history of NASA flight computing is in [19]; the programming interfaces of ROS-based research frameworks, used on research rovers and not on flight vehicles, are in [22].
What is not established
Section titled “What is not established”The corpus holds no processor utilization or timing margin for Ingenuity’s Release 8.0, so the cost of the added capability is not stated [16]. The Mars 2020 scheduler results come from a workstation surrogate and assumed, not measured, onboard runtimes [14]. The cFS memory footprint is a single mission build, so its generality to other processors is not established [9]. The comparative framework survey does not rest on flight measurements [23]. The flash fatigue projection for Mars 2020 rests on one flight-like qualification sample [4]. Multicore and Linux-class flight computing beyond the Ingenuity base station has no surface-mission flight record in the held sources.
References
- Reeves, G. E. (2005). An Overview of the Mars Exploration Rovers Flight Software
. IEEE International Conference on Systems, Man and Cybernetics. Source
BibTeX
@inproceedings{reeves2005overview, title = {An Overview of the Mars Exploration Rovers Flight Software}, author = {Reeves, Glenn E.}, booktitle = {IEEE International Conference on Systems, Man and Cybernetics}, volume = {1}, pages = {1-7}, address = {Waikoloa, Hawaii}, year = {2005}, doi = {10.1109/icsmc.2005.1571113}, abstract = {The Mars exploration rovers (MER) flight software (FSW) is possibly the most complex software implementation to be deployed on another planet. The requirements dictated a software system that addressed four distinct mission phases (cruise, landing, egress, and surface) and the mission demanded a system with significant autonomy. The structure of the MER flight software reflects its object-oriented beginnings and the overall function reflects the requirements of the MER mission and spacecraft. This paper provides an overview of the function and structure of the MER flight software. The MER mission and spacecraft are briefly discussed to provide context for the flight software decomposition and the discussion of the software execution model.} } - Reeves, G. E. (1997). What really happened on Mars? Authoritative Account. cs.unc.edu/~anderson/teach/comp790/papers/mars_pathfinder_long_versio...
BibTeX
@misc{reeves1997what, title = {What really happened on Mars? Authoritative Account}, author = {Reeves, Glenn E.}, organization = {Jet Propulsion Laboratory}, year = {1997}, url = {https://www.cs.unc.edu/~anderson/teach/comp790/papers/mars_pathfinder_long_version.html} } - Reeves, G. E. and Neilson, T. A. (2005). The Mars Rover Spirit FLASH Anomaly
. IEEE Aerospace Conference. Source
BibTeX
@inproceedings{reeves2005mars, title = {The Mars Rover Spirit FLASH Anomaly}, author = {Reeves, Glenn E. and Neilson, Tracy A.}, booktitle = {IEEE Aerospace Conference}, pages = {4186-4199}, address = {Big Sky, Montana}, year = {2005}, doi = {10.1109/aero.2005.1559723}, abstract = {The Mars Exploration Rover "Spirit" suffered a debilitating anomaly that prevented communication with Earth for several anxious days. With the eyes of the world upon us, the anomaly team used each scrap of information, our knowledge of the system, and sheer determination to analyze and fix the problem, then return the vehicle to normal operation. This paper will discuss the Spirit FLASH anomaly, including the drama of the investigation, the root cause and the lessons learned from the experience} } - National Aeronautics and Space Administration. (2013). Mars Science Laboratory (MSL) Sol-200 Anomaly
. NASA Lessons Learned Information System, Lesson No. 11201. Source
BibTeX
@techreport{nasa2013msl, title = {Mars Science Laboratory (MSL) Sol-200 Anomaly}, author = {{National Aeronautics} and {Space Administration}}, number = {Lesson No. 11201}, institution = {NASA Lessons Learned Information System}, type = {Lessons Learned Entry}, year = {2013}, url = {https://www.nongnu.org/lzip/msl-sol-200-anomaly.html} } - Holloway, A., Peper, N., Anabtawi, A., Quade, J. and Byrne, D. (2022). Building a Lifeboat: MSL's Uplink and Installation Campaign to Restore a Failing Backup Computer
. IEEE Aerospace Conference. Source
BibTeX
@inproceedings{holloway2022building, title = {Building a Lifeboat: MSL's Uplink and Installation Campaign to Restore a Failing Backup Computer}, author = {Holloway, Alexandra and Peper, Nick and Anabtawi, Aseel and Quade, Jackson and Byrne, DJ}, booktitle = {IEEE Aerospace Conference}, pages = {1-9}, address = {Big Sky, Montana}, year = {2022}, doi = {10.1109/aero53065.2022.9843266}, abstract = {Flight software updates are among the hardest and most dangerous activities for the Mars Science Laboratory (MSL) Curiosity team. While danger is often mitigated by backups, fallback strategies, and incremental installation with ground-in-the-loop cycles which provide a safety net for the installation process, the software update described in this paper was unable to use many of the common practices due to the nature of the fault addressed by the update. The MSL rover (landed August 2012) encountered a problem with one of its computer's non-volatile storage chips in 2019, requiring a swap to its backup computer and an urgent software upgrade called R-Hope. R-Hope, a lifeboat to be used in the event of primary computer issues, was written, tested, and sent to the rover in lightning speed of just 19 months. Multi-mission and team coordination allowed the 49 flight software image files to be uplinked to the rover over a 6-week period, using multiple paths and backup options for speedy delivery. In the end, the R-Hope software upgrade returned the computer to operation as a backup flight computer. The flight software transition was designed to impact science return as little as possible, and installation plans included science activities for the majority of MSL instruments. This paper describes the uplink and installation campaigns for R-Hope, and discusses the notable lessons learned by the operations team.} } - Greco, M. E. and Snyder, J. F. (2005). Operational Modification of the Mars Exploration Rovers Flight Software
. IEEE International Conference on Systems, Man and Cybernetics. Source
BibTeX
@inproceedings{greco2005operational, title = {Operational Modification of the Mars Exploration Rovers Flight Software}, author = {Greco, Martin E. and Snyder, Joseph F.}, booktitle = {IEEE International Conference on Systems, Man and Cybernetics}, address = {Waikoloa, Hawaii}, year = {2005}, url = {https://dataverse.jpl.nasa.gov/dataset.xhtml?persistentId=hdl:2014/37496} } - Oh, J. M. C., Trettel, I. A., Fifield, M. G. and Scandore, S. F. (2023). Mars Project Software Systems Engineering Improvements
. IEEE Aerospace Conference. Source
BibTeX
@inproceedings{oh2023mars, title = {Mars Project Software Systems Engineering Improvements}, author = {Oh, Jane M. C. and Trettel, Ian A. and Fifield, Michael G. and Scandore, Steve F.}, booktitle = {IEEE Aerospace Conference}, publisher = {JPL Open Repository}, year = {2023}, doi = {10.48577/jpl.2on0q6} } - Dvorak, D. (2009). NASA Study on Flight Software Complexity
. AIAA Infotech@Aerospace Conference. Source
BibTeX
@inproceedings{dvorak2009nasa, title = {NASA Study on Flight Software Complexity}, author = {Dvorak, Daniel}, booktitle = {AIAA Infotech@Aerospace Conference}, year = {2009}, doi = {10.2514/6.2009-1882}, abstract = {In 2007 the NASA Office of Chief Engineer commissioned a multi-center study to bring forth technical and managerial strategies to address risks from growth in size and complexity of flight software in NASA’s space missions. The motivation for the study grew from problems attributed to flight software in a variety of missions—in both pre-launch and post-launch activities—and concerns that such problems were growing with the expanding role of flight software. The study was tasked to examine the growth in flight software size and complexity, recommend ways to reduce and better manage complexity, and identify methods of testing complex logic. This report examines complexity throughout the engineering lifecycle—from requirements definition through design, development, verification, and operations—and presents sixteen findings and associated recommendations.} } - McComas, D., Wilmot, J. and Cudmore, A. (2016). The Core Flight System (cFS) Community: Providing Low Cost Solutions for Small Spacecraft
. Annual AIAA/USU Conference on Small Satellites. Source
BibTeX
@inproceedings{mccomas2016core, title = {The Core Flight System (cFS) Community: Providing Low Cost Solutions for Small Spacecraft}, author = {McComas, David and Wilmot, Jonathan and Cudmore, Alan}, booktitle = {Annual AIAA/USU Conference on Small Satellites}, year = {2016}, url = {https://ntrs.nasa.gov/citations/20160010300}, abstract = {In February 2015 the NASA Goddard Space Flight Center (GSFC) completed the open source release of the entire Core Flight Software (cFS) suite. After the open source release a multi-NASA center Configuration Control Board (CCB) was established that has managed multiple cFS product releases. The cFS was developed and is being maintained in compliance with the NASA Class B software development process requirements and the open source release includes all Class B artifacts. The cFS is currently running on three operational science spacecraft and is being used on multiple spacecraft and instrument development efforts. While the cFS itself is a viable flight software (FSW) solution, we have discovered that the cFS community is a continuous source of innovation and growth that provides products and tools that serve the entire FSW lifecycle and future mission needs. This paper summarizes the current state of the cFS community, the key FSW technologies being pursued, the development/verification tools and opportunities for the small satellite community to become engaged. The cFS is a proven high quality and cost-effective solution for small satellites with constrained budgets.} } - Bocchino, R. L. J., Canham, T. K., Watney, G. J., Reder, L. J. and Levison, J. W. (2018). F Prime: An Open-Source Framework for Small-Scale Flight Software Systems
. JPL Open Repository. Source
BibTeX
@inproceedings{bocchino2018prime, title = {F Prime: An Open-Source Framework for Small-Scale Flight Software Systems}, author = {Bocchino, Robert L. Jr. and Canham, Timothy K. and Watney, Garth J. and Reder, Leonard J. and Levison, Jeffrey W.}, booktitle = {JPL Open Repository}, year = {2018}, url = {https://dataverse.jpl.nasa.gov/dataset.xhtml?persistentId=hdl:2014/48425} } - Canham, T. K. (2022). The Mars Ingenuity Helicopter - A Victory for Open-Source Software
. IEEE Aerospace Conference. Source
BibTeX
@inproceedings{canham2022mars, title = {The Mars Ingenuity Helicopter - A Victory for Open-Source Software}, author = {Canham, Timothy K}, booktitle = {IEEE Aerospace Conference}, pages = {01-11}, publisher = {IEEE}, year = {2022}, doi = {10.1109/aero53065.2022.9843438} } - Nicodemos, F., Saotome, O. and Lima, G. (2013). RTEMS Core Analysis for Space Applications
. III Brazilian Symposium on Computing Systems Engineering. Source
BibTeX
@inproceedings{nicodemos2013rtems, title = {RTEMS Core Analysis for Space Applications}, author = {Nicodemos, Fernando and Saotome, Osamu and Lima, George}, booktitle = {III Brazilian Symposium on Computing Systems Engineering}, volume = {18}, pages = {125-130}, year = {2013}, doi = {10.1109/sbesc.2013.22}, abstract = {Overheads due to context switching and external interrupt management are core characteristics for Real-Time Operating Systems (RTOS) since they play a central role in their performance and timeliness. In this paper we evaluate two core characteristics for the Real-Time Executive for Multiprocessor Systems (RTEMS), an operating system used for supporting space applications. Our assessment makes use of an external non-intrusive measurement tool based on a Field-Programmable Gate Array (FPGA). Measurement data are then transferred to an external computer and analyzed off-line. Experiments are carried out on a device that complies with the Brazilian space program recommendation.} } - Liu, C. L. and Layland, J. W. (1973). Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment
. Journal of the ACM, 1. Source
BibTeX
@article{liu1973scheduling, title = {Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment}, author = {Liu, C. L. and Layland, James W.}, journal = {Journal of the ACM}, volume = {20}, number = {1}, pages = {46--61}, year = {1973}, doi = {10.1145/321738.321743}, abstract = {The problem of multiprogram scheduling on a single processor is studied from the viewpoint of the characteristics peculiar to the program functions that need guaranteed service. It is shown that an optimum fixed priority scheduler possesses an upper bound to processor utilization which may be as low as 70 percent for large task sets. It is also shown that full processor utilization can be achieved by dynamically assigning priorities on the basis of their current deadlines. A combination of these two scheduling techniques is also discussed.} } - Agrawal, J., Chi, W., Chien, S., Rabideau, G., Gaines, D. and Kuhn, S. (2021). Analyzing the effectiveness of rescheduling and Flexible Execution methods to address uncertainty in execution duration for a planetary rover
. Robotics and Autonomous Systems. Source
BibTeX
@article{agrawal2021analyzing, title = {Analyzing the effectiveness of rescheduling and Flexible Execution methods to address uncertainty in execution duration for a planetary rover}, author = {Agrawal, Jagriti and Chi, Wayne and Chien, Steve and Rabideau, Gregg and Gaines, Daniel and Kuhn, Stephen}, journal = {Robotics and Autonomous Systems}, volume = {140}, pages = {103758}, year = {2021}, doi = {10.1016/j.robot.2021.103758} } - Tran, D., Chien, S., Rabideau, G. and Cichy, B. (2004). Flight Software Issues in Onboard Automated Planning: Lessons Learned on EO-1
. International Workshop on Planning and Scheduling for Space. Source
BibTeX
@inproceedings{tran2004flight, title = {Flight Software Issues in Onboard Automated Planning: Lessons Learned on EO-1}, author = {Tran, Daniel and Chien, Steve and Rabideau, Gregg and Cichy, Benjamin}, booktitle = {International Workshop on Planning and Scheduling for Space}, year = {2004}, url = {https://dataverse.jpl.nasa.gov/dataset.xhtml?persistentId=hdl:2014/37970} } - Anderson, J. L., Brown, T. L., Cacan, M., Kubiak, G., Jasour, A. and Rothenberger, N. Z. (2024). Lessons From Ingenuity's Climb Up Jezero Crater Delta
. IEEE Aerospace Conference. Source
BibTeX
@inproceedings{anderson2024lessons, title = {Lessons From Ingenuity's Climb Up Jezero Crater Delta}, author = {Anderson, Joshua L. and Brown, Travis L. and Cacan, Martin and Kubiak, Gerik and Jasour, Ashkan and Rothenberger, Noah Z.}, booktitle = {IEEE Aerospace Conference}, pages = {1--15}, publisher = {IEEE}, year = {2024}, doi = {10.1109/aero58975.2024.10521181}, abstract = {As Perseverance began exploring the delta of Jezero crater, the Ingenuity team took on the most ambitious flights of the mission to date. Designed for the relatively flat terrain of the crater floor, the Ingenuity team now needed to climb up and fly through the rocky channels of the Jezero delta. Before the flights in the delta could even be attempted, the team needed to upgrade Ingenuity’s flight software to identify landing hazards and utilize digital elevation maps in the navigation filter. After upgrading the flight software, the team needed to work through a series of checkout flights to validate this new functionality prior to climbing the delta. The Jezero delta features narrow channels, limiting Ingenuity and Perseverance’s available traverse paths. This required Ingenuity and Perseverance to follow similar routes, necessitating new processes for coordinating Ingenuity and Perseverance’s parallel flights and drives. In previous traverses, Ingenuity was able to take separate, shorter routes to the destination, but this climb required Ingenuity to keep pace with Perseverance’s record setting drives. This rapid traverse pushed the Ingenuity team to optimize the flight planning process to shorten the nominal two week flight cadence to under a week between flights. The narrow passages of the delta also limited Ingenuity’s telecom propagation, providing only small windows of strong communication with Perseverance. All these above constraints required the Perseverance and Ingenuity teams to carefully orchestrate both vehicles’ journey up the delta, keeping both vehicles in lockstep while minimizing the chance that one vehicle would hold up the other’s progress. The paper will cover flight 34 and beyond, Ingenuity’s delta climb, as well as the lessons learned from both the challenging flights in the delta terrain and the required multi-vehicle coordination of the climb.12} } - Avizienis, A. (1967). Design of Fault-Tolerant Computers
. November 14-16, Fall Joint Computer Conference. Source
BibTeX
@inproceedings{avizienis1967design, title = {Design of Fault-Tolerant Computers}, author = {Avizienis, Algirdas}, booktitle = {November 14-16, Fall Joint Computer Conference}, pages = {733}, year = {1967}, doi = {10.1145/1465611.1465708}, abstract = {Reliable performance of hardware has been a requirement for digital systems since the construction of the first digital computer. Improper functioning of the logic circuits in a digital system is manifested by logic faults, which are defined for this paper as "permanent or transient deviations of logic variables from the values specified in design."} } - Goldberg, J., Green, M. W., Kautz, W. H., Levitt, K. N., Melliar-Smith, P. M., Schwartz, R. L. and Weinstock, C. B. (1984). Development and Analysis of the Software Implemented Fault-Tolerance (SIFT) Computer
. SRI International for NASA Langley Research Center, NASA CR-172146. Source
BibTeX
@techreport{goldberg1984development, title = {Development and Analysis of the Software Implemented Fault-Tolerance (SIFT) Computer}, author = {Goldberg, Jack and Green, Milton W. and Kautz, William H. and Levitt, Karl N. and Melliar-Smith, P. Michael and Schwartz, Richard L. and Weinstock, Charles B.}, number = {NASA CR-172146}, institution = {SRI International for NASA Langley Research Center}, year = {1984}, url = {https://ntrs.nasa.gov/citations/19840010885}, abstract = {SIFT (Software Implemented Fault Tolerance) is an experimental, fault-tolerant computer system designed to meet the extreme reliability requirements for safety-critical functions in advanced aircraft. Errors are masked by performing a majority voting operation over the results of identical computations, and faulty processors are removed from service by reassigning computations to the nonfaulty processors. This scheme has been implemented in a special architecture using a set of standard Bendix BDX930 processors, augmented by a special asynchronous-broadcast communication interface that provides direct, processor to processor communication among all processors. Fault isolation is accomplished in hardware; all other fault-tolerance functions, together with scheduling and synchronization are implemented exclusively by executive system software. The system reliability is predicted by a Markov model. Mathematical consistency of the system software with respect to the reliability model has been partially verified, using recently developed tools for machine-aided proof of program correctness.} } - Tomayko, J. E. (1988). Computers in Spaceflight: The NASA Experience
. NASA, NASA-CR-182505. Source
BibTeX
@techreport{tomayko1988computers, title = {Computers in Spaceflight: The {NASA} Experience}, author = {Tomayko, James E.}, number = {NASA-CR-182505}, institution = {NASA}, year = {1988}, url = {https://ntrs.nasa.gov/citations/19880069935}, abstract = {This book examines the computer systems used in actual spaceflight or in close support of it. Computer systems used in administration and in aeronautical and other research not directly related to spaceflight are ignored. Each chapter deals with either a specific program, such as Gemini or Apollo onboard computers, or a closely related set of systems, such as launch processing or mission control.. A glossary of computer terms is included.} } - Lutz, R. R. and Mikulski, I. C. (2003). Patterns of Software Defect Data on Spacecraft
. NASA Office of Safety and Mission Assurance, Jet Propulsion Laboratory. Source
BibTeX
@techreport{lutz2003patterns, title = {Patterns of Software Defect Data on Spacecraft}, author = {Lutz, Robyn R. and Mikulski, Ines Carmen}, institution = {NASA Office of Safety and Mission Assurance, Jet Propulsion Laboratory}, year = {2003}, url = {https://dataverse.jpl.nasa.gov/dataset.xhtml?persistentId=hdl:2014/7132} } - Heverly, M. and Bareh, M. (2026). The Impact of Major Anomalies of Robotic Mars Surface Missions on Mission Timeline
. IEEE Aerospace Conference. Source
BibTeX
@inproceedings{heverly2026impact, title = {The Impact of Major Anomalies of Robotic Mars Surface Missions on Mission Timeline}, author = {Heverly, Matt and Bareh, Magdy}, booktitle = {IEEE Aerospace Conference}, publisher = {JPL Open Repository}, year = {2026}, doi = {10.48577/jpl.zlcejq} } - Koubâa, A. (2016). Robot Operating System (ROS)
. Studies in Computational Intelligence. Source
BibTeX
@book{koubaa2016robot, title = {Robot Operating System (ROS)}, author = {Koubâa, Anis}, booktitle = {Studies in Computational Intelligence}, year = {2016}, doi = {10.1007/978-3-319-26054-9} } - José Franzim Miranda, D., Ferreira, M., Kucinskis, F. and McComas, D. (2019). A Comparative Survey on Flight Software Frameworks for ‘New Space’ Nanosatellite Missions
. Journal of Aerospace Technology and Management. Source
BibTeX
@article{miranda2019comparative, title = {A Comparative Survey on Flight Software Frameworks for ‘New Space’ Nanosatellite Missions}, author = {José Franzim Miranda, Danilo and Ferreira, Maurício and Kucinskis, Fabricio and McComas, David}, journal = {Journal of Aerospace Technology and Management}, publisher = {FapUNIFESP (SciELO)}, year = {2019}, doi = {10.5028/jatm.v11.1081}, abstract = {Nanosatellite missions are becoming increasingly popular nowadays, especially because of their reduced cost. Therefore, many organizations are entering the space sector due to the paradigm shift caused by nanosatellites. Despite the reduced size of these spacecrafts, their Flight Software (FSW) complexity is not proportional to the satellite volume, thus creating a great barrier for the entrance of new players on the nanosatellite market. On the other side, there are some available frameworks that can provide mature FSW design approaches, implying in considerable reduction in software project timeframe and cost. This paper presents a comparative survey between six relevant flight software frameworks, compared according to commonly required ‘New Space’ criteria, and finally points out the most suitable one to the VCUB1 reference nanosatellite mission.} } - Nash, J., Verma, V., Graser, E., Wang, H., Kubiak, G., Maimone, M., Myint, S., Biesiadecki, J. and Romano, P. (2026). A Software-Based Approach to Radiation Mitigation for Planetary Mission
. IEEE Aerospace Conference. Source
BibTeX
@inproceedings{nash2026software, title = {A Software-Based Approach to Radiation Mitigation for Planetary Mission}, author = {Nash, Jeremy and Verma, Vandi and Graser, Evan and Wang, Haoda and Kubiak, Gerik and Maimone, Mark and Myint, Steven and Biesiadecki, Jeffrey and Romano, Philip}, booktitle = {IEEE Aerospace Conference}, publisher = {JPL Open Repository}, year = {2026}, doi = {10.48577/jpl.okks5v}, abstract = {The Perseverance Mars rover needs to drive long distances between regions of scientific interest to collect a diverse set of samples. Position knowledge is needed for navigating to the region of interest. Planetary mobile robots accumulate position uncertainty as they move. Globally localizing the robot to an orbital map of Mars removes this uncertainty. Previously this was performed manually on the ground by humans for mobile surface and aerial robots. This can be accurate but requires communication between planets. This takes significant time and the need for it limits how far Perseverance can autonomously navigate without ground-in-the-loop.The Perseverance Mars rover is in the process of deploying a new onboard global localization capability that has the potential for significantly improving long-distance autonomous navigation. It allows the rover to precisely determine its position by comparing panoramic images from its navigation cameras with high-resolution orbital maps. This paper provides an outline of the development and successful deployment of onboard global localization system on the Perseverance Mars rover and the challenges encountered. Leveraging a fast, commercial off-the-shelf (COTS) Snapdragon 801 processor from the Ingenuity Helicopter Base Station, the system performs complex image-processing tasks to accurately determine the rover's position relative to orbital maps. This approach overcomes the limitations of the rover's slower, radiation-hardened processor, and is a paradigm shift in planetary robotics.} } - Benowitz, E. (2015). The Curiosity Mars Rover's Fault Protection Engine
. IEEE International Conference on Space Mission Challenges for Information Technology. Source
BibTeX
@inproceedings{benowitz2015curiosity, title = {The Curiosity Mars Rover's Fault Protection Engine}, author = {Benowitz, Ed}, booktitle = {IEEE International Conference on Space Mission Challenges for Information Technology}, volume = {111}, pages = {62-66}, address = {Big Sky, Montana}, year = {2015}, doi = {10.1109/smc-it.2014.16}, abstract = {The Curiosity Rover, currently operating on Mars, contains flight software onboard to autonomously handle aspects of system fault protection. Over 1000 monitors and 39 responses are present in the flight software. Orchestrating these behaviorsis the flight software's fault protection engine. In this paper, we discuss the engine's design, responsibilities, and present some lessons learned for future missions.} } - Horvath, G., Chung, S. H. and Cilloniz-Bicchi, F. (2011). Safety-critical partitioned software architecture : a partitioned software architecture for robotic
. Infotech@Aerospace. ntrs.nasa.gov/citations/20120007451
BibTeX
@misc{horvath2011safety, title = {Safety-critical partitioned software architecture : a partitioned software architecture for robotic}, author = {Horvath, Greg and Chung, Seung H. and Cilloniz-Bicchi, Ferner}, journal = {Infotech@Aerospace}, year = {2011}, url = {https://ntrs.nasa.gov/citations/20120007451}, abstract = {The flight software on virtually every mission currently managed by JPL has several major flaws that make it vulnerable to potentially fatal software defects. Many of these problems can be addressed by recently developed partitioned operating systems (OS). JPL has avoided adopting a partitioned operating system on its flight missions, primarily because doing so would require significant changes in flight software design, and the risks associated with changes of that magnitude cannot be accepted by an active flight project. The choice of a partitioned OS can have a dramatic effect on the overall system and software architecture, allowing for realization of benefits far beyond the concerns typically associated with the choice of OS. Specifically, we believe that a partitioned operating system, when coupled with an appropriate architecture, can provide a strong infrastructure for developing systems for which reusability, modifiability, testability, and reliability are essential qualities. By adopting a partitioned OS, projects can gain benefits throughout the entire development lifecycle, from requirements and design, all the way to implementation, testing, and operations.} } - Ramos, J., Samson, J. R., Troxel, I., Subramaniyan, R., Jacobs, A., Greco, J., Cieslewski, G., Curreri, J., Fischer, M., Grobelny, E., George, A., Aggarwal, V., Patel, M. and Some, R. (2006). High performance, dependable multiprocessor
. IEEE Aerospace Conference. Source
BibTeX
@inproceedings{ramos2006high, title = {High performance, dependable multiprocessor}, author = {Ramos, Jeremy and Samson, John R. and Troxel, Ian and Subramaniyan, Rajagopal and Jacobs, Adam and Greco, James and Cieslewski, Grzegorz and Curreri, John and Fischer, Michael and Grobelny, Eric and George, Alan and Aggarwal, Vikas and Patel, Minesh and Some, Raphael}, booktitle = {IEEE Aerospace Conference}, pages = {1-13}, year = {2006}, doi = {10.1109/aero.2006.1655959}, abstract = {With the ever-increasing demand for higher bandwidth and processing capacity of today's space exploration, space science, and defense missions, the ability to efficiently apply commercial-off-the-shelf (COTS) processors for on-board computing is now a critical need. In response to this need, NASA's new millennium program office has commissioned the development of Dependable Multiprocessor (DM) technology for use in payload and robotic missions. The Dependable Multiprocessor technology is a COTS-based, power-efficient, high-performance, highly dependable, fault-tolerant cluster computer. To date, Honeywell has successfully demonstrated a TRL4 prototype of the Dependable Multiprocessor (Ramos et al., 2005), and is now working on the development of a TRL5 prototype. For the present effort Honeywell has teamed up with the University of Florida via its high-performance computing and simulation (HCS) research laboratory, and together the team has demonstrated major elements of the Dependable Multiprocessor TRL5 system. This paper provides a detailed description of the basic Dependable Multiprocessor technology, and the TRL5 technology prototype currently under development} } - Nesnas, I. A., Wright, A., Bajracharya, M., Simmons, R., Estlin, T. and Kim, W. S. (2003). CLARAty: an architecture for reusable robotic software
. Unmanned Ground Vehicle Technology V. Source
BibTeX
@inproceedings{nesnas2003bclaraty, title = {CLARAty: an architecture for reusable robotic software}, author = {Nesnas, I. A. and Wright, A. and Bajracharya, M. and Simmons, R. and Estlin, T. and Kim, W. S.}, booktitle = {Unmanned Ground Vehicle Technology V}, series = {SPIE Proceedings}, volume = {5083}, pages = {253}, year = {2003}, doi = {10.1117/12.497223}, abstract = {In this article, we will present an overview of the Coupled Layered Architecture for Robotic Autonomy. CLARAty develops a framework for generic and reusable robotic components that can be adapted to a number of heterogeneous robot platforms. It also provides a framework that will simplify the integration of new technologies and enable the comparison of various elements. CLARAty consists of two distinct layers: a Functional Layer and a Decision Layer. The Functional Layer defines the various abstractions of the system and adapts the abstract components to real or simulated devices. It provides a framework and the algorithms for low- and mid-level autonomy. The Decision Layer provides the system's high-level autonomy, which reasons about global resources and mission constraints. The Decision Layer accesses information from the Functional Layer at multiple levels of granularity. In this article, we will also present some of the challenges in developing interoperable software for various rover platforms. Examples will include challenges from the locomotion and manipulation domains} } - Yun, K. (2025). Enhancing Fault-Tolerant Space Computing: Guidance Navigation and Control (GNC) and Landing Vision System (LVS) Implementations on Next-Gen Multi-Core Processors
. IEEE SMC-IT/SCC. Source
BibTeX
@inproceedings{yun2025enhancing, title = {Enhancing Fault-Tolerant Space Computing: Guidance Navigation and Control (GNC) and Landing Vision System (LVS) Implementations on Next-Gen Multi-Core Processors}, author = {Yun, Kyongsik}, booktitle = {IEEE SMC-IT/SCC}, publisher = {JPL Open Repository}, year = {2025}, doi = {10.48577/jpl.kylgng}, abstract = {Future planetary exploration missions demand high-performance, fault-tolerant computing to enable autonomous Guidance, Navigation, and Control (GNC) and Lander Vision System (LVS) operations during Entry, Descent, and Landing (EDL). This paper evaluates the deployment of GNC and LVS algorithms on next-generation multi-core processors—HPSC, Snapdragon VOXL2, and AMD Xilinx Versal—demonstrating up to 15× speedup for LVS image processing and over 250× speedup for Guidance for Fuel-Optimal Large Divert (GFOLD) trajectory optimization compared to legacy spaceflight hardware. To ensure computational reliability, we present ARBITER (Asynchronous Redundant Behavior Inspection for Trusted Execution and Recovery), a Multi-Core Voting (MV) mechanism that performs real-time fault detection and correction across redundant cores. ARBITER is validated in both static optimization tasks (GFOLD) and dynamic closed-loop control (Attitude Control System). A fault injection study further identifies the gradient computation stage in GFOLD as the most sensitive to bit-level errors, motivating selective protection strategies and vector-based output arbitration. This work establishes a scalable and energy-efficient architecture for future missions, including Mars Sample Return, Enceladus Orbilander, and Ceres Sample Return, where onboard autonomy, low latency, and fault resilience are critical.} } - Rankin, A., Holloway, A., Carsten, J. and Maimone, M. (2021). Integration of an Arm Kinematics Hot Patch onboard the Curiosity Rover
. IEEE Aerospace Conference. Source
BibTeX
@inproceedings{rankin2021integration, title = {Integration of an Arm Kinematics Hot Patch onboard the Curiosity Rover}, author = {Rankin, Arturo and Holloway, Alexandra and Carsten, Joseph and Maimone, Mark}, booktitle = {IEEE Aerospace Conference}, pages = {1-8}, publisher = {IEEE}, year = {2021}, doi = {10.1109/aero50100.2021.9438501}, abstract = {NASA's Mars Science Laboratory (MSL) mission has updated the Curiosity rover's flight software multiple times since landing on Mars on August 6, 2012. The most common patching method has been a hot patch, in which running flight software is modified after being copied into RAM from its persistent storage. The latest hot patch to be installed on Curiosity fixed an issue in the robotic arm software that computes generalized inverse kinematics. Additional unit testing performed since the start of the surface mission revealed that this software can sometimes produce erroneous solutions. The cause was identified as numerical instability in a quartic root finder. When the inputs to that solver are not well conditioned, floating-point numerical issues can cause erroneous roots to be reported. In theory, this could result in the robotic arm turret instruments being commanded to unintended positions, for example, below the terrain surface. Out of approximately 3.7 million unit test cases, 97.2 % of the position errors were below 5 mm. However, there were 16 test cases where the position error was greater than 20 cm, and the maximum position error was 1.2 meters. The patch was uploaded to Curiosity on sol 2642 (January 11, 2020) after the solution was developed, re-implemented as a hot patch, and validated and verified using Earth-based Curiosity testbeds. A checkout test of the patch was performed on Curiosity on sol 2657, and nominal use of the patch began on sol 2658. In this paper, we describe the steps that led to integrating the arm kinematic hot patch into Curiosity's flight software, from the discovery of the bug to the nominal use of the patch in flight.} } - Avizienis, A., Laprie, J.-C., Randell, B. and Landwehr, C. (2004). Basic Concepts and Taxonomy of Dependable and Secure Computing
. IEEE Transactions on Dependable and Secure Computing, 1. Source
BibTeX
@article{avizienis2004basic, title = {Basic Concepts and Taxonomy of Dependable and Secure Computing}, author = {Avizienis, Algirdas and Laprie, Jean-Claude and Randell, Brian and Landwehr, Carl}, journal = {IEEE Transactions on Dependable and Secure Computing}, volume = {1}, number = {1}, pages = {11--33}, year = {2004}, doi = {10.1109/tdsc.2004.2}, abstract = {This paper gives the main definitions relating to dependability, a generic concept including a special case of such attributes as reliability, availability, safety, integrity, maintainability, etc. Security brings in concerns for confidentiality, in addition to availability and integrity. Basic definitions are given first. They are then commented upon, and supplemented by additional definitions, which address the threats to dependability and security (faults, errors, failures), their attributes, and the means for their achievement (fault prevention, fault tolerance, fault removal, fault forecasting). The aim is to explicate a set of general concepts, of relevance across a wide range of situations and, therefore, helping communication and cooperation among a number of scientific and technical communities, including ones that are concentrating on particular types of system, of system failures, or of causes of system failures.} } - Bell, T. and D'Amico, S. (2025). Event-Driven Simulation for Rapid Iterative Development of Distributed Space Flight Software
. IEEE Aerospace Conference. Source
BibTeX
@inproceedings{bell2025event, title = {Event-Driven Simulation for Rapid Iterative Development of Distributed Space Flight Software}, author = {Bell, Toby and D'Amico, Simone}, booktitle = {IEEE Aerospace Conference}, pages = {1-19}, year = {2025}, doi = {10.1109/aero63441.2025.11068699}, abstract = {This paper presents the design, development, and application of a novel space simulation environment for rapidly prototyping and testing flight software for distributed space systems. The environment combines the flexibility, determinism, and observability of software-only simulation with a level of fidelity and depth normally attained by real-time hardware-in-the-loop testing. Ultimately, this work enables an engineering process in which flight software is continuously improved and delivered in its final, flight-ready form, and which reduces the cost of design changes and software revisions with respect to a traditional linear development process. Three key methods not found in existing tools enable this environment's novel capabilities: first, a hybrid event-driven simulation architecture that combines continuous-time and discrete-event simulation paradigms; second, a design for lightweight application-layer software virtualization that allows executing compiled flight software binaries while modeling process scheduling, input/ output, and memory use; and third, high-fidelity models for the multi-spacecraft space environment, including for wireless communication, relative sensing such as differential GPS and cameras, and flight computer system health metrics like heap exhaustion and fragmentation. The simulation environment's capabilities are applied to the iterative development and testing of two flight-ready software packages: the guidance, navigation, and control software for the VISORS mission, and the Stanford Space Rendezvous Laboratory's software kit for rendezvous and proximity operations. Results from 33 months of flight software development demonstrate the use of this simulation environment to rapidly and reliably identify and resolve defects, characterize navigation and control performance, and scrutinize implementation details like memory allocation and inter-spacecraft network protocols.} } - Siegfriedt, R. S., Girerd, A., Hazelrig, J., Gaines, D., Fosse, E., Appakonam, A., Waldram, N., Plave, A. and Rozek, M. (2023). Enabling Parallel Activities for Mars 2020 Rover Surface Operations
. IEEE Aerospace Conference. Source
BibTeX
@inproceedings{siegfriedt2023enabling, title = {Enabling Parallel Activities for Mars 2020 Rover Surface Operations}, author = {Siegfriedt, Rebekah S. and Girerd, Andre and Hazelrig, James and Gaines, Daniel and Fosse, Elyse and Appakonam, Ashwin and Waldram, Nicholas and Plave, Andrew and Rozek, Matthew}, booktitle = {IEEE Aerospace Conference}, address = {Big Sky, Montana}, year = {2023}, doi = {10.48577/jpl.obe5e4}, abstract = {Level 1 requirements levied on the Mars 2020 mission from NASA Headquarters challenged the Mars 2020 surface mission (also known as the Perseverance rover) to perform significantly better relative to the 2012 Mars Science Lab (MSL) surface mission (also known as the Curiosity rover). In one and a quarter Mars years, the Perseverance rover was expected to drive 50 percent farther and collect over twice as many samples as its predecessor, Curiosity. In order to reach these requirements, Mars 2020 came up with five guiding principles, two of which were “Be fast, be flexible: perform flight and ground functions more quickly” and “Do more science: increase the time that the vehicle is actively pursuing science on Mars''. These guiding principles required the mission to lay the groundwork early on for more surface activities to be performed in parallel, such as thinking while driving. Parallelism enabled both direct efficiency gains, such as completing multiple activities simultaneously during a given time frame, and indirect gains, such as increased available energy and better informed tactical planning due to more data being available sooner. These efficiency gains allowed the rover to complete more complex plans and better handle adversity such as data return disruptions. Although the mission planned to test and approve most of the parallel activities in the development phase, limitations on budget, time and personnel drove the majority of parallel activity testing and approvals to occur in the operations phase. Ideally, any activity can run concurrently with any other activity, but constraints such as Electromagnetic Interference (EMI), hardware safety, and resource utilization prevent some activities from running in parallel. In order to coordinate these behaviors on the rover, the mission needed an efficient and streamlined mechanism to manage them on the ground and maximize the amount of time the rover could pursue science on Mars. In response to this challenge, the Mars 2020 Surface Operations Team overhauled a legacy product from MSL called the Parallelism Matrix. Over the course of the primary mission, the Mars 2020 Parallelism Team made the following improvements: established a process to triage untested activity parallelism, enabled automatic updates to the matrix after downlinked data was analyzed, created a thorough testing campaign to investigate and approve untested parallel interactions, and provided a tool to autonomously track executed parallel activities as soon as data hit the ground.This paper will discuss: similarities and differences between the Perseverance and Curiosity missions with respect to maximizing science exploration time, Mars 2020’s new Flight Software (FSW) capabilities that enabled more parallelism, the Surface EMI testing campaign, the Surface Operations Parallelism Working Group efforts, Surface Operations parallelism tools and processes, the current state of parallel activity efforts on Mars 2020, the measurable benefits and achievements of parallelism, and the lessons learned and recommendations for the future.} } - Bocchino, R., Boyer-Chammard, T., Canham, T., Doran, S., Levison, J., Starch, M. and Ortega, K. (2024). F Prime Flight Software Update. doi.org/10.48577/jpl.jwewt9
BibTeX
@misc{bocchino2024prime, title = {F Prime Flight Software Update}, author = {Bocchino, Rob and Boyer-Chammard, Thomas and Canham, Tim and Doran, Steven and Levison, Jeff and Starch, Michael and Ortega, Kevin}, howpublished = {Presentation at the JPL Open Repository}, year = {2024}, doi = {10.48577/jpl.jwewt9}, abstract = {No abstract available.} } - Chien, S. (2022). Formal Methods for Trusted Space Autonomy, Boon or Bane?
. NASA Formal Methods. Source
BibTeX
@inproceedings{chien2022formal, title = {Formal Methods for Trusted Space Autonomy, Boon or Bane?}, author = {Chien, Steve}, booktitle = {NASA Formal Methods}, series = {Lecture Notes in Computer Science}, pages = {3-13}, publisher = {Springer International Publishing}, year = {2022}, doi = {10.1007/978-3-031-06773-0_1} }