Ectognathus, робот-хексапод на микро-сервах своими руками

в 20:45, , рубрики: diy или сделай сам, hexapod, solidworks, Программинг микроконтроллеров, робототехника, сервопривод, хексапод, электроника, метки: , , , , ,

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

Ectognathus, робот хексапод на микро сервах своими руками

Уже довольно давно я планировал собрать робота. Если быть точнее, я выбирал между несколькими вариантами – гусеничных и колесных роботов я отмел сразу, т.к. это довольно тривиальное решение, и выбор был, в основном, между квадрокоптером и хексаподом.
Меня всегда привлекали микро-квадракоптеры, но что меня в них всегда расстраивало – они очень недолго летали от аккумулятора. Как-то раз я вспомнил о том, что у меня валяются три микро-сервопривода, и за день собрал вот такого мелкого робота:

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

Начало разработки

Изначально мы планировали собрать робота с двумя сервами на ногу. Это снизило бы цену (12 сервоприводов против 18!) и энергопотребление. В конструкциях подобного рода один сервопривод управляет поворотом ноги в горизонтальной плоскости, второй – ее подъемом. Нога, как и в трехсервовом варианте состоит из двух частей, но соединены они рамкой, а не дополнительным сервоприводом. Таким образом, в крайних положениях нога может быть либо «поднята и прижата к телу», либо «опущена на поверхность и отставлена», в отличие от трехсервового варианта.
Для начала нужно было прикинуть конструкцию ноги, для чего я решил воспользоваться Google SketchUp 3D. На этот момент у меня на компьютере не было установлено ни одного машиностроительного сапра, и даже ни одной программы для 3D моделирования, поэтому я решил скачать бесплатную, и, по словам многих, простую программу от гугла. Итоговую модель планировалось, разумеется, делать в SolidWorks.
Забегая вперед, выскажу свое субъективное мнение. Даже для быстрых прикидок такого рода выбирайте SolidWorks. После того как я перешел на него, я понял что он удобнее в любом случае. Хотя бы за счет удобных привязок, иерархии моделей и т.п. Не говоря уж о том, что вам не придется делать двойную работу и перечерчивать модели из вашей 3Д проги в солид. У гугловской проги только три преимущества – бесплатность, вес (30 метров) и огромный репозиторий моделей, в который юзеры закачивают свои творения, так что, например, сервопривод там уже был.
Итак, начал я с гугл-скетча и начертил там вот такую прикидочную конструкцию:

Ectognathus, робот хексапод на микро сервах своими руками

После обдумывания, перечерчивания и снова обдумывания, она превратилась сначала в это:

image

а потом в это:

Ectognathus, робот хексапод на микро сервах своими руками

Все детали проектировались для фрезерования из алюминия, поэтому они должны были иметь либо плоскую форму, либо получаться в процессе гибки. Конечно, это по-прежнему был всего лишь скетч, да и не самый удачный вариант исполнения, но решено было приостановиться на этом и выбрать сервоприводы. Основными критериями стали размер приводов и их скорость. В основном на e-bay представлены стандартные сервоприводы и микросервы. У стандартных сервоприводов здоровый разброс параметров и цен, самое дорогое что я видел – сервопривод за 300 баксов штука, момент которого был около 60 кг*см.
Микросервы в основном имели момент 1-2 кг*см и скорость около 0.1. Когда я только начал проектировать, я выбрал вот этот сервопривод, скорость которого была почти в два раза выше чем у прочих микросервов, при таком же моменте. Но после того как я запросил чертежи, оказалось, что он совсем даже и не микро, а что-то среднее между микро и стандартным, и в итоге я выбрал те же самые сервоприводы, на которых сделал своего первого трехсервового робота, MG90S, которые стоят в три раза дешевле прошлых.
Также, чтобы дважды не заказывать, я выбрал в том же магазине аккумуляторы для робота. Когда я замерил ток, потребляемый трехсервовым роботом, я, честно говоря, был удивлен. По моим прикидкам он должен был потреблять около 300 мА, в реальности же значение тока скакало от 500 до 700 мА, то есть хексапод с 18 приводами должен был бы потреблять в шесть раз больше, около 4.5А при 6В питания. Так как ток получился немаленький, я решил взять какой-нибудь литий-полимерный аккумулятор подходящего размера. К сожалению, почти все литий-полимерные аккумуляторы большой емкости были очень длинными (8-12 см!), из-за чего пришлось бы делать туловище робота больше, чем я рассчитывал, но, к счастью, среди них нашелся вот такой.
Этот аккумулятор оказался не только меньше в длину, но еще и очень узким (штангенциркуль показал толщину 17 мм). Задавшись максимальным потреблением в 5А при 6В, то есть в 30 Вт, я решил поставить на робота два аккумулятора, что дало в сумме 2.4АЧ при 11.1В, то есть 26.64 ВтЧ.
Значит даже при максимальном потреблении робот должен жить от них 53 минуты.

Так как сервы оказались такими дешевыми, решено было изменить конструкцию и сделать робота с тремя сервами на ногу. После этого в гугл-скетче я прикинул конструкцию робота, и вот что получилось:

Ectognathus, робот хексапод на микро сервах своими руками
Робот в окружении своих деталей.

В итоге я e-bay я заказал 20 сервоприводов MG90S, два аккумулятора и зарядное устройство для них. Весь заказ обошелся мне практически ровно в 200 баксов. После этого я наконец то установил солид и мы с другом начали настоящее проектирование.

Проектирование

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

При этом возникали следующие проблемы:

  1. MG90S, как и большинство сервоприводов, имеют ось только с одной стороны. Крепить их за одну ось не хотелось бы, так как это может создать нежелательные деформации.
  2. Пластиковые «уши» для крепления сервы также находятся только сверху, поэтому одной скобой было не обойтись.

Исходя из этого, первая конструкция держателя для двух сервоприводов вылилась в довольно очевидное решение, изображенное ниже:

Ectognathus, робот хексапод на микро сервах своими руками

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

Ectognathus, робот хексапод на микро сервах своими руками

После чего выбрать в меню Insert — Sheet Metal — Convert to sheet metal, указать грань, относительно которой будем гнуть, толщину листа и радиус гибки:

Ectognathus, робот хексапод на микро сервах своими руками

После нажатия OK получаем итоговую деталь, разница видна невооруженным глазом:

Ectognathus, робот хексапод на микро сервах своими руками

В дереве операций слева, помимо собственно гибок, появилась еще одна, неактивная – Flat-Pattern. Активируя ее, мы получаем искомый контур для фрезеровки:

Ectognathus, робот хексапод на микро сервах своими руками

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

Ectognathus, робот хексапод на микро сервах своими руками

Эта модель позволила наконец измерить массу робота. Результаты получились следующие:
18 сервоприводов по 13.5 грамм каждый = 243 грамма, округляем до 250 г.
Два аккумулятора по 75 грамм = 150 г
Конструкция (без вырезов в туловище), выполненная из листового алюминия 2 мм толщиной = 400 г.
Таким образом, суммарный вес робота составил 800 грамм. Исходя из этого значения и предельного момента сервопривода (2.2 кг*см), а также долгого просмотра различных видео на youtube, посвященных хексаподам, были выбраны длины деталей ног (те длины, что были использованы в модели, изображенной выше, были взяты лишь временно).
В результате, вертикальная часть ноги, «голень», решено было сделать 110 мм, горизонтальную, «бедро» — 60 мм, что давало отношение близкое 1:2, которое обычно и наблюдается у хексаподов, и момент 6*0.8 = 4.8 кг*см. Один сервопривод, разумеется, не в состоянии поднять такой вес, но у нас целых шесть ног, три из которых постоянно поддерживают туловище, поэтому предельный момент, приходящийся на один сервопривод можно принять равным 4.8 / 3 = 1.6 кг*см. На самом деле, так как в подъеме ноги участвуют два привода, реальный момент оказывается еще примерно в два раза меньше, то есть около 600 г*см. При желании, можно было вычислить точные значения при помощи сапра, дополнив модель нагрузками, но я решил остановиться на прикидочном значении, так как приводы обещали сильно его превосходить.

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

Ectognathus, робот хексапод на микро сервах своими руками
Ectognathus, робот хексапод на микро сервах своими руками

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

Ectognathus, робот хексапод на микро сервах своими руками

Наконец, итогом всей работы стала новая модель робота, которую я представляю вашему вниманию:

Ectognathus, робот хексапод на микро сервах своими руками

Тогда же робот получил имя Ectognathus (от insecta ectognatha, одного из названия насекомых, также величаемых hexapoda, шестиногие), за которое спасибо еще одному моему другу.
После того, как модель была завершена, достаточно было скинуть солидворксовские файлы в любую контору, занимающуюся фрезеровкой и получить желаемые детали. А так как все они в итоговом варианте были плоскими, то никаких дополнительных операций не требовалось и сразу после фрезеровки можно было уже свинчивать конструкцию, предварительно закупившись винтами, подшипниками, стоечками и гаечками.
На этом проектирование закончилось и началось…

Производство

Так как эта статья уже получилась довольно объемной, подробности перехода от модели к реальному устройству и сопутствующие проблемы и косяки (коих оказалось весьма немало!) я опишу в следующей статье.

Автор: Ariman


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js