Чек-лист
кодовое словоNASA

NASA F-Prime: код с Марса

NASA выложила в открытый доступ F-Prime (11k звёзд) — фреймворк, который летал на марсианском вертолёте Ingenuity и спутниках, а запускается даже на Raspberry Pi. Можно изучать, как пишут софт, которому нельзя падать, и даже продавать.

Содержание5 глав
  1. 011. Что такое F´ и почему это не демо
  2. 022. Где он реально летал
  3. 033. Запускается даже на Raspberry Pi
  4. 044. Что здесь смотреть и зачем
  5. 055. Как попробовать

NASA выложила в открытый доступ фреймворк, на котором построено полётное и встраиваемое ПО для реальных космических аппаратов — включая марсианский вертолёт. Это не демо и не учебный проект: та же архитектура, тот же код, то же требование «падать нельзя». Забрать, собрать и запустить можно бесплатно хоть дома.

1. Что такое F´ и почему это не демо

  • Логика: компонентный C++-фреймворк для полётного и встраиваемого ПО — очереди сообщений, чёткие интерфейсы между модулями, автогенерация кода из описания системы.
  • Метрики: около 11 тысяч звёзд на GitHub, лицензия Apache-2.0 — открытый код, который можно свободно использовать, модифицировать и даже продавать.
  • Разработчик: создан в NASA Jet Propulsion Laboratory (JPL) — той же лаборатории, что управляет марсоходами и межпланетными зондами.
  • Источник: github.com/nasa/fprime.

2. Где он реально летал

  • Марс: вертолёт Mars Helicopter (Ingenuity) официально числится в списке проектов F´ — Linux на процессоре Snapdragon 801, полёты с 30 июля 2020 года, миссия продолжается.
  • Кубсаты и инструменты: ASTERIA (космический телескоп-кубсат), Lunar Flashlight (кубсат к Луне), Near Earth Asteroid Scout (кубсат к астероидам), ISS-RapidScat (инструмент на МКС), CADRE (луноход).
  • Итог: фреймворк проверен не на одном эксперименте, а на разных классах аппаратов — от инструментов на МКС до вертолёта на другой планете.

3. Запускается даже на Raspberry Pi

  • Логика: репозиторий официально помечен темой raspberry-pi на GitHub, а в CMake-инструментах есть отдельный toolchain именно под эту платформу.
  • Кросс-компиляция: в документации есть отдельный туториал по сборке под другую архитектуру — тот же процесс, что используется при переносе кода на реальное embedded-железо.
  • Вывод: архитектура, стоящая за полётным ПО, собирается и запускается на плате за несколько тысяч рублей — без симулятора и без доступа к настоящему спутнику.

4. Что здесь смотреть и зачем

  • Ценность: архитектура, где сбой одного компонента не должен останавливать всю систему — изоляция через компоненты, очереди сообщений и строгие интерфейсы между модулями.
  • Инструменты: автогенерация кода из модели системы, готовая библиотека проверенных компонентов, встроенные средства модульного и интеграционного тестирования.
  • Разница с типичным кодом: практики отказоустойчивости для железа, которое нельзя перезагрузить рукой за 200+ миллионов километров от Земли, в обычных туториалах не встречаются.

Здесь падать нельзя — и это решение видно в каждой строчке архитектуры, а не только в документации.

5. Как попробовать

pip install fprime-bootstrap
fprime-bootstrap project
  • Дальше: официальный туториал Hello World проводит через установку, создание проекта, написание и тестирование первого компонента.
  • Требования: Linux, Windows с WSL или macOS, git, Python 3.10+ и компилятор Clang или GCC.
  • Источник: fprime.jpl.nasa.gov, репозиторий — github.com/nasa/fprime.