Ладно… Чувствуется, что никто кроме меня вас об этом не спросит, поэтому, придётся мне: хотели ли бы вы свою собственную избушку на курьих ножках? :-B
Не-не-не Баба-Яга может расслабиться: мы ни в коем разе не претендуем на её рабочее место — а всего лишь хотим приглядеться к её инженерному шедевру: довольно недурная так то штука: самый исторически первый пример шагохода, между прочим!
Чем же для нас может интересна эта небезызвестная изба: исключительно своими ходовыми качествами, возможностью «уверенно перемещаться по пересечённой местности» и доставлять полезные грузы, в лице одной не особо приятной бабки.
В общем, согласитесь, что ситуация вызывает некоторый интерес и желание обзавестись своим собственным шагоходом… ;-)
Обычно, когда говорят о шагающих роботах, подразумевается большая вычислительная мощь, масса датчиков, быстродействующих и мощных приводов — а с некоторого момента ещё и интеграция нейросетей, позволившие быстро объединить физическое устройство конкретного робота, предварительный захват движений человека, а также нейросетевую обработку реальной ситуации, с выбором нужного сценария движений в конкретной среде, благодаря чему, плавность и естественность движения последних поколений роботов оказывает на зрителя не просто сильное впечатление, а и даже, в некоторой степени, оторопь, заставляя сомневаться, и говорить самому себе — «нет, такого быть не может, это какая-то графика»:
К слову, я тут недавно копался, и нашёл официальный SDK для подобного типа роботов, с подробным описанием по установке и работе с ним, так что, если кому интересно и хочет поизучать, может его найти здесь, а вот тут можно найти официальный репозиторий с кодом, для обучения ходьбе.
Тем не менее, несмотря на привлекательность подобных последних поколений роботов, цена их малодоступна для простых рядовых энтузиастов…
Но один весьма интересный способ, как можно приобщиться к миру шагоходов и мы его сейчас рассмотрим, причём, он особо привлекателен как раз тем, что позволяет обойтись без задействования сложных аппаратно-программных комплексов, а, в случае все задействования их, как мне удалось выяснить, обойтись всего лишь обычной Arduino Nano!* :-D
*Понятно, что это совсем начальный вариант и лично я его чуть ли не сразу бы проапгрейдил, переведя на esp32 (беспроводные интерфейсы и удалённое управление это всё-таки сила, знаете ли!).
Считается, что основу шагающим машинам положили разработки русского математика Пафнутия Чебышева, чья разработка 1878 года произвела настоящий фурор на всемирной парижской выставке, так как в её основе впервые наглядно вращательное движение было преобразовано в поступательное шагающее, где само устройство состояло из 4, так называемых «лямда-механизмов»:
Как можно видеть, своё название «лямбда-механизм» получил из-за схожести с греческой буквой лямбда (λ).
Одним из основных недостатков подобного механизма считается относительно малый подъём ноги при ходьбе, а также, относительно малая длина шага.
Долгое время подобная конструкция удерживала пальму первенства, но, на переходе между 1980-х и началом 1990-х годов, с активным развитием робототехники, широким распространением компактных мощных персональных компьютеров и распространением относительно дешёвых микроконтроллеров, робототехника получила новое дыхание.
Следствием этого явилась потребность переработать старинную кинематику, чтобы начать двигаться в сторону более эффективных шагающих роботов — думается, что для инженеров почти всегда было мечтой создать шагающий механизм и в этот исторический период эта мечта стала воплощаться в реальность…
Видимо поэтому ответом на вызовы этого исторического момента и стала разработка в 1994 году Джо Кланном (Joe Klann) одноимённого «механизма Кланна», представлявшего с собой шарнирную конструкцию и предназначенную для имитации движения живых существ, где вращение кривошипа приводило в движение «ноги» роботизированного механизма:

По некоторым данным длина «шага» (то есть горизонтального участка движения) механизма Кланна примерно вплоть до половины длиннее, чем у механизма Чебышева. Кроме того, если посмотреть на траекторию движения «стопы» (на картинке ниже — зелёная траектория в самом низу), то, можно увидеть, что длинная горизонтальная траектория движения сменяется относительно высоким подъёмом ноги (это же можно увидеть и на анимированной картинке выше), — таким образом, можно сказать, что, в общем случае, роботы, построенные с использованием механизма Кланна обладают большей проходимостью на пересечённой местности:
Тем не менее, такой резкий подъём ноги вверх вызывает некоторые проблемы, а именно вертикальное раскачивание платформы.
Кроме того, из-за относительно малого количества ног, перемещение платформы происходит слишком рывкообразно в горизонтальной плоскости — проще говоря, платформа движется вперёд, совершая постоянные резкие рывки вперёд (это мы ещё увидим ниже).
С этим борются, изменяя точку крепления бедра или увеличивая число ног вплоть до 6-8-12, вместо начального минимального количества (4).
Тем не менее, примерно в те же годы, практически параллельно с механизмом Кланна, начал развиваться и альтернативный механизм, получивший название «механизма Янсена», по имени своего изобретателя Тео Янсена (Theo Jansen)— нидерландского физика и художника (закончил факультет прикладной физики, а потом стал художником-самоучкой), одним из самых известных творений которого является приводящийся в движение дуновением ветра довольно большой шагающий робот, инопланетного вида — «Береговая Птица» («Strandbeest»):
Занятно, что на своём сайте, говоря о периодах эволюции этого механизма, сам автор пишет, что в начальный период 1991-1993 года, во время разработки одной из самых первых модификаций робота, он сразу же применил новые технологии — оптимизировал длины сегментов ноги, с использованием генетического алгоритма и своего компьютера Atari.
Таким образом, наверное, можно сказать, что механизм Янсена — является первым в истории компьютерно-оптимизированным шагающим механизмом!
Основной отличительной способностью механизма Янсена от предыдущего механизма Кланна, является повышенная плавность «ходьбы», за счёт использования большего количества сегментов ноги:
Очень хорошо это видно в следующем, несколько шуточном (но всё равно весьма познавательном) видео, где сравниваются, в условиях виртуальной среды, шагоходы типа Кланна и Янсена, одновременно:
Тем не менее, если посмотреть на описываемую стопой подобной конструкции ноги траекторию, то, можно заметить (на картинке ниже), что она всё равно не идеально горизонтальная и представляет собой весьма пологую дугу, опирающуюся в крайних точках на поверхность опоры:
Результатом этого является малозаметная, но, всё же, относительно существенная вибрация, особенно при ходьбе по твёрдым, ровным поверхностям.
С другой стороны, учитывая, в какие годы разрабатывался этот механизм, ему можно простить вообще всё — можно сказать, что он и так оптимизирован насколько возможно, по тем меркам! :-)
Кстати, к слову, — на этой же картинке выше вы можете видеть оптимальные размеры сегментов для данного типа ноги…
Тем не менее, как мы видим, некоторая проблема всё равно сохранялась и, в какой-то момент (2008 год), одному из разработчиков компьютерных игр пришла в голову идея оптимизировать этот механизм, для чего он написал на С++ приложение, которое автоматически и очень быстро разрабатывало конструкции ноги типа Янсена, меняя длины сегментов, и заставляя разработанные конструкции соревноваться друг с другом в части способности к максимально горизонтальному движению в нижней части, скорости движения и минимальному использовании материала (то есть, чтобы ногу можно было создать в реальной жизни, используя минимальное количество строительных материалов).
Затем, у лучших вариантов автоматически отбирались «гены» (как он это называет), то есть, параметры, приведшие к улучшению, после чего примешивались к следующему поколению ног (генерация шла, наподобие эволюции живого существа, поколение за поколением), а также производились «генетические мутации» — чтобы попробовать найти неожиданные новые варианты.
В результате такого подхода и использования современного программного обеспечения, просчёт шёл очень быстро, как он сам говорит «на десятки поколений в секунду», а общая эволюция потребовала тысяч поколений, — результатом подобной работы явилась высокооптимизированная конструкция ноги, отличающаяся от конструкции Янсена — как по соотношению длин сегментов, так и из-за появления новой точки крепления и закруглённых «пальцев».
Ниже можно видеть пример, как выглядел просчёт, когда шла «эволюция»:
Всё это вместе позволило добиться практически идеального горизонтального движения, кроме того, устранив проскальзывание стопы во время нахождения в одном месте (в точке опоры).
Ниже можно видеть, как выглядит кинематика окончательного варианта, по сравнению с классическим механизмом Янсена:
И тут, очень важный момент, за который перед автором этой разработки не грех снять шляпу: он выложил в общественный доступ, сделав общественным достоянием, последнюю, самую оптимальную просчитанную версию ноги, приведя все её размеры:
Таким образом, любой желающий, может использовать эти размеры для создания своей версии шагающего устройства!
А теперь, самый интересный вопрос: а зачем это всё было нужно? :-)
Дело в том, что у автора последней разработки был далеко не теоретический, но и вполне себе практический интерес: используя результаты расчётов, он построил довольно потрясную вещь — радиоуправляемый журнальный столик-робот, который произвёл настоящий фурор в сообществе самодельщиков!
Как можно видеть, плавность движения столика вне всяких похвал: при его перемещении, установленная на нём стеклянная посуда держится очень устойчиво:
Аппаратно-программную часть для проведения в движении столика он отдельно подробно не поясняет, но на этот счёт имеется следующая картинка (можно кликнуть, для увеличения):
Как можно видеть, всё достаточно просто: микроконтроллер (довольно старый и простой — Arduino Nano), два драйвера двигателей, два отдельных двигателя — каждый блок ног приводится в движение отдельным двигателем (принцип поворота примерно похожий, как у гусеничной техники), а также литий-полимерные аккумуляторы.
Таким образом, собрать подобную схему может практически любой, только я сам собирал бы уже, конечно, не на Arduino Nano, а на esp32, где код для беспроводного управления можно было бы взять здесь или здесь, соответствующим образом оптимизировав под себя (добавить в интерфейс кнопки вперёд-назад-влево-вправо и т.д.) и доделав управление двигателями, где код для управления двигателями можно посмотреть здесь.
Тут нельзя не отметить ещё и такой важный момент, где автор этой разработки отмечает, что несмотря на то, что он выложил в общественный доступ размеры ноги, которые каждый может использовать в своих проектах — он не разрешает использование дизайна вот этого конкретного журнального столика и такое использование он будет считать нарушением интеллектуальной собственности.
Поэтому, включаем фантазию, и придумываем свой собственный столик, своей собственной конструкции…:-)
Насколько можно судить, идея довольно сильно «зашла» многим, что привело к возникновению множества модификаций, в том числе, с «зачатками интеллекта» :-D (в данном конкретном случае это шутка, но в целом, почему бы и нет?):
Таким образом, мы видим, что здесь имеется просто бесконечный простор для доработок и видоизменений! Например, я сразу подумал, что этот стол просто должен быть снабжён робо-рукой и компьютерным зрением — тогда, на его базе можно вполне себе «запилить» даже своеобразного помощника-ассистента!
Или, ещё более интересный вариант: сделать всю эту конструкцию из металла, допустим, в виде квадрата — чтобы обладала высокой устойчивостью и не могла переворачиваться, установить посередине кресло(ла) с джойстиком и сделать аппарат для покатушек по пересечённой местности, оснастив бензиновым генератором, питающим электромоторы!
На мой взгляд, это был бы потрясный аттракцион, который потенциально может привлечь большое количество желающих — ибо футуристично до упора: кататься на шагающих роботах по лесам, холмам…;-)
Таким образом, мы видим, что даже у такого относительно простого устройства имеется большой потенциал для применений, для чего вовсе не обязательно иметь большие бюджеты или «сверхвысокие знания на острие технологий» — по сути, достаточно только энтузиазма и, может быть, чуть чуть желания? ;-)
Размещайте облачную инфраструктуру и масштабируйте сервисы с надежным облачным провайдером Beget.
Эксклюзивно для читателей Хабра мы даем бонус 10% при первом пополнении.
Автор: cnet


