Маленькое чудо произошло в 3:31 по восточному времени в понедельник утром. Крошечный вертолет НАСА Ingenuity стал первым летательным аппаратом с двигателем, который полетел на другую планету, Марс. Этот инженерный подвиг был сделан с помощью Linux, программного обеспечения с открытым исходным кодом и программы, созданной НАСА, основанной на платформе F´ (произносится как F prime) с открытым исходным кодом Лаборатории реактивного движения (JPL).
На расстоянии 11 световых минут от Земли в этом не было ничего легкого. Правда, Марс имеет только треть гравитации Земли, но атмосфера Марса имеет только одну сотую плотности воздуха Земли.
Действительно, изобретательность — это просто демонстрация технологий. Он не предназначен для поддержки миссии «Настойчивость», которая ищет признаки древней жизни и собирает образцы камней и грязи для последующих миссий по возвращению на Землю. Его миссия — показать, что на Марс можно летать, используя готовое коммерческое оборудование (COTS) и программное обеспечение с открытым исходным кодом.
Генеральный директор GitHub Нат Фридман и его команда, а также команда JPL Ingenuity тщательно изучили код вертолета и обнаружили, что «около 12 000 разработчиков на GitHub внесли свой вклад в программное обеспечение Ingenuity через открытый исходный код. первое изображение черной дыры, большинство этих разработчиков даже не подозревают, что именно они помогли сделать первый полет на марсианском вертолете возможным ».
Теперь они узнают. Фридман написал: «Сегодня мы хотим сделать невидимое видимым. Итак, мы работали с JPL, чтобы разместить новый значок вертолетной миссии Mars 2020 в профиле GitHub каждого разработчика, который участвовал в конкретных версиях любых проектов с открытым исходным кодом и библиотеки, используемые Ingenuity ".
Список разработчиков был создан JPL, предоставив GitHub исчерпывающий список всех версий каждого проекта с открытым исходным кодом, используемого Ingenuity. Затем GitHub смог бы идентифицировать всех участников, создавших эти проекты, и их зависимости.
Некоторые из удостоенных наград, такие как создатель Linux Линус Торвальдс, являются известными разработчиками. Многие другие работают в безвестности, но теперь их работа получает признание. Как объяснил старший директор по связям с разработчиками GitHub Мартин Вудворд: «Многие люди, которые получают значок, вероятно, понятия не имеют, что их программное обеспечение используется для полетов на вертолете на другой планете. Мы хотели, чтобы все были признаны за их вклад в это невероятное человеческое достижение ".
Вудворд продолжил: «Мы обнаружили, что существует иерархия зависимостей. Один проект может иметь 10 или меньше зависимостей, но они выходят отсюда, и каждая зависимость полагается на что-то еще. Прежде чем вы это узнаете. , у вас есть невероятно большое количество людей, которые внесли свой вклад в проект ».
Хотя результат в этом случае является выдающимся, почти все поставляемое программное обеспечение сегодня полагается на компоненты с открытым исходным кодом. Кэрол Виллинг, один из основных участников Python, добавила: «Подобно тому, как вы уронили гальку в озеро, ваш небольшой вклад затем рассыпается и оказывает гораздо большее влияние. Это одна из прелестей открытого исходного кода, кто-то другой может забрать вашу хорошую работу. и сделать его еще более мощным и значимым ».
Для многих участников приятно видеть, как их абстрактные работы превратились в нечто настолько осязаемое, как крошечный вертолет, летящий на Марсе. «Потратив много времени на исправление ошибок и техническое обслуживание, приятно слышать обо всех интересных вещах, которые позволяет Python», — говорит Бенджамин Петерсон, другой основной сопровождающий Python и создатель библиотеки совместимости Python Six.
GitHub узнал не только программистов. Компания также отдала должное другим участникам проекта с открытым исходным кодом. Например, член основной группы Python Мариатта Виджая в основном занимается управлением сообществом, документацией и созданием инструментов рабочего процесса, которые помогают команде Python функционировать и обеспечивать возможность использования кода. «Недостаточно просто создать запросы на вытягивание», — сказал Виджая. «Нам по-прежнему необходимо пересматривать код, документировать изменения и работать с сообществом, чтобы решить, что и как создавать».
Разработчики JPL уже давно используют проекты с открытым исходным кодом и вносят свой вклад в них. Но с F 'впервые JPL запустила собственный проект с открытым исходным кодом. Это связано с тем, что, по словам Джеффа Левисона, руководителя группы малого полетного программного обеспечения в JPL, за пределами НАСА было мало приложений для полетного программного обеспечения JPL. «Раньше в этом не было особого смысла, потому что наше программное обеспечение было тесно связано с индивидуальным оборудованием», — объясняет Левисон. «В том, чтобы выпускать его для публики, не было особой необходимости или выгоды».
Однако с Ingenuity дело обстоит иначе. Тимоти Кэнхэм, инженер по бортовому программному обеспечению JPL, объяснил, что вертолет работает на базе процессора Qualcomm Snapdragon 801, работающего на частоте 2,2 ГГц.
Хотя это может показаться болезненно медленным и старым, это намного быстрее, чем процессоры марсохода Mars Perseverance. Это потому, что процессоры и микросхемы НАСА должны соответствовать радиационным стандартам НАСА для высокопроизводительных космических вычислений (HPSC). Прежде чем эти индивидуализированные процессоры будут сертифицированы для космических полетов, потребуются годы проектных работ и испытаний. Например, новейший универсальный процессор НАСА представляет собой вариант ARM A53, который вы, возможно, знаете по Raspberry Pi 3. Изобретательность, однако, в качестве демонстрационного проекта можно использовать более обычный и, следовательно, более современный процессор.
Само программное обеспечение управления полетом работает на частоте 500 Гц. «Это герцы, а не мегагерцы», — объяснил Кэнхэм ZDNet. Полетное программное обеспечение «используется для управления полетным оборудованием и считывания показаний датчиков 500 раз в секунду, чтобы поддерживать устойчивость вертолета». Действительно, Кэнхэм объяснил: «Мы буквально заказали детали у SparkFun [Electronics]. Это коммерческое оборудование, но мы его протестируем, и если оно будет работать хорошо, мы будем его использовать». Ясно, что, как мы видели сегодня утром, это так.
JPL разработала первую версию F´ в 2013 году. Идея заключалась в том, чтобы создать многоразовую программную среду для различных проектов космических полетов, которую можно было бы адаптировать практически к любому оборудованию, назначению или месту назначения.
F 'ознаменовал сдвиг в работе Лаборатории реактивного движения, объясняет Тимоти Кэнхэм, руководитель операций по управлению вертолетом на Марсе. Исторически программное обеспечение JPL было сложно перепрофилировать. Он часто содержал контекстно-зависимые функции, встроенные глубоко в его код. Чтобы можно было широко использовать повторно, F´ должен был быть модульным, а не индивидуальным. Например, фреймворк не предполагает, что инженеры будут использовать бортовую камеру определенной марки или какую-либо камеру вообще. Например, если вам нужно сделать фотографии, вы можете добавить или удалить определенные компоненты и функции по мере необходимости. То же самое применимо к любому датчику или аппаратному инструменту.
F´ не предназначен для использования в качестве космического корабля в коробке, объясняет Кэнхэм. Это больше похоже на стартовый комплект. Существует система наземного управления для отправки команд на устройство, секвенсор для выполнения этих команд и компонент для отправки ответов обратно в наземное управление. Хотя есть стандартная библиотека компонентов, вам придется написать много собственного программного обеспечения.
Вскоре стало очевидно, что F´ можно многократно использовать не только внутри JPL, но и за его пределами. CubeSat, небольшие спутники, созданные с использованием готового коммерческого оборудования, обычно размещаемого на низкой околоземной орбите (LEO), в настоящее время широко используются. «Мы говорили об этом, и у нас были преподаватели в Карнеги-Меллон и других организациях, которые хотели использовать его для своих собственных проектов CubeSat», — сказал Кэнхэм. «В конце концов мы поняли, что для нас проще открыть F´, чем пытаться подвергать людей длительному процессу лицензирования программного обеспечения». Команда прочесала код, чтобы убедиться, что в нем нет никаких коммерческих секретов или технологий, контролируемых международными соглашениями, и выпустила его под лицензией Apache в июле 2017 года.
Сегодня все эти проекты позволили Ingenuity полететь на Марс. тонкое розоватое небо. Но когда в конце этого десятилетия первый роботизированный звездолет Илона Маска, Heart of Gold, полетит на Марс, он также будет работать под управлением Linux и программного обеспечения с открытым исходным кодом.