Когда агентство NASA официально объявило о завершении миссии марсохода Opportunity, стало ясно, что его 15-летний стаж свидетельствует о готовности к долговременным автономным миссиям на других планетах. Конечно, Opportunity и все еще продолжающий исследования Curiosity, не являются в полной мере автономными роверами. Они не решают самостоятельно, куда им идти, потому что их трасса прогнозируется командой инженеров NASA в Лаборатории реактивного движения (JPL).
Чтобы рассчитать марсоходам дневной маршрут, команда драйверов из Jet Propulsion Laboratory использует сложное наземное программное обеспечение — Rover Sequencing and Visualization Program. RSVP состоит более, чем из миллиона строк кода на Java и C++.
Основной компонент, используемый для планирования, моделирования и определения директив для марсохода называется HyperDrive. Это система для анализа изображений и рельефа местности в 3D, глазами которой являются видеокарты NVIDIA Quadro, формирующие стереоизображение. Работая по протоколу RSVP на высокопроизводительных рабочих станциях Linux и используя очки NVIDIA 3D Vision, водители ровера ежедневно оценивают окружение Curiosity и генерируют инструкции для действий на следующий день. В качестве языка управления заданиями используется XML, который затем компилируется в двоичный код для отправки его на Марс. Каждый день JPL шлет Curiosity сотни команд, организуя его передвижение по поверхности далекой планеты.

Код RSVP был написан переменным составом (около 8 человек) из группы разработчиков, которые управляют ровером — Mars Science Laboratory. Он вырос из кода, написанного еще для первого марсохода Sojourner, который тогда назывался Rover Control Workstation и состоял из 80 тыс. строк кода C++. Так появилась первая версия RSVP для роверов Spirit и Opportunity.
Несмотря на то, что управление Opportunity строилось на более ранней версии RSVP, эта же базовая архитектура была взята за основу для Curiosity, хотя и подверглась усовершенствованиям и доработкам. Так, компонент HyperDrive был полностью переписан, поэтому сегодня он способен поддерживать одновременно несколько миссий. Код для конкретной миссии (например, для Curiosity) изолирован от кода, который применяется для параллельного проекта или может быть востребован в будущем.
Группа Mars Science Laboratory учла уроки, извлеченные из управления марсоходами Spirit и Opportunity, чтобы сделать вождение Curiosity более эффективным и менее рискованным. В целом команда потратила четыре года на улучшение RSVP при подготовке к миссии Curiosity, хотя доработки и усовершенствования софта продолжаются, поскольку они получают больше информации про местность, на которой работает ровер, и обстановку на ней. В HyperDrive появилось много новых графических функций, например, после приземления, которые помогают безопасно двигаться по пересеченной местности и оценивать качество грунта с помощью навесных инструментов.
NASA, конечно, славится разработкой «идеального» программного обеспечения для космического челнока. Программный код RSVP, который не участвует в пилотируемой миссии, такой задачей не отягощен. Однако, прежде чем команды будут отправлены на ровер, они тщательно верифицируются, сначала в автоматическом режиме проверки, затем драйверы из Mars Science Laboratory моделируют их с помощью HyperDrive. Любые ошибки в коде регистрируются и отслеживаются через Jira.
В разработке ПО важным моментом является то, что члены команды разработчиков в итоге станут и конечными пользователями. Команда использует сочетание традиционных подходов к созданию программного кода и Agile-методов, включая парное программирование, больше похоже на программирование в малых группах.

Опыт, наработанный в процессе развития RSVP, будет использован в эксплуатации всех марсианских миссий. Сегодня с его участием работает ПО, управляющее платформой InSight Lander, прибывшей на Марс в прошлом году. Вероятно, на базе RSVP будет построено управление следующего ровера, запуск которого планируется осуществить в ближайшем будущем.
Может быть, когда люди высадятся на Марсе и сами станут водить марсоходы (хотя, по иронии судьбы, люди на Земле самоустраняются от управления транспортом), в Лаборатории реактивного движения продолжат писать код визуализации не только для марсоходов, но и для всех миссий в Солнечной системе.