• Добавить в закладки
  • Facebook
  • Twitter
  • Telegram
  • VK
  • Печать
  • Email
  • Скопировать ссылку
18.05.2021, 16:29
Василий Парфенов
2
8 686

Программисты SpaceX рассказали, каково это — писать ПО для спутников, ракет и космических кораблей

❋ 2.7

Сотрудники частной космической компании SpaceX провели сессию «вопрос-ответ» для всех желающих в своем сообществе на сайте Reddit. Разработчики рассказали, чем отличается их работа от обычной IT-рутины и с какими сложностями они сталкиваются, создавая программное обеспечение для техники, которая должна летать за пределы атмосферы, причем с людьми на борту.

Маск признался, что дизайн Starship вдохновлен философией африканского диктатора. Хорошо еще, что вымышленного
Прототипы Starship SN9 и SN10 в Бока-Чика / ©SirineAti, Twitter / Автор: Lampronia Auxilius

Несколько дней назад SpaceX в твиттере анонсировала мероприятие в формате AMA («спроси меня о чем угодно») с участием своих программистов на просторах Reddit. В официальном сообществе компании на крупнейшем англоязычном интернет-форуме ее сотрудники удовлетворяли любопытство пользователей в самых разных темах — от разработки пользовательских интерфейсов для кораблей Crew Dragon и Starship до условий работы и тестирования ПО спутников Starlink.

На вопросы отвечали: специалист по разработке ПО для корабля Dragon Джарретт Фарнитано (Jarrett Farnitano), глава группы прикладного ПО Starlink Кристин Хуан (Kristine Huang), разработчик низкоуровневого ПО для системы лазерной связи Жанетт Миранда (Jeanette Miranda), глава группы, занимающейся ПО для Starship Эшер Данн (Asher Dunn) и начальница команды по созданию тестовых систем для спутников Натали Моррис (Natalie Morris).

Помимо удовлетворения любопытства гиков и фанатов космонавтики, сотрудники SpaceX, разумеется, призывали всех желающих ответить на вакансии компании. При наличии необходимых навыков, конечно. Одно радует — опыт в ракетно-космической отрасли не требуется. Полное собрание всех вопросов и ответов доступно здесь, а сама ветка обсуждения с вопросами, ответами и уточнениями расположена тут. По этим ссылкам можно найти уйму технических подробностей, а мы отметим наиболее примечательные детали.

NASA прокомментировало планы «Роскосмоса» выйти из МКС: агентство рассчитывает на продолжение сотрудничества
Космический корабль Crew Dragon на ракете Falcon 9 в ожидании старта миссии Crew-2 с легендарной стартовой площадки LC-39A / ©NASA, Joel Kowsky

Разработка ПО для космонавтики в целом

Наиболее очевидный вопрос, который задали сотрудникам SpaceX — чем отличается разработка программного обеспечения для ракет и космических кораблей от аналогичного труда в «обычной» IT-компании. Для Жанетт главным сюрпризом было две вещи. Во-первых, в общих чертах отличий мало. А во-вторых, при написании ПО для спутников ты очень часто упираешься в ограничения, которые диктуют физика и математика. Когда пишешь код для приложений, работающих на Земле, таких проблем почти никогда не возникает.

И, конечно же, почти сразу поднялась тема отказоустойчивости и безопасности. Ведь при написании кода всегда возникают ошибки и на их устранение даже в коммерческих и важных программах уходят годы (а некоторые остаются навсегда). И дело не только в лени программистов, да желании заказчиков сэкономить на тестировании. Просто цена этих ошибок крайне редко бывает по-настоящему высока.

Другое дело — техника на пределе возможностей человеческих технологий, которая из-за одного бага может взорваться и отправить в утиль миллионы долларов или даже жизни людей. По словам Джаррет, разработка ПО для критически важных с точки зрения безопасности систем радикально отличается от написания кода в тех случаях, когда отказ допустим и не приведет к катастрофическим последствиям. Причем разница кроется, прежде всего, в мышлении программиста, к чему необходимо быстро привыкать.

Чтобы минимизировать возможность отказов на уровне программной инфраструктуры применяется специальный подход. Все компоненты ПО создаются небольшими и отдельными — с четкими границами применения и «ответственности». Это позволяет каждый фрагмент кода проверять в самых разных условиях перед внедрением в системы. Которые, в свою очередь, уже тестируются целиком множество раз. Главная задача — сделать так, чтобы поведение программного обеспечения в любых возможных ситуациях было предсказуемым, понятным и знакомым для разработчика.

В ответственных задачах вроде полета ракеты зависнуть и перезагрузиться — для компьютера недопустимо. Среди множества модульных компонентов обязательно есть защитные, которые контролируют поведение всей системы «на лету». Если что-то идет не по плану, у них есть четкие инструкции, как обыграть ситуацию. Иногда это просто сброс задачи и переход к следующей, иногда это комплексная стратегия, направленная на компенсацию неполадки различными способами. Ну, и, конечно же, многократное резервирование, без этого в ракетно-космической технике никуда и программное обеспечение — не исключение.

Кроме того, широко применяется автоматизация тестирования и контроля. Благодаря большому объему телеметрических данных от каждого компонента программной системы получается отслеживать параметры всех ее компонентов. Это помогает не только на этапе разработки ПО для ракет или кораблей, но и в эксплуатации огромного «созвездия» спутников Starlink. А оно растет каждый месяц и станет еще в несколько раз больше через пару лет. Натали добавляет, что автоматизация позволяет не заводить сотни операторов, чтобы контролировать орбитальную группировку.

Спутник Starlink
Спутник Starlink / ©SpaceX

Она также объяснила, что в SpaceX процессы разработки и тестирования не разделены. Каждый программист обязательно участвует в поиске проблем с тем, что он написал, проверяет чужую работу и помогает решать обнаруженные недочеты. Причем такой подход применяется на всех этапах: не только при ревизии исходного кода, но и во время тестирования на моделях, стендах, прототипах, а также вместе с инженерами аппаратного обеспечения, когда ПО подгоняется к «железу». Помимо специалистов, занимающихся разработкой компонентов или целых систем для ракет, спутников и кораблей, в компании есть отельные рабочие группы, создающие инструменты для тестирования решений.

Симуляции, тесты, стенды, лаборатории

По словам Натали, у работающих со Starlink программистов есть возможность провести финальное тестирование прямо на орбите. Спутников много, у них есть развитые системы защиты от отказов, так что некоторые аппараты можно использовать в качестве «канареек». На них «заливают» новое ПО, смотрят, как все работает и взаимодействует с остальным созвездием, а затем разворачивают обновление на остальные аппараты. Если что-то пойдет не так во время тестирования, спутнику отправляют команду на перезагрузку и он просто восстанавливает прежнюю «прошивку».

С кораблями и ракетами такой подход, по понятным причинам, неприменим, поэтому приходится тестировать все узлы и компоненты множество раз на Земле. В SpaceX создали несколько программно-аппаратных комплексов для этой задачи. На первом этапе каждый программист прогоняет свой код через простенькие симуляции прямо на рабочем компьютере. Если никаких ошибок не выявлено, программа отправляется на мощный вычислительный кластер. Там она проверяется сначала в условиях более подробной симуляции сама по себе, а потом в составе всей системы, частью которой является.

Наконец, когда подобные проверки завершены успешно и все недочеты устранены, приходит время более серьезных стендов, которые включают в себя реальное «железо». Это могут быть как отдельные элементы авионики (электроника летательного аппарата), так и полноценные узлы или агрегаты реальной ракеты и космического корабля. На финальном этапе проводится симуляция всей полетной задачи. Натали приводит в пример Dragon, для которого такой процесс занимает десятки часов или даже дней — необходимо убедиться, что все этапы миссии пройдут гладко. Только после всего вышеперечисленного результат работы программистов (также, как и «железных» инженеров) может отправиться в то изделие SpaceX, что стоит на стартовом столе.

Жанетт добавила к этому свой опыт разработки «космических лазеров». Поскольку задача организации надежной оптической связи между спутниками отличается высокой сложностью, она участвовала в нескольких собраниях между различными департаментами. Причем эти встречи заключались не только в банальных посиделках за столом конференц-зала. Среди них были и мозговые штурмы по видеосвязи, и встречи программистов с инженерами прямо в лаборатории. Вместе они буквально собирали и разбирали блок лазерной связи множество раз, стараясь придумать, как его сделать лучше.

Dragon

С самых первых фотографий пилотируемой версии этого космического корабля в сторону SpaceX посыпались претензии в излишней «гламурности» интерьера. Напомним, инженеры компании практически полностью отказались от «традиционных» кнопок, приборов и рычажков, разместив в капсуле три огромных сенсорных панели с небольшим количеством самых важных кнопок под ними. Для чек-листов и дополнительной информации в комплект оборудования добавили несколько планшетов Apple iPad (распространенная практика в авиации). По мнению многих комментаторов такой подход ставит во главу угла дизайн, а не надежность и отказоустойчивость.

На пути к МКС Crew Dragon едва не столкнулся с космическим мусором
Стыковка Crew Dragon с МКС, вид изнутри / ©NASA, YouTube

Рассказывая о пользовательском интерфейсе Crew Dragon Джарретт объясняет, что во-первых, корабль полностью автономный и может выполнять все операции в полете самостоятельно. Для этого не требуется никаких действий от команды. А во-вторых, даже такую «гламурную» систему в SpaceX сделали максимально отказоустойчивой. При неполадке с любым дисплеем, оставшиеся компенсируют его функции. А если выйдут из строя все сразу, у астронавтов остаются аппаратные кнопки, на которые выведены ключевые функции.

Создавая интерфейс программного обеспечения для сенсорных дисплеев специалисты SpaceX изрядно поломали голову над тем, как его сделать удобным и функциональным для людей во всех режимах полета. Например, самые востребованные сенсорные кнопки, связанные с навигацией размещены снизу экрана. Потому что при перегрузках астронавтам будет трудно поднимать руки вверх. А наиболее важные функции отделены большими пробелами и выведены за пределы часто используемых областей дисплея, где возможно случайное нажатие. То есть, если человек на них нажал, он наверняка сделал это осмысленно и с определенной целью.

Отдельное внимание уделялось тестированию удобства использования сенсорных дисплеев в условиях сильных вибраций. Причем дело не только в управлении (нажатии на них), но и в восприятии информации. Чтобы проверить последний момент проводилась серия экспериментов, в которых подопытные должны были играть в специально созданную игру при помощи контроллера от приставки Xbox. Их успех зависел от того, насколько быстро и точно люди считывали с экрана формы, размеры и цвета фигур, а также текст. При этом весь испытательный стенд находился на виброплите, имитирующей условия при старте ракеты. В этом месте Джаретт пошутила — «что мы узнали наверняка, так это полную нереалистичность любых интерфейсов космической техники в фантастических фильмах».

Ну и немаловажным элементом удобства для астронавтов стал подход разработчиков SpaceX, который они называют «quiet-dark» (что-то вроде «тихо-темно»). Пока космический корабль работает штатно, интерфейс выглядит минималистично, показывая ключевые параметры всех систем. Но если автоматика фиксирует какие-то отклонения от нормы, проблемные показатели выделяются особым образом, подчеркивая самую важную информацию. Наконец, в интерфейс регулярно вносятся усовершенствования, основанные на реальном опыте работы астронавтов на борту Crew Dragon.

Starship

Отдельной бомбардировке вопросами подвергся Эшер, отвечающий за разработку ПО для самого амбициозного проекта Илона Маска. По словам программиста, подход в написании кода для космического корабля из нержавейки не сильно отличается от того, что делают инженеры SpaceX в Бока-Чика. То есть — сделал, проверил, запустил (взорвал), собрал данные, проанализировал, вернулся в начало цикла. В отличие от команд, занимающихся Falcon 9 и Dragon, у Эшера с коллегами есть больше свободы в действиях. Например, они могут внедрить какое-то программное улучшение за считанные часы до испытаний Starship. Если уверены, что это поможет, конечно.

Обновление программного и аппаратного обеспечения для этого космического корабля идет постоянно. И хотя Starship использует немало оборудования и кода, отработанного на Falcon 9, для него приходится создавать много новых систем. Работа идет непрерывно и вместе с инженерами, занимающимися «железом». Что самое важное, каждое новое испытание (необязательно даже полет), приносит массу информации, специалисты постоянно учатся. И могут сразу же внедрять совершенно новые идеи, быстро получая ответ — работает или нет.

Опубликован план «почти орбитального» полета прототипа Starship в этом году
Прототип Starship SN15, перед которым медленно проезжает колоссальный кран Fagioli, увозимый от тестового стартового стола перед историческим успешным прыжком на 10 километров / ©bocachicagal, NASASpaceFlight

Технологии, которых не ждешь в ракетно-космической отрасли

Помимо сенсорных экранов в космическом корабле, SpaceX использует множество не менее спорных на первый взгляд технологий, которые не заметны со стороны. Очень любопытный с технической точки зрения вопрос задали по поводу отказа от систем реального времени (real-time operating system, RTOS). Упрощенно говоря, работающее в ней программное обеспечение всегда и в любых условиях реагирует на события не дольше строго определенного времени. Если задача не успевает выполниться, система ее сбрасывает, чтобы не занимать ресурсы. В авиации, ракетостроении, а также прочих сфокусированных на безотказности, надежности и безопасности отраслях RTOS считаются стандартом.

А программисты SpaceX написали весь софт для своих ракет на базе специализированного Linux-дистрибутива. Да, к этому семейству операционных систем существуют расширения, дающие функционал, необходимый для работы в режиме реального времени. Однако это половинчатое решение и полноценной RTOS не получается. Почему так — вопрос спорный и дискутировать можно долго. Скорее всего, дело в ограниченности функционала RTOS и сложности разработки ПО для них. Джарретт рассказал, как программисты компании решили проблему реального времени.

Что самое главное — SpaceX почти все программное обеспечение создает самостоятельно. В результате компоненты всех систем протестированы любым возможным способом и разработчики точно знают, как они себя поведут в разных условиях. То есть время выполнения каждой операции не ограничено сверху, а просто известно заранее. Если что-то идет не так, срабатывают защитные компоненты. Выглядит похоже, но разница в механизмах контроля — в RTOS они встроены в ядро, а в решении SpaceX реализованы отдельными программами. Как показывает многолетний опыт успешных полетов, работает надежно.

Отдельный сюрприз — широкое использование веб-интерфейсов. По словам Эшера, с их помощью сделано все, что видят астронавты на экранах в капсуле Crew Dragon и большая часть информационных панелей для операторов центра управления полетами. Абсолютно «не-космическая» технология оказалась невероятно надежной, быстрой и, что немаловажно, гибкой для таких целей. Естественно, Starship тоже получит дисплеи управления, на которые будет выводиться веб-интерфейс, только его существенно доработают, по сравнению с тем, что используется в «Драконе». Задачи у кораблей все-таки разные.

Немного юмора и недомолвок

Некоторую информацию сотрудники SpaceX, конечно же, не смогли раскрыть. В частности, отвечая на вопрос про передачу технических данных между спутниками Starlink и наземной станцией Кристин выдала максимально обтекаемый ответ. Несмотря на то, что ее спрашивали про объем информации и количество потоков, она лишь сказала, что данных много и они представлены в проприетарном формате. Также Эшер либо забыл, либо просто не стал показывать актуальную версию пользовательского интерфейса Crew Dragon.

Не обошлось и без толики юмора. Один из любопытствующих пользователей Reddit передал Эшеру вопрос своей восьмилетней дочери — «Что самого сложного в создании ракетного двигателя?» На это тот ответил, что работа ракетного двигателя — постоянный взрыв, и самое сложное — сделать двигатель таким, чтобы этот взрыв оставался внутри. Вполне логичным образом в разговоре об условиях работы всплыл вопрос еды, а точнее наличия закусок в офисе. На что последовал простой ответ — «омномном». Очевидно, никаких проблем нет.

Starship SN15 в очередной раз не полетел. Что вообще происходит с «марсианской ракетой» Маска?
«Вход воспрещен. Хищники на свободе». Вот такой знак, содержащий незамысловатую игру слов (название ракетного двигателя Raptor переводится как «Хищник»), висит на заборе космодрома SpaceX в Бока-Чика, Техас / ©bocachicagal, NASASpaceFlight

Ну и не забыли про развлечения. Когда у ребят из SpaceX спросили, сколько времени они проводят в популярной игре Kerbal Space Program (симулятор космической программы с хорошей физической моделью), они ответили «INT_MAX». Учитывая, что это параметр из заголовочного файла стандартной библиотеки общего назначения, написанной на языке программирования C, понимать такую реакцию можно двояко. Либо очень много, поскольку его значение может превышать два миллиарда, либо что время в игре приходится жестко лимитировать (INT_MAX — это ограничитель).

Нашли опечатку? Выделите фрагмент и нажмите Ctrl + Enter.
mostly harmless Есть телега: https://t.me/tempest_exults
Подписывайтесь на нас в Telegram, Яндекс.Новостях и VK
Предстоящие мероприятия
25 августа, 07:38
Адель Романова

В поиске сигналов от внеземных цивилизаций ученые решили сосредоточиться не на целенаправленных посланиях человечеству, а на случайных «утечках информации» из межпланетного пространства гипотетической обитаемой системы. По расчетам, в определенные моменты до нас могут доходить сигналы внеземной космической связи. Кстати, благодаря «общению» Земли с марсианскими и другими зондами мы тоже постоянно невольно сообщаем о себе в глубокий космос.

25 августа, 09:35
Любовь С.

Модель, представленная учеными из коллаборации DESI и Мичиганского университета (США), может перевернуть представления о происхождении темной энергии. Авторы нового исследования полагают, что черные дыры, поглощая вещество, постепенно преобразовывают его в энергию, гипотетически ответственную за расширение Вселенной.

25 августа, 08:19
Адель Романова

Глава Российской академии наук Геннадий Красников рассказал в недавнем интервью о том, для чего мышам летать над полюсами Земли, в чем преимущества новой космической станции по сравнению с МКС, что предстоит проделать на Луне в ближайшее десятилетие и чем ученых продолжает интриговать Венера.

22 августа, 10:48
ПНИПУ

К 2025 году около 30 стран приняли программы по развитию водородной энергетики, а совокупный объем инвестиций в эту область превысил 150 миллиардов долларов. Эксперты полагают, что замена дизельных авто на водородные снизит выбросы на 80-90%, а водородные самолеты способны уменьшить углеродный след на 50-75%. Но при использовании водорода в двигателях внутреннего или внешнего сгорания, происходит взаимодействие с металлом, что наиболее опасно при высоких температурах. Это может вызвать их разрушение, в результате чего возникает риск пожара или взрыва с тяжелыми последствиями для пассажиров. Ученые Пермского Политеха впервые выяснили, как водород влияет на металлы в условиях экстремальных температур (800 градусов и выше), в которых работают двигатели самолетов и машин. Это продвинет авиационную, машиностроительную и нефтегазовую отрасли в безопасном использовании водорода в качестве источника энергии.

22 августа, 14:45
Игорь Байдов

Ученые обнаружили косвенные доказательства существования мира размером с Землю за орбитой Нептуна. Эта гипотетическая планета отличается от предполагаемой Девятой планеты не только размером, но и гравитационным влиянием на другие объекты.

22 августа, 13:09
Юлия Трепалина

Большие кошки (Pantherinae) обычно охотятся на животных своего или меньшего размера. У снежных барсов, как выяснилось, другие предпочтения. Новое исследование показало, что ирбисы чаще нападают на взрослых горных козлов, которые как минимум вдвое превосходят хищников в весе. Ученые объяснили, с чем может быть связан такой выбор добычи.

6 августа, 20:59
Татьяна Пичугина

Примерно 12 800 лет назад в Северном полушарии началось резкое изменение климата, которое сопровождалось вымиранием мегафауны и угасанием культуры Кловис. Такое могло произойти, например, из-за прорыва пресных вод в Атлантику или мощного вулканического извержения. Несколько лет назад ученые обнаружили места на суше с повышенным содержанием элементов платиновой группы, прослоями угля, микрочастицами расплава. По их мнению, это может быть признаком пребывания Земли в потоке обломков кометы или астероида. В новой работе впервые представлены доказательства кометного события в позднем дриасе из морских осадочных толщ.

30 июля, 08:08
Редакция Naked Science

Возраст находок — около 5500 лет, они лежат во множестве круглых ям, чьи стены укреплены кирпичом. Среди обнаруженных орудий из кремня есть и сотни неиспользованных, которые могут быть ритуальным подношением богам.

31 июля, 08:28
Полина Меньшова

Гостингом (от английского «призрак») называют ситуацию, когда человек прекращает общение или отношения, «пропадая с радаров» без объяснения причин. Исследователи из США сымитировали такое поведение, а затем проанализировали реакцию людей на него.

[miniorange_social_login]

Комментарии

2 Комментария
Современное значение INT_MAX - 2 в 63 степени, что в сентябре миллиарда раз больше чем два миллиарда. А вообще, отличная статья
Подтвердить?
Подтвердить?
Причина отклонения
Подтвердить?
Не получилось опубликовать!

Вы попытались написать запрещенную фразу или вас забанили за частые нарушения.

Понятно
Жалоба отправлена

Мы обязательно проверим комментарий и
при необходимости примем меры.

Спасибо
Аккаунт заблокирован!

Из-за нарушений правил сайта на ваш аккаунт были наложены ограничения. Если это ошибка, напишите нам.

Понятно
Что-то пошло не так!

Наши фильтры обнаружили в ваших действиях признаки накрутки. Отдохните немного и вернитесь к нам позже.

Понятно
Лучшие материалы
Закрыть
Войти
Регистрируясь, вы соглашаетесь с правилами использования сайта и даете согласие на обработку персональных данных.
Ваша заявка получена

Мы скоро изучим заявку и свяжемся с Вами по указанной почте в случае положительного исхода. Спасибо за интерес к проекту.

Понятно