Sonde Curiosity sur Mars : un incroyable défi informatique

Premier pari gagné pour les ingénieurs de la Nasa. Le robot a commencé à se déplacer sur le sol de Mars. Derrière cette prouesse technique, l'informatique représente une pièce maitresse.

Après plus de huit mois de voyage à travers l'espace et 556 millions de kilomètres parcourus, Curiosity a atterri avec succès sur la planète rouge le 6 août. Après une phase de vérification de l'ensemble de ses instruments (le fameux checking out), la sonde a effectué son premier déplacement hier sur le sol martien, et pris quelques photos : le robot a parcouru 4,5 mètres, réalisé un virage à 120 degrés avant d'avancer encore de 2,5 mètres.

Mesurant 3 mètres de long sur 2,75 mètres de large, Curiosity se déplace à la vitesse de 30 mètres à l'heure. Tirant son énergie d'une pile atomique (d'une puissance de 120 watts en sortie), la sonde embarque une dizaine d'instruments : caméra, laser, laboratoire d'analyse, système de forage, station de météorologie... Grâce à son spectromètre, Curiosity pourra notamment détecter la présence d'éléments chimiques de la biologie : carbone, azote, oxygène, phosphore, acides aminés...

L'OS VxWorks au cœur du système

Présenté par la Nasa comme le projet de sonde interplanétaire le plus ambitieux jamais lancé par l'Homme, Curiosity s'adosse à un système d'information complexe. Pièce maîtresse de son environnement informatique embarqué, c'est l'OS VxWorks de Wind River (une filiale d'Intel spécialisée dans les systèmes IT embarqués) qui a géré les différentes phases l'"amarsisage" de la sonde : son entrée dans l'atmosphère et sa descente jusqu'au sol martien. Ce que les astronomes de la Nasa ont appelé "les 7 minutes de terreur", pour qualifier les grands risques d'échec engendrés par l'extrême complexité technique de l'opération. "Le système informatique du rover est donc également celui qui a assuré le contrôle du vaisseau chargé de le transporter lors de la descente", précise la Nasa.

curiosity nasa mars
Le coeur informatique de la sonde martienne compte près de 2 millions de lignes de code en C. © Nasa

Mais le système VxWorks a aussi pour but d'assurer le pilotage du rover au sol : le contrôle des opérations (liées au déplacement, et outils de mesure), la collecte des données, mais aussi la gestion des communications avec la Terre.

Ce n'est pas le premier coup d'essai de Wind River au sein du Jet Propulsion Laboratory de la Nasa. Son OS a en effet déjà été embarqué dans la sonde Clementine, lancée en 1994 pour réaliser des observations lunaires. Il constituait également le cœur informatique de deux autres sondes martiennes : Mars Pathfinder et Mars Exploration Rovers.

Une redondance informatique complète

Pour assurer la fiabilité du robot, le système informatique est redondé. "Dans le cas où l'ordinateur actif avait eu un problème lors de la descente, une fonctionnalité logicielle, appelée 'Seconde chance', aurait pu activer le deuxième ordinateur à tout moment pour prendre le relai", explique la Nasa. Chacun des deux ordinateurs repose sur un processeur de type PowerPC 750 durci aux radiations : un BAE RAD 750. Il offre une cadence de 200 MHz, contre respectivement 20 MHz pour le processeur RAD6000 qui équipait les précédents robots martiens Spirit et Opportunity. Sa mémoire Flash s'élève à 2 Go, c'est-à-dire 8 fois plus que ses deux prédécesseurs.

Le système est doté de logiciels conçus pour piloter et contrôler l'ensemble des opérations. Sa conception a demandé plusieurs années de travail. Les ingénieurs de la Nasa ont même travaillé jusqu'au dernier moment sur son amélioration. Comme prévu dans le programme, l'environnement a continué d'être mis à niveau même après le décollage de la sonde pour Mars le 26 novembre 2011. Une mise à jour a été envoyée durant le voyage en mai 2012, pour optimiser la gestion de la phase d'arrivée. Une autre a été communiquée en juin pour améliorer l'efficacité des opérations de déplacement ainsi que la robotique.

Un défaut corrigé pour mille lignes de code

La principale problématique des informaticiens sur ce projet ? Le travail de test réalisé en amont. Avec près de 2 millions de lignes de code en C (et quelques-unes en C++), le système devait être irréprochable. Impossible en effet pour la Nasa d'essuyer des bugs une fois le robot posé sur Mars. "Quelque 2000 failles ont été corrigées dans le code du rover, soit un défaut pour mille lignes de code. Ce ratio est incomparable avec les projets de développement classiques", estime Andy Chou, directeur technique du projet Curiosity.

La Nasa aurait eu recours à un très grand nombre de méthodes de test, dans l'optique de traquer l'ensemble des erreurs possibles. Elle s'est notamment basée sur un outil d'analyse de code développé par un laboratoire de l'Université de Stanford. Mais, l'agence spatiale américaine reconnait qu'un bug potentiel peut toujours passer entre les mailles du filet... même en y mettant des moyens colossaux. Rappelons que le budget de Curiosity s'élève à 2,5 milliards de dollars.