Un bug logiciel expliquerait le crash de Schiaparelli sur Mars

schiaparelli-landingSi la mise en orbite de l’ExoMars Orbiter autour de Mars peut être considéré comme un grand succès pour l’Europe spatiale, le crash de l’atterrisseur Schiaparelli sur la surface de la planète rouge laisse un goût d’inachevé. Une enquête a été lancée sur les causes du crash car la prochaine mission ExoMars 2020 verra l’ESA envoyer un robot sur Mars. Les premières conclusions de l’enquête montrent qu’une donnée erronée aurait bousculé la séquence d’atterrissage et précipité Schiaparelli au sol.

L’atterrisseur Schiaparelli a transmis de nombreuses données avant son crash

Personne, hormis la NASA, n’a réussi pour l’instant à poser un appareil en état de marche sur la planète Mars. Pour sa mission ExoMars, l’ESA s’était allié avec Roscosmos, l’agence spatiale russe mais cela n’a pas empêché son module Schiaparelli de s’écraser à la surface. Les ingénieurs enquêtent sur les raisons de cet échec du 19 octobre car la prochaine mission ExoMars 2020 se profile déjà.

exomars2016-descent

La séquence d’entrée dans l’atmosphère et d’atterrissage de Schiaparelli s’est brusquement interrompue lorsque l’IMU a commencé à transmettre des données erronées.

Heureusement, lors de sa descente Schiaparelli a transmis plusieurs centaines de mégaoctets de données qui permettent de suivre dans le détail le déroulement des opérations d’entrée dans l’atmosphère martienne. Il est ainsi apparu que les phases initiales d’entrée se sont déroulées correctement jusqu’à l’ouverture du parachute. L’atterrisseur était alors à une altitude de 12.000 m pour une vitesse de 1730 km/h, des valeurs conformes à la séquence initialement calculée. La descente s’est poursuivie normalement jusqu’à l’éjection du bouclier de protection thermique à une altitude de 7.800 m. Le radar Doppler destiné à mesurer l’altitude de Schiaparelli, la prochaine phase est alors de larguer la coiffe et le parachute dès que l’altitude de 1200 m est atteinte. C’est là qu’un autre instrument va jouer les troubles fêtes, c’est l’IMU pour Inertial Measurement Unit. Celui-ci délivre au calculateur une mesure de rotation et d’angle de l’atterrisseur, des données bien évidemment importantes pour le calcul de l’altitude réelle de l’atterrisseur. C’est cette information qui dicte ensuite la mise en route des rétrofusées en phase finale d’atterrissage.

Le logiciel de navigation de Schiaparelli a largué précipitamment le parachute

schiaparelli-impact-on-mars

L’impact de l’atterrisseur sur Mars repéré par la NASA (Crédit : NASA JPL/Caltech/University of Arizona)

Alors que le module de descente se précipite vers le sol martien, dès l’ouverture du parachute l’IMU commence à envoyer des données erronées si bien que pour l’ordinateur de navigation, le calcul d’altitude devient… négatif ! L’ordinateur estime alors que l’atterrisseur est déjà arrivé au sol, il commande alors le largage de la coiffe et du parachute. Une initiative particulièrement malvenue puisqu’au lieu de 1200 m d’altitude, Schiaparelli est encore à 3.700 m. Les rétrofusées sont alors brièvement allumées puis éteintes et les systèmes conçus pour être déployés une fois arrivé au sol sont activé. Ce scénario a pu être rejoué en simulation, ce qui semble bien indiquer que c’est  cette donnée erronée de l’IMU qui a poussé le logiciel de navigation à appliquer la procédure d’atterrissage trop précipitamment.  L’enquête doit se poursuivre jusqu’au début de l’année 2017 pour bien identifier les raisons du crash et corriger ce qui doit l’être pour ExoMars 2020.
Ce bug est particulièrement navrant à l’heure ou les outils d’analyse de code permettent de bien identifier les dépassements de seuil des variables comme cela peut arrivée avec les données issues de capteurs. Beaucoup de développeurs de logiciels embarqués connaissent l’histoire du crash du premier vol d’Ariane 5. La fusée européenne s’était abîmée dans les flots de l’atlantique car son logiciel de guidage inertiel, développé pour les précédents modèles d’Ariane, n’avait pu gérer l’accélération bien plus puissante de la nouvelle fusée, ce qui avait entraîné un dépassement de valeur dans une variable de type entier et causé la perte de la fusée.

Sources :

« ESA: Mars lander crash caused by 1-second inertial measurement error », SpaceNews, 23 novembre 2016
« Schiaparelli landing investigation makes progress », Communiqué de l’ESA, 23 novembre 2016
« Exomars 2016 schiaparelli descent sequence », Communiqué de l’ESA, 24 février 2016

Commentaires Facebook
Twitter Facebook Plusone Pinterest Linkedin
Ce contenu a été publié dans Aéronautique. Vous pouvez le mettre en favoris avec ce permalien.