Бортовой журнал Ктулху

Что нам так и не показал «Марс-3»?

Автор - Зубко Артем @blackhand911

Источник - https://habrahabr.ru/post/204562/

Сегодня – 42 года с момента первой успешной посадки на Марс космического аппарата с Земли – «Марс-3». Известно, что он успешно сел потому, что началась радиотрансляция – он начал передавать первую фотопанораму с поверхности. Антенны могли раскрыться только в случае благополучного примарсения.

1a332001404489cdd1c038b0cb7387f0

Как вы, вероятно, знаете, в этом году о нем снова вспомнили, когда стало известно, что Zelenyikot и подписчики его группы Вконтакте «Curiosity — марсоход» обнаружили «Марс-3» на Марсе.
Через несколько дней после находки «Марса-3», мне стало жуть как интересно, какие виды так и не передал на Землю аппарат. К тому моменту у меня был опыт создания объёмных объектов в Blender 3D на основе снимков Curiosity и приложенных к ним карт высот. Поэтому я подумал – «А не сделать ли то же самое, но с моделью места посадки «Марс-3», поставив камеру от лица аппарата?».

В теории всё просто. Надо было взять данные спутника Mars Reconnaissance Orbiter, на основе которых специалисты NASA создавали анаглиф поверхности. Погуглив, я так и не нашёл способа преобразования анаглифа в карту высот.
В группе Curiosity был брошен клич о помощи. Он нашел отклик, за, что я выражаю огромную благодарность Даниилу Толкачёву, который отозвался и сделал карту высот на основе спутниковых данных.

Вот его описание процесса:
«Инструментарий: Python + OpenCV. Алгоритм самолично написанный, хоть и стандартный:
1. На изображениях ищутся характерные особенности (алгоритм SIFT)
2. Производится сопоставление точечных особенностей от двух изображений. В результате получаем матрицу, связывающую точку на одном изображении и линию на другом (фундаментальная матрица)
3. На основе фундаментальной матрицы производится выравнивание изображений, таким образом получается, что один и тот же объект на двух изображениях лежит на горизонтали. Анаглиф построен на основе ректифицированных изображений. Стереосопоставление далее тоже производится на основе них же
4. С помощью алгоритма Semiglobal Stereo Matching производится построение карты диспаратности. Там есть некоторые тонкости с настройкой алгоритма и с обработкой большого изображения.
Стоит отметить, что использованный метод построения карты высот не позволяет получить абсолютные значения, да и вообще — возможны некоторые искажения, связанные с особенностью получения изображений спутником».

(Кажется на Хабре его нет, но если процесс интересен, то попробую его пригласить для развернутого описания).

К тому времени, в «марсоходной» группе провели конкурс на создание 3D модели «Марса-3», и ее можно было добавить к панораме.

f05905e2037127c5825e7d988fb4ee2e

Далее дело техники. Вкратце: я вырезал квадратный кусок нужного участка на снимке для текстуры и такой же на карте высот. В Blender 3D создал поверхность, наложил на неё карту высот, чуток подправил пропорциональность, наложил текстуру, настроил Солнце, цвет неба, атмосферу и поставил модель аппарата на её место на спутниковом снимке (который и является текстурой).

Вот на пропорциональности хотелось бы остановиться поподробнее. Любой нормальный человек спросит: «А где гарантия того, что вид на данном снимке более-менее соответствует реальности?». Всё очень просто. Во-первых, карта построена по спутниковым данным. Во-вторых, есть такая интересная вещь – объекты в программе масштабируются пропорционально. Каждая сторона модели увеличивается в одинаковое количество раз. Поэтому, растянув модель точно под диаметр аппарата на спутниковой фотографии, мы автоматически делаем её пропорциональной со всем ландшафтом.
В итоге, получилось это:

078ea4083e7cf516eb8bbb2422a5743e

7bf1edf0127fb0451939527393bc2dbc

47a692afaf2a120e18913b7ea371f087

57735def3dc542e0c73f0689a69268eb

Вот снимки, которые были получены путём размещения камеры от лица камер самого «Марса-3» (длина и высота снимка соответствует формату камеры аппарата):

9ae5e885ca76b33bf26c09b490892690

8511704ff400e7c23d78189d01bd8f62

cba9aee469979b3642aaf0cd5c4a9d88

f663dc07b5de66b6632dce934a2f5118

a9093f3b565f699ecf149d8b80d4c111

На снимках самой примечательной деталью являются горы на дальнем плане — это вал 18-километрового кратера Реутов, который был так назван в августе 2013 года.

Я подчёркиваю — они не претендуют на гиперточность, но я уверен, что на 60% соответствует тому, что бы мы видели, если бы аппарат всё же передал снимки с поверхности (и качество его камер превышало бы то, что было туда установлено в 70-е гг).
К сожалению, у нас нет 3D моделей тормозного двигателя, связанного цепями с нижней частью торового контейнера, и нет модели пенопластового кожуха, которым зонд защищался в момент удара о поверхность. Поэтому мы не можем установить полную картину места посадки. Чертежей тоже нет, даже модель самого «Марса-3» создавалась «на глазок», на основе фотографий.

cee22de76599f6ac8f9e449e43ca0ff7

Как можно заметить, в симуляциии поверхности не хватает камней, всяческих мелких деталей, которые можно заметить на снимке со спутника. Поэтому, если среди хабраюзеров найдутся те люди, которые могут подсказать, как это грамотнее сделать, или сделают сами — буду очень рад, и готов оказать посильную помощь.