September 29, 2022
0
Как работает управление марсоходом Curiosity
С 2012 года поверхность Красной планеты исследует робот Curiosity. Мы задались вопросом — как управлять марсоходом на расстоянии миллионов километров. Разобрались, как устроено управление ровером, на каком языке программирования написана оболочка, и как устроен компьютер внутри ровера.
Миссия марсохода
Curiosity приземлился на Марс 6 августа 2012 года. Марсоход отправили на Марс, чтобы узнать, существовала ли здесь жизнь раньше. Ровер высадился в кра́тере Гейла — миллионы лет назад на месте кра́тера было море. На дне бывшего моря остались минералы, которые изучает ровер.
Марсоход весит 900 кг и передвигается со скоростью до 144 м/ч. Он оснащен камерами, набором инструментов дистанционного исследования, спектрометром, ковшом для забора грунта, комплектом метеорологического оборудования.
Уже в первые месяцы работы марсоход обнаружил на дне кра́тера следы древнего озера. В 2014 ровер обнаружил следы метана в атмосфере планеты, что могло указывать на существование жизни на Марсе.
С 2012 года марсоход проехал больше 25 км. Эти 10 лет робот занимается изучением марсианского грунта, пытаясь найти следы существования жизни. Ученые из NASA сообщают, что наличие жизни на Марсе возможно, но четких доказательств пока нет.
Как устроена система марсохода
Марсоход — это замкнутая автономная система. Вы будете удивлены характеристиками процессора ровера:
— Частота процессора 133 МГц
— 128 Мб оперативной памяти
Любой современный смартфон в десятки раз мощнее, чем компьютер ровера.
Вот полные характеристики:
Центральный процессор ровера производится компанией BAE Systems Electronic Solutions и стоит 200 000 долларов США.
Как устроены ПО и код марсохода
Код марсохода написан на С++ и C. Раньше ученые использовали C++ для создания автономных алгоритмов, которые включают в себя: стереозрение, построение карт, планирование пути и визуальную одометрию. Но до 2000 года C++ не использовался в марсоходах, всё разрабатывалось на языке C. При разработке программисты оценили, что риск ошибки при переписывании нынешнего кода с C++ на C выше, чем использование новой среды на C++. Так C++ стал главным языком на марсоходах.
ПО для планирования передвижения ровера в NASA также написано на C++. Информация о движении автоматически дополняется графикой и отправляется на устройства исследователей.
Код содержит 150 модулей. Модули передают данные другим модулям через очередь сообщений с минимальным числом блокировок. Программная оболочка марсохода состоит из 2,5 миллионов строк кода. Предполагаем, что сценарии тестирования написаны на Python — эта информация не разглашается.
В каждой миссии на Марс количество кода только увеличивалось. К примеру, в миссии Mars Science Laboratory использовалось больше кода, чем во всех предыдущих экспедициях к Марсу, вместе взятых. В марсоходе много кода, и причина в том, что код разрабатывается для конкретной миссии, а в некоторых частях миссии программа используется 1 раз. Например, это приземление. Хватит одной ошибки в коде, и аппарат разобьется при приземлении.
Чипсет марсохода запрограммирован на надежность. Внутренности ровера запрограммированы так, что «синий экран» может случиться только 1 раз в 15 лет. Надежность в космосе важнее, чем скорость. Оболочка ровера выдерживает бомбардировку радиацией в таких уровнях, от которых земной компьютер выйдет из строя за секунды.
На ровере установлено два одинаковых компьютера — второй нужен на случай того, что первый выйдет из строя. В этом НАСА опирается на слова Джо Армстронга: «Чтобы иметь надежную систему, нужно два компьютера».
Операционная система на ровере — VxWorks. Это классическое микроядро. Предполагаем, что ядро содержит меньше 10 килолиний кода. Другими словами, это ядро почти не содержит ошибок. Главное здесь изоляция и надежность, поэтому разные части вездехода изолированы между собой и работают автономно.
Некоторые компоненты системы внутри ровера продублированы так, что в случае поломки одного компонента, система не вышла из строя полностью, и компонент-дублер подхватывал свою функцию.
Как управляют марсоходом с земли
Главная особенность управления марсоходом — расстояние. Минимальное расстояние от Марса до Земли 55,76 млн км, а максимальное — 401 млн км. Радиосигнал с Земли доходит до Марса за 22 минуты, и столько же идет обратно. Марсоход имеет связь с Землей только 1 раз в сутки — остальное время находится в одиночестве.
БОльшая часть действий, которых делает ровер, прописана заранее, еще на Земле. Ровер редко принимает самостоятельные решения. В критической ситуации ровер останавливается и ждет указаний с Земли.
Чтобы видеть, куда едет ровер, на нем установлены пара стереокамер, которые создают 3D-картинку. Те, кто управляют ровером с Земли, видят 3D-картинку, что помогает в управлении.
Специальное ПО используется для виртуального воссоздания местности и создания модели вездехода. В этой виртуальной среде моделируются команды перед отправкой роверу. Этот процесс помогает гарантировать, что после отправки команд не произойдет ничего неожиданного.
Вот как выглядит смоделированный путь вездехода после того, как все будет собрано вместе. Серая поверхность — это смоделированная местность, а оранжевые линии обозначают следы вездехода на поверхности:
Заключение
Марсоход использует проверенные годами языки C и C++. Главное в его программном обеспечении — надежность и долговечность, а не скорость.
Понравилась статья? Поделитесь ей с помощью кнопки «Скопировать ссылку» в начале статьи.
_____________________
Давайте построим что-то грандиозное.
Позвоните нам по номеру 8 800 201 1486 или напишите на почту — hello@roky.rocks
- Author
Павел Михайличенко
- Поделиться