Space engineers как сделать гусеницы

Обновлено: 04.07.2024

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

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


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

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

image

Вроде такого

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

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

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

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

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


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

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

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


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

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

image

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

Движение

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

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

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

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

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

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


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


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

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


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

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

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

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

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

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

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

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

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

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

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

image

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

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

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


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


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


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

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

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


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

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


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


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

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

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

Для тех, кто хотел научиться делать шагоходы

Скорее всего все уже видели это видео(имею в виду в сообществе), но все равно надо добавить, а то сообщество какое-то пустое.

Дубликаты не найдены

Не знал, что тут еще и шагоходы можно делать


Space engineers как сделать гусеницы



This is the good stuff. This is where the party's at. Get this pack, and you'll have everything that's great about the current existing Space Engineers Workshop mods. Suggestions are welcome!


Now updated for research trees and all the other cool new stuff.

Oversized feet no more. This antenna is 1 block narrower than the stock antenna, which could make putting an antenna on your ship a lot easier. (I certainly needed it.)


Brought to you by: KillerCorp

Here at Killercorp, we strive to supply all the engineers out there with everything they will possibly need for their creations and for their Production and transfer systems. the Conveyor Expansion [ModPack] contains all th.


[DEPRECATED]
This mod is outdated and no longer receiving support. Users may experience compatibility issues when used as-is or alongside other workshop items.

Super update:
Now comes with a large ship version! A brand new dual.


[DEPRECATED]
This mod is outdated and no longer receiving support. Users may experience compatibility issues when used as-is or alongside other workshop items.

Small ship: 8.8cm RaK 11
Large ship: 25cm RaK 6 l/40


[DEPRECATED]
This mod is outdated and no longer receiving support. Users may experience compatibility issues when used as-is or alongside other workshop items.

CSD Bomb Launcher

Fully paintable custom model, with constructi.


[DEPRECATED]
This mod is outdated and no longer receiving support. Users may experience compatibility issues when used as-is or alongside other workshop items.

Fully paintable custom model, with constructio.


Description: six block complect containing: docking ring segment and segment corner, docking ring clamp and clamp corner, and two variants of airlock. Docking clamp is functioning as a merge block, and consists out or two blocks: Docking Clamp Part .


This Mod currently contains:

Bed (Double and Single) - Passenger Seat
Side Table (Centered, Left and Right aligned).


(DX11) SuperCaps - When your life requires that special kind of power


These supercaps are an alternative to batteries for when you need high bursts at the cost of capacity.

The values have been equally balanced across small and large ships, unlike it is the case with every other vanilla item keen released. That means tha.

Обучение Unreal Engine 4 | RTX ON. Часть 1. Введение, Глобальное освещение, Ambient Occlusion

Сегодня запустил новую серию уроков по Unreal Engine 4 под название RTX ON!

В вводном уроке по по трассировки лучей на Unreal Engine 4 мы изучим применение рейтрейсинга, узнаем как включить его на движке и рассмотрим применение глобального освещение с каждым типом источника света.

Под конец поглядим как работает трассировка Ambient Occlusion.


Space engineers как сделать гусеницы

Александр Хет


Александр Хет ответил Джону

Джон, ну так Tracks можно перевести и как "следы"
Вот когда реально затизерят гусеницы, тогда и посмотрим.
А пока тизерили какие-то полувсратые колеса, у которых похожий след.

Леха Смирнов

Александр, ну учитывая что колеса уже тизерили. Мб действительно гусли сделали, тем более это укладывается в "планетное" обновление

Юрий Попов

Александр Николаев

Юрий, мне всё таки кажется гусеницы будут, т.к. сначала они за тизерили фары, через несколько дней колёса, не вижу смысла ещё через несколько дней снова тизерить колёса. Возможно добавят новые блоки как в моде на гусеницы, только с анимацией. Последние 3 - 5 обновлений Кины так и делали, что вводили блоки из модов.

Юрий Попов

Александр, показали то что колеса оставляют следы.

Пока нам не затизерят гусеницы, гадать не стоит ;)

Александр Николаев

Юрий, логично, об этом я даже не подумал зная Кинов скорей всего так и будет - колёса и персонажи оставляют следы, наконец-то внесли в игру то что все так ждали Вот с коллизией блоков огромное им спасибо)

Insane Engineer

Александр, Там и подпись:"Чтобы знать настоящее, надо знать прошлое".

Большой Гайд - Натурально Порченый вид тканей

Всем деятелям-костюмерам и косплеерам привет! С вами косплеер Валара Атран, и сегодня я хочу поговорить как грамотно испортить тканевый костюм. Эта задача ничуть не проще, чем кажется.

Настолько не проще, что стоит отдельной статьи.

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

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

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

Большой Гайд - Натурально Порченый вид тканей Косплей, Туториал, Обучение, Гайд, Костюм, Руководство, Рукоделие с процессом, Длиннопост

Примечание 1: данное руководство относится только лишь к натуральным волокнам - лён, хлопок, шерсть и их смеси. Ни одна синтетика не поддается самым важным методам в пункте 2, и не передаст реалистичность. Ваш костюм рискует так и остаться жертвой блендера. Я никогда не использую синтетику.

Примечание 2: Пробежки по болотам и зарослям для естественности не вариант.

1. Варение тканей 101 (не обязательный шаг, но мой стандартный. Можете смело пролистать к пункту 2)

"В смысле варить? Зачем?"

В 90% процентов случаев я делаю именно так, желаемый оттенок найти очень сложно. Ручное крашение позволяет регулировать цвет, переходы, интенсивность оттенка на той или иной области, а так же придавать эффект "выгорания".

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

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

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

Большой Гайд - Натурально Порченый вид тканей Косплей, Туториал, Обучение, Гайд, Костюм, Руководство, Рукоделие с процессом, Длиннопост

В среднем, варение и помешивание длится до 30 минут, но время варки прямо пропорционально получаемому оттенку. До и после - наглядно.

Большой Гайд - Натурально Порченый вид тканей Косплей, Туториал, Обучение, Гайд, Костюм, Руководство, Рукоделие с процессом, Длиннопост

После окраса, ткань нужно отжать и постирать в холодной воде. Я это делаю в машинке.

2. Порча полотна

Допустим, теперь у вас в руках сшитые плащ или юбка, готовые к обработке. Очень часто это отчаянный шаг - "испортить". По моему скромному мнению, это необходимо, если это не конфетно-ягодный аниме-костюм. Подобное я исключаю из поля зрения в рамках статьи.

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

Большой Гайд - Натурально Порченый вид тканей Косплей, Туториал, Обучение, Гайд, Костюм, Руководство, Рукоделие с процессом, Длиннопост

Разрезали, круто! Что дальше? Кто-то скажет - и так сойдет. Именно этот результат я чаще всего и наблюдаю.

В июне 2019го я встретилась с участниками гильдии костюмеров в Ванкувере, которые работали над Акваменом - Джошуа Элиссон и Ри Кларк. Среди их ворчания касательно плохой обработки костюмов, мне хорошо запомнилась цитата "В итоге видок, как будто костюм побывал в блендере". И я полностью с ними согласна, и намерена просветить начинающих костюмеров на этот счет.

Но что тогда делать? Трепать руками?

Мой ответ - зависит от результата.

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

Большой Гайд - Натурально Порченый вид тканей Косплей, Туториал, Обучение, Гайд, Костюм, Руководство, Рукоделие с процессом, Длиннопост

Как удалось без особых усилий растрепать всю хлопковую юбку за 20 минут?

После того как разрезаны края, прополоскайте изделие в стиральной машинке.

Степень растрепанности напрямую зависит от плотности волокон.

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

Большой Гайд - Натурально Порченый вид тканей Косплей, Туториал, Обучение, Гайд, Костюм, Руководство, Рукоделие с процессом, Длиннопост

3. Нужно больше грязи

Готово, вы успешно порвали ваш любимый наряд. Давайте сделаем более правдоподобный вид.

Есть различные варианты загрязнения, в зависимости от нужды.

Некоторые из этих способов подходят не только для тканей, но и для доспех. Натуральная грязь, если что, тоже вариант

a) Точечная грязь - сначала намочите вашу тряпицу. Затем, разбросайте по ней растворимые кофейные или чайные гранулы, или же бумажный пепел. После высыхания, кофе даст подобие ржавчины, чайные гранулы - натуральный оттенок и переход разводов, а щедро посыпанный бумажный пепел прилипнет и станет вот неожиданность пепельно-песчаным или черным. Пепел я люблю за "пушной" объемный вид, который не так-то просто стирается.

б) Большая площадь загрязнения - вы можете прибегнуть к способам пункта а), но есть два иных взаимозаменяемых метода. Цвет грязи/песка выбирайте самостоятельно - на все ваша воля.

Первый, самый простой способ, это обратиться к аэрографу.

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

На одном из моих костюмов 2015го, грязь наносилась именно мочалками:

Большой Гайд - Натурально Порченый вид тканей Косплей, Туториал, Обучение, Гайд, Костюм, Руководство, Рукоделие с процессом, Длиннопост

Мое мнение - методы вручную зачастую выглядят гораздо натуральнее, и мне очень нравится этот результат.

Но это не значит что аэрограф стоит списывать со счетов. В плавности переходов ему нет равных:

Большой Гайд - Натурально Порченый вид тканей Косплей, Туториал, Обучение, Гайд, Костюм, Руководство, Рукоделие с процессом, Длиннопост

Большой Гайд - Натурально Порченый вид тканей Косплей, Туториал, Обучение, Гайд, Костюм, Руководство, Рукоделие с процессом, Длиннопост

В случае с грязью и приданием "старости" нет нужды поливать краской дочерна. Советую покрывать постепенно и смотреть со стороны, если вы не знаете когда стоит остановиться.

в) Следы огня - довольно распространенный эффект, но редко применяемый. Первое - это опасно и сложно поддается контролю. Никогда не применяйте на шерсти и синтетике! Это неконтролируемо и бессмысленно - они плавятся, а не горят.

Если решились подпалить лён или хлопок, убедитесь что это происходит на улице или в ванной, где рукой подать до воды. Процесс сугубо под вашим контролем.

Самый безопасный вариант - дочерна покрасить края разрезанных дырок и лоскутов. При этом градиент должен сохраняться. Подставьте стекло возле свечи и вы поймете почему плавный переход черноты так важен.

г) Кровь, подтёки и брызги - мой самый любимый вид загрязнения. Всё дело в том, что следует обмокнуть большую кисть в разжиженный краситель или акрил и фигачить кистью над костюмом что есть силы!

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

Подтёки любого происхождения лучше делать на подвешенном изделии. Позвольте гравитации вам помочь.

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

д) Слизь - если бы это касалось доспех или оружия, я бы предложила крашеный эпоксид или УФ-смолу. В случае с одеждой это не столь просто. Слизь не должна утяжелять костюм так, как это делает эпоксид. На ощупь он окажется деревянным.

Моё предложение - крашеный неразбавленный прозрачный клей типа ПВА. Наносить по принципу подтёков, так как физически, густота не позволяет формировать брызги.

Вешайте свой костюм сохнуть, и удачи в начинаниях!

Статья создавалась сугубо в рамках моего опыта. Если вы размещаете материал еще где-то, пожалуйста, указывайте автора. Я делаю этот материал бесплатным и доступным, от вас прошу лишь упоминание авторства :)

Читайте также: