15 december 2019

Korte geschiedenis van de Apollo Guidance Computer

Wat MIT, een oude Marsmissie uit 1958, de Polaris raket, Apollo en Skylab met elkaar verbindt is dat ze allen aan de wieg gestaan hebben van de ontwikkeling en het gebruik van de Apollo Guidance Computer. Toen Apollo 11 neerstreek in de Zee van Rust op 20 juli 1969 was het meer dan een triomf van ingeniositeit en menselijk doorzettingsvermogen, het was ook het verhaal van het technisch cybernetisch vernuft genoemd de Apollo Guidance computer ‘AGC’. Deze assisteerde de astronauten veilig naar de maan en terug naar aarde. De AGC was voor die tijd zo complex en geavanceerd dat de ontwerpers ervan zich naderhand daadwerkelijk afvroegen, als we dit hadden geweten, waren we dan überhaupt aan deze klus begonnen? De AGC is een van de meer onbekendere successen uit de geschiedenis van de Space Race. Dit is waarschijnlijk juist dankzij het feit dat het systeem zo vlekkeloos werkte.

Apollo computer en DSKY credits; New Atlas / NASA

De AGC was zowel in de Command Service Module (CSM) als in de Lunar Module (LM) geplaatst. Het vloog op 11 bemande missies, inclusief negen maanvluchten, zes maanlandingen, drie Skylabmissies en de Apollo-Sojoez testmissie in 1975. Het was toentertijd het meest geavanceerd fly-by-wire en inertiaal geleidingssysteem*, de eerste digitale vluchtcomputer, de meest geavanceerde miniatuur computer, de eerste die gebruik maakte van silicium chips en de eerste onboard computer waarvan de levens van de bemanning afhing. Van de buitenkant was er niet veel aan te zien. Het had iets weg van een tweedelig koperen koffertje, mat 61 × 32 × 17 cm en woog 32 kg. Van binnen was het naar moderne computer standaarden ook bescheiden, het bevatte net zoveel energie als een gloeilamp en bezat een 72 K (kilobyte) geheugen. Hoewel dit alles een lastig vergelijk is daar de AGC een specifiek voor zijn taak afgestemde computer was en niet voor algemeen gebruik. Qua prestatie was de AGC van enigszins vergelijkbaar niveau als de Commodore 64 of ZX Spectrum uit begin tachtiger jaren.

De reden waarom al de Apollo missies de AGC aan boord hadden is dat de maanmissies complexe navigatie vereiste. Op aarde gaat navigatie over het vinden van een weg van het ene vaste punt op de aardbol naar het andere. Voor een reis naar de maan is het alsof je met een geweer op een draaitafel draait die rond spint in het midden van een veel grotere draaitafel waarop een derde draaitafel op de rand zit. Alle tafels draaien op verschillende snelheden en vervolgens moet je dan proberen om het doelwit te raken door te richten naar het punt waar dit doel zich over drie dagen zal bevinden. Door het enorme aantal variabelen geeft de bovenstaande analogie slechts een grof idee van de complexiteit van de vergelijkingen die voor een dergelijke reis moeten worden opgelost – en zelfs dan nog zal het resultaat een reeks steeds nauwkeurigere schattingen zijn in plaats van een vaststaand pad. Maar wat al vroeg in het Apollo-programma vaststond, was dat ruimtevaartnavigatie te complex was om de astronauten mee te belasten. De technici gaven er privé de voorkeur aan dat de astronauten er zo weinig mogelijk mee van doen hadden en hoewel het als eerste van alle Apollo-contracten werd toegekend, was de AGC slechts één van de duizenden subprojecten die allemaal achter een programma zaten waarvan de ontwikkeling ook nog volop in beweging was en waar ook toen  niet duidelijk was hoeveel ruimteschepen er precies gebruikt zouden worden voor de maanlanding.

De AGC werd ontwikkeld in een tijd dat niet alleen computers, maar het hele gebied van elektronica een verbazingwekkende evolutie onderging die niemand kon voorspellen. Toen het Apollo-programma begon, waren computers nog steeds gigantische machines die hele kamers in beslag namen. Er waren er maar een handjevol van wereldwijd en trachten informatie in en uit één te krijgen was zo complex dat het een flink aantal wiskundigen nodig had om de klus te klaren. Het was echter een veld dat snel evolueerde en tegen de tijd dat het werk begon op de AGC, zou de technologie exploderen in de computerrevolutie die tot op de dag van vandaag voort ijlt. En het ging niet alleen om computer gebruikerstechnologieën die zich snel ontwikkelden, maar ook basiselektronica. Aan het einde van de jaren veertig hadden transistors radiokleppen de laan uitgestuurd en de printplaat overwon de oude draad- en soldeerkaarten. Maar beiden werden bedreigd door het geïntegreerde circuit (IC), de directe voorloper van de siliciumchip, die in 1958 het levenslicht zag. Al deze nieuwe technologie had niet alleen een synergetisch effect op het computerontwerp, maar veroorzaakte ook een aardverschuiving in de elektronica-industrie daar het IC de lijn deed vervagen tussen elektronica bedrijven, zij die traditionele circuits ontwikkelden en bouwden, en leveranciers van onderdelen. Het IC gooide de hele vraag wie er aan het ontwerpen was en wie er slechts componenten maakte. Dit alles bood nog geen finaleoplossing voor de AGC zelf, want hoe ontwerp men een computer en kreeg men industriële ondersteuning voor een computer die 10 jaar in productie en gebruik moest blijven, terwijl de industrie verwacht dat alle computertechnologie binnen 18 maanden zal veranderen? Het moedigde het vertrouwen niet aan.

Apollo navigatie station met AGC interface credits; New Atlas / NASA

MIT Instrumentatie lab
Het AGC contract werd door NASA toegekend in augustus 1961 aan het MIT Instrumentation Laboratorium, in plaats van aan NASA’s huisleverancier IBM. Dit kwam door het feit dat het hoofd van dit lab de fysicus Charles Stark Draper, die een sterk track record had in de ontwikkeling van inertiaal geleidingssystemen samen met informaticus Eldon C. Hall. Beiden werkten aan het computerontwerp voor de US Navy Polaris** raket. Er was roering over het contract met MIT maar Draper was vol vertrouwen dat de computer op tijd geleverd kon worden. In 1962 kwam men overeen dat MIT de projectleider zou zijn met steun van de AC Spark Plug Division van General Motors,  Kollsman Instrument Corporation, en Raytheon, die de hardware zou bouwen. De grote horde was dat de specificaties voor de AGC een onbeschreven blad waren. Niemand had ooit zoiets gebouwd en wist waar te beginnen. Startpunt voor MIT was een vierdelige Mars missie studie uit 1958, die uitging van een onbemande sonde van 150 kg die autonoom kon navigeren alleen door zich op bepaalde sterren te fixeren terwijl het een flyby deed naar de Rode Planeet, foto’s zou nemen en vervolgens weer terug naar aarde zou keren. Niet bepaald een maanlanding maar het was een begin. Het basis design verrees, een klein, autonoom opererende algemene computer die alle navigatie kon handelen van een maanreis. Gebaseerd op de computertechnologie van de Polaris raket. Het gebruikte een gyroscoop en versnellingsmeters gecombineerd met een sextant om de positie van het ruimteschip te bepalen en hem op koers te houden. Verder moest de nieuwe computer aan de algemene Apollo missie specificaties voldoen, robuust genoeg zijn om de barse omgeving van de ruimte te weerstaan, alsook het gebruik van transistoren tot een minimum beperken vanwege hun onbetrouwbaarheid en bovendien moest er een gebruiksvriendelijke interface ontworpen worden voor de astronauten.

Hardware tirannie
Het leek een veelbelovende start, maar dit duurde niet lang. Tegen 1966 was MIT duidelijk in de problemen en NASA stuurde de crisis manager Bill Tindall erop af, deze evalueerde het team en werd berucht vanwege zijn vernietigende “Tindalgrams.” Deze schetsten hoe MIT in gebreke bleef en niet over de vereiste cultuur of discipline bezat voor een opdracht als de AGC. Het resultaat was een te trage voortgang en nodeloze duplicaties in de software, die vol zat met fouten en te veel geheugen in beslag nam. Maar niet alle problemen waren organisatorisch. In 1966 was ‘software’ een nieuw woord en veel computerprofessionals hadden moeite met begrip van het concept. Wat kon een computer aan en wat waren de sterke en zwakke punten? De aanpak van MIT maakte o.a. duidelijk, dat de technologie nog te primitief was voor de machine die ze hadden bedacht. In 1966 was het duidelijk dat de AGC te klein was met onvoldoende geheugen, te traag was om genoeg taken tegelijk af te handelen en het niet kon verwerken op de manier waarop analoge circuits dit konden. Met andere woorden, het was een terugkeer tot de ‘tirannie van hardware’. Het idee van een algemene computer die de missie bestuurt werd verlaten, en de AGC werd een gespecialiseerde machine gedegradeerd tot back-upstatus. In de toekomst zouden grondcomputers navigatiegegevens naar het Apollo-schip sturen terwijl de boordcomputer in de buurt was voor het geval er een storing was in de communicatieverbinding. Dat lijkt een grote stap achteruit, maar de AGC had nog steeds een vitale functie. Grondbediening zou de navigatie kunnen verwerken, maar er was nog steeds een vertraging van een seconde tussen de aarde en de maan, en met Apollo die tijdelijk achter de maan langs ging, werd alle communicatie afgesloten. Wat dit idee verergerde was dat dit alles zich tijdens de Koude Oorlog voordeed en de Amerikanen vreesden dat de Sovjets opzettelijk transmissies zouden blokkeren.

AGC computerchip credits; New Atlas / NASA

Zowel qua ontwerp als manier van bouwen presenteerden hun eigen uitdagingen. I.t.t.  moderne computers werden de AGC’s allemaal met de hand gemaakt in een moeizaam proces dat zelfs m.g.v. gedeeltelijke automatisering en nieuwe testmethoden weinig opschoot. In totaal nam productie 2000 manjaar in beslag. Een moeilijkheid was dat de AGC veel geavanceerde technologieën bevatte, zoals de eerste computer die voor zijn logica-schakelingen op chipcomponenten moest vertrouwen – met name een drie-ingang NOR (nl NOF) poort***. Destijds net op de markt geïntroduceerd maar in 1963 kocht het MIT Instrumentation Lab al 60 procent van de chipproductie op in de VS.

In zijn uiteindelijke vorm was de AGC niet langer een computer voor algemene doeleinden, maar een computer die was ontworpen om specifieke taken uit te voeren, en was bedraad om dit te doen. Het bestond uit twee metalen trays – een voor het geheugen en een voor de logische circuits voor een totaal van 30.000 componenten. Vanwege de beperkingen van de technologie, ondanks de complexiteit ervan, werd de AGC zo eenvoudig mogelijk ontworpen, met zo min mogelijk onderdelen voor een lager gewicht en grotere betrouwbaarheid. Omdat de AGC zich op een kwart miljoen km vanaf de dichtstbijzijnde reparatiewerkplaats bevond was deze betrouwbaarheid en robuustheid topprioriteit. Op een gegeven moment was er de suggestie om een dubbele computer aan boord van het ruimtevaartuig te installeren, maar dit werd afgewezen ten gunste van krachtig en agressief testen, en vervolgens de componenten hermetisch af te sluiten om stof en vocht buiten te houden.

Apollo computer Ropememory credits; New Atlas / NASA

Rope-memory
Een van de grootste aandachtspunten in het ontwerp was het opslaan van programma’s en gegevens in de AGC. Computergeheugens hadden een lange weg afgelegd sinds de tijd dat gegevens werden ingevoerd met gestanst papier of opgeslagen door het verzenden van geluidsgolven door buizen gevuld met kwik, maar de technologie stond nog in de kinderschoenen en geen van de huidige opslagtechnieken was praktisch voor Apollo In plaats daarvan bedacht MIT een nieuwe benadering waarbij de software letterlijk in de geheugenbanken werd verweven. Met behulp van een techniek genaamd ‘ropememory’**** of kernkabelgeheugen bedachten de ingenieurs een methode waarbij er door kleine ijzeren ringen draden liepen. Wanneer een draad door het midden van de ring liep, vertegenwoordigde dit het binaire getal 1. Aan de buitenkant lopend, was het 0. Om het kabelgeheugen te programmeren, gebruikte MIT wat ze de LOL-methode noemden, voor ‘little old ladies’. Dit kwam omdat de programmering werd gedaan door ex-textielarbeidsters, die bekwaam naalden met draden door de ijzeren ringen stuurden. Ze werden geholpen door een geautomatiseerd systeem dat hen liet zien in welk gat in het werkstuk de naald moest worden gestoken, maar het was nog steeds een hooggekwalificeerde baan waarvoor concentratie en geduld nodig was.

Het resultaat was een onverwoestbaar geheugen dat noch gewist noch gecorrumpeerd kon worden. Het nadeel ervan was dat de productie van dit geheugen zeer complex was en nog lastiger te corrigeren zodra er een fout gemeld werd. Dit had zo zijn eigen voordeel, impulsieve ideeën werden zo genegeerd. Prioriteit over timesharing. Natuurlijk was dit niet het enige geheugen van de AGC Ook was er een 2000 woorden tellend RAM geheugen bank die acteerde als een scratch pad voor tijdelijke data terwijl de computer programma liep.Dit was belangrijk vanwege een veiligheidsaspect van de machine. In de jaren 60 was het gemeengoed dat een computer door verschillende gebruikers was of meerdere programma’s timesharing. De computer wees milliseconden tijd aan iedere gebruiker en switchte tussen hen. Dit is bv prima voor een universiteit mainframe maar voor een Apollo schip zou het fataal kunnen zijn daar de computer bezig is met triviale dingen terwijl er onderwijl een levensbedreigende situatie zou kunnen voordoen. Computer pionier Halcombe Laning had een oplossing. In plaats van timesharing, werd de AGC geprogrammeerd op prioriteit. Ieder programma werd genummerd in volgorde van belangrijkheid voor elk tijdstip op het missieprogramma. Mocht zich een hogere prioriteit voordoen dan stopten de andere programma’s met werken. Ondertussen, behield het tijdelijk geheugen de data vast tot het stoppunt op een manier als nu een computer in slaapmodus gaat. Dit voorkwam crashes, maar zo kon de bemanning ook een lopend programma interrumperen met nieuwe data zodra deze binnenkwam.

Apollo computer DSKY credits; New Atlas / NASA

DSKY en software
Deze data kwam van een aantal apparaten, waaronder de sextant, de telescoop, de Inertial Measurement Unit (IMU) die bestond uit een gyroscoop en drie versnellingsmeters, de handmatige bediening gebruikt door de astronauten, de Command Module Rendezvous Radar, de Lunar Module Landing Radar, telemetrie van de aarde, de hoofdmotor en het reactiecontrolesysteem. De belangrijkste van de inputs was de display- en toetsenbord unit (DSKY Display and Keyboard) waarmee de astronauten met de computer communiceerden. Deze gebruikersinterface was zo omvangrijk dat velen die het zien denken dat het de computer zelf is, maar het is eigenlijk niets meer dan een verzameling waarschuwing- en statuslampjes, knoppen en een numeriek display. Ontworpen door Alan Green van MIT, lijkt de DSKY in eerste instantie lastig te gebruiken (er zijn een aantal simulators online, als je het zou willen proberen). Dat dachten de astronauten ook, maar in de praktijk werden ze al snel verrast door hoe goed het apparaat eigenlijk was en werden ze enthousiast. Het werkte op een unieke manier. In plaats van woordopdrachten in te typen of op pictogrammen te klikken, gebruikten de astronauten een speciale numerieke taal van ‘zelfstandige naamwoorden’ en ‘werkwoorden’. Een ZN was een object en een WW was een actie die door het object moest worden genomen. Om te opereren, zou de astronaut eerst op de ontgrendelingsknop drukken die per ongeluk indrukken van de knop verhinderde, vervolgens de cijfercode voor het ZN invoeren en vervolgens de code voor het WW. Het resultaat zou een commando zijn zoals ‘weergave-cardanische hoeken’ of ‘laden -sterrennummer’. Zodra de opdracht de astronaut zou verplichten om gegevens in te voeren, zoals het sternummer, zou de computer een ‘gereed’ signaal flitsen en op de gegevens wachten. Er was zelfs een spiekbriefje afgedrukt op de schotten met computeropdrachten.

Voor de software van de AGC hebben 350 ingenieurs gewerkt, het equivalent van 1400 manjaren, vóór de eerste maanlanding. Een complexe taak omdat de programmeurs geen specificaties hadden. De code werd met de hand geschreven en vervolgens overgebracht naar enorme pons kaarten voor testen. Ondanks deze primitieve methode was de software een enorme stap voorwaarts en de eerste die in real-time problemen moest oplossen voor de astronauten in de ruimte. Het was in feite een mix van verzamelde taalacties en geïnterpreteerde wiskundige taal die constant moest worden bijgewerkt naarmate de hardware, de missie en de rol van de astronauten verder evolueerden.

Apollo 11 maanlanding Buzz Aldrin verlaat de LM credits; New Atlas / NASA

AGC in actie
In de praktijk kwam het erop neer dat de AGC vlekkeloos presteerde op de Apollo missies, de enige problemen die er zich voordeden was zodra er een verkeerde code werk ingevoerd of een verkeerde schakelaar omgezet. Op de Apollo 8, voerde commando module piloot Jim Lovell consciëntieus de data in, verkregen uit de CM sextant. Bij het bereiken van de maan in december 1968 gaf de computer aan dat de Apollo 8 op zo een 2.5 km van het maanoppervlak verwijderd was. Op de retourvlucht was er slechts 1 koerscorrectie nodig. Maar het was tijdens de Apollo 11 dat de AGC zijn ware kunnen toonde. Tijdens de historische afdaling naar de Zee van Rust, bleek de computer van slag vanwege het feit dat de rendezvous radar nog per ongeluk aan stond. De radar stroomde vol met betekenisloze data en bij een moderne computer zou dit in een crash hebben geresulteerd. Daarentegen signaleerde de AGC  “1202” voor een overload error en schakelde ieder programma uit behalve de nummer 1 ‘prioriteit’ en vervolgens herstartte deze. Zo een afbreek commando vermijdend verkreeg de missie commandant Neil Armstrong de GO voor de landing. De AGC, een wat minder bekend succesverhaal uit het Apollo maanmissie tijdperk maar misschien is dit tegelijkertijd juist wel het mooiste compliment voor de computer. ‘It did the job,’ het functioneerde naar behoren. Bronnen; New Atlas

*Een intertiaal navigatiesysteem (INS) is een navigatieapparaat dat een computer, bewegingssensoren (versnellingsmeters) en rotatiesensoren (gyroscopen) gebruikt om continu de positie, de oriëntatie en de snelheid (richting en bewegingssnelheid) van de beweging te berekenen van een bewegend object zonder externe referenties. Het wordt ook wel ‘traagheidsnavigatie systeem’ genoemd.

**De Polaris of UGM-27 Polaris was een intercontinentale raket (ICBM) met nucleaire lading, die in de jaren 60 in gebruik kwam bij de Amerikaanse marine. De ontwikkeling van de raket begon kort na 1950 en in 1960 werd de eerste, een Polaris A1, in gebruik genomen. Ten behoeve van het Polaris-project lanceerde de Amerikaanse marine een omvangrijk bouwprogramma van kernonderzeeërs, die elk 16 raketten kunnen vervoeren. Gedurende de jaren 60 zijn 41 van dergelijke onderzeeboten gebouwd. Fysicus Charles S. Draper was de grondlegger van het inertiaal navigatiesysteem voor zowel deze raketten als de kernonderzeeërs. Chris Adams; ‘Deterrence; An Enduring Strategy’, 2009

***De NOR-poort (nl. NOF) is een digitale elektronische schakeling. De poort bezit twee of meer ingangen en 1 uitgang. De logische toestand van de uitgang is uitsluitend 0 als minstens één ingang 1 is (oftewel: uitsluitend 1, als alle ingangen 0 zijn). De schakeling is daarmee een omgekeerde (negatieve) OR-poort, hetgeen ook de naam verklaart.
****Rope memory is een vorm van read-only memory (ROM) voor computers, voor het eerst gebruikt in de jaren ’60 door NASA ruimtesondes en vervolgens in de AGC, ontworpen en geprogrammeerd door het MIT Instrumentation Lab en gebouwd door Raytheon. Software geschreven door MIT-programmeurs werd door vrouwelijke werknemers in fabrieken in het kernkabelgeheugen verweven. Sommige programmeurs gaven het LOL-geheugen voor het eindproduct de bijnaam Little Old Lady geheugen. Naar de maatstaven van die tijd kon een relatief grote hoeveelheid gegevens worden opgeslagen in een klein geïnstalleerd volume kabelgeheugen: 72 kb per kubieke voet, of ong 2,5 megabytes per kubieke meter. 

Comments

  1. jan brandt zegt

    Hoi Angele…ik weet niet waar je het toch elke keer weer vandaan haalt…maarre….wat een heerlijk stukkie “techie Apollo leesvoer”…jammie de pammie!!!

    • Angele van Oosterom zegt

      Bedankt Jan! ja, dit was er een voor onder de parasol! En Apollo blijft iig boeien maar zeker zo fascinerend was het verhaal van Charles Draper uit the Silent War (John. P. Craven, 2002) over het provisorisch en inventief bouwen van dit navsysteem voor de marine… volgens de betrokkenen zeker zo lastig als voor een maanreis…

  2. Voor de doe-het-zelvers:

    http://klabs.org/history/build_agc/

Speak Your Mind

*

Deze website gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.

%d bloggers liken dit: