Мы готовим к запуску ещё одну космическую коробку, в которой будет бортовой компьютер с Linux на борту.
Можно будет записаться на сеанс спутниковой связи и получить доступ к консоли этого самого борткомпьютера. И наворотить там делов, то есть поднять любой проект, который вы захотите.
Основное:
- Мы для вас сделали все конвертации радиосигнала в SSH и обратно, то есть взаимодействие как с обычной консолью.
- Нельзя управлять самим спутником, то есть включать-выключать приёмник и передатчик, трогать ориентацию или менять правила приёма сигнала.
- В ОС вы под пользователем, нельзя стирать архив данных, который тоже полетит в космос.
- Можно управлять полезной нагрузкой, в частности, получать входной поток от камеры.
- Ограничения канала — 1 кбит/с вверх и вниз, в протоколе будет ещё немного меньше, то есть тяжёлые файлы вверх и вниз вы не потаскаете либо это будет долго.
- Можно делать на бортовой машине что угодно: строить совместные проекты, ставить Дум, стирать всё ранее сделанное пользователями и т. п.
- Ещё можно предложить софт и правила — до запуска мы можем настроить внутренние бекапы в read-only-область (для пользователя), поставить скрипты для сжатия фото и видео с камеры и т. п.
Это макет у нас в офисе
▍ Что происходит
Мы запускаем наш новый спутник.
Вот
история запуска предыдущего, вот
что у него на борту, вот
чем кончилось — борткомпьютер нормально не стартовал, поэтому мы играли с контроллером, который куда меньше.
Сейчас полетит нормальный борткомпьютер с Linux и доступом через SSH.
Конкретно из-за ограничений размера (и, соответственно, площади солнечных панелей) у нас на борту будет связка основного контроллера и Raspberry Pi Zero. Хотя из-за особенностей раскладывающейся конструкции, и использования «взрослых» трёхкаскадных солнечных панелей, на TriSAT энергетика в 5 раз выше, чем у предыдущего аппарата.
Основной контроллер работает с радиомодулем и следит за системами самого аппарата. Рядом с ним присоединена Raspberry Pi Zero, нулевой версии, потому что она меньше всего потребляет энергии. Мы её ещё и затюнинговали: там своя кастомная сборка Linux-ядра, всё оптимизировано под минимизацию потребления.
Между основным контроллером и Raspberry Pi прокинут UART-порт, по сути, консоль.
Основной контроллер занимается тем, что обрабатывает пакеты по радиосвязи, авторизовывает команды на спутник, вычленяет из авторизованных команд пакеты для Raspberry и пишет всё это ей в консоль, получает от неё вывод консоли, пакует и передаёт на Землю.
Авторизация нужна для изоляции команд самого спутника и для защиты от тех же replay-атак.
▍ Песочница
Мы собираем специальный образ под Raspberry Pi.
Вы получаете полноценную Linux-систему (но без root-доступа, он наш, чтобы если что сбросить настройки или вообще обнулить прошивку к стартовому состоянию либо управлять бекапами). Также нельзя удалять часть данных, которые будут отправлены в рамках спецпроектов.
Внутри этой песочницы можно делать что угодно. Мы не знаем, что вы будете там делать, но в целом можно что угодно, не ставящее под угрозу проект. Например, брутить контроллер, чтобы отдать ему команду, нельзя. Поэтому, если что-то сломается, мы будем сбрасывать образ.
Возможно, нужны бекапы, потому что если 50 человек начнут пилить совместный проект, а потом один всё почистит, из-за несимметричности скорости операций (зачистка быстрая, заливка долгая), это будет очень жалко.
▍ Как реализован доступ
Сначала — наземный сегмент ОКБ Пятое Поколение. Они построили целую инфраструктуру, которая включает в себя станции связи, оснащённые мощными антеннами и поворотными устройствами. Рядом с каждой антенной стоит комплекс, который в реальном времени рассчитывает, где сейчас летит спутник. Мы используем данные NORAD, чтобы точно определить координаты спутника, а затем автоматически наводим антенну и отслеживаем спутник во время сеанса связи.
То есть вы выбираете слот, например, 15 минут радиосвязи со спутником.
К этому слоту бронируется антенна GRID, одна из наземных станций. К началу слота ОКБ5 гарантирует, что антенна будет наведена на спутник и можно будет вести радиообмен. В конце слота контроль над радиообменом передаётся другому пользователю или же сеанс заканчивается и антенна перестраивается на другой спутник.
GRID ОКБ5 — это по сути распределённый сервис радиообмена со спутниками, их наземные станции можно использовать для самых разных задач. Часть их ресурсов будет использоваться для нашего проекта.
У этой сети есть отдельный сайт — и хотя изначально они его делали под свои внутренние нужды, он развился, оброс множеством пользователей, ролей, прав доступа для спутников — и они решили дать возможность использовать его и внешним клиентам. Это может быть как коммерческое, так и некоммерческое использование. На самом деле мы даже уже пользовались этим сервисом для управления нашим первым спутником на первых этапах его работы, когда нам важно было увеличить время работы со спутником.
Проще говоря, в базовой конфигурации вы сидите в Москве у себя дома и можете через GRID связаться с наземной станцией, скажем, в Дудинке, и постучаться на любой спутник. Это по сути облачная сеть станций связи, которая пробрасывает доступ до нужной станции конкретному клиенту. Вы при этом даже не знаете, с какой станцией он сейчас общается или где она расположена. Система сама берёт на себя всю работу по пробрасыванию канала связи, удерживая зазоры и выдерживая все ограничения. Внутри своя автоматизация, собственный messaging-сервер, но для пользователя всё максимально прозрачно.
GRID ОКБ5 даёт соединения по протоколу MQTT. Это простой, быстрый, двусторонний пакетный канал связи, с которым, возможно, многие уже сталкивались. Через него клиент может формировать пакеты, которые затем улетают по радиосвязи на спутник. И, соответственно, всё, что наземная станция приняла со спутника, она также через MQTT передаёт клиенту.
Эта станция — часть грида
▍ Для упрощения работы, мы поверх этого накладываем Telnet, а поверх него SSH
Мы в RUVDS подключаемся к API этого сервиса и поверх MQTT-обмена накладываем свой сервис.
Конкретно через наш сайт вы можете выбрать слот и получить SSH-доступ к борткомпьютеру прямо на сайте в указанное время.
Как это устроено: мы получаем демодулированные пакеты со спутника и интерпретируем их, отсекая заголовки и другую служебную информацию от полезных данных. Для внутренних инженеров RVDS выставляет Telnet. Но для конечных пользователей (вас) всё это проходит через наш сервер и оборачивается в SSH.
▍ Ограничения
Радиосвязь — это такая штука, которая не гарантирует стопроцентную доставку пакетов. Если спутник уходит за горизонт, между ним и станцией окажутся помехи, или, если он отвернётся своей антенной от наземной станции, связь может прерваться. Это нормально. Ваш сеанс может прерваться.
Канальная скорость около 1 килобита в секунду. Это полудуплекс — то есть связь идёт либо в одну, либо в другую сторону, не одновременно.
Почему так медленно — радиоэнергетика на таком маленьком спутнике очень ограничена, и мы занизили скорость для надёжности. Это делается для того, чтобы связь была как можно более стабильной. Если мы вдруг увидим, что качество связи гораздо лучше, чем ожидалось, мы всегда сможем это поправить и задрать скорость, или, наоборот, занизить — всё это управляемо с Земли.
Из-за этих ограничений и ограничений на питание борткомпьютера будет тяжело работать с камерой. С видео в полном разрешении или с высоким фреймрейтом Raspberry Pi может не справиться, особенно если включена какая-то программная обработка. Скачать видео в 30 мегабайт будет настоящим челленджем. Так что, скорее всего, надо сразу думать, как пережимать это во что-то более приемлемое либо потом выкачивать за несколько сеансов.
▍ Камера
Фотография с прошлой миссии с камеры космического ангара — орбитальной станции, откуда вышел рой спутников
На спутнике установлена 8-мегапиксельная матрица Sony IMX519 (16 мегапикселей). На этот раз она получше, чем была. Все камеры, которые мы используем на Земле, имеют встроенный инфракрасный фильтр, о чём многие не задумываются. Мы изначально взяли камеру как раз без инфракрасного фильтра. В итоге, чтобы не заниматься сложным цветокором на Земле и сделать картинку привычной, мы всё-таки решили поставить инфракрасный фильтр, а то фиолетовая атмосфера вместо синей может многих смутить.
▍ Демостенд
Прежде чем вы попробуете свои силы на орбите, можно потренироваться.
У нас есть виртуальный образ операционной системы спутника — точно такой же, как на борту, на котором вы сможете отработать свои команды и скрипты. Вы сможете выполнять команды, управлять файлами, и, конечно же, работать с бортовой камерой, только она будет показывать серверную, а не планету со стороны.
Можно будет отработать загрузку и скачивание больших файлов, как разбивать на части и кодировать бинарные данные, например, через Base64, чтобы протащить их через консоль, заранее протестировать утилиты, которые вам нужны.
▍ Дальше
Мы расскажем больше про оборудование, когда спутник уйдёт на «золото».
Пока можно предложить фичи, предзагруженные скрипты, придумать совместные проекты или дикие применения орбитальному компьютеру, выбрать дистрибутив Дума и так далее.
Вот ссылка на
конец прошлого спутника, там внизу каталог ссылок про конкретные детали оборудования спутников такого класса.
© 2025 ООО «МТ ФИНАНС»
Telegram-канал со скидками, розыгрышами призов и новостями IT 💻
