Techniek
De Apollo Guidance Computer (AGC)
De Apollo Guidance Computer paste in een doos zo groot als een koffer, had minder geheugen dan een eenvoudige rekenmachine van nu en stuurde toch mensen naar de maan en terug. De AGC was een van de eerste computers die gebouwd werden met geïntegreerde schakelingen en legde daarmee de basis voor de digitale wereld die zou volgen.
In het hart van elk Apollo-ruimtevaartuig zat een computer die naar moderne maatstaven bijna onvoorstelbaar primitief was. De Apollo Guidance Computer, afgekort AGC, had een kloksnelheid van slechts twee megahertz, beschikte over 4 kilobyte werkgeheugen en 72 kilobyte vaste programmaruimte, en woog ruim dertig kilogram. En toch was dit apparaat in de tweede helft van de jaren zestig niets minder dan revolutionair. Het was een van de eerste computers die volledig waren opgebouwd uit geïntegreerde schakelingen — de halfgeleidercomponenten waarop de gehele moderne elektronica is gebaseerd.
De AGC werd ontwikkeld aan het Massachusetts Institute of Technology (MIT) en geproduceerd door Raytheon. NASA schreef de specificaties voor, maar de ingenieurs van MIT’s Instrumentation Laboratory, onder leiding van Charles Stark Draper, gaven het apparaat zijn uiteindelijke vorm. Het was een samenwerking die pionierswerk vergde: niemand had eerder een computer gebouwd die zo klein, zo licht en tegelijk zo betrouwbaar moest zijn als wat nodig was voor een vlucht van de aarde naar de maan.
Waarom een boordcomputer onmisbaar was
Vroege ruimtevluchten, zoals die in het kader van Project Mercury, vertrouwden grotendeels op grondgestuurde navigatie. Ingenieurs op aarde berekenden de baan, stuurden instructies omhoog en de astronaut volgde die op. Dat werkte voor korte vluchten rondom de aarde, maar was volstrekt ongeschikt voor een reis naar de maan. De afstand — gemiddeld zo’n 384.000 kilometer — betekende dat radiosignalen er bijna anderhalve seconde over deden om de reis te maken. Een maanlanding met die vertraging van buiten besturen was als autorijden waarbij je stuurcorrectie drie seconden later effect heeft.
Bovendien waren er momenten in een maanmissie waarop radiocontact geheel ontbrak: tijdens de remmanoeuvre om in een baan om de maan te komen vloog het ruimtevaartuig achter de maan en was elke communicatie met de aarde onmogelijk. In die minuten moest de AGC de navigatie volledig zelfstandig uitvoeren. Zonder een betrouwbare boordcomputer was een maanmissie domweg niet haalbaar.
Geïntegreerde schakelingen: een industriële doorbraak
De behoefte aan een kleine, lichte en zuinige computer dwong MIT en Raytheon om een technologie te kiezen die op dat moment nog nauwelijks in productie was: de geïntegreerde schakeling, ook wel chip of IC (integrated circuit) genoemd. Een geïntegreerde schakeling plaatst meerdere transistors, weerstanden en condensatoren op één klein stukje halfgeleidermateriaal — silicium of germanium — in plaats van ze als losse onderdelen met draden samen te solderen.
Het Apollo-programma vroeg zoveel chips — voor alle AGC’s in de commandomodule, de maanlander en de reservesystemen — dat het programma een enorme afzetmarkt schiep voor de toen nog jonge chipindustrie. Fabrikanten als Fairchild Semiconductor profiteerden enorm van de NASA-opdrachten. Historici beschouwen het Apollo-programma als een van de belangrijkste drijvende krachten achter de vroege ontwikkeling van de halfgeleiderindustrie, die uiteindelijk de basis vormde voor alles van personal computers tot smartphones.
Apollo Guidance Computer in cijfers
Kloksnelheid: 2,048 MHz.
Werkgeheugen (RAM): 4 kilobyte (erasable core memory).
Programmageheugen (ROM): 72 kilobyte (core rope memory).
Gewicht: circa 32 kilogram.
Afmetingen: ongeveer 61 × 32 × 17 centimeter.
Stroomverbruik: circa 55 watt.
Aantal geïntegreerde schakelingen (per AGC): circa 2.800 (Block II, elk met twee NOR-poorten).
Interface: DSKY (Display and Keyboard), aparte invoer- en weergave-eenheid.
De DSKY: het toetsenbord van de ruimte
De astronauten communiceerden met de AGC via een apart apparaat: de DSKY, uitgesproken als “disky”. Dit stond voor Display and Keyboard en zag eruit als een numeriek toetsenbord met een display van zevensegment-cijferlampen en een rij waarschuwingslichtjes. Er was geen muis, geen scherm met grafische afbeeldingen, geen menubalk. Alle communicatie verliep via tweecijferige commando’s: een werkwoord (verb) dat aangaf wat er moest gebeuren, en een zelfstandig naamwoord (noun) dat het object van de actie aanduidde.
Verb 16 betekende bijvoorbeeld “toon doorlopend”; in combinatie met Noun 68 liet de computer tijdens de afdaling naar de maan onder meer de afstand tot de landingsplaats en de snelheid zien. Precies die combinatie tikte Buzz Aldrin in toen bij Apollo 11 het eerste alarm verscheen. De astronauten hadden checklists en spiekkaartjes bij zich, maar oefenden de belangrijkste verb-noun-combinaties zo vaak in de simulator dat ze die blind konden invoeren.
De commandomodule had twee DSKY’s (één bij de stoelen en één bij de navigatieapparatuur in de lagere uitrustingsruimte), de maanlander had er één. De commandomodule en de maanlander hadden elk een eigen computer, omdat ze onafhankelijk van elkaar moesten kunnen functioneren.
De software: geweven in kerngeheugen
Het permanente geheugen van de AGC — het core rope memory — was letterlijk geweven. Draden werden door kleine magnetische ringkernen gevlochten of erlangs geleid; een draad die door een kern ging stond voor een 1-bit, een draad die erlangs ging voor een 0-bit. Dit weven werd bij Raytheon gedaan door vrouwen, van wie velen ervaring hadden in de textiel- of horloge-industrie. Het resultaat was een extreem robuust geheugen dat niet per ongeluk kon worden overschreven, maar ook niet meer te wijzigen was: software moest maanden voor de lancering af zijn.
De software voor de AGC werd geschreven door honderden programmeurs van het MIT Instrumentation Laboratory. Margaret Hamilton, een wiskundige en programmeur, leidde de afdeling die de boordsoftware ontwikkelde. Zij werkte aan methoden om fouten in de software op te vangen en wordt gezien als een van de bedenkers van de term “software engineering”. Haar team leverde code die niet alleen correct moest zijn, maar ook robuust genoeg om bij onverwachte situaties de juiste prioriteiten te stellen — een eigenschap die op 20 juli 1969 van levensbelang zou blijken.
Het 1202-alarm: een bijna-mislukking boven de maan
Tijdens de afdaling van de maanlander Eagle naar het maanoppervlak, in de slotfase van Apollo 11, ging het plotseling mis. Op een hoogte van zo'n tien kilometer klonk er een onverwacht alarm: de AGC meldde code 1202, een zogeheten “executive overflow”. De computer had meer taken aangeboden gekregen dan hij kon verwerken en moest taken schrappen om te voorkomen dat het systeem volledig vastliep. Later bleek de oorzaak een schakelaar van de radar voor het koppelen, die zo stond dat de computer een stroom overbodige signalen te verwerken kreeg.
In de vluchtleiding in Houston was de sfeer gespannen. Niemand had 1202 ooit in een echte vlucht gezien. Geleidingsofficier Steve Bales, destijds 26 jaar oud, moest in seconden beslissen: landing afbreken of doorgaan? Samen met specialist Jack Garman, die na een simulatie enkele weken eerder een lijst van alle alarmcodes had gemaakt, concludeerde hij dat het alarm geen gevaar was zolang het niet aanhoudend terugkwam. Zijn antwoord was doorgaan. De computer gooide de minder kritieke taken eruit, hield de wezenlijke navigatiefuncties actief en bleef werken.
Dit was precies waarvoor Margaret Hamiltons team de software had ontworpen. De AGC was geprogrammeerd om bij overbelasting een vaste prioriteitsvolgorde aan te houden: navigatie en aandrijfbesturing kwamen altijd eerst. Het is uitgegroeid tot een van de meest geciteerde voorbeelden van robuust softwareontwerp. Neil Armstrong en Buzz Aldrin landden veilig, mede dankzij keuzes die lang tevoren al in de code waren vastgelegd.
Navigatie: sterren, gyroscopen en wiskunde
De AGC navigeerde door drie methoden te combineren. Ten eerste gebruikte hij een traagheidsnavigatiesysteem: een inertial measurement unit met gyroscopen en versnellingsmeters die voortdurend de draaiingen en versnellingen van het ruimtevaartuig registreerden en op grond daarvan de positie en snelheid bijhielden. Ten tweede kon de astronaut met een optisch instrument, in de commandomodule een sextant en in de maanlander een uitlijntelescoop, sterren waarnemen; de AGC gebruikte die metingen om zijn oriëntatie en positie te verfijnen. Ten derde volgden grondstations op aarde het ruimtevaartuig met radar en stuurden ze nauwkeurige positie- en snelheidsgegevens omhoog naar de computer.
De combinatie van deze drie methoden maakte het mogelijk om op honderdduizenden kilometers afstand van de aarde te navigeren met een nauwkeurigheid van honderden meters — ruimschoots voldoende om een maanlander op het goede stuk maanoppervlak neer te zetten. De wiskundige routines die dit mogelijk maakten behoorden destijds tot de meest geavanceerde navigatiesoftware die ooit was geschreven.
De AGC in de maanlander versus de commandomodule
Beide ruimtevaartuigen hadden hun eigen AGC, maar de software verschilde. De computer in de commandomodule — die in het jargon COLOSSUS heette — was geoptimaliseerd voor baannavigatie: het berekenen en bijhouden van een baan om de maan, de trans-lunar injection en de terugkeer naar de aarde. De computer in de maanlander — LUMINARY — moest veel meer realtime werk verzetten: de afdaling naar het oppervlak met alle bijbehorende stuurcommando’s voor de afdaalmotor, en nadien de opstijging vanuit het maanoppervlak om de commandomodule terug te vinden in zijn baan.
De LUMINARY-software zat dan ook dichter tegen haar grenzen, wat verklaart waarom de extra belasting door de radarschakelaar juist tijdens de afdaling tot alarmen leidde: dat was de rekenkundig zwaarste fase van de hele missie. Dat een programma van 72 kilobyte dit alles aankon, is nog altijd een prestatie die informatici en ingenieurs met bewondering vervult.
Erfenis: de chip, de software en een nieuwe industrie
De AGC verdween na het einde van het Apollo-programma als operationeel systeem, maar zijn erfenis leeft voort in de structuur van de moderne computerindustrie. De massale inkoop van geïntegreerde schakelingen door NASA maakte de chip betaalbaar voor de rest van de markt. Zonder die schaalvergroting hadden de consumentenelektronica en de pc-revolutie van de jaren tachtig er heel anders uitgezien.
Margaret Hamiltons inzichten over software-engineering — prioriteitsgestuurde verwerking, foutbestendig ontwerp, gestructureerde code — zijn uitgegroeid tot standaardpraktijk in elk veiligheidskritisch systeem, van vliegtuigcomputers tot medische apparatuur. In 2016 ontving zij de Presidential Medal of Freedom voor haar bijdragen aan de informatica.
De Saturnus V-raket droeg de spierkracht; het ruimtepak beschermde het leven; de maanwagen verruimde het bereik. Maar zonder de AGC had geen van de twaalf maanwandelaars geweten waar hij was, hoe snel hij bewoog of wanneer hij terug moest. De kleine computer was de stille navigeerder achter een van de grootste avonturen van de mensheid, en zijn nalatenschap loopt door in elk apparaat met een chip dat de wereld sindsdien heeft voortgebracht.