Mars Rover Curiosity is one of the most sophisticated pieces of hardware ever launched into space. Because of the communication delay from Earth to Mars, it needs to accomplish most of its tasks completely autonomously: landing, navigation, exploration and singing birthday songs to itself. To do all this, it only has one central onboard computer. Let's look at that computer and the software it runs in detail.
While space is a somewhat unique environment, we can still learn a lot by looking at how the pieces hardware and software on board of Curiosity are designed and managed. The spacecraft only has one onboard computer that took over from the second it was launched towards Mars. It navigated the stars and orbits, managed a very complicated landing procedure, and now drives around as a car-sized rover over rocks and slippery ravines, all while collecting samples and analysing them with its on board lab.
First we'll have a look at the history of the Mars Science Laboratory plans, then in part two we will launch into hardware. What processors do we have, how are the working together? How is redundancy handled, and shielding against radiation?
As a part three, we'll look closely at the rover's software. Using over the air updates, almost all code running on Curiosity has been pushed there after it had landed on Mars. NASA pushed updates to enable new scientific missions, to make it traverse the environment in a different way, and to route around broken hardware.
After listening to this talk, you should find yourself inspired to look at problems of software and hardware fault-tolerance and long-term maintenance in a new light. You should be entertained by a hopefully interesting aspect of computers and space flight. And you'll get a certain awe of the engineers at JPL and their accomplishments.