HEXAPOD или робот-паук, как способ автоматизации строительных работ.

Это мой первый проект четырёхногого робота. Разработка первой версии длилась около года, последняя модификация уже четвёртая. Есть два варианта исполнения — под сервоприводы sg90 и mg90. Если интересна история развития проекта, можете посмотреть её в блоге.

Ещё два проекта, связанных с пауком – это симулятор на vPython и дистанционное управление с использованием Bluetooth. Они будут рассмотрены во второй и третьей части.

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

Скачать все необходимые файлы можно по этой ссылке.

Необходимые детали и узлы

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

Помимо микроконтроллера, нам понадобятся:

  • Аккумулятор (лучше несколько) на 3.7В
  • Плата MPU-6050 (на ней установлены гироскоп и акселерометр)
  • Транзистор ULN2003A
  • Коллекторные двигатели с полым ротором 0820
  • Провода

Необходимо сделать несколько замечаний. Так как мы собираем дешевый самодельный дрон, то наш выбор пал на коллекторные движки с полым ротором (так называемые coreless motors). Они далеко не так надежны, как бесколлекторные двигатели, но зато гораздо дешевле стоят. Кроме того, можно обойтись без дополнительных контроллеров скорости.

Зато невозможно обойтись без гироскопа и акселерометра. Гироскоп необходим для того, чтобы квадрокоптер мог удерживать заданное направление движения, тогда как акселерометр используется для измерения ускорения. Без этих устройств управлять коптером было бы гораздо сложнее (если вообще возможно), так как именно они предоставляют данные для сигнала, регулирующего скорость вращения винтов.

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

Распечатанная на принтере рама окажется не только легкой, но и прочной. Но если доступа к 3D принтеру нет, раму можно заказать.

Список комплектующих (Bill of materials)

НазваниеКол-во
1Плата Arduino UNO1
2Плата расширения для подключения сервоприводов и питания iArduino Multi servo shield1
3Серво — моторы с металлическим редуктором SG90s8
4Батарейный отсек 18650×21
5Литиевые аккумуляторы 186502
6ИК пульт1
7ИК датчик1
8Джамперы Dupont разъем — разъем (female — female) 10 см3
9Провода1 м
10Тумблер1
11Набор деревянных деталей для сборки
12Винты М3 x 10 потайные40
13Винты М3 x 1216
14Винты М3 x 16 потайные4
15Винты м3х10 потайные2
16Гайки м3 самоконтрящиеся / Nylock17
17Гайки м345

Табл. 1 Список комплектующих для сборки робота — паука Quadruped

HEXAPOD или робот-паук, как способ автоматизации строительных работ.

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

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

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

Я предлагаю кардинально новый способ проведения некоторых работ при строительстве объектов. Для автоматизации этих процессов будет использоваться роботизированное автоматическое устройство, называемое гексапод, с закреплённым к нему манипулятором, который будет проводить определённые работы.

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

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

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

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

В данной модели применяется большее количество приводов, улучшенная модель ног и платформы, повышающая мобильность и гибкость. В данном роботе используется микроконтроллер Arduino mega 2560, усовершенствованная схема питания и реализовано беспроводное управление. Для создания данного проекта потребовалось приобретение 3Д принтера, мультиметра и различного CAD инструмента, объединяющий процессы разработки проекта. В данный момент на гексаподе не установлен манипулятор, но для него предусмотрено место крепления, а так же запас питания и вычислительные мощности контроллера управления.

3Д печать

Для изготовления деталей гексапода был приобретен FDM (Fused Depsition Modelling) 3д принтер Flying Bear Ghost 4s. Данный принтер является одним из лучших в своей ценовой категории. Он печатает пластиками PLA,Pet-G, ABS и другими. Хорошая кинематика этого принтера предотвращает повреждение деталей во время печати. Специально подогревающийся стол улучшает адгезивные свойства для лучшего сцепления детали с его поверхностью.

Основным материалом для изготовления был выбран PET-G так как его физико-механические свойства отлично подходят для гексапода. Демпферы были напечатаны из материала Bflex.

Слайсер — Cura.

Для улучшения качества напечатанных моделей, была доработана конструкция принтера. Вместо изначально установленного bowden экструдера, был напечатан и установлен direct. Откалиброван PID для стола и нагревательного элемента, шаги для мотора экструдера, заменены драйвера для шаговых двигателей на осях X,Y,E. Собрана термокамера из верхнего бокса (фанера) и передней дверцы (акрил), заменено стоковое стекло на зеркало 3мм.

Так же был проведен расчет коэффициента усадки для точной печати отверстий.

Далее о создании данной модели гексапода

Разработка

3д модель гексапода :

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

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

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

В гексаподе используется микроконтроллер Arduino mega 2560 с дополнительно установленной Raspberry pi 4. Это позволяет плавно и с большой точностью перемещать робота. Так же были усовершенствованы: схема питания, которая позволила включать и выключать робота при помощи контроллера, и беспроводное управление, которым осуществляется движение робота, манипулятора и управление камерой. Присутствует возможность подключиться к гексаподу дистанционно по средством передачи данных wi-fi, а так же можно расширить функционал и управлять мехатронным устройством дистанционно. Робот изготовлен с учетом промышленных стандартов во избежание травматизма, на нем располагается кнопка аварийной остановки, а вся электроника помещена корпус. Светодиодный индикатор для отладки и отображения состояния робота собран и представлен на фотографии.

Манипулятор

Одним из основных частей гексапода является манипулятор. Он выполнен из PET-G пластика на 3д принтере. Манипулятор и его кинематика проектировались в CAD системе по собственным чертежам и наработкам. Манипулятор состоит из 3 звеньев и захвата, которые вращаются в одной плоскости. В роли двигателей используются сервоприводы, крутящий момент которых >10кг/см. Манипулятор способен поднимать объекты массой до 500 грамм и до 1000 в режиме удержания. Так же в роботе установлена FPV камера, которая позволяет управлять роботом дистанционно и камера для машинного зрения, обеспечивающая распознавание объектов и дальнейшим выводом их на монитор.

Программирование

Программирование производилось в среде разработки Arduino IDE и sublime_text . Код состоит из функций, которые контролируют модули, и функций, которые ими управляют. В программе реализованы аварийные остановки и вывод ошибок при не правильном подключении или во время отклонений наклона корпуса от нормы. >60% программного обеспечения разрабатывалось вручную.

Управление

Для управления гексаподом используется геймпад от PlayStation2 с ресивером. Он позволяет точно управлять движением, выбирать различные типы походки и выбирать режимы управления. Беспроводное управление реализуется за счет встроенного радио модуля на 2.4гц . Приемник устанавливается на верхнюю часть платформы корпуса гексапода и подключается к Arduino mega (для передачи сигнала используются пины 2-5, а так же пины 3.3в и Gnd для питания).

Питание
В качестве источника питания для гексапода используются li-ion аккумуляторы. Для стабилизации напряжения используется стабилизатор бортового напряжения SBEC.

Аккумуляторы

В качестве батареи используются li-ion аккумуляторы формата 18650. К преимуществам можно отнести:

— Высокая энергетическая плотность.

— Низкий саморазряд.

— Отсутствие эффекта памяти.

— Простота обслуживания.

— Низкий удельный вес.

Аккумуляторы собираются последовательно в 3s батарею (12.6в).

Стабилизатор

В роли стабилизатора используется стабилизатор бортового напряжения YEP 20A HV (2 ~ 12S) SBEC. По причине того, что на каждом сервоприводе просадка напряжения достигает 0.3в., суммарно, со всех двигателей, просадка по напряжению принимает значение до 6в., вследствие чего многие приводы не работают. Так же каждый привод потребляет до 800мА, опытным путем было выявлено, что суммарный потребляемый ток примерно 15А.

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

• Максимальный ток 20А

• Выходное напряжение 5-7.2в

• Иметь теплоотвод

Данным требованиям соответствует стабилизатор бортового напряжения YEP 20A HV

(2 ~ 12S) SBEC.

технические характеристики:

  • Ток: 20A
  • Входное напряжение: 2-12S
  • Выходное напряжение: 5V / 5.5V / 6V / 7В / 9В
  • PCB Размер: 57x26mm
  • Вес: 42g

Видеоролик работы гексапода

#3dmay

Видео, демонстрирующее работу робота

Нашел на youtube еще один ролик (один из самых популярных в этой тематике), в котором рассматривается создание робота, объезжающего препятствия. Он более совершенен чем рассмотренный в данной статье благодаря вращающемуся с помощью сервомотора ультразвуковому датчику. К нему есть также исходный код программы (доступен по ссылке из описания ролика), но без объяснения. Но, надеюсь, объяснение программы рассмотренного в данной статье робота поможет вам понять код программы этого более «продвинутого» робота.

Привет! Кому интересно, что получится в итоге, читайте заключительную часть.

В силу разных обстоятельств выход третьей части затянулся и да, речь пойдет о прошивке ESP8266 в среде ARDUINO (АРДУИНО). Скажу сразу – я не ардуинщик, это четвертый раз, когда я столкнулся с этой средой (три проекта с одного ресурса).

Начнём с установки среды и библиотек. Среду можно скачать по этой ссылке. Это портабельная версия 1.8.5 в zip-архиве. Распаковываем архив в c:\Program Files\ — все, среду установили. Переходим к установки библиотек. Для этого переходим по ссылке и делаем все, что пишет автор (лучше, как там расписано я не скажу, а переписывать не вижу смысла). Версию библиотеки выбирайте 2.4.2. В итоге мы установим библиотеки для ESP8266 и драйвера для CH340G. Теперь снова выбираем пункт меню Инструменты → Плата: “Arduino/Genuino Uno”

и выбираем плату “Generic ESP8266 Module”:

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

Открываем исходник, который скачали ранее и видим, что все на английском и китайском, соответственно и кнопки управления будут на английском. Это видно на видео из статьи. Лично мне это не подходит. А вам? Тогда открываем гугл-переводчик и вперед.

Подключаем плату к ПК и перед подачей питания на плату, замыкаем GPIO0 на землю, как на фото:

Светодиод на модуле мигнет три раза и потухнет, можно разомкнуть вывода. Жмём кнопку Загрузка:

Если всё прошло хорошо, то будет так:

Если не хотите заморачиваться с ардуино, то можно прошить с помощью ESP8266 Flasher. Для этого качаем архив в конце статьи и делаем все по инструкции.

Для удобства подключения серв, я их подписал, согласно схеме (вид сверху):

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

Кстати, про разъёмы, куда подключать модуля:

Припаиваем разъем, потом в термоусадку, чтобы ни чего не замкнуло и ставим на место:

В ходе «полевых» испытаний выяснилось, что робот от АКБ не работает. Причиной стала не правильно разведенная дорожка питания. Было так:

Нужно так:

Берем ножик, паяльник и исправляем:

Где черное – разрезаем, где красное – соединяем. У меня так получилось:

Теперь переходим к модулю заряда. Припаиваем разъемы для подключения к плате и АКБ, провода для индикации заряда, окончания заряда и разряда АКБ, приклеиваем двухсторонний скотч:

Заодно и АКБ дорабатываем:

Подключаем плату заряда, приклеиваем ее и припаиваем оставшиеся провода:

Все, теперь можно прикрутить нижнюю крышку на место:

В первой части я говорил, что игрушки будет две. Так вот. Берем глаза робота из версии 2.0, раскрашиваем и приклеиваем к верхнее крышке:

Подключаем АКБ к разъему, ложем в крышку (или приклеиваем на двухсторонний скотч к ней, если АКБ меньшего размера, чем применил я) и прикручиваем ее:

Все, теперь можно попробовать «оживить» нашего паука. Забегая вперед, скажу, что лучше это начать делать от зарядки от телефона/планшета или внешнего АКБ (Power Bank) с током выхода 2А. Подключаем «шнурок» к плате, подаем питание от USB, заходим в настройки Wi-Fi на телефоне/планшете и видим нашу сеть:

Для подключения к сети «ГОША 1.0 — 5F57», где 5F57 – это MAC-адрес конкретного модуля, нужно ввести пароль 12345678. Если хотите его сменить, в исходнике ищите в начале кода строку const char WiFiAPPSK[] и меняете его.

Открываем браузер на телефоне/планшете и в поле адреса вводим 192.168.4.1 и жмём ввод. Загрузится страница:

Вообще, если к адресу добавить одну из строк /setting, /zero, /editor, то загрузятся такие страницы:

Для чего нужны остальные страницы? Для настройки положений сервоприводов. Итак.

/setting – это настройка нулевого состояния сервоприводов,

/zero – это проверка нулевого состояния сервоприводов,

/editor – это редактор движения.

Как говорится: «Лучше один раз увидеть…» Видео по настройке нулевого положения сервоприводов от автора робота:

Ну и на последок видео, что в итоге получилось:

На этом все! Всем удачи в сборке! Будут вопросы – пишите.

P.S. В связи с выявленными недочетами плата была немного переделана:

P.P.S. Принято решение контроллер заряда перенести на плату:

За основу контроллера заряда была взята эта схема:

Индикатор разряда собран по такой схеме:

Все версии плат можно скачать в конце.

P.P.P.S. В процессе эксплуатации были найдены кое-какие моменты работы контроллера заряда (точнее узла защиты от разряда/перезаряда), а именно уход в защиту при резком скачке нагрузки (все сервы потребляют в пике 1,6А). Чтобы этого избежать, перед подачей питания, лапы паука вручную перевожу в нулевое состояние (на видео видно), а управление начинаю с кнопки «Ожидание» или «2 танец».

P.P.P.P.S. Заказал в Китае платы для Power Bank с выходом 5В / 2А. После прихода и проверке будет дополнение к статье.

Первая часть.

Вторая часть.

Программное обеспечение

Основной каркас ПО был уже написан в предыдущем проекте, смотрите статью «Робот-муравей: Программирование». Основные изменения связаны с переходом на новый микроконтроллер STM32F407VET6. Еще я обнаружил косяк, связанный с алгоритмом поворота. В прошлой версии при повороте робот как бы перетаптывается с ноги на ногу. Т.е. делает шаг, потом переходит в исходное положение и т.д. В общем нет непрерывного движения. Старый вариант можно посмотреть здесь. В новой версии я это исправил, робот-паук изящно крутится на месте вокруг своей оси.

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

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

  • прошивка для STM32F407
  • пульт управления роботом
  • инструкция по калибровке

Как самому собрать такого робота можно посмотреть на видео ниже.

Четырехногий робот на базе ESPduino. Начало.

Всем привет! Много денег потратили на распродаже? Попробую разбавить праздничную лихорадку DIY проектом. Как-то копаясь в thingiverse в поисках интересных моделей и вдохновения, наткнулся на данного робота. По стоку заложено несколько автоматических алгоритмов, плюс управление посредством wifi через компьютер, телефон либо контроллеры. Решил, что мне просто необходимо собрать такого же. Перешел на официальный сайт и приуныл — оригинальная начинка стоит 88$, но построена на базе ESP, а значит был шанс собрать аналог дешевле, тем более скетчи лежат в открытом доступе. Посылки получены, основные узлы собраны, но нужна помощь с ESPduino. Если получится прошить, я переделаю модель под новую плату и каждый желающий сможет собрать аналог менее чем за 40$, к тому же есть куда разгуляться с кастомизацией. Активным участникам могу отправить детали корпуса если согласитесь оплатить хотя бы доставку =) Подробности — под катом. Сайт оригинального проекта: jbotq1.blogspot.ru/search/label/shop надеюсь администрация не сочтет за рекламу, информация просто для ознакомления =) Плата ESPduino вместе с шилдом(16 серв и 2 мотора) отсюда за 19,99$ Модифицированный софт для прошивки брал тут 8 сервоприводов отсюда, 2 комплекта выходит около 20$ Модели корпуса отсюда Напечатал все детали в несколько заходов(покрытие вспенилось из за моего нетерпения — еще будут посты об этом).


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


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


К ноге и корпусу приводы крепятся комплектными шурупами. Извиняюсь за часть нечетких картинок — черновик.


С закрытой нижней частью


Выяснилось, что плата ESPduino немного больше оригинальной, но это мелочи — я легко переделаю крепления и все станет как родное, пока не занимался потому что столкнулся с проблемой при заливке скетча. Официальный набор с инструкциями, скетчем и ПО закинул сюда ВНИМАНИЕ! В сборке по данной ссылке используется обычный arduino IDE, не стал убирать, может нужна именно комплектная версия.

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

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


Вот что должно получиться(демо)


Скетч скомпилировался и залился, веб интерфейс вылез, сервы пока не работают, но чувствую оживление уже близко. Спасибо
andreyMOZ
за помощь с правильной настройкой Arduino IDE
UPD.
В сети очень мало примеров работы с данной платой, хотя она успешно продается во многих площадках. На данный момент остается проблема отклика сервоприводов. Пробовал подключать серву напрямую к ESPduino — тишина, хотя скетч заливается без ошибок, но только при выборе платы generic esp8266 вместо ESPduino(ESP-13), точка доступа и веб интерфейс открывается.
UPD2
. Сервы ожили! Идет переделка кода под использование шилда, если получится, у нас освободится множество пинов для дополнительных хотелок.
UPD 3
— Скетч переделан! Огромное спасибо andreyMOZ за проделанную работу, предлагаю отсыпать ему плюсцов =) Но все же осталась одна небольшая проблемка. В ходе эксперимента умерло 3 сервопривода. Один я сломал из за невнимательности и использования в качестве удлинителя одноцветных проводов, скорее всего покинули нас из за перегрузки, т.к. были заклинившими перед оглашением диагноза. С ремонтом я не сталкивался, если у кого есть опыт — поделитесь. Заказан еще один комплект из 4 серв, надеюсь доставят оперативно. После сборки и тестирования выложу гайд сборки и настройки с нуля.
UPD4
Готовится вторая статья с полной сборкой. Что готово: — Перерисован и распечатан корпус под используемые платы. — Переделан скетч под стандартный шилд. — Тестовая модель собрана и функционирует практически как оригинал.

Что не доделано: — Не перерисованы нижняя и верхняя крышки. Не критично, но внешний вид отличается от эталона. У меня проблемы с моделированием плавных форм )) так что если у кого-то есть время и желание, напишите мне в личку, я предоставлю все необходимые данные(размеры). — Плавность хода конечностей не такая как у эталона, но это вопрос софта, который можно решить кооперативно после релиза =)

Рейтинг
( 1 оценка, среднее 4 из 5 )
Понравилась статья? Поделиться с друзьями:
Для любых предложений по сайту: [email protected]