Представители космического агентства NASA в интервью изданию Spectrum IEEE раскрыли подробности о начинке автономного вертолёта-разведчика Ingenuity, вчера успешно приземлившегося на Марс в составе миссии Марс-2020. Особенностью проекта стало использование управляющей платы на базе SoC Snapdragon 801 от компании Qualcomm, который применяется при производстве смартфонов. Программная начинка Ingenuity основана на ядре Linux и открытом полётном ПО. Отмечается, что это первое использование Linux в аппаратах, отправленных на Марс. Более того, использование открытого ПО и доступных в широкой продаже аппаратных элементов даёт возможность заинтересованным энтузиастам собирать аналогичные дроны самостоятельно.

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

SoC Snapdragon 801 (четыре ядра, 2.26 GHz, 2 ГБ ОЗУ, 32 ГБ Flash) применяется для обеспечения работы базового системного окружения на основе Linux, на которое возложено выполнение высокоуровневых операций, таких как визуальная навигация на основе анализа изображений с камеры, управление данными, обработка команд, формирование телеметрии и поддержание канала беспроводной связи.

Процессор соединён с использованием интерфейса UART к двум микроконтроллерам (MCU Texas Instruments TMS570LC43x, ARM Cortex-R5F, 300 MHz, 512 КБ ОЗУ, 4 МБ Flash, UART, SPI, GPIO), выполняющим функции управления полётом. Два микроконтроллера используются для резервирования на случай сбоя и получают идентичную информацию от датчиков. Активен только один микроконтроллер, а второй используется как запасной и в случае сбоя способен взять управление на себя. За передачу данных от датчиков к микроконтроллерам и за взаимодействие с актуаторами, управляющими лопастями, отвечает FPGA MicroSemi ProASIC3L, который также выполняет переключение на запасной микроконтроллер в случае сбоя.

Из оборудования в дроне задействован лазерный высотомер от компании SparkFun Electronics, занимающейся производством открытого аппаратного обеспечения и являющейся одним из создателей определения открытого аппаратного обеспечения (OSHW, Open-source hardware). Из других типовых компонентов отмечаются используемые в смартфонах гиростабилизатор (IMU) и видеокамеры. Одна VGA-камера задействована для отслеживания местоположения, направления и скорости через покадровое сравнение. Вторая 13-мегапиксельная цветная камера применена для создания снимков местности.

Управляющие полётом программные компоненты разработаны в лаборатории NASA JPL (Jet Propulsion Laboratory) для малых и сверхмалых искусственных спутников Земли (кубсатов) и уже несколько лет развиваются в составе открытой платформы F Prime (F´), распространяемой под лицензией Apache 2.0.

F Prime предоставляет средства для быстрой разработки систем управления полётом и сопутствующих встраиваемых приложений. Полётное ПО разделено на отдельные компоненты с хорошо определёнными программными интерфейсами. Помимо специализированных компонентов предлагается С++ фреймворк с реализацией таких возможностей, как обработка очередей сообщений и организация многопоточности, а также инструменты для моделирования, позволяющие связывать компоненты и автоматически генерировать код.