Mars Science Laboratory (MSL) flight software is designed to control all onboard functions of the flight system, consisting of three primary stages — cruise, entry-descent-landing (EDL), and rover — for the three mission phases. These three stages have common as well as distinct mission requirements that are being supported by the flight software. The key challenges of the software can be summarized by the complexity and diversity of its capabilities, the robustness of its design to support fault tolerance requirements, and the resource constraints (performance and memory) in which the software operates. Specifically, the EDL function is designed to ensure fail operational capability requiring Second Chance software to be executed in the backup processor in parallel with the prime processor. This backup software can be activated in fractions of a second to continue execution in the event of prime failure during this critical mission phase. On the surface, the software is required to support and coordinate rover navigation, mobility, coordination, and control of the ten science instruments, as well as the health and maintenance of the flight system.

Design and implementation of the EDL critical sequence and control function is based on prescribed time points and vehicle states for event triggering. The EDL phase is very critical and can be mission-ending if any failure occurs. Implementation of a Second Chance software load on the backup avionics string mitigates common mode error of the flight software for EDL. The Second Chance software load is a streamlined version of the prime software load that controls the descent stage during EDL.

Complex robotic arm control takes into account the gravity vector, preload, and motion path planning for each of the five joints. The software is designed to operate continuously during the nine months of cruise phase, while the same software is expected to execute daily shutdown/wake-up sequence for every sol. These two operating modes require significant testing to ensure the fault protection design can handle nominal as well as stress scenarios.

A rover mobility and navigation system provides significant autonomy to the system. Such capability includes rover path planning, hazard detection based on stereo imaging, and inertial navigation on the surface.

This work was done by Ann S. Devereaux, David Y. Oh, Luke A. Dubord, Mary M. Lam, Magdy S. Bareh, D. J. Byrne, James P. Chase, Corey C. Harmon, John S. Koenig, Gene Y. Lee, Robert M. Manning, Jennifer L. Maxwell, Alex C. Moncada, Tracy A. Neilson, Shivaly Reddy, Stephen R. Kuhn, Andre R. Girerd, Joseph S. Stehly, Elizabeth A. Dewell, Christopher G. Salvo, Steven E. Schroeder, Robert Zimmerman, Loren E. Jones, Henley D. Morgan, Zainab Nagin Cox, James M. Morcos, Torsten Zorn, James A. Donaldson, Jason X. Zheng, Sanford M. Krasner, Benjamin D. Cichy, Marek W. Tuszynski, Steve F. Scandore, Edward G. Benowitz, Jeffrey J. Biesiadecki, Yan Brenman, Timothy K. Canham, Joseph L. Carsten, Kenneth C. Clark, Christopher L. Delp, Robert W. Denise, Kirk. Fleming, Daniel M. Gaines, Edward B. Gamble Jr., Gorang C. Gandhi, Celina A. Clewans, Kim P. Gostelow, Hanry Hartounian, David S. Hecox, Daniel M. Helmick, Quy Q. Ho, Gerard J. Holzmann, Christopher G. Jones, Rajeev Joshi, Ronald K. Kandt, Won S. Kim, Roger W. Klemm, John Y. Lai, Danny C. Lam, Dee Leang, Cin-Young Lee, Jeffrey W. Levison, Todd E. Litwin, Mark W. Maimone, Lloyd G. Manglapus, Alexander T. Murray, Cindy H. Oda, Amalaye Oyake, Marc M. Pack, Prashanth Pandian, Leonard J. Reder, Glenn E. Reeves, Aadil Rizvi, Matthew L. Robinson, Marcel J. Schoppers, Mohammad Shahabuddin, Boris D. Shenker, Margaret H. Smith, Kenneth M. Starr, Igor Uchenik, Vandana Tompkins, Udo J. Wehmeier, Kathryn A. Weiss, Clayton Williams, Muh-Wang Yang, Hyejung Yun, Daniel P. Scharf, Eric Nicolich, Lisa E. Tatge, Rosana B. Borgen, Antonio Diaz-Calderon, Patrick C. Leger, Marc Allen, Micah Clark, Brian S. Smith, David E. Smyth, Joseph Snyder, Alex Groce, Brian Newport, Hui-Ying Wen, Jesse Wright, and Joseph Hutcherson of Caltech for NASA’s Jet Propulsion Laboratory. For more information, visit the following sites:

JPL: http://mars.jpl.nasa.gov/msl 

NASA: http://www.nasa.gov/mission_pages/msl 

Wikipedia: http://en.wikipedia.org/wiki/Curiosity_(rover) 

Twitter: https://twitter.com/MarsCuriosity 

This software is available for commercial licensing. Please contact Dan Broderick at This email address is being protected from spambots. You need JavaScript enabled to view it.. Refer to NPO-49100.

NASA Tech Briefs Magazine

This article first appeared in the November, 2014 issue of NASA Tech Briefs Magazine.

Read more articles from this issue here.

Read more articles from the archives here.