Guus Bosman

software engineering manager


Software on the Curiosity Mars rover

internet

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.

jjb's picture

Re: Software on the Curiosity Mars rover

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.

Gerben's picture

Re: Software on the Curiosity Mars rover

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

Gerben's picture

Re: Software on the Curiosity Mars rover

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

Guus's picture

Re: Software on the Curiosity Mars rover

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.

Post new comment

The content of this field is kept private and will not be shown publicly.

About me

I’m a software engineering manager in Arlington, Virginia. I love technology and working with people to build great software.

Contact me

Send me a message, find me on Twitter, Facebook and LinkedIn.

Random facts

I was quoted in The Economist and my site was posted on Slashdot. I speak English and Dutch fluently, and pretty decent German, French and Bulgarian. I founded Dutch in America.com which has more than 3,300 Facebook fans.

More about Guus.

Recent comments

User login

, after login or registration your account will be connected.

New English words

Words & expressions I recently learned:

Recently read