W środku nocy przyjaciel wysłał mi wiadomość o tym, że NASA projektuje cięższy od powietrza dron o nazwie Ingenuity, który będzie latał na Marsie. Chociaż skończyłem już artykuł na ten miesiąc, to wiedziałem, że muszę zacząć od nowa i napisać o Ingenuity, który zbudowany jest ze standardowych, sklepowych komponentów i korzysta z wolnego oprogramowania, co ma światowe (a nawet marsjańskie) znaczenie.
Łaziki marsjańskie to urządzenia, które „muszą działać”. Koszt zaprojektowania, uruchomienia i zarządzania nimi jest olbrzymi. Po wydaniu takiej masy pieniędzy brak działania to coś, czego musimy unikać za wszelką cenę.
Dodatkowo środowisko na Marsie jest tak różne od ziemskiego, że należy przedsięwziąć dodatkowe środki ostrożności dla każdego komponentu. Powietrze jest bardzo rzadkie, ma jedynie 1/100 gęstości ziemskiego. Grawitacja to tylko 63% grawitacji na Ziemi, a nasłonecznienie (potrzebne do ładowania przez panele słoneczne) jest dużo słabsze ze względu na odległość od Słońca. Poza tym bardzo istotne są burze piaskowe i cienie skał blokujące światło i powstrzymujące ładowanie baterii.
Temperatury operacyjne komponentów komputerowych wahają się pomiędzy –40 a +40 stopni Celsjusza, a elektronika musi być ekranowana przed promieniowaniem, przed którym na Ziemi chroni nas atmosfera.
Jednostronna komunikacja trwa 11 minut, więc wydanie polecenia i uzyskanie odpowiedzi zajmuje 22 minuty. Mimo że łazik porusza się powoli, powinniśmy go tak zaprogramować, aby poruszał się tam, gdzie chce, a nie czekał na polecenia.
Wszystko to zostało zaprojektowane i przetestowane z największą ostrożnością i w możliwie adekwatnych warunkach tu, na Ziemi. Z tego powodu cały cykl projektowania i testowania jest bardzo długi.
Jeden z poprzednich łazików, Opportunity, wystrzelony 7 lipca 2003 r., wylądował na Marsie 25 stycznia 2004 r. i pracował nieprzerwanie do 10 czerwca 2018 r. Oczywiście projekt, wykonanie i testy muszą być realizowane przez wiele lat przed startem.
Procesor wybrany dla Opportunity to RAD6000, PowerPC RISC, specjalnie zaprojektowany dla niesprzyjających środowisk, pracujący na różnych częstotliwościach: 2.5, 5, 10 i 20 MHz. Wykorzystywane też były FPGA (bezpośrednio programowalne macierze bramek), realizujące cięższe przetwarzanie, na przykład rozpoznawanie i kompresję obrazów, gdyż płytkę FPGA można włączyć, aby zrealizowała swoje zadanie, i potem wyłączyć, aby oszczędzić moc.
Najnowszy łazik marsjański, Perseverance, był budowany na bazie poprzedniego, udanego łazika Curiosity (ciągle aktywnego). Oba działają z VxWorks, z którym to systemem NASA pracuje od dłuższego czasu.
Perseverance wylądował 18 lutego 2021 r. Jednak ten najnowszy łazik marsjański miał małą niespodziankę przytwierdzoną do „brzucha”: niewielki helikopter, nazwany Ingenuity.
Dla NASA Ingenuity to „demonstracja możliwości technologicznych”. Nawet jeśli ta demonstracja całkowicie zawiedzie, nie będzie to miało wpływu na główny cel misji Perseverance.
Ingeunity to wisienka na torcie, ponieważ zbudowano go, korzystając ze standardowych części i z użyciem wolnego oprogramowania. Dramatycznie skróciło to czas potrzebny na zaprojektowanie, złożenie i przetestowanie systemu, a także koszt finalnego produktu.
Płyta główna, na której zamontowano procesor Ingenuity, bez problemu może być wykorzystana w telefonie komórkowym lub w na przykład w Raspberry Pi 3. Procesor to bardzo tani Qualcomm 801 Snapdragon z GPU i DSPs (Digital Signal Procssors). W związku z tym ma dużo większą moc niż procesory wykorzystywane w większych łazikach. Wiele z części helikoptera zamówiono ze sklepu SparFun Electronics.
Urządzenie działa z Open-Source Flight Software Framework, zwanym „F’ (F Prime)”, na Raspberry Pi 3 pod kontrolą Linuksa. Moglibyście (wkładając w to trochę pracy i nauki) zbudować własnego „Ingenuity” i rozwijać go równolegle z NASA.
Nie jest to pierwszy raz, kiedy NASA stworzyło otwarte oprogramowanie. NASA zajmowało się takimi rzeczami, zanim jeszcze pojawił się termin „otwarte źródła”. W związku z programem COSMIC agencja opublikowała wiele otwartych projektów oprogramowania.
Swego czasu, w 1985 roku, jednym z moich ulubionych programów był CLIPS [2], język wykorzystywany do pisania zagnieżdżonych systemów eksperckich. Oprogramowanie to wyszło z NASA i ciągle, przez te 25 lat, jest utrzymywane. W czasach sztucznych inteligencji warto czasami przyjrzeć się dużo prostszym i elastyczniejszym pomysłom „systemów eksperckich”, które mogą wykonać daną pracę. Kiedyś napiszę więcej o mojej relacji z CLIPS. nnn
Jon „maddog” Hall jest autorem, wykładowcą, informatykiem i jednym z pionierów Wolnego Oprogramowania. Od 1994 roku, kiedy po raz pierwszy spotkał Linusa Torvaldsa i ułatwił przeniesienie jądra na systemy 64-bitowe, pozostaje orędownikiem Linuksa. Obecnie jest prezesem Linux International®.
Info
[1] F Prime: https://github.com/nasa/fprime
[2] CLIPS: http://www.clipsrules.net/