Guus Bosman

software engineering director


You are here

internet

Software on the Curiosity Mars rover

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.

Hardware

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.

Software

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.

Upgrade

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.

Comments

Jaap's picture

http://www.dutchnews.nl/news/archives/2012/08/dutch_researcher_cheers_ma...

Inge Loes Ten Kate cheered when the rover Curiosity landed safely on Mars on Monday morning, reports the Nos.

The researcher from Utrecht university has worked for five years on the development of a crucial instrument for the vehicle. SAM (Sample Analysis at Mars) is a mini-laboratorium that will grind, warm and analyse the Marsian soil.

Well when your the guy who has broken the rover. You also could be the first man on mars... Todo a reboot... :-)

But I saw the animation and was really impressed by it and wondering if the could pull it off. Nice work NASA..

haha, that is funny :)

The problem, as far as I understand, is not so much getting humans on Mars... it's making sure they can get back home. So, if one has to reboot the Rover, it would make for a very, very long assignment.

Recent comments

Recently read

Books I've recently read: