«Юра, мы всё… Поехали!», или Что делать программисту в космонавтике

Авторы подкаста «Сушите вёсла» пригласили в гости Антона Громова — инженера-математика из «Мегафон 1440», популяризатора космонавтики и автора канала «Море ясности». Узнали всё про космическую отрасль — зачем там нужны программисты, какие языки и технологии они используют и что нужно, чтобы написать бортовой код для спутника (и что это вообще такое — «бортовой код»).

«Юра, мы всё… Поехали!»,  или Что делать программисту  в космонавтике

«Сушите вёсла» — подкаст про разработку, аналитику, тестирование и всё, что связано с созданием IT-продуктов. Авторы — руководитель Android-отдела red_mad_robot Рома Чорыев и программист Артём Кулаков.

В эпизоде №18 обсудили, как от программирования зависит успех запуска спутников и кораблей, а Антон рассказал, что поможет стать крутым спецом и писать ПО для космических компаний.

Слушайте подкаст или читайте ответы на семь огненных вопросов про программирование в космонавтике.

Тайминг

02:10 — про старт карьеры и работу в «Фотостране»

08:50 — как попал в проект, который отслеживал следы людей на Луне

15:21 — про деньги в космонавтике

20:22 — на каких языках писать код для космоса

26:10 — про стандарты С в космонавтике и как использовать стандартную библиотеку

30:01 — про юнит-тесты и Git

35:35 — про программистские боли и что хотелось бы улучшить в профессиональной деятельности

40:16 — про цену ошибки в космонавтике и запуск телескопа Уэбба

49:10 — как лучше писать бортовой код

53:10 — как программисту попасть в космическую отрасль

57:30 — что можно программировать в космической отрасли

1:02:15 — где искать работу в космонавтике

01:05:08 — что поможет стать крутым спецом в космическом программировании

«Цель — увидеть следы людей на Луне». Как начать карьеру в космическом программировании

В 2015-м году популяризатор космонавтики Виталий Егоров, известный под ником «Зеленый кот», организовал проект для энтузиастов в космонавтике. Он предложил рассчитать траекторию полёта спутника, который облетит Луну и сфотографирует следы американских астронавтов.

Американцы на рубеже 60-70-х годов шесть раз приземлились на Луну в разных местах. Цель была увидеть следы, которые оставили люди на Луне. Я тогда только понял, что хочу заниматься космосом, потому что до того меня бросало то в одну тему, то в другую. Я даже пожертвовал на этот проект 15 тысяч рублей, потому что это предполагало обед с командой проекта. И это помогло — я начал брать задачи, которые мне поначалу казались несложными. Например, нужно было посчитать, по какой траектории полетит спутник исходя из закона гравитации Ньютона. Подумал, что закон гравитации с девятого класса я запрограммировать смогу.

Антон Громов, инженер-математик «Мегафон 1440»

Следующая задача — баллистика. Антон изучил тему по книжкам и стал баллистиком проекта. Нужно было найти стабильную орбиту вокруг Луны. У неё, как у любого космического тела, неоднородная поверхность — где-то более плотная, где-то менее. Из-за этого спутник летит неровно — его тянет в разные стороны, особенно когда пролетает очень близко к Луне.

Если не программировать и взять рандомную низкую орбиту над Луной, спутник может упасть за 2-3 дня. А нам нужно было летать год или два. Задача была в том, чтобы найти такую орбиту, на которой мы не упадем сразу же. Более-менее я ее решил. В 2021-м году мы представили окончательный вариант документа, над которым работали 5,5 лет. Это связано с тем, что все работают в свободное время, никакой оплаты за труд нет, поэтому это естественным образом растянулось.

Антон Громов, инженер-математик «Мегафон 1440»

Этот проект помог Антону получить опыт в космонавтике, познакомиться с опытными специалистами, попасть в космическую компанию — сначала в «Даурию», затем в «Мегафон 1440».

Что программировать в космической отрасли

Гость подкаста выделил несколько уровней задач, с которыми сталкивается разработчик в космонавтике.

- На самом низком уровне — чистый embedded, контроллеры, низкоуровневые драйвера.

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

- Затем сам код — большая часть кода работает не на спутниках и кораблях, а на Земле. В основном это испытательное ПО, в России это ЦУП (центр управления полетами). Там нужно достаточно серьезное ПО самых разных областей: мониторинг, контроль, управление.

- Отдельная тема — автоматизация испытаний или тестов. Там тоже может быть сложная логика.

- Ещё одна большая область — моделирование, в неё я тоже очень сильно погружен. Но там уже больше математики.

Антон Громов, инженер-математик «Мегафон 1440»

Пример задачи по моделированию — нужно составить алгоритм разворот спутника в космосе. Но как всё проверить, не запуская его в космос?

Создаём математическую модель спутника, чтобы в ней работал наш бортовой код или аналог с такими же алгоритмами. Затем моделируем разные бортовые алгоритмы и смотрим, как они себя будут вести. А еще желательно моделировать сразу 100 разных сценариев или 100 разных алгоритмов одновременно, чтобы как-то это оптимизировать. Это уже задача на программирование — от чистого программирования плавно переходим в чистую математику, потому что дальше эти алгоритмы нужно как-то разрабатывать и оптимизировать.

Антон Громов, инженер-математик «Мегафон 1440»

В космонавтике всё на энтузиазме или деньги всё-таки выделяются

По словам Антона, в космические компании начинают инвестировать деньги. Success Rockets нашла финансирование для производства орбитальных ракет, в развитие спутникового флота компании «Спутникс» планируют инвестировать несколько миллиардов рублей, «Мегафон 1440» получила 6 млрд рублей.

Но это абсолютно единичные истории. Ещё пару лет назад всё было гораздо хуже, когда «Спутникс» ещё был не на таком уровне, как сейчас, когда не было нашей компании, и Success Rockets были в колыбели.

Антон Громов, инженер-математик «Мегафон 1440»

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

Удачный пример экосистемы в космонавтике — НАСА. Эта организация проводит конкурсы — НАСА распределяет контракты между частными компаниями, которые занимаются почти всей разработкой для космоса.

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

Антон Громов, инженер-математик «Мегафон 1440»

На каких языках пишут ПО в космонавтике

В космической отрасли в основном всё пишут на С, рассказал Антон. Встречаются элементы Фортрана, потому что так сложилось исторически.

На Фортране писали огромное количество математики, и она отлично проверена, отлажена. И нет смысла переходить с «Фортрана». Для современного человека достаточно дико, что на С — надеюсь, все-таки на С++ — пишут математику. Но это не та математика, которая работает на контроллерах — это моделирование сложных динамических систем. В других сферах это пишут на Python, Simulink или MATLAB. Но в космонавтике отдают предпочтение С++, хотя, по-моему, это не оптимально. Видимо, Python — это слишком модно, молодёжно для космической отрасли, а вот С, видимо, в самый раз.

Антон Громов, инженер-математик «Мегафон 1440»

Космонавтика — очень консервативная отрасль. Антон отметил, что цена ошибки настолько высока, что нет смысла использовать новую технологию ради удобства, когда всё отлажено и работает.

Как моделирование помогает избегать очень дорогих ошибок

Антон подробно рассказал о запуске космического телескопа имени Джеймса Уэбба в декабре 2021-го года. Это один из крупнейших оптических телескопов в истории.

Телескоп Уэбба запустили на ракете «Ариан-5» — по мнению гостя подкаста, одной из самых надёжных ракет в истории. Однако первый запуск этой ракеты в конце 90-х прошёл не очень удачно. Эта была нашумевшая история, о которой написали в книге Space System Failures. Обязательно послушайте захватывающий пересказ Антона с 40:16 — узнаете, почему в такой консервативной отрасли, как космонавтика, нужно всё проверять перед запуском.

Как программисту попасть в космическую отрасль

Антон рассказал, что в «Роскосмос» очень трудно пройти без диплома. Его звали на одно из предприятий «Роскосмоса» — когда узнали про отсутствие диплома, интерес к кандидату быстро исчез.

Допускаю, что так происходит не на всех предприятиях. Куда-то можно без диплома проникнуть. Но мне кажется, что это не такая распространенная проблема. Хотя среди айтишников больше людей без диплома, чем в космической отрасли. В нашей «Мегафон 1440» такого строгого критерия нет. Для меня это не было бы шоустоппером — когда собеседуешь людей с дипломом, нет ощущения, что диплом этот как-то им помог.

Антон Громов, инженер-математик «Мегафон 1440»

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

Сразу посадили писать бортовой код. Я был несколько в шоке, потому что у меня была такая мечта — отправить свой код в космос. И я думал, что код, который работает в космосе — очень ответственная вещь. Ты не можешь его взять и подправить по ходу. Если спутник завис, не получится нажать кнопочку, чтобы он перезагрузился. Ты не можешь подключить к нему монитор с клавой. А когда я только приходил в компанию, думал, что сейчас наберусь опыта, и меня через полгодика допустят к бортовому коду. Но выяснилось, что так не работает — людей было мало, задач много.

Антон Громов, инженер-математик «Мегафон 1440»

Что поможет стать крутым спецом в космическом программировании

Космонавтика не отличается от любой другой отрасли — тут тоже есть вечный вопрос: как получить опыт, если для этого нужно пойти в компанию, для устройства в которую нужен опыт.

Нужно придумать себе задачу, даже если она не имеет отношения к реальности, и начать её делать просто ради получения опыта. Примерно так же я к этому пришел. Мне казалось, что космическая отрасль — это что-то абсолютно недостижимое. А потом я когда работал в «Даурии», я каждый день шёл с работы и просто охреневал от того, что я программирую спутник, и мне за это платят. Всем желаю не бояться, просто брать и делать, получать какой-то опыт и интересоваться тем, что вы делаете. На собеседованиях часто замечаю, что люди знают много названий, но не знают, что за ними стоит. Всегда полезно понимать, что же вы делаете на самом деле. Поэтому вникайте чуть-чуть глубже и не бойтесь получать опыт любыми доступными способами.

Антон Громов, инженер-математик «Мегафон 1440»

Полезные материалы

***

Слушайте нас там, где удобно — SoundCloud, Apple, Google Podcasts, Яндекс.Музыка, Spotify.

Предыдущие выпуски подкаста «Сушите вёсла»

Если появились вопросы про космическое программирование, приходите в наш Telegram-чат — ведущие и эксперты всё объясняет и расставят по полочкам. Или просто заходите обсудить выпуск.

1010
29 комментариев

Что делать программисту в космонавтикеВ космонавтике программисту стоит делать всего одну вещь, как и во всех других отраслях - зарабатывать себе на нормальную жизнь и достойную старость. Не благодарите.

1
Ответить

Комментарий недоступен

2
Ответить

Кстати спасибо за идею - когда мы придем к власти все доходы погромистишек за период с 2014 по 202Х будут обьявлены нетрудовыми и подлежащими конфискации. Большинство населения нас поддержит, особенно молодежь

Ответить

Дрон, иди в баню

Ответить

Спасибо, стал слушателем. Случайно наткнулся. Никогда не знал о вас до этого!

1
Ответить

Как и ни писал ни одного комментария на vc до этого. А тут вдруг так проникся, что натыкал сразу кучу бессмысленных.

4
Ответить

Что вас заставляет не быть на Ютубе?

Саундклауд у нас малопопулярен. Может, вы перекатитесь на Ютуб?

Ответить