# Mariner 1

Mariner 1 est la première sonde du programme Mariner de la NASA. Lancée le 22 juillet 1962 pour une mission de survol de la planète Vénus, l'officier de sécurité de l'aire de lancement commande sa destruction 294,5 secondes après son lancement.
D'après le communiqué de la NASA :
   « le lanceur fonctionna correctement jusqu'à ce qu'une déviation imprévue en lacet (vers le nord-est) fût détectée par l'officier de sécurité du pas de tir. Une défaillance des commandes de guidage rendit le pilotage impossible et conduisait le véhicule au crash, possiblement sur les couloirs de navigation de l'Atlantique Nord ou une zone inhabitée. La commande de destruction fut envoyée 6 secondes avant la séparation, après laquelle la destruction du véhicule serait devenue impossible. La balise radio continua à transmettre son signal durant 64 secondes après l'envoi de la commande de destruction$^,$. »
Le lancement de la sonde spatiale est initialement prévu pour la veille mais est reporté précisément à cause d'un dysfonctionnement du système de commande de destruction du lanceur Atlas$^,$.
La NASA attribue à un fonctionnement incorrect des équipements radio embarqués du lanceur Atlas la perte d'un des signaux de guidage au sol, exposant le véhicule à une malfaçon du logiciel pilote. Le rôle de cette erreur, dans le logiciel est l'échec du lancement, reste assez mystérieux, noyé dans les ambiguïtés et les contradictions des différents rapports et déclarations, officiels ou non. La nature complexe du problème et les descriptions imprécises qui en sont faites engendre toutes sortes de légendes urbaines. C'est notamment dans le folklore informatique et jusqu'à récemment que persiste une croyance à propos du rôle supposé d'une faute de frappe en Fortran.
La mission est accomplie plus tard par la sonde Mariner 2, doublure de Mariner 1. Il est originellement prévu que ces deux sondes soient lancées à 24 jours d'intervalle pour survoler la planète Vénus avec 3 à 14 jours d'écart.

## Un bogue tristement célèbre

L'explication la plus exacte est celle la plus tardive : une erreur de transcription manuelle d'un symbole mathématique dans la spécification d'un programme, plus exactement un trait suscrit manquant.

### « Le trait d'union le plus cher de l'histoire »

Néanmoins, persiste encore la version incriminant un trait d'union manquant dans les données ou le programme de l'ordinateur de bord, parfois même dans les équations. Plusieurs facteurs favorisent la longévité de cette mauvaise interprétation, même dans les rapports officiels de la NASA et du Jet Propulsion Laboratory.
Les plus cités sont :
* la ressemblance entre trait suscrit et trait d'union.
* la difficulté à expliquer la nature exacte de l'erreur au public américain et à ses représentants élus.
* la pression politique externe et les contraintes de planification internes. En effet, cette mission :
** représente un échec onéreux de la collaboration JPL-NASA-USAF.
** s'inscrit dans le contexte de la course à l'espace entre Américains et Soviétiques.
** est très exposée en tant que première mission interplanétaire (la sonde russe Venera 1 ayant aussi échoué l'année précédente).
** doit être suivie de Mariner 2 avant la fin de la fenêtre de lancement de 45 jours, laissant peu de temps aux investigations.

#### Ambiguïté sur la localisation de l'erreur

Le New York Times relatant les conclusions d'un comité, affirme que l'erreur provient d'un trait d'union manquant dans « des données mathématiques ». Cependant, le même article dit que le symbole aurait dû être fourni à l'ordinateur au sein « d'autres instructions mathématiques programmées ». Ce genre d'incohérence se retrouve dans de nombreuses variantes de l'histoire, officielles ou non.
Le 31 juillet 1962, un responsable de la NASA, Richard B. Morrison, témoigne devant le Congrès des États-Unis que ce trait d'union
   « ... indiquait au véhicule d'ignorer les commandes de l'ordinateur jusqu'au rétablissement du contact radar. Sans ce trait d'union, des instructions erronées sont fournies aux systèmes de pilotage. Dans ce cas, l'ordinateur commandait à gauche toute et vers le bas, la fusée le fit et s'écrasa. »
(on remarquera que Morrison dit que la fusée s'est écrasée et non qu'elle fut détruite). Dans le rapport annuel que la NASA fournit au Congrès en 1963, le trait d'union est décrit manquant de deux façons différentes :
   « Le comité NASA-JPL-USAF de debriefing post-vol Mariner R-1 a déterminé que l'omission d'un trait d'union dans le code informatique a transmis des signaux de guidage incorrects au véhicule Mariner propulsé par le lanceur Atlas-Agena depuis Cape Canaveral le 21 juillet. L'omission du trait d'union dans la saisie des données amena l'ordinateur à commander automatiquement des corrections de trajectoire inutiles qui mirent le véhicule hors course à tel point qu'il a fallu le détruire. »
Dans ce même rapport, le témoignage de Morrison de l'année précédente est restitué différemment : « Richard B. Morrison, directeur de la division lanceurs de la NASA, témoigna qu'une erreur dans les équations informatiques du lancement de la sonde Mariner 1 vers Vénus le 21 juillet mena à sa destruction quand elle vira hors course. »
En 1965, le rapport final de la mission Mariner 1-Vénus indique qu'après 4 minutes 25 secondes de vol, une « manœuvre imprévue en lacet-tangage » se produit : « ... les commandes de pilotage étaient fournies, mais la mauvaise application des équations de guidage emmenèrent le véhicule hors trajectoire. »
On doit à Arthur C. Clarke le résumé de cette affaire par l'expression « détruite par le trait d'union le plus cher de l'histoire ».
Dans un ouvrage de 1985, Oran W. Nicks, directeur des programmes lunaires et planétaires de l'époque, donne une version encore différente mais toujours basée sur le mythe du trait d'union manquant :
   « L'antenne de guidage de l'Atlas fonctionnait mal, en deçà de ses spécifications. Quand le signal reçu par la fusée devenait faible et bruité, elle perdait le signal de guidage du sol qui définissait les commandes de pilotage. Cette éventualité avait été envisagée et en l'occurrence l'ordinateur était supposé rejeter les signaux erronés et utiliser un programme interne, ce qui aurait dû faire réussir le lancement. Cependant, à ce point, un second défaut se manifesta. D'une manière ou d'une autre, un trait d'union fut oublié dans le programme de guidage de l'ordinateur embarqué, autorisant les signaux de guidage dégradés à commander le virage et la descente de la fusée. Ce trait d'union manquait aussi au cours des lancements d'Atlas réussis précédents, mais cette partie de l'équation n'était pas alors requise car il n'y avait pas de perte du signal de guidage. Ce qui permet de dire que le premier vol interplanétaire a échoué par absence d'un trait d'union. »
Enfin, le site Web de la NASA explique aujourd'hui que le problème était :
   « ... apparemment causé par la combinaison de deux facteurs. Le mauvais fonctionnement de l'équipement radio embarqué sur l'Atlas provoqua la perte prolongée du signal de vitesse. La balise embarquée servant à la mesure de cette vitesse a été inopérante durant quatre périodes de durées allant de 1,5 à 61 secondes. Le comité de debriefing post-vol Mariner 1 détermina que l'omission d'un trait d'union dans les instructions du programme de saisie des données permit la transmission de signaux de guidage incorrects. Durant les périodes où la balise ne fonctionnait pas, l'omission du trait d'union dans le programme de saisie de données amena l'ordinateur à accepter le balayage radio émis par le sol à la recherche du contact avec la balise, et à le combiner avec les autres signaux du système de guidage. L'ordinateur se mit alors à commander en saccades des corrections de trajectoire inutiles qui mirent finalement la fusée hors course. »

### Ou alors le point le plus cher ?

On prétend parfois que le bogue provenait d'un point tapé à la place d'une virgule, causant l'instruction de boucle Fortran de la forme :
       DO 17 I = 1, 10
à être interprétée comme l'affectation :
       DO17I = 1.10
(les caractères d'espace n'étant pas signifiants dans ce langage). Cependant, le Fortran n'a jamais été utilisé dans les programmes des lanceurs Atlas ou leurs systèmes de guidage. La raison pour laquelle cette variante se popularise reste mystérieuse. Il y a des rapports anecdotiques de la NASA faisant état de ce type de bogue, mais dans le programme Mercury, pas dans le programme Mariner, de plus l'erreur aurait été repérée et corrigée avant qu'elle n'ait pu avoir de conséquences sérieuses.

### L'erreur de transcription du trait suscrit

La défaillance provient d'une erreur de transcription manuelle dans la spécification du programme de guidage. Le rédacteur a oublié le trait suscrit dans la formule :
       ${\bar {{\dot {R}}_{n}}}$
qui signifie « la n-ième valeur lissée de la dérivée de R dans le temps ». Sans le lissage spécifié par ce trait, le programme réagit aux variations mineures de vélocité comme aux écarts importants. Les corrections erronées induites mènent le lanceur hors trajectoire, ce qui oblige l'officier de sécurité à commander sa destruction. Ce défaut de programmation est du temps du programme Ranger, mais ne s'est jamais manifesté.

## Description de la sonde spatiale

Lors de la formulation d'une série de missions scientifiques vers la planète Vénus, au début de 1961, la NASA a initialement prévu que deux missions spatiales, P-37 et P-38, soient lancées sur des lanceurs Atlas-Centaur, chaque sonde spatiale pesant environ 565 kilogrammes. Lorsque la NASA approuve officiellement le plan en septembre 1961, des problèmes liés au lanceur Atlas-Centaur nécessitent de changer de lanceur, pour le lanceur Atlas-Agena B avec une charge utile réduite.
Le constructeurs des sondes Mariner, le Jet Propulsion Laboratory (JPL) construit, à ce moment-là, trois véhicules spatiaux basés sur la conception des sondes lunaires Ranger Block I (nommée Mariner R) qui survoleront la planète Vénus à la fin de 1962. Chaque sonde spatiale embarque un modeste appareillage de 9 kg, mais n'a aucune capacité d'imagerie. Le véhicule spatial comprend 54 000 composants et est conçu pour maintenir le contact avec la Terre durant 2 500 heures. Un objectif ambitieux par rapport aux sondes lunaires Ranger qui sont conçues pour seulement 65 heures de contact.
Le 8 décembre 1962, Mariner 1 doit survoler la planète Vénus à une distance de 29 000 kilomètres, mais à cause d'une trajectoire incorrecte lors du lancement, à T + 294,5 secondes, l'officier de sécurité envoie un signal pour détruire le lanceur Atlas-Centaur et son charge utile. La panne est attribuée à une antenne de guidage sur le lanceur Atlas ainsi qu'à un logiciel défectueux dans son programme de guidage à bord, qui manque un trait suscrit en exposant. La presse le décrit comme « le trait d'union le plus cher de l'histoire ».
La sonde spatiale Mariner 1 consiste en une plate-forme hexagonale de 104 cm de diamètre et 36 cm de hauteur, qui contient six châssis en magnésium contenant l'électronique pour les expériences scientifiques, les communications, l'encodage des données, le calcul, le contrôle d'attitude, et contrôle de la puissance, de l'accumulateur et de son chargeur, ainsi que des contenants de gaz pour le contrôle de l'attitude et du moteur-fusée. Au sommet de la base se trouve un grand mât en forme de pyramide sur lequel sont montées les expériences scientifiques, ce qui portait la hauteur totale de la sonde à 3,66 mètres. Des ailes de panneaux solaires rectangulaires, d'une longueur totale de 5,05 mètres et d'une largeur de 0,76 mètre, sont fixées de chaque côté de la base. Une grande antenne parabolique directionnelle est reliée par un bras à un côté de la base et s'étendant au-dessous de la sonde spatiale.
Le système d'alimentation de Mariner 1 est constitué des deux ailes de plus de 10 000 cellules photovoltaïques, l'une de 183 cm sur 76 cm et l'autre de 152 cm sur 76 cm (avec une extension en dacron de 31 cm (une voile solaire) servant à équilibrer la pression de rayonnement sur les panneaux solaires), qui alimentent la sonde spatiale directement ou rechargée avec un accumulateur argent-zinc à cellules d'argent de 1 000 watts-heures, qui doit être utilisée avant le déploiement des panneaux solaires, lorsque les panneaux ne sont pas éclairés par le Soleil et que la charge demandée est lourde. Un dispositif de commutation de puissance et de régulateur de surpression contrôle le flux de puissance.
Les communications consistent en un émetteur de 3 watts pouvant fonctionner en télémétrie continue, une grande antenne parabolique directionnelle à gain élevé, une antenne omnidirectionnelle cylindrique au sommet du mât et deux antennes de commande, une à l'extrémité de l'un des panneaux solaires, qui reçoivent des instructions pour les manœuvres de mi-parcours et autres fonctions.
La propulsion pour les manœuvres de mi-parcours est assurée par une rétrofusée de 225 N monergol (hydrazine anhydre). L'hydrazine s'enflamme à l'aide de pastilles de tétroxyde d'azote et d'oxyde d'aluminium, et la direction de la poussée est contrôlée par quatre aubes à jet situées sous la chambre de poussée. Le contrôle d'attitude avec une erreur de pointage de 1° est maintenu par un système de jets d'azote froid. Le Soleil et la Terre sont utilisés comme références pour la stabilisation de l'attitude. La synchronisation et le contrôle sont effectués par un ordinateur central numérique et un séquenceur. Le contrôle thermique est obtenu grâce à l'utilisation de surfaces passives réfléchissantes et absorbantes, de boucliers thermiques et de persiennes mobiles.
Les expériences scientifiques sont montées sur le mât et la base de la sonde spatiale. Un magnétomètre à fluxgate à trois axes est fixé au sommet du mât, sous l'antenne omnidirectionnelle. Les détecteurs de particules sont montés à mi-hauteur du mât, avec le détecteur de rayonnement cosmique. Un détecteur de poussières cosmiques et un détecteur à plasma solaire sont fixés sur les bords supérieurs de la base du véhicule spatial. Un radiomètre micro-onde et un radiomètre infrarouge et les cornets de référence du radiomètre sont montés de manière rigide sur une antenne parabolique de 48 cm de diamètre montée près du bas du mât.

## Description des instruments

La sonde spatiale a six instruments :
* Analyseur électrostatique (Electrostatic Analyzer), pour l'étude du vent solaire.
* Détecteur de poussières cosmiques (Cosmic Dust Detector).
* Détecteur du rayonnement cosmique (Cosmic Ray Ionization Detector).
* Magnétomètre à fluxgate à trois axes (Three-Axis Fluxgate Magnetometer).
* Radiomètre micro-onde (Microwave Radiometer), un radiomètre monté sur la base hexagonale de la sonde spatiale est conçu pour obtenir des données sur le rayonnement de Vénus. L'instrument comprend une antenne parabolique de 50,8 cm de diamètre avec deux cornets de référence pointées à 60° de son axe le plus sensible, montées sur son axe. L'antenne parabolique est destinée à capter le rayonnement de la planète Vénus et les cornets sont destinées à capter le rayonnement cosmique. La différence de puissance du signal doit donner la véritable amplitude du rayonnement de Vénus. L'étalonnage de l'instrument est effectué automatiquement durant le vol. Une antenne motorisée est incluse pour effectuer des balayages d'arc vertical de 120° à 0,1°/s lorsque la sonde atteint Vénus. Le balayage latéral doit être effectué durant la trajectoire de la sonde spatiale. Les mesures doivent être effectuées durant 30 minutes à environ 35 000 km au-dessus de la surface de Vénus.
* Radiomètre à infrarouge (Infrared Radiometer).

## Déroulement de la mission

Le lanceur Atlas-Agena B est détruit par l'officier de sécurité 294,5 secondes après le lancement à 09 h 26 min 16 s TU lorsqu'il dévie de sa trajectoire. Le lanceur fonctionne de manière satisfaisante jusqu’à ce que l’officier de sécurité de l'aire de lancement LC-12 détecte une manœuvre non planifiée en lacet (nord-est). Une mauvaise application des instructions de guidage rend le pilotage impossible et dirige le lanceur vers un accident, éventuellement dans les couloirs de navigation de l'Atlantique Nord ou dans une zone habitée. La commande de destruction est envoyée 6 secondes avant la séparation, après quoi le lanceur ne peut être détruit. Le transpondeur radio continue à émettre des signaux pendant 64 secondes après l'envoi de la commande de destruction.
L'échec est apparemment dû à une combinaison de deux facteurs. Une mauvaise utilisation des balises du lanceur Atlas entraîne une perte du signal de vitesse durant une période prolongée. La balise utilisée pour obtenir les données de taux est inopérante pendant quatre périodes allant de 1,5 à 61 secondes. En outre, la commission d'évaluation après vol de Mariner 1 détermine que l'omission d'un trait d'union dans les instructions informatiques codées du programme d'édition des données permette la transmission de signaux de guidage incorrects au lanceur Atlas. Durant les périodes où la balise est inopérante, l'omission du trait d'union dans le programme d'édition de données amène l'ordinateur de bord à accepter de manière incorrecte la fréquence de balayage du récepteur au sol alors qu'il recherche le signal de balise du véhicule et combine ces données avec les données de suivi envoyées au récepteur, le calcul de guidage restant. Cela force l'ordinateur à basculer automatiquement dans une série de corrections de trajectoire inutiles avec des commandes de direction erronées qui finalement font dévier le lanceur Atlas, le 22 juillet 1962.