Представители на НАСА разкриха подробности за технологиите в безпилотния апарат Ingenuity, който кацна успешно на Марс тази седмица. Особености на апарата са контролната платка на база SoC Snapdragon 801 от Qualcomm, която се използва в смартфоните, както и софтуерът с отворен код.
За управление на изследователския дрон е необходима много повече изчислителна мощ, отколкото за марсоход, който е оборудван със специално изработени чипове с допълнителна защита срещу радиация, уточниха от НАСА в интервю за Spectrum IEEE. Решението стъпва на типичен процесор Snapdragon 801, който има достатъчна изчислителна мощ за анализ на състоянието на атмосферата с честота 500 измервания в секунда по време на полет, както и за анализ на изображения с честота 30 кадъра в секунда. Ingenuity използва също така лазерен висотомер от компанията SparkFun Electronics, която е един от създателите на дефиницията за хардуер с отворен код (OSHW). Дронът е оборудван и с жиростабилизаторът (IMU), познат от смартфоните и видеокамерите. Една VGA камера се използва за проследяване на местоположение, посока и скорост чрез сравнение по кадри. Втора 13-мегапикселова цветна камера се използва за създаване на изображения на района.
Програмното обезпечение на Ingenuity се базира на Linux ядрото и софтуер за полети с отворен код. Това е първото приложение на Linux в космически кораби, изпратени на Марс. Използването на софтуер с отворен код и налични в търговската мрежа хардуерни елементи дава възможност, и на заинтересованите ентусиасти да сглобяват подобни дронове сами.
Софтуерните компоненти за управление на полета са създадени в NASA JPL (Jet Propulsion Laboratory) за малки и свръхмалки изкуствени земни спътници (кубсати). Те се разработват от няколко години като част от отворената платформа F Prime (F´), разпространявана под лиценз Apache 2.0. F Prime предоставя инструменти за бърза разработка на системи за управление на полета и свързаните с тях вградени приложения. Софтуерът за полети е разделен на отделни компоненти с добре дефинирани програмни интерфейси. В допълнение към специализираните компоненти, платформата включва и C++ рамка с функции като опашки за съобщения и многопоточност, както и инструменти за моделиране, които позволяват свързване на компоненти и автоматично генериране на код.