Developpez.com - Libres & Open Source

Le Club des Développeurs et IT Pro

Les codes sources du module lunaire Apollo 11 (Luminary099) et du module de commande (Comanche055)

Sont disponibles en open source

Le 2019-07-18 12:41:14, par Stéphane le calme, Chroniqueur Actualités
L'Apollo Guidance Computer (AGC) est l'ordinateur embarqué de navigation et de pilotage installé dans les vaisseaux spatiaux des missions Apollo. C'est le premier ordinateur à avoir recours aux circuits intégrés (CI). Il y avait un AGC dans le module de commande et un autre dans le module lunaire Apollo utilisé en temps réel par l'astronaute-pilote pour recueillir et fournir des informations de vol, et pour le contrôle automatique de toutes les fonctions de navigation du vaisseau spatial.

L'AGC est un ordinateur effectuant des traitements en temps réel. Il est multitâche (jusqu'à 6 tâches exécutées en parallèle). La mémoire utilise des mots de 16 bits : elle est composée de 72 ko (36 864 mots) de mémoire morte contenant l'ensemble des programmes et de 4 ko (2 048 mots) de mémoire vive (effaçable) utilisée par les traitements. Les deux types de mémoire sont constituées de tores magnétiques : les programmes sont implantés dans l'ordinateur à la fabrication. Le processeur est constitué de plus de 5 000 portes NOR réalisées à l'aide de circuits intégrés. Il pèse environ 32 kg.

Lors de la mission Apollo 8, première satellisation autour de la Lune, la navigation fut quasi autonome, à partir des données de la centrale inertielle et des mesures angulaires effectuées au sextant par l'équipage. Les missions suivantes firent davantage appel à des mesures de vitesse et de positions obtenues à partir d'antennes au sol.

Chaque vol à destination de la Lune (à l'exception d'Apollo 8, qui n'a pas pris de Module Lunaire dans sa mission en orbite lunaire) avait deux AGCS, l'un dans le module de commande et l'autre dans le module lunaire. L'AGC dans le module de commande était le centre du système de guidage, de navigation et contrôle de l'engin (GNC).
Chaque mission lunaire avait également deux autres ordinateurs :
  • Un calculateur de vol sur l'instrumentation d'anneau du lanceur Saturn V, appelé le Launch Vehicle Digital Computer (LVDC) – ordinateur de série construit par IBM Federal Systems Division ;
  • Un ordinateur secondaire dans le module lunaire, désigné Abort Guidance System (AGS), construit par TRW et destiné à être utilisé en cas d'échec de la PGNCS (Primary Guidance, Navigation and Control System). L'AGS peut être utilisé pour décoller de la Lune et assurer le rendez-vous avec le module de commande, mais pas pour l'atterrissage. Lorsqu'il est activé, il déclenche automatiquement la séparation du module de remontée (AM, Ascent Module) du LEM de celui de descente (PDM, Powered Descent Module).



Le code source de l’AGC pour la commande et les modules lunaires

Le code source original de l'ordinateur de guidage Apollo 11 pour le module de commande (Comanche055) et le module lunaire (Luminary099) a été numérisé par des personnes du Virtual AGC et du MIT Museum. Le but est d'être un référentiel pour le code source original d'Apollo 11. Les pull request sont les bienvenus pour tous les problèmes identifiés entre les transcriptions dans le référentiel et les scans source originaux pour Luminary 099 et Comanche 055, ainsi que pour tous les fichiers qui ont été oubliés.


Concernant Comanche055, il s’agit de la partie du code source de Colossus 2A, le module de commande (CM) Ordinateur embarqué de navigation (AGC), pour Apollo 11. Concernant Luminary099, il s’agit de la partie du code source de Luminary 1A, le module de lunaire (LM) Ordinateur embarqué de navigation (AGC), pour Apollo 11.

Sur le site Web, il est expliqué que le but de ce projet est de fournir des simulations informatiques des ordinateurs de guidage embarqués utilisés dans les missions lunaires du programme Apollo - mais principalement du calculateur de guidage Apollo (AGC) utilisé dans le module de commande et le module lunaire - et de vous permettre d'en savoir plus sur ces ordinateurs de guidage. Étant donné que les ressources disponibles dans ce projet ont tellement augmenté au fil des ans, son exploration pour la première fois peut être assez intimidante. Aussi, les personnes à l'origine du projet vous invitent à consulter une page d'introduction « plus douce » avant de vous plonger dans les détails présentés par la plus grande partie du site.


En savoir plus

Source : référentiel GitHub

Voir aussi :

Ludwig : le framework open source de deep learning d'Uber permet de former et tester des modèles sans écrire de code
Facebook publie en open source Hermes, un moteur JavaScript léger optimisé pour exécuter React Native sur Android
Mattermost lève 50 MM$ pour faire progresser son alternative à Slack et rêve d'un service de messagerie open source mainstream en entreprise
GitHub supprime de sa plateforme les versions open source de DeepNude, l'application qui crée des images de femmes nues en quelques secondes
  Discussion forum
11 commentaires
  • psychadelic
    Expert confirmé
    72ko de mémoire, à base de tores magnétiques, à 400.000km de la terre...j'imagine l'angoisse des codeurs lors d' Apollo 11.

    Quand à la motivation d' Amstrong et Aldrin, pour rentrer dans cette boite en alu, avec le recul, je trouve cela hallucinant
  • TheLastShot
    Membre extrêmement actif
    Envoyé par dragonofmercy
    En même temps le code date d'avant 1969...
    C'était une boutade.... En plus leur langage est surement un langage "assembleur" avec des instructions spécifiques à leur matériel (comme c'est plus ou moins le cas pour chaque processeur, il n'y a d'ailleurs pas qu'un seul langage assembleur).
  • TheLastShot
    Membre extrêmement actif
    Envoyé par abriotde
    N'ayant ni le CPU ni aucun matériel s'y rapprochant, ça n'a vraiment aucun intérêt. ou alors ils mettent a minima le CPU et le module entier en open Source. C'est comme si la pierre de rosette ne contenait que l'égyptien elle aurait perdu tout son intérêt même public. C'est qu'une fois l'égyptien décrypté que tous les hiéroglyphes ont eu un intérêt.
    C'est pas tant le CPU qu'il faudrait, mais le doc du CPU. Car en effet comme ça, ça ne sert à rien car on ne comprend même pas le langage. En revanche avec la doc du CPU on pourrait comprendre le fonctionnement du bousin.
  • LittleWhite
    Responsable 2D/3D/Jeux
    A tous ceux qui sont intéressés par cette news, je conseille cette conférence :
  • earhater
    Membre éprouvé
    Quelqu'un comprend quelque chose au code ?
  • vivid
    Membre régulier
    c'est pourtant simple.. franchement

    bref, c'est aussi utile que de pressurisé un habitacle spatial a l'oxygène pur....
  • TheLastShot
    Membre extrêmement actif
    Sérieusement ? Ils avaient besoin de créer un langage encore moins compréhensible que l'assembleur ?
  • dragonofmercy
    Membre régulier
    Envoyé par TheLastShot
    Sérieusement ? Ils avaient besoin de créer un langage encore moins compréhensible que l'assembleur ?
    En même temps le code date d'avant 1969...
  • abriotde
    Membre chevronné
    N'ayant ni le CPU ni aucun matériel s'y rapprochant, ça n'a vraiment aucun intérêt. ou alors ils mettent a minima le CPU et le module entier en open Source. C'est comme si la pierre de rosette ne contenait que l'égyptien elle aurait perdu tout son intérêt même public. C'est qu'une fois l'égyptien décrypté que tous les hiéroglyphes ont eu un intérêt.
  • TheLastShot
    Membre extrêmement actif
    Envoyé par psychadelic
    Quand à la motivation d' Amstrong et Aldrin, pour rentrer dans cette boite en alu, avec le recul, je trouve cela hallucinant
    Oui enfin les astronautes étaient sélectionnés parmi les pilotes d'essais, donc habitués à piloter des engins que personne n'avait testé avant... Donc c'était pas spécialement le courage ou la témérité qui leur faisait défaut à la base.