In a thrilling feat of engineering the Curiosity rover landed successfully on Mars this week. It is easy to be jaded about some of the technologies we see around us but landing a car-sized rover safely on Mars is extraordinary.
Here is an animation of the landing of Curiosity, and it shows the rover driving around on a different planet.
The Curiosity is roughly the size of a car and weighs around 2,000 lbs. Its nuclear power source generates 125 watt of power initially but will slowly degrade. After 14 years it will deliver around 100 watt (the official mission of the rover takes two years).
The rover has 17 cameras and since the specs were created in 2004, the main cameras only have 2 MP sensors. Similarly, the processing hardware feels a little dated: the CPU runs at 200 Mhz, it has 256 MB memory and 2 GB flash solid state storage. It has two on-board computers, one is configured as backup, and will take over in the event of problems with the main one.
One of the main engineering accomplishments in the project is the software.
With a total cost of around $1.2 billion and much scientific work on the line, a software mistake would be disastrous. The development and QA approach is very rigorous. I enjoyed reading the Coding Standards for the Jet Propulsion Laboratory. It is a very readable document, and the guidelines are obviously conservative. “Specifically the use of task delays has been the cause of race conditions that have jeopardized the safety of spacecraft.” Rover has around 2.5 million lines of C-code.
Curiosity is running on Wind River’s real-time operating system (RTOS), VxWorks. The software is similar to that of previous rover missions. There’s a team of 30 developers and 10 testers working on the Curiosity rover. It runs over 130 threads.
A cool presentation has more details on the testing methodology. It emphasizes analyzing the logs that are generated. A Python-based high-level language helps with testing to see if the logs show the expected results.
Right now, the firmware on Curiosity is being upgraded. I have a lot of experience with remote firmware upgrades, and I know how scary this process can be. A senior flight software engineer speaking Computer World:
“It has to work. You don’t want to be known as the guy doing the last activity on the rover before you lose contact.”
Very cool to see a software upgrade being done 160 million miles away.