Space engineers какой вес может поднять двигатель - АвтоКлуб Toyota
Toyota-navi.ru

АвтоКлуб Toyota
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Space engineers какой вес может поднять двигатель

Как я строил гексапод в Space Engineers. Часть 1

Здравствуйте. Я хочу рассказать про проектирование и программирование системы управления конечностями в гексаподе, построенном в Space Engineers.

Забегая вперед скажу, что всё, что касается программирования в Space Engineer, будет в следующей статье. В этой я расскажу про обратную кинематику и покажу прототип на HTML Canvas в котором я занимался отладкой алгоритмов.

Предыстория и постановка задачи.

Изначально было построено сочлененное шасси, а затем на нем копательный агрегат. Такая конфигурация обеспечивала контакт всх колес с поверхностью на больших неровностях, в том числе и при скручивании.

Вроде такого

Но я столкнулся с невозожностью его точно разместить на месторождении, так-как колеса часто соскальзывали вниз (проблема физики — большинство блоков (в том числе и колеса) имеют слишком малый коэффициент трения). Колесная платформа с цельноповоротными колесными модулями оказалась слишком громоздкой и страдала от периодических physics explosion. В результате было решено строить шагающего робота — а именно — гексапод, как самую стабильную шагаюшую платфрому.

С чего начнет строить гексапод нормальный человек? Наверное зайдет в игру и начнет строить тело робота с конечностями, а потом думать как это всё оживлять. Но это не наш метод (ц)

Я начал с теории

Для строения ноги была выбрана следующая схема:

Inner joint — внутренний сустав, качающийся по оси рысканья (yaw)
Mid joint и outer joint — внешние суставы, качающиеся по оси тангажа (pitch). Направление отсчета — от основания ноги к концу ноги.

Угол 0 для всех суставов означает, что нога полностью выпрямлена (прямую ногу будет проще строить в игре).

Задача — при заданной целевой точке найти такие углы поворота сустовов, что-бы конец ноги оказался в заданной точке. Значит время вспоминать тригонометрию.

Угол внутреннего сустава можно найти через арктангенс горизонтальных координат цели.

С двумя другими суставами посложнее. У нас есть длина всех суставов. Можно найти угол к горизонту и расстояние между средним суставом и землей, а так-же расстояние до целевой точки.

Дальше через теорему косинусов нужно найти углы треугольника по известным сторонам.

Так это выглядит в коде:

Движение

Далее. Робот должен ходить, верно? То-есть мы должны передавать N раз в секунду каждой ноге координаты заданной позиции. С учетом того, что ног 6 и 3 из них двигаются в противофазе получается как-то сложно. Нужно ввести новый уровень абстракции.

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

Пока достаточно

Обдумывая как всё будет работать я понял, что задача слишком сложная для того, что-бы всё заработало с первого раза (с дебагом в Space Engineers всё плохо, но об этом в следующей части).

Поэтому я решил написать визуализатор. Мне хотелось его сделать без дополнительных библиотек и иметь возможность запускать его в один клик и без привязки к окружению.
Поэтому был выбран JS + HTML Canvas.

Читать еще:  В рав 4 загорелось низкое давление в двигателе

А сейчас нарисуем сову.

Шаг — структура данных для управления ногой:

Но для отрисовки понадобятся еще несколько классов:

Обертка над Canvas:

В классе Leg есть метод для получения текущих координат суставов. Вот эти координаты мы и будем отрисовывать.

Так-же я добавил отрисовку точек, в которых находилась нога в N последних тиков.

И наконец Worker, который будет запускать симуляцию:

Правда миленько?

Здесь видно, что траектория движения ног отличается от окружности. Движение по вертикали напоминает урезанную синусоиду, а движение по горизонтали линейно. Это должно уменьшить нагрузку на ноги.

Теперь несколько пояснений, что происходит в коде.

Как научить робота поворачивать?

Для поворота я рассмотрел 2 ситуации:

Если робот стоит — ноги двигаются по окружности.

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

Когда робот двигается нужно реализовать что-то вроде Ackermann steering geometry с дифференциалом.

То-есть длина шага ног, двигающихся по меньшему радиусу, — меньше. А угол поворота — больше.

Что-бы реализовать изменение угла поворота для каждой ноги я придумал следующий алгоритм:

1. Считаем угол от изначального положения ноги к центру робота:

2. Считаем угол от изначального положения ноги к (центру робота + смещение, которое отвечает за поворот — это изменяемый параметр):

3. Поворачиваем шаг на разницу этих углов:

Но это не всё. Еще нужно изменять длину шага. Реализация в лоб — домножать длину шага на изменение расстояния до центра — имело фатальный недостаток — внешние ноги слишком широко шагали и начинали задевать друг друга.

Поэтому пришлось усложнить реализацию:

1. Считаем изменение расстояния до центра для каждой ноги:

0.3 — магическое число

2. Находим отношение между минимальным и максимальным изменением

Этот множитель отражает разницу между минимальным и максимальным изменением расстояния до центра. Он всегда меньше 1 и если на него домножать длину шага — она при повороте не будет увеличиваться даже для внешних по отношению к направлению поворота ног.

Вот как это работает (gif 2 мегабайта):

→ Поиграться с результатом можно тут

Для более пристального изучения рекомендую сохранить содержимое в html файл и продолжить в любимом текстовом редакторе.

В следующей публикации я расскажу как заставил всё это работать в Space Engineers.
Спойлер: в Programmable Block можно писать на C# почти последней версии.

Как установить

Установка достаточна стандартная, но отличается, в зависимости от версии игры:

Если у игрока стим версия:

  1. Необходимо найти нужный мод в библиотеке стим
  2. Нажать кнопку подписаться
  3. Подождать, пока стим скачает мод
  4. Играть 🙂

Для пиратской версии:

  1. Скачайте мод
  2. Разархивируйте его в папку Roaming
  3. Найдите в этой директории папку «SpaceEngineers»
  4. Перенесите мод во вложенную папку «Mods»
  5. Готово

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

Ионные ускорители

Предназначены для перемещения только по космосу, а также по поверхности объектов с нулевой гравитацией. Чем у объекта больше гравитация, тем менее эффективны эти двигатели. На поверхности той же Земли они будут практически бесполезными.

Читать еще:  Хендай гетц ремонт двигателя своими руками g4ea

Ионники

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

ПлюсыМинусы
Хорошая мощностьНе работают на планетах с атмосферой
Не нужно заморачиваться с трубами, как у водородных ускорителейПотребляют много энергии

Space engineers какой вес может поднять двигатель

Заметка: Пожалуйста имейте в виду что прыжковые двигатели были установлены на все корабли в стартовых сценариях.

Особенности
– Прыжковый двигатель.

Использование прыжкового двигателя:
– Прыжковый двигатель должен быть установлен на корабле и заряжен энергией на 100%.
– Прыжковый двигатель доступен только для больших кораблей.
– Прыжок может быть запущен только из кокпита, при помощи действия “прыжок” (не из контрольной панели).
– Если назначен основной кокпит, только из него можно запустить прыжок.
– Игра автоматически рассчитывает, может ли корабль достичь точки назначения с текущим количеством прыжковых двигателей и массой корабля, эта информация указана как число в процентах в окне подтверждения.
– В контрольной панели прыжковому двигателю может быть ограничена дальность прыжка (полезно для слепых прыжков) или сохранено максимальное значение которое зависит от комплектации корабля (максимальное значение установлено по умолчанию).
– Минимальная дистанция прыжка 5 км.
– Прыжок может быть выполнен только на безопасном расстоянии от других объектов (кораблей, станций, астероидов, планет).
– Вокруг финишной точки прыжка должно быть пусто на 2 км. Любой объект в радиусе 2 км сократит прыжок, и выход будет совершен за 2 км от этого объекта.
– В случае сокращенного прыжка к GPS координатам или вслепую, корабль всегда будет появляться перед объектом на его пути — корабль не должен никогда появляться в астероиде или другом корабле, даже если вычисления корректны.
– Правила транспортировки: все малые или большие корабли, которые должны отправится в прыжок вместе с кораблем должны быть закреплены с помощью коннекторов или посадочных ног. Игроки должны быть на сиденьях, в кокпитах или криокамерах. Все, что не прибито гвоздями к кораблю, как было указано выше, останется в точке отправления, и не совершит прыжок.

Исправления
– Исправлено размещение конца блока угловой брони 2х1х1.
– Исправлен звук ручного бура.
– Исправлена проблема с очисткой поиска в чертежах при помощи “Х”.
– Исправлена проблема с отображением стандартным гравитационным генератором данных отличающихся от сферического.
– Исправлена некорректная подсказка при переключении разделов терминала.
– Исправлено слишком частое обновление HUD при беге.
– Исправлена вибрация подсказок по вращению при копированиивставке.
– Исправлена проблема с критическим уровнем энергии при активации корабля.
– Исправлено неверное написание в XML.
– Исправлена проблема со появлением режима вращения станции при копировании и вставке кораблей.
– Исправлены проблемы при переименовании программы.
– Исправлено небольшое несоответствие в voice-over.
– Исправлено самостоятельное открытие G-меню после возрождения.
– Исправлены проблемы с копированием/вставкой больших кораблей.

Читать еще:  Что может стучать в двигателе приоры 16 клапанов

Space Engineers скорость: команда Speed.

Space Engineers скорость: команда Speed показывает текущую скорость корабля в м / с.

SpeedKmh и SpeedMph для отображения скорости в км / ч или миль / ч.

Аргументы:
Без аргументов: отображает текущую скорость корабля.
Первый аргумент: максимальная скорость в м / с (отображает визуальную панель)

Примеры:
Speed 100

Устанавливает максимальную скорость на 100 м / с даже при использовании вариантов SpeedKmh или SpeedMph!
Таким образом, для 100 км / ч вам нужно будет установить максимальное значение 100 / 3,6 = 28 м / с.

Space Engineers: команда Accel.

Команда: Accel показывает текущее ускорение корабля.

Аргументы:
Без аргументов: показывает текущее ускорение в m/s 2
Первый аргумент: максимальное ускорение в m/s 2 (отображает визуальную панель)

Примеры:
Accel 10

Показывает ускорение с помощью визуальной панели с максимальным ускорением 10 m/s 2

Об этой игре

Space Engineers — игра песочница с открытым миром, основанная на творчестве и исследованиях

Игроки строят космические корабли, космические станции, планетарные аванпосты различного размера и назначения, пилотируют корабли и путешествуют в космосе, чтобы исследовать планеты и собирать ресурсы для выживания. Благодаря творческому способу и режиму выживания, нет предела тому, что можно построить, использовать и исследовать. В Space Engineers реализован реалистичный физический движок, основанный на объемах: все в игре может быть собрано, разобрано, повреждено и уничтожено.

В игру можно играть как в одиночном, так и в многопользовательском режимах.

Пойдет ли Space Engineers на моем ПК?

Согласно нашим тестам, 42% людей могут запустить эту игру на своем ПК.
Показать последние тесты.

Проверьте параметры ПК для Space Engineers

Вы можете купить Space Engineers напрямую в Steam или на одном из маркетплейсов ниже. Обычно, игры на маркетплейсах дешевле, и вы можете сэкономить до 80%! Проверьте цены ниже:

  • 39434 games
  • 33881 games
  • 24374 games
  • 21081 games
  • 21049 games
  • 13086 games
  • 9674 games
  • 9220 games
  • 7588 games
  • 6422 games
  • 4524 games
  • 4522 games
  • 4510 games
  • 4437 games
  • 3973 games
  • 3739 games
  • 3458 games
  • 1520 games
  • 439 games
  • 198 games

Необходим 64-битный процессор и операционная система.

Встроить на сайт

Вы можете вставить таблицу требований выше на свой сайт или блог, скопировав адрес изображения ниже.

Минимальные требования Space Engineers на Windows подразумевают операционную систему Microsoft Windows 10 (latest SP). Ваш процессор должен быть как минимум Intel i5 @ 3.0 GHz or higher (or AMD equivalent). Минимальный размера оперативной памяти — 8 GB. Что касается видеокарты, то это должна быть как минимум Geforce 750 / Radeon R9 270X or higher, которая поддерживает Direct X Version 11. Вам так же необходимо иметь 25 GB свободного дискового пространства.

Если же вы рассматриваете рекомендуемые требования Space Engineers для Windows, то операционная система — Microsoft Windows 10 (latest SP). Рекомендуемый процессор — Intel Quad Core i7 @ 4.5 GHz or higher (or AMD equivalent) или более мощный аналог. Рекомендуемая оперативная память — 16 GB. А видео карта — Geforce 1070 GTX / Radeon RX Vega 56 or higher, причем с поддержкой Direct X Version 11.

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector