Создавать космические корабли интересно. Интересно программировать автономные системы — что могут совершить посадку на астероиде, или выйти на орбиту Венеры. Космос интересен.
В эти выходные (5 апреля) Продленка была посвящена космонавтике. Перед этим, когда я узнал, что будет космическая тематика — решил найти 3д модель корабля Восток-1, того самого на котором Гагарин совершил тот исторический полет вокруг Земли — найти модель этого корабля для печати на 3д принтере — для демонстрации ребятам.
Но к своему удивлению сходу найти не удалось…
И возможно это было к лучшему, так как привело к самостоятельному созданию модели — о том как создать космический корабль за час в Екатеринбурге, напечатать на 3д принтере в Москве, подарить модельки школьнику и космонавту на выступлении в Digital October, а потом создать симулятор корабля в космосе и по-управлять им и будет этот рассказ.
Теория
Давайте немного вспомним теорию, про космические полеты. Для того чтобы объект летал в космосе, его недостаточно поднять вверх — т.к. действие гравитации притянет его назад, ему надо придать космическую скорость, относительно планеты.
Космическая скорость (первая v1, вторая v2, третья v3 и четвёртая v4) — это минимальная скорость, при которой какое-либо тело в свободном движении с поверхности небесного тела сможет:
- v1 (круговая скорость) — стать спутником небесного тела (то есть вращаться по круговой орбите вокруг НТ на нулевой или пренебрежимо малой высоте относительно поверхности);
- v2 (параболическая скорость, скорость убегания) — преодолеть гравитационное притяжение небесного тела и уйти на бесконечность;
- v3 — покинуть звёздную систему, преодолев притяжение звезды;
- v4 — покинуть галактику.
Для Земли первая космическая скорость v1= 7,91 км/с. (центробежная сила должна уравновешиваться гравитационной силой — выводится из второго закона Ньютона). Кому интересно, вторая космическая скорость — v2 = 11,2 км/с.
Таким образом для того чтобы спутник вышел на орбиту Земли, совершил оборот, и приземлился надо:
1. вывести спутник в безвоздушное пространство
2. придать первую космическую скорость
3. уменьшить скорость — чтобы произошло падение на Землю
Если приводить пример ракеты Восток, то она состояла из ракета-носителей (1, 2, 3 ступени), и самого спутника.
Ракета-носитель
1, 2 — ступени выводили в космос (первая ступень — это боковые 4 блока, которые отделяются, вторая ступень — это центральная ракета). 3-я ступень — разгоняла спутник.
Корабль-спутник
Космический корабль «Восток» с третьей ступенью ракеты-носителя под головным обтекателем.
Схема полета
Спутник состоял из спускаемого модуля (где находился космонавт), и тормозной системы, с помощью которой происходило торможение, для «захода на посадку». Сама тормозная система отделялась в верхних слоях атмосферы. После этого — уже происходило торможение спускаемого модуля с помощью парашютов.
Теперь, как же пришла идея.
Идея
Когда узнал, что будет «космическая продленка», то подумал, что было бы не плохо распечатать на 3д принтере, какую-нибудь модельку, связанную с космонавтикой, с кораблем Восток.
Как уже сказал — сходу найти в открытом доступе модель корабля Восток не удалось. До продленки оставалось несколько дней. Но что делать, если хочешь что-то сделать — сделай это сам :) Посмотрев на чертеж корабля, я понял, что в упрощенном виде это набор примитивов: шар, конус, цилиндр.
Я распечатал картинку, и с помощью линейки измерил пропорции, и размеры. Вот такой получился «чертеж» %)
Если честно, то когда я рисовал чертеж — то я смутно представлял себе из чего состоит корабль-спутник, но по мере создания модели узнавал интересные детали.
Создание модели
Для создания модели я воспользовался OpenSCAD (про которую мы как-то рассказывали).
В этой системе 3д модель — «программируется», с помощью команд языка openscad.
Ещё раз посмотрел на фотографию спутника — видим, что упрощенно он состоит из:
- усеченный конус1 (снизу)
- уcеченный конус2 (переход на шар)
- «бусинки» шариков вокруг конус2
- большой шар
Делаем «основание»
translate([0, 0, -25])
cylinder(25, d1=10, d2=56, $fn=10);
Здесь, рисуется цилиндр, высотой 25, где диаметр основания 10, а вершины 56 (усеченный конус).
Но т.к. в оригинальной конструкции корабля есть «лепестки» то можно указать $fn=10 — этот параметр говорит сколько фрагментов будет использовано для рисования окружности (в OpenSCAD все поверхности — плоскости). Таким образом у нас конус состоит из 10 поверхностей.
И с помощью команды translate, мы переносим фигуру в нижнюю плоскость (над ней мы будет рисовать корабль дальше).
Переход на сферу
cylinder(23, d1=55, d2=30);
Мы просто рисуем цилиндр, высотой 23, основание диаметром 55, и верхнее основание диаметром 30.
Сфера
translate([0, 0, 40]){
sphere(d=50);
}
Мы рисуем сферу диаметром, и поднимаем на 40 вверх (ось Z).
Это спускаемый модуль, в нем находится космонавт, в кресле. После торможения — сфера отсоединяется от основания.
Бусинки
«Бусинки» — это емкости с газом, служат для работы системы жизнеобеспечения.
Точно количество мне не было известно, но оказалось их 16.
r=20;
for (a = [0:45/2:360-45/2]){
translate([cos(a)*r, sin(a)*r, 19.5])
{
sphere(r=4, $fn=30);
}
}
Для рисования «бусинок» мы воспользуемся циклом, и вспомним геометрию.
Если мы сделаем угол поворота 22,5 градусов (это 45 пополам), то взяв радиус — мы можем разместить «шарики» вокруг нашего корабля.
Определяем переменную r=20 — это радиус на котором размещаются наши сферы.
Берём угол поворота, рисуем сферу, с радиусом 4. Далее мы перемещаем её в точку согласно углу поворота и радиусу. Координаты получаем через косинус и синус угла умноженного на радиус. И так же перемещаем вверх на 19.5
Цикл в OpenSCAD выглядит так:
for (ПЕРЕМЕННАЯ = [НАЧАЛЬНОЕ_ЗНАЧЕНИЕ : ШАГ : КОНЕЧНОЕ_ЗНАЧЕНИЕ])
И таким образом мы проходим от нуля с шагом 22.5 градуса.
Обратите внимание на флаг $fn=30 у сферы, чем он меньше — тем быстрее будет происходить рендеринг вашей модели.
Люк
Нарисуем люк. На самом деле это не иллюминатор, это люк через который при старте космонавт попал в корабль, и через который при снижении происходит плановое катапультирование космонавта (в кресле).
Вместо строчки где была сфера (sphere(d=50);) получается:
difference(){
sphere(d=50);
rotate(a=60, v=[1,0,0]){
translate([0, 0, 20])
cylinder(10, 12, 12);
}
}
Нам надо «вычесть» цилиндр из Сферы. Для этого мы рисуем цилиндр высотой 10, и радиусом 12. Далее мы его поднимаем вверх на 20 (а т.к. сфера радиусом 25 то происходит пересечение цилиндра с поверхностью сфера). После этого мы поворачиваем цилиндр на 60 градусов вокруг оси X. И после этого выполняем команду вычитания difference. Эта команда вычтет из первой фигуры (сфера), вторую (цилиндр).
Дополнения
Далее на модель был добавлен настоящий люк (через который космонавт видит землю), так же можно добавить держащие сферу хомута, крепление командного кабеля от сферы к модулю и т.п. В данный момент это конечно очень приближенная версия.
Если будете экспериментировать в OpenSCAD: хорошая подсказка по командам OpenSCAD.
Модель (STL + openscad) выложена на thingiverse и github. В теории эту модельку можно довести до уровня DIY конструктора.
3д печать
В 3д печати (как и в прошлый раз) помог Иван из московского хаспейса Нейрон (лаборатория трехмерной печати). На фото — результат печати модельки.
И спасибо волонтеру — 3д моделька была привезена на Продленку.
Продленка
И вот настало воскресение 5 апреля. Зал в Digital October полон ребят и родителей, камеры включены и происходит прямая трансляция всем желающим посмотреть.
Напомню проект Продленка рассказывает интересно про профессии. В этот раз было про профессию космонавта.
Это была удивительная «Продлёнка» которая понравилась папам почти так же, как и детям. Потому что в каждом мужчине живёт мальчишка из СССР, мечтавший стать космонавтом. В общем, мы рассказали много интересного про российскую космонавтику. А ещё о том, где и как учиться, чтобы если и не полететь в космос в 2020 году, то хотя бы собирать ракеты или рассчитывать полёты.
У нас в гостях был настоящий космонавт Александр Иванович Лазуткин — бортинженер Союза ТМ-25 (184 дня на орбите), Герой Российской Федерации. Он открыл «Продлёнку» рассказом о профессии в целом и своём полёте. Затем Виталий Егоров из частной космической компании Dauria Aerospace подробно объяснил, что нужно знать, и куда поступать, чтобы в один прекрасный день оказаться на борту космического корабля.
Нашим третьим гостем была Анастасия Степанова, космический журналист, автор книги для детей «Желаю Вам доброго полёта…». Она рассказала про стремление к мечте и о своём пути к космосу
На Продленке интересно:
Запись видео-трансляции с Продленки вы можете посмотреть здесь.
Но возвращаясь к нашей модели. Распечатанные 3д модельки корабля-спутник Восток были:
- подарены за лучший вопрос
- подарены космонавту Александру Лазуткину
Симулятор V-REP
Недавно мы рассказывали про V-REP — робототехнический симулятор. И мне было интересно возможно ли в нём выполнять симуляцию систем не только на земле, но и в космосе.
Решил попробовать. И оказалось, что гравитация там отключается без проблем, движок поддерживает свободный полет.
И всё что оставалось мне сделать:
- сделать фон (была найдена фотография Земли)
- загрузить модель (STL модель была загружена)
- добавить текстуры (без текстуры смотреть не очень)
- добавить реактивные двигатели (они встроены в V-REP
- написать управление
Возможно, про это будет отдельная статья.
В процессе создания, когда решал куда же надо разместить корректирующей положение двигатели, понял что на обшивке как-то не очень они будут смотреть. Но потом присмотрелся — оказывается они размещены в хвостовой части. Там их и разместил (в виде креста). Так же там находится главный двигатель.
В симуляторе — вы сможете по-управлять этими корректирующими двигателям (клавишами курсора), и основным двигателем (клавиша пробел). На самом деле основной двигатель применялся для торможения, и для этого спутник «переворачивался» двигателем по направлению движения (всё это делала автоматика). Но в нашем случае — мы можем просто «полетать» в космосе на ручном управлении.
Эту сцену для V-REP, можно скачать отсюда (расширение *.ttt).
Другие проекты по Восток-1
В процессе поиска, я вышел на несколько интересных проектов, авторы которых создавали или создают документально достоверные модели полета Гагарина (корабля Восток).
Проект Гагарин 3D | Gagarin3d.ru
Ссылка: http://gagarin3d.ru
Целью проекта является создание 3Д фильма о первом полете Гагарина, максимально достоверного.
Для этого происходит постепенное и планомерное рисование всех 3д объектов. Пример рендеринга с проекта:
Приборная доска ПУ-1-3КА. Пока что, самая свежая версия модели Немного съехала текстура под словом «Коррекция», отсутствует знак завода
Flightgear: Vostok-1
Ссылка: http://wiki.flightgear.org/Vostok-1
Это очень интересный проект, т.к. это полноценный симулятор. Автор взял за основу открытый самолетный симулятор FlightGear. В симуляторе есть возможность добавлять свои самолеты. Но автор добавил свой космический корабль. При этом так же выполнив моделирование (в общей сложности проект занял больше года).
Вот пример прорисовки части корабля-спутника:
Идея проекта «Гагарин. Восток»
На фоне того, что я увидел, хочу предложить идею проекта «Гагарин.Восток».
Суть проекта:
— сбор энтузиастов кому интересна космическая тематика
— сбор фактической информации по теме
— направления:
— первые запуски — автономные, пилотируемые
— Луна
— Венера
— челнок Буран
— Марс
— другие корабли
— вопросы 3д моделирования,
— вопросы симуляции (и программирования)
— создание 3д моделей, для печати, и конструкторов для сборки
Вся информация предоставляется под форматам CreativeCommon — открытыми лицензиями.
Это подразумевает создание:
— открытой группы для обсуждения
— создание места для хранения проектов (github, thingiverse)
— создание точки входа — хранения ресурсов (ссылки на сайты участников) — это можно через githubpages
Собрав такую группу, и показав интерес от общества — можно будет проще идти в «верха» — для сотрудничества в конструкторской документации.
Ссылки:
- гугл-группу
- для аггрегации проектов github организация
- стартовая страница
Первым вкладом в этот проект — добавлен модуль FlightGear Vostok-1.
Если у вас есть идеи тем, которые можно развивать дальше — пишите. Если вы интересуетесь и собираете факты по советской/российской/международной космонавтике — пишите.
Послание
Статья получилась не маленькая, но не могу не добавить слова Юрия Гагарина, что он записал после своего полета в космос:
Автор: nemilya