Jul 012015

Curiosity is one of the most ambitious and successful NASA missions. It is on Mars now. But not everyone knows that the generated code has been part of Curiosity’s Rover flight software since launch, and continues to run on board today. Code generated from state chart diagram is used for: auto-maneuver (Cruise phase), Spacecraft Modes (Configures the spacecraft), Launch mode, Cruise mode, entry, descent, landing, and rover mode.








  • Code and documentation are always in sync
  • More precise diagrams
  • Easier to accommodate changes late in the game
  • Encourages communication between systems, flight, test
  • Forces the developer to consider off-nominal scenarios


  • Could be overkill for list-like state machines
  • Drawing diagrams takes time


Areas of use

  • Auto-maneuver (Cruise phase):
    • High level state machines sending messages to the attitude control system
    • Handles retries, high-level off nominal situations
    • Turns, acquire attitude knowledge, trajectory correction maneuvers
    • ~ 10 state charts intercommunicating
    • ~ 100 states
  • Spacecraft Modes:
    • ~ 50 states
    • Configures the spacecraft when booting up
    • Re-configures the spacecraft when changing modes
  • Launch mode
  • Cruise mode
  • Entry, descent, and landing mode
  • Rover mode

Full presentation:

Download (PDF, Unknown)

Source: http://flightsoftware.jhuapl.edu/files/2012/FSW12_Benowitz.pdf, http://mars.nasa.gov/mer/gallery/press/opportunity/20120117a.html


5.00 avg. rating (99% score) - 3 votes

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>



Time limit is exhausted. Please reload CAPTCHA.