Разработка hexapod с нуля (часть 1) — проектирование


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

Вдохновившись картинками и видео решил опробовать свои силы. Разработка корпуса, электроники и программы будет вестись с 0.

Этапы разработки:
Часть 1 — проектирование
Часть 2 — сборка
Часть 3 — кинематика
Часть 4 — математика траекторий и последовательности
Часть 5 — электроника

Разработка 3D модели корпуса


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

0. Arduno Due (писать будем в Atmel Studio на чистом C без Arduino IDE, заодно расскажу как подключить отладчик к этой плате) — 1шт;

1. HLK-RM04 (UART to WIFI converter) — прозрачный мост с UART в WIFI — 2шт;

2. Сервоприводы MG996R (из китая, как же без него) — 18шт;

3. LM317D2T-TR для питания сервоприводов + мелкая рассыпуха в виде резисторов и конденсаторов;

4. САПР «КОМПАС 3D»;

5. Фанера 3мм в качестве материала для корпуса (дёшево и пахнет вкусно);

6. Возможность заказать лазерную резку;

7. Время. Много времени.

В самом начале пути встал вопрос «А какой же корпус я хочу?». В процессе поиска ответа на данный вопрос набрел на несколько готовых решений. Больше всего понравились PhantomX и A-Pod. Посмотрев на корпуса, решил уже было начать разработку, но нет. Появилась следующая проблема: так как этих роботов в глаза я не видел и в руках не держал, то я имел плохое представление об их габаритах. В поиске решения этой проблемы я наткнулся на одну из статей на хабре. Автор статьи tomnewmann любезно поделился со мной чертежами своего проекта, за что ему большое спасибо.

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

Coxa


Спустя несколько часов размышлений появилась первая модель «Coxa» (так принято обозначать узел, соединяющий ногу с корпусом). Узел попытался сделать максимально компактным. Сервопривод будет полностью находится внутри, соответственно нужно не забыть (что я первый раз и сделал) про отверстие для вывода проводов.



Деталь 1 — Ось, на которую будет крепиться Femur (вторая часть ноги). Собрана из винта М3x15, шайбы и гайки М3
Деталь 2 — Винт М3x20
Деталь 3 — Стойка для печатных плат M3x20
Деталь 4 — Являются своего рода фиксаторами сервопривода, для предотвращения его перемещения по вертикали.

Высоту (А) данного узла необходимо делать такой, чтобы в внутрь смог уместиться сервопривод, который будет стоять на раме.


Femur


Далее нужно сделать «Femur». Деталь оказалась самой простой из всех и думаю не нуждается в комментариях.


Деталь 1 — Винт М3x20
Деталь 2 — Пластиковая втулка 3x10 (длинную стойку я не нашел, пришлось искать другие пути решения)
Деталь 3 — Стойка для печатных плат M3x30


Tibia


Следующая деталь — «Tibia», последняя часть ноги. С ней проблем быть не должно и её длина зависит от высоты, на которую планируется понимать робота. У меня она составляет 130мм от оси сервопривода, больше делать не стал, так как с увеличением длины увеличивается и нагрузка на сервоприводы, особенно на сервопривод в «Coxa». На второй стороне сделал на второе отверстие под ось, чтобы можно было перевернуть сервопривод и уменьшить длину рычага, если вдруг сервоприводам будет тяжело.



Рама


Далее на очереди идет рама — самая большая часть. Именно она определяет конфигурацию ног будущего робота. Существует несколько вариантов расположения ног, но я остановился на варианте буквой Ж (при взгляде сверху похож).

На первых этапах проектирования возник вопрос: «А на каком расстоянии должны находится ноги друг от друга?». В поисках ответа на этой вопрос я понял, что каких-либо рекомендаций по этому поводу нет. Изучая чужие проекты и варианты походок сделал вывод о том, что расстояние подбирается исходя из желаемого максимального угла поворота конечности. Чем больше расстояние между ногами тем больший угол могут достичь конечности во время ходьбы.

В решении данного вопроса помогли чертежи tomnewmann, из которых я и взял расстояние между ног, так как габариты роботов были довольно похожи (мой немного меньше). Спустя несколько часов родились верхняя и нижняя части рамы:



В нижней части рамы сделан вырез под АКБ и его крепления. Кстати крепиться он будет на липучку, которые используются на квадриках при креплении АКБ к ним. Рама получилось довольно большой. Посидев еще 1 вечер и сделав промежуточные детали в виде опор между частями, я решил, что пора сделать сборку рамы с установленными сервоприводами. Результат не заставил себя долго ждать:



Так как все необходимые компоненты у нас уже есть, то можно сделать полную сборку корпуса:



В центре корпуса между пластинами планировался располагаться блок питания для сервоприводов, снизу 3S Li-po аккумулятор, а сверху плата управления (Arduino Due). В соответствии с этим я изменил сборку рамы:


Плата сверху это модель Arduino Mega c каким-то шилдом. Используется просто для вида и имеет аналогичные размеры, как и Due.

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

Решением первой задачей являлись крышки сверху и снизу, закрывающие АКБ и управляющую электронику. Это единственные детали, которые будут собраны при помощи клея. Спустя вечер родилась модель нижней крышки.



Если с первой задачей проблем не было, то со второй задачей возникли трудности на 2 дня. Да, именно столько времени у меня заняло, чтобы просто придумать ему имя. Случайно вспомнив фильм «Терминатор» решил назвать его «Skynet» и вырезать имя на верхней крышке. Так же добавил вырезы для HC-SR04.



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



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

P.S.


  1. Чертежи: github.com/NeoProg2013/Skynet_hexapod.git
  2. Буду рад любой критике и готов ответить на любые вопросы в рамках данного материала.
Поделиться публикацией

Похожие публикации

AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 45

    +3
    На противоположной оси (винт М3x15) от выходного вала сервомотора желательно использовать подшипник, стоят они не дорого, а люфтов удасться избежать. Т.к 3-х звенная нога, то без подшипников последнее звено может порядочно гулять суммируя все люфты.

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

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

      На счет ИМХО согласен, нечего революционного в нем нет. У меня такой подход к саморазвитию, т.е. я беру проект, в котором я мало разбираюсь и в процессе разработки закрываются пробелы в знаниях.

      Пока, что планирую хотя бы научить его обходить\отодвигать препятствия на ровной поверхности, ну и трансляцию видео по воздуху.
        +3
        Пока, что планирую хотя бы научить его обходить\отодвигать препятствия на ровной поверхности, ну и трансляцию видео по воздуху.
        Лучше сразу заложить Raspberry Pi 3 + 2 шилда для сервомоторов. В ардуино будет не развернуться, raspberry — это python + wi-fi + RPi камера и огромное количество библиотек для питона (openCV, нейросети и т.д.). Для такого проекта самое то, потому как в процессе развития хотелки гарантировано вырастут, поэтому лучше сразу заложить возможность развития проекта. Основная работа будет в программной части, ардуины будет мало, а УЗ датчик один из самых примитивных и «глючных».
          0
          Готовые нейросети да, это очень круто. Спасибо за совет, нужно будет подумать. С Pi ни разу не работал.

          а УЗ датчик один из самых примитивных и «глючных»

          А можете посоветовать более нормальный аналог? Я знаю ИК датчики дистанции, но там тоже свои нюансы.
            +1
            Да по большему счету он вообще в данном проекте лишний, намучаетесь с ним. Платформа будет сильно наклоняться в процессе движения и датчик будет «хватать» пол + свои глюки. Достаточно ограничится камерой и управлением движением с ноута. Камера + OpenCV можно реализовать движение по линии. Если очень хочется в дистанцию то для помещения пойдет ИК GP2Y0A02YK (на улице будет ловить ложние срабатывания от солнца) Данных датчиков надо будет ставить несколько для объезда препятствий, по аналогии с парктроником. Так что я бы на дальномеры не закладывался, СТЗ куда интереснее.
              0

              Спасибо. На счет управления движением с компа хорошая идея.

                0
                Платформа будет сильно наклоняться в процессе движения и датчик будет «хватать» пол + свои глюки.

                Тогда уж две камеры, карта глубины и SLAM, чтобы наваерняка. Тут, конечно, без Raspbery не обойтись (правда, не знаю, хватит ли ее мощностей). USB-вебкамеры могут быть слишком большие для маленького аппарата и медленные, можно попробовать csi-камеры.

                0
                Сейчас появились очень прикольные ИК датчики time-of-fly, например VL53L1X.
                  0
                  Да, датчики крутые. Был бы рад ими завладеть)), но стоят они конечно прилично.
                +1
                Тогда уж Pi Zero — вес, потребление лучше чем у Pi3, а по сравнению с ардуиной — оба как небо и земля
                  0
                  Есть Pi Zero W, с WiFi на борту))).
            +1
            Использовать как ось резьбовую часть винта — моветон, потому что поверхности трения почти и нет в начале, а потом пойдет износ или отверстия витками резьбы, или самих витков. По уму та часть винта должна быть без резьбы, длиной в толщину фанеры и чуть большего диаметра. А совсем по уму — отверстия в фанере под оси втулить, иначе они быстро превратятся в дырки )))
              0

              Да верно. Проще всего маленькие подшипники вставить, что я скорее всего и сделаю

              +4
              Автору для КДПВ…


              Недавно пересматривал «Прибытие», поэтому слово «гексапод» сразу ассоциировалось...
                0

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

                  +1
                  Да, Вы правы, гептаподы. Беру свое предложение обратно.
                0
                А не лучше использовать дюраль или листовой пластик типа полистирола? Тонкая фанера не всегда идеально плоская, может впитывать влагу и деформироваться (ее надо лакировать), отверстия могут расшириться в процессе эксплуатации (если небольшой перекос оси). Обработка не сильно сложнее.
                  0

                  Возможно лучше, но для отладки дешевле всего фанера. В конечном варианте думаю перейти на пластик. Фанера временное решение

                  0
                  Посоветую резьбовые заклёпки.
                  Очень удобная штука.
                  листовой пластик типа полистирола

                  И порежут его легко. Куча контор. Можно даже взять листовой поликарбонат.
                  Прочный очень.
                    0

                    Глянул резьбовые заклепки и не очень понял как это должно быть. Вы предлагаете вставить заклепку во вторую часть ноги?

                    0
                    Я правильно понимаю, что вы собрались питать всю конструкцию от 3S1P лития, а напряжение питания серв (5В, да?) будете брать с линейного стабилизатора LM317?

                    Тогда у меня вопрос. Где алюминиевый радиатор размером с робота? :)
                      0
                      Там всё есть)) На картинке с электроникой в центре стоит плата питания, а на ней радиатор и вентилятор. Кстати во время работы LMки не сильно греются. Слегка теплые.

                      И да, там каждый сервопривод питается от отдельной LM.
                        +1
                        Извините, не удержался.
                        первая реакция


                        Почему именно линейные стабилизаторы? Вы, надеюсь, понимаете, что тем самым обогреваете вселенную?
                          0
                          Хах, да я понимаю не самое лучшее решение, но одно из самых простых и дешевых. Пока, что имею мало опыта в разработке импульсных БП, а брать готовые не интересно.

                          При том зима скоро, дополнительный обогрев не помешает))
                            0
                            Я уже боюсь писать статью про разработку электроники. Убьют)))
                              0
                              Если будете питать сервы с LMок, то да, убьют. И правильно сделают.
                              0
                              Пока, что имею мало опыта в разработке импульсных БП, а брать готовые не интересно.
                              Зато дешево, надежно и практично (с) У вас работы по ПО будет вагон и маленькая тележка, делать ответвления на разработку очередного велосипеда импульсного БП — это бесполезная трата времени, есть шанс не дойти до финала. А как уже сказали выше линейниками греть атмосферу, через силовое питание серв… точно заклюют.
                            +1
                            Безумец вы. И злостный растратчик электрической энергии! :D
                            Купите на али мелкие dc-dc 6-24В — 5В двух/трехамперные и будет вам счастье. По доллару штука, блин.
                              0
                              Да, можно было купить, но хочется самому собрать. Возможно когда-нибудь и перейду на импульсные, на каком-нибудь этапе Х — «Оптимизация времени работы». Да и дома линейных валяется много, решил употребить.
                                +1
                                Это не только время работы. Ваши 18 серв под мех нагрузной возьмут столько тока, что лмки будут плавиться. Возьмите сначала готовый DCDC, а когда все заработает, переходите на самопал.
                                  0
                                  Я делал питание из того, что дома валяется. Мощного DC-DC у меня, к сожалению, не нашлось. Я понимаю, что DC-DC это верный вариант, но для начала и LMки пусть погреют.

                                  Плату питания сервоприводов я тестировал на нагрев и результаты вполне хорошие. Руку не обжигают при работе. Сильно нагреваются при клине, когда идут максимальные токи, вплоть до срабатывания защиты LM.

                                  Цифры привести не могу, рука не показывает температуру. В будущих частях приведу конкретные цифры для LMок, если к этому времени не перейду на DC-DC.
                        0
                        ардуиню в свободное время, буду рад если поделитесь чертежами.
                          0
                          Скинул ссылку в личку
                            0
                            Поблагодарил в личке)
                          0
                          Классная задумка. Могу вырезать тебе все детали из металла. Бесплатно. Если нужно напиши в личку.
                            0
                            Спасибо за предложение, но под металл нужны другие чертежи. Тут все завязано на толщине материала, а корпус из 3мм металла (даже алюминия) думаю будет слишком тяжелым. Если и использовать металл, то только в релизной версии, но думаю она будет не скоро.
                            0
                            Ок
                              0
                              Удачи.
                                0
                                Спасибо)
                                0
                                Очень перспективное начинание, при удачной реализации! Удачи
                                  0
                                  Спасибо, постараюсь довести проект до конца
                                  +2
                                  А чертежи и схемы лучше в github выложить.
                                    +1

                                    Как-то логично напрашивалась в конце ссылка на гитхаб-репозиторий с чертежами и кодом

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

                                    Самое читаемое