Kalkulator, który poleciał na Księżyc

Komputer pokładowy Apollo 11 nie dorównywał mocą obliczeniową dzisiejszym kalkulatorom, ale to on właśnie towarzyszył ludziom w ich - jak dotąd - najdalszej podróży.

Dochodziła piąta nad ranem polskiego czasu 21 lipca 1969 roku. 300 tysięcy kilometrów od Ziemi człowiek ubrany w krępujący ruchy kombinezon ostrożnie pokonywał dziewięć stopni drabinki lądownika, dzielących go od powierzchni Srebrnego Globu. O godzinie 4:56 polskiego czasu Neil Armstrong, bo o nim tu mowa, postawił stopę na powierzchni Księżyca. Było to niemal pół wieku temu.

Zejście Buzza Aldrina z lądownika Eagle
Buzz Aldrin schodzi po drabince lądownika Eagle na powierzchnię Księżyca. (fot. NASA)

Doskonale znane każdemu fanowi astronautyki zdjęcie człowieka ostrożnie stąpającego po szczebelkach drabinki lądownika Eagle przedstawia Buzza Aldrina i zostało wykonane właśnie przez Armstronga, który odczepił kamerę przymocowaną do lądownika i ustawił ją w odległości ok. 20 metrów od niego. Mimo lat przygotowań już na tym etapie pojawiły się niespodzianki. Kamera zasilana była przewodowo, a kabel był przez cały czas zwinięty. Grawitacja księżyca okazała się zbyt słaba, w efekcie przewód zamiast leżeć na gruncie stale zwijał się w spiralę. Drobiazg, ale już podczas pierwszych kroków ludzkości na Księżycu było się o co potknąć.

Misja Apollo 11 nie zakończyłaby się sukcesem, gdyby nie praca tysięcy ludzi pracujących nad każdym szczegółem budowy rakiety, modułu orbitalnego, lądownika oraz oprogramowania: kodu sterującego poszczególnymi elementami. Nas interesują przede wszystkim technologie, dlatego to na nich przede wszystkim się skupimy.

Start wymaga rakiety

Podbój Księżyca przez Amerykanów rozpoczął się oficjalnie od przemówienia prezydenta Johna F. Kennedy’ego wygłoszonego 25 maja 1961 roku. Zadeklarował on wówczas, że Amerykanie do końca dekady wylądują na Księżycu. Udało im się to zrealizować, choć nie bez kłopotów, trudności i – niestety – ofiar.

Amerykanie dążąc do realizacji celu wyznaczonego przez prezydenta Kennedy’ego nie mieli moralnych dylematów, czy sięgać po wiedzę Wernhera von Brauna, niegdysiejszego majora SS. Ważniejsza dla nich była wiedza konstruktora rakiet V2 – niemieckiej „wunderwaffe” – niż jego przeszłość. Opracowane pod jego kierownictwem rakiety V2 zabiły ponad 12 tysięcy mieszkańców Antwerpii, Londynu i Liège. A jeszcze więcej ludzi zginęło w wyniku niewolniczego wyzysku stosowanego przez von Brauna i jego ekipę podczas prac dla nazistów. Dla Amerykanów ważniejsza okazała się jednak wiedza i umiejętności von Brauna. W 1945 .w ramach operacji „Paperclip” Amerykanie ewakuowali von Brauna i ponad 100 innych niemieckich naukowców. Ten odwdzięczył się Ameryce projektując najpotężniejszą rakietę jaką kiedykolwiek zbudowano.

Silnik F-1 – najpotężniejszy jaki dotąd zbudowano

Silnik F-1, czyli jeden z pięciu silników pierwszego, najcięższego członu rakiety Saturn V, która wyniosła Armstronga, Aldrina i Collinsa na Srebrny Glob dawał ciąg rzędu 6770 kN (na poziomie morza). Sama wartość niewiele mówi, dlatego dobrze ją odnieść do przykładu trafiającego do wyobraźni. Największy obecnie samolot pasażerski świata: Airbus A380, wyposażony jest w cztery silniki turbowentylatorowe Rolls-Royce Trent 900 (ew. Engine Alliance GP7270) o ciągu ok. 330-350 kN każdy. Zatem jak łatwo policzyć, pojedynczy silnik F-1 pierwszego członu rakiety Saturn V oferował ciąg równoważny ciągowi dwudziestu silników Airbusa A380! Rakieta Saturn V wyposażona była w aż pięć sztuk F-1. To najpotężniejszy silnik rakietowy, jaki kiedykolwiek powstał. Do dziś nie zbudowaliśmy niczego mocniejszego. To właśnie ta moc pozwoliła nam przenieść ludzi na Księżyc. Praca pięciu silników F-1 pierwszego modułu rakiety Saturn V, która wystartowała 16 lipca 1969 roku z przylądka Canaveral dokładnie o godzinie 15:32 polskiego czasu pozwoliła wynieść załogę Apollo 11 na wysokość ponad 100 km, tym samym najtrudniejszy etap – pokonanie ziemskiej grawitacji – został zrealizowany. To nie znaczy, że dalej było z górki.

Wernher von Braun z silnikami F-1
Wernher von Braun na tle silników F-1 (fot. NASA)

Cztery dni później lądownik Eagle (Orzeł) osiadł na Księżycu z dwoma astronautami: Neilem Armstrongiem i Buzzem Aldrinem. Nie zapominajmy o trzecim członku załogi, bez którego cała misja spaliłaby na panewce: Michaelu Collinsie, który w czasie gdy koledzy udawali się na księżycowy spacer krążył po orbicie księżyca jako pilot modułu dowodzenia. Zarówno Armstrong z Aldrinem w lądowniku, jak i Michael Collins w orbiterze dysponowali zaprojektowanymi specjalnie na potrzeby misji jednostkami obliczeniowymi: Apollo Guidance Computer. Tak, to ten słynny „kalkulator Apollo”.

Komputer o wydajności kalkulatora

Apollo Guidance Computer
Apollo Guidance Computer oraz DSKY (moduł kontrolny z przyciskami) – taka jednostka obliczeniowa wraz z widocznym modułem kontrolnym trafiła na pokład Apollo 11 (fot. Charles Start Draper Laboratory)

Jedno z często powtarzanych w internecie twierdzeń głosi, że komputer nawigacyjny, który umożliwił załodze Apollo 11 lot na Księżyc, lądowanie i powrót na Ziemię oferował wydajność porównywalną ze współczesnym kalkulatorem. I jest to twierdzenie jest prawdziwe, choć jednostka, która trafiła na pokład Apollo 11 zdecydowanie nie przypominała kieszonkowego kalkulatora (może poza klawiaturą numeryczną modułu DSKY). Zaprojektowany przez naukowców z Charles Start Draper Laboratory (wówczas jeszcze pod nazwą MIT Instrumentation Laboratory), placówki badawczej zajmującej się inercyjnymi systemami naprowadzania i nawigacji Apollo Guidance Computer – bo tak nazywał się sprzęt, o którym tu mowa – był modułem obliczeniowym ważącym ponad 30 kg.

W całej misji Apollo 11 wykorzystywano nie jeden, lecz dwa moduły AGC. Pierwszy komputer umieszczony był w orbiterze, czy też module dowodzenia pilotowanym na księżycowej orbicie przez Michaela Collinsa oczekującego na powrót astronautów ze Srebrnego Globu. Druga jednostka zainstalowana była w lądowniku. Dublowanie systemów obliczeniowych służyło przede wszystkim bezpieczeństwu. Astronauci mogli liczyć oczywiście na wsparcie obliczeniowe z Ziemi, gdzie NASA dysponowała najpotężniejszymi wówczas komputerami: pięcioma jednostkami typu mainframe, IBM model 360/75 z których każda była blisko 250 razy szybsza od Apollo Guidance Computer. Jednak Amerykanie obawiali się, że Rosjanie mogą próbować sabotować misję i zakłócać łączność Ziemi ze statkiem Apollo 11. AGC miał więc zapewnić moc obliczeniową wystarczającą do samodzielnego zrealizowania wszystkich niezbędnych obliczeń bezpośrednio na pokładzie statku Apollo.

Jaka była ta moc obliczeniowa? W dokumentacji technicznej nie ma słowa o bajtach. Komputer AGC w Apollo 11 operował na 16-bitowych słowach maszynowych. Pamięć stała AGC, czyli odpowiednik dzisiejszych dysków twardych i SSD, była pamięcią ferrytową o pojemności 37 tysięcy 16 bitowych słów, co w uproszczeniu można zapisać jako „dzisiejsze” 74 kilobajty. Natomiast odpowiednik pamięci RAM w AGC, czyli tzw. pamięć kasowalna, mieściła 2048 16-bitowych słów maszynowych. Oznacza to – analogicznie – pojemność 4 kilobajtów. Centralna jednostka obliczeniowa Apollo Guidance Computer była układem taktowanym częstotliwością 2048 kHz. Jakiego typu rozkazy można było wydawać temu komputerowi?  Według książki Franka O’Briena pt. „The Apollo Guidance Computer – Architecture and Operation”  przykładowa sekwencja rozkazów mogła prezentować się następująco (tłum. CHIP):

Poczekaj 90 sekund
Przewiń do tyłu pamięć taśmową
Skocz w dół do 14 stopni
Zrób 20 zdjęć

Pod względem mocy obliczeniowej Apollo Guidance Computer nie tylko nie dorównywał współczesnym kalkulatorom, a wręcz był od nich słabszy. Dziś korzystamy z mocy obliczeniowej tak nieporównywalnie większej, że gdy sobie to uświadomimy, mamy wręcz wyrzuty sumienia, jak wiele jej jest marnowane na rzeczy błahe. Doskonale zilustrowali to Udi Manber oraz Peter Norvig, pracownicy Google’a, którzy 28 sierpnia 2012 roku na oficjalnym blogu Google Inside Search opublikowali skłaniający do zastanowienia wpis. Clue tej publikacji był fakt, że każde pojedyncze zapytanie skierowane do wyszukiwarki Google angażuje moc obliczeniową większą od tej, użytej nie tylko w misji Apollo 11, ale w całym programie Apollo przez wszystkie lata jego trwania!

Wróćmy jednak do Apollo 11, Aldrin i Armstrong dysponowali „tylko” AGC, był 20 lipca 1969 roku, właśnie lądowali na Księżycu i.. mieli problem.

Błąd 1202

Mimo wielokrotnych prób, testów, sprawdzania kodu oprogramowania pracującego na komputerze AGC, podczas misji Apollo 11 nie udało się uniknąć niespodzianek. Problemy pojawiły się podczas lądowania modułu księżycowego (Lunar Module).

Nieprawidłowe ustawienie przełącznika trybu działania radaru zbliżeniowego wykorzystywanego podczas dokowania kapsuł spowodowało, że ten stale „kradł” ok. 13-15% mocy obliczeniowej komputera Apollo w trakcie i tak już wymagającej obliczeniowo procedury lądowania na Księżycu. W efekcie AGC zaczął wyświetlać alarmy 1201 i 1202, informujące o przeciążeniu. Alarm w tym pełnym napięcia momencie uruchomił łańcuch wydarzeń, które mogły doprowadzić do przerwania lądowania i fiaska misji Apollo 11. Kilka sekund po pojawieniu się alarmu Neil Armstrong z napięciem w głosie poprosił centrum kontroli lotów „Dajcie nam wytyczne dotyczące alarmu oprogramowania 1202”. Odpowiedzi na jego pytanie miał udzielić Steve Bales, odpowiadający w zespole kierowania misją za systemy naprowadzania i nawigacji. Ten wiedział co robić – Jack Garman, młody inżynier z MIT zajmujący się projektowaniem i testowaniem komputera AGC uprzedził go, że taka sytuacja może mieć miejsce i że nie jest ona tak naprawdę groźna: mimo przeciążenia, komputer jest w stanie funkcjonować, poprawnie wykonując najważniejsze zadania, a usuwając z pamięci te, które mają niski priorytet. Steve Bales daje kierownikowi lotu, Geneowi Krantzowi  rekomendację „Go!” (kontynuować), a ten podaje swoje „Go!” załodze lądownika Eagle. Lądowanie trwa, jednak alarm 1202 pojawia się ponownie. Steve Bales nakazuje kontynuować. Problemy jednak uparcie nie chcą się skończyć – kolejne alarmy 1202 i 1201 uruchamiają się praktycznie co chwila, rozpraszając załogę Eagle’a i utrudniając jej pilnowanie przebiegu lądowania oraz przyprawiając ekipę centrum kontroli lotu o coraz większe wątpliwości. Zgodnie z wytycznymi Garmana z MIT błąd 1202 można ignorować, jeśli nie pojawia się „stale”… Czy mimo tak częstego pojawiania się alarmów można uznać, że komputer nadal jest w stanie prawidłowo obsługiwać najważniejsze dla misji zadania? Czy należy przerwać lądowanie, być może ratując życie dwóch ludzi, choć kosztem zranionej dumy? Steve Bales, na którym spoczywa w tym momencie odpowiedzialność za zbliżających się do powierzchni Księżyca astronautów i powodzenie wartej miliony dolarów misji wytrwale powtarza „Go”. Ma rację. Za tę decyzję otrzymał później wyróżnienie z rąk prezydenta USA Richarda Nixona.

To jednak nie koniec. Kolejnym problemem, który ujawnił się w newralgicznym momencie misji Apollo 11 była niestabilna praca silnika Lunar Module spowodowana nieprawidłowymi danymi.

System nawigacyjny Apollo 11
Schemat systemu PGNS (Primary Guidance and Navigation System) lądownika Apollo 11 (rys. Don Eyles / NASA)

Jak widać na powyższym schemacie komputer AGC zainstalowany w lądowniku Eagle odbierał dane z czujników inercyjnych (sygnał dot. wysokości i przeciążeń), jak również z wielu innych sensorów (m.in. wspomnianego, problematycznego interfejsu radarowego), przyjmował również polecenia wydawane przez członków załogi. Na podstawie otrzymanych danych generował instrukcje sterujące pracą silnika lądownika. To pokazuje jak kluczowe było jego znaczenie dla sukcesu misji Apollo 11.

Fazy lądowania lądownika Eagle
Schemat ilustrujący przebieg lądowania modułu Eagle na Księżycu w misji Apollo 11; (rys. NASA)

Problem z komputerem i oprogramowaniem, który pojawił się w trakcie lądowania był tym poważniejszy, że ujawnił się dopiero w ostatnich fazach lądowania, czyli wtedy, kiedy oczekiwano maksymalnej koncentracji zarówno od ludzi, jak i od maszyn. Kiedy Neil Armstrong siedzący po lewej stronie kabiny lądownika obrócił go w taki sposób by umożliwić astronautom oglądanie powierzchni Księżyca, radar wyświetlał wciąż dobre dane. Niestety w późniejszej fazie lotu odmówił on posłuszeństwa.

Problem z nawigacją nad Księżycem jest taki, że bezpieczne lądowanie nie jest możliwe bez znajomości względnej odległości i prędkości. Co prawda Armstrong i Aldrin dysponowali pomiarami sprzed „zawieszenia” się komputera pokładowego, ale dane wymagały potwierdzenia zarówno przez załogę jak i kontrolę naziemną misji. Tymczasem mimo błędów wyświetlanych przez komputer pokładowy lądownika Eagle, kontrola naziemna ze Steve Balesem na czele uparcie potwierdzała kontynuowanie misji. To nie była komfortowa sytuacja dla Armstronga, którego puls wynosił już 150 uderzeń na minutę. Dowódca Apollo 11 znajdując się na wysokości zaledwie 650 stóp (ok. 200 metrów) nad powierzchnią Księżyca podjął decyzję, by przejść częściowo na ręczne sterowanie. Głównie dlatego że teren, nad którym osiadał sterowany automatycznie lądownik, nie nadawał się do lądowania ze względu na dużą liczbę skał. Armstrong przez kolejne 12 sekund przemieszczał lądownik, po czym, gdy ten znajdował się już 430 stóp (131 metrów) nad powierzchnią Srebrnego Globu, wydał polecenie pionowego, coraz wolniejszego zniżania i po kolejnych 140 sekundach, dokładnie 102 godziny, 45 minut i 40 sekund od startu z Ziemi, lądownik Eagle bezpiecznie wylądował na równinie znanej pod nazwą Morze Spokoju.

Pełny sukces

Dalszy przebieg misji jest powszechnie znany. Wypowiedzi „Orzeł wylądował” czy „Mały krok człowieka, ale wielki skok ludzkości” są znane dziś każdemu fanowi astronautyki i ludzkiego podboju kosmosu. Aldrin i Armstrong zebrali 21,7 kg kamieni księżycowych i po 21 godzinach i 36 minutach spędzonych na Księżycu powrócili do modułu dowodzenia pilotowanego na orbicie Księżyca przez Michaela Collinsa. Powrotna droga minęła już bez jakichkolwiek niespodzianek. Jedynie samo miejsce lądowania zostało przesunięte w stosunku do pierwotnie obranej lokalizacji o kilkaset kilometrów ze względu na złe lokalne warunki pogodowe.

 

USS Hornet wyławia kapsułę Apollo 11
Lotniskowiec USS Hornet wyławia kapsułę z astronautami misji Apollo 11 (fot. USS Hornet Museum)

Misja zakończyła się pełnym sukcesem. Po 8 dniach, trzech godzinach, 18 minutach i 35 sekundach, po pokonaniu 1 533 792 kilometrów kapsuła Apollo z trzeba astronautami wylądowała 24 lipca 1969 roku o godzinie 18:50 polskiego czasu w wodach Pacyfiku, ok. 1460 km na południowy zachód od Wysp Hawajskich. 21 kilometrów od punktu wodowania na astronautów czekał już w gotowości lotniskowiec USS Hornet.

 

Orzeł wylądował i Ty też możesz, czyli Apollo-zrób-to-sam

Dzięki komputerom i rozwojowi technologicznemu, dziś każdy posiadacz peceta może samodzielnie zrealizować własną misję księżycową z wykorzystaniem wirtualnego odpowiednika lądownika, którym dysponowali Aldrin i Armstrong. Wystarczy, że pobierzecie i zainstalujecie symulator lądownika księżycowego: Eagle Lander 3D (EL3D).

Wirtualny Apollo Guidance Computer

Natomiast osoby zainteresowane jednostką obliczeniową pracującą na pokładzie misji Apollo 11, mogą wypróbować jej działanie dzięki projektowi o nazwie Virtual AGC.

 

Wszystkich zainteresowanych pogłębieniem wiedzy na temat misji Apollo 11 zachęcamy do zapoznania się z następującymi materiałami, z których również i my korzystaliśmy:

| CHIP