+7-960-0655211 (Билайн)
+7-987-4207734 (МТС)
интернет-магазин
доставка по России и СНГ
работаем с 2010 года

Четвероногий микро-робот на Arduino

Четвероногий микро-робот на Arduino

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




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




Следуйте дальнейшей инструкции чтобы создать своего собственного четвероногого микро-робота на Arduino.

Шаг 1: Обзор и процесс проектирования





Для разработки четвероногого робота было использовано программное обеспечение для 3D-моделирования Autodesk Fusion 360 бесплатная версия. Я начал с того, что импортировал в конструкцию микросервомоторы и построил вокруг них ноги и корпус. Дизайн был разработан с учетом простоты и надежности, так как я надеялся поэкспериментировать с различными динамическими походками, которые доведут оборудование до предела. Другой целью при разработке четвероногого робота было сделать модель как можно более компактной, чтобы максимально использовать крутящий момент, обеспечиваемый серводвигателями. Размеры звеньев были сделаны для достижения большого диапазона движения при минимальной общей длине. Если сделать их слишком короткими, детали напечатанные на 3D-принтере столкнутся, уменьшится диапазон движения, а если они будут слишком длинными, то на приводы будет оказываться ненужный крутящий момент. Наконец, я спроектировал корпус робота, на который будет устанавливаться Arduino и другие электронные компоненты. Я также оставил дополнительные точки крепления на верхней панели корпуса, чтобы разместить другие датчики и инструменты и сделать проект масштабируемым для дальнейших улучшений. Можно добавить датчики, такие как датчики расстояния, камеры или другие приводимые в действие механизмы, такие как роботизированные захваты.

Примечание: 3D модели деталей для робота можно загрузить в одном из следующих шагов.

Шаг 2: Необходимые материалы



Вот список всех компонентов и деталей, необходимых для создания вашего собственного четвероногого робота на Arduino. Все детали Вы можете найти в интернет-магазине Robototehnika.ru.

ЭЛЕКТРОНИКА:
  • Контроллер Arduino Uno x 1
  • Плата расширения ввода/вывода v5 для Arduino x 1
  • Сервопривод TowerPro MG90S x 12

  • ЖЕЛЕЗО:
  • Нить для 3D-принтера (в случае если у вас нет 3D-принтера, детали можно будет заказать в компаниях предоставляющих услуги 3D-печати)

  • ИНСТРУМЕНТЫ:
  • 3D-принтер

  • Самая большая стоимость этого проекта - 12 серводвигателей. Я рекомендую выбрать модель серво среднего или высокого уровня качества вместо дешевых с пластиковыми шестернями, так как они легко ломаются. Без учета инструментов общая стоимость этого проекта составляет примерно 60 $.

    Шаг 3: Сила Arduino




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

    Для этого проекта использовалась среда разработки Arduino IDE. (также существует онлайн-версия Arduino Web Editor)

    Примечание: Программы для робота можно загрузить в одном из следующих шагов.

    Шаг 4: Изготовление деталей цифровым способом



    Детали, необходимые для этого проекта, должны были быть изготовлены по индивидуальному заказу, поэтому для их печати использовался 3D-принтер. Отпечатки были сделаны с заполнением 40%, 2 периметра, соплом 0,4 мм и высотой слоя 0,1 мм с PLA, цветом по вашему выбору. Ниже вы можете найти полный список частей и STL для печати вашей собственной версии робота.

    Примечание: С этого момента детали будут упоминаться по именам в списке.

  • leg1 (нога1) х 4
  • leg2 (нога2) х 4
  • leg2 cover (крышка ноги2) x 4
  • leg3 (нога3) х 2
  • leg3 cover (крышка ноги3) x 2
  • leg3 mirror (нога3 зеркально) x 2
  • leg3 mirror cover (крышка ноги3 зеркально) x 2
  • body (корпус) x 1
  • wire cover (крышка для проводов) x 1
  • servo horn spacer (проставка сервопривода) x 24 (опционально, если только ваши винты слишком длинные)

    Всего (без проставок) 22 детали. Общее время печати около 20 часов.

    3D модели деталей (780k zip).

    Шаг 5: Подготовка звеньев



    Начните делать звенья, вставьте качалки серво в прорези детали leg2 и используя винты соедините это вместе с leg2 cover.


    Затем вставьте сервопривод servo1 в специальный паз на leg1 и надежно закрепите его с помощью двух винтов.

    Повторите этот процесс с остальными 3 ногами.

    Шаг 6: сборка ног



    Затем вставьте качалку сервопривода в каждую деталь leg3 и leg3 mirror.


    Пропустите провода servo1 прикрепленного к звену leg1 и servo2 (свободного) через специальную прорезь для укладки проводов, между деталью leg3 и leg3 cover. Прикрутите leg3 cover к leg3 (уже с установленной качалкой) с помощью двух винтов.


    Вставьте сервопривод servo2 в специальный паз на leg3 и надежно закрепите его с помощью двух винтов.

    Повторите этот процесс для остальных ног.

    Шаг 7: Сборка корпуса



    Прикрепите 4 сервомотора servo3 к корпусу винтами изнутри. Хотя установка сервоприводов с помощью винтов изнутри может быть немного сложной, это очень важно, потому что винты, прикрепленные снаружи, будут мешать ногам и уменьшать диапазон движения каждой ноги.

    Шаг 8: Собираем все вместе



    Присоедините 4 готовых узла leg3 с уже установленными servo2 к каждому из 4 сервоприводов servo3 на корпусе.


    Используйте звено leg2, чтобы соединить servo2 прикрепленного к leg3 с servo1 прикрепленного к leg1.

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

    Шаг 9: Управление проводкой и схема



    Я решил использовать плату расширения ввода/вывода для Arduino, которая обеспечивает соединения для серводвигателей. Я бы порекомендовал вам использовать Плата расширения ввода/вывода v5 для Arduino, так как она имеет встроенный разъем внешнего источника питания. Однако ту, которую я использовал, не имела этой опции. Присмотревшись к плате расширения ввода/вывода для Arduino более внимательно, я заметил, что эта плата потребляет питание от 5-вольтового контакта на плате Arduino (что является ужасной идеей, когда речь идет о серводвигателях высокой мощности, поскольку вы рискуете повредить Arduino). Для решения этой проблемы нужно было согнуть вывод 5 В на плате расширения, чтобы он не подключался к выводу 5 В на Arduino. Таким образом, теперь мы можем подавать внешнее питание через вывод 5 В, не повреждая Arduino.


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

    Примечание: Направление сверху вниз. servo3 - это сервопривод, прикрепленный к корпусу. servo2 - это сервопривод, прикрепленный к ноге. servo1 - это сервопривод, прикрепленный к звену.

    Нога 1 (передняя левая):
  • servo3 >> 7
  • servo2 >> 6
  • servo1 >> 5

  • Нога 2 (передняя правая):
  • servo3 >> 4
  • servo2 >> 3
  • servo1 >> 2

  • Нога 3 (задняя левая):
  • servo3 >> 13
  • servo2 >> 12
  • servo1 >> 11

  • Нога 4 (задняя правая):
  • servo3 >> 10
  • servo2 >> 9
  • servo1 >> 8

  • Шаг 10: Начальная настройка



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

    Чтобы избежать повреждений робота, вы можете удалить качалки сервопривода из звеньев.

    1. Начните с клонирования программы для четвероногого робота из следующего репозитория GitHub:
    2. https://github.com/kousheekc/Micro-Quadruped-Robot
    3. Раскомментируйте 8-ю строку файла main.ino и закомментируйте остальные строки в setup и loop
    4. Загрузите файл в Arduino

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


    На этом этапе из-за конструкции качалок сервопривода некоторые соединения могут быть не совсем прямыми. Решением является корректировка массива zero_positions, находящегося в 13-й строке файла Quadruped.h. Каждое число представляет собой нулевую позицию соответствующего сервопривода (порядок совпадает с порядком, в котором вы прикрепили сервопривод к Arduino). Немного измените эти значения, пока ноги не станут идеально прямыми.

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

    int zero_positions[12] = {83, 89, 164, 85, 93, 3, 102, 90, 15, 90, 99, 175};

    Также обратите внимание, что эта программа может работать с любым четвероногим роботом, которого вы построите. Просто измените значения в конструкторе, который вызывается в строке 3 main.ino. (Более подробную информацию можно найти в readme на странице GitHub)

    Шаг 11: Краткое введение в кинематику



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

    1. Один из подходов - подача углов соединения различных двигателей методом грубой силы. Этот подход может быть трудоемким, утомительным, а также содержать ошибки, поскольку оценка является чисто визуальной. Вместо этого есть более разумный способ достижения желаемых результатов.
    2. Второй подход заключается в подаче координат концевого эффектора, а не всех углов сочленения. Это то, что известно как обратная кинематика. Пользователь вводит координаты, а углы шарниров регулируются, чтобы расположить конечный эффектор в заданных координатах. Этот метод можно рассматривать как черный ящик, который принимает в качестве входных данных координату и выдает углы сочленения. Те, кому интересно, как были разработаны тригонометрические уравнения этого черного ящика, могут посмотреть на диаграмму выше. Для тех, кому это не интересно, уравнения уже запрограммированы и могут использоваться с помощью функции pos, которая принимает в качестве входных данных x, y, z, которое является декартовым местоположением конечного эффектора, и выводит три угла, соответствующие двигателям.

    Программа, содержащая эти функции, может быть найдена на следующем шаге.

    Шаг 12: Программирование четвероногих роботов





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

    Шаг 13: Окончательные результаты



    Четвероногий робот может делать шаги длиной от 4 до 1 см. Скорость также можно варьировать, сохраняя при этом походку сбалансированной. Этот четвероногий представляет собой надежную платформу для экспериментов с различными другими походками и другими целями, такими как прыжки или выполнение заданий. Я бы порекомендовал вам попробовать изменить траектории движения ног, чтобы создать свои собственные походки и узнать, как различные походки влияют на производительность робота. Я также оставил несколько точек крепления в верхней части робота для дополнительных датчиков, таких как датчики измерения расстояния для задач уклонения от препятствий или IMU для динамической походки по неровной местности. Можно также поэкспериментировать с дополнительным захватом, установленным на верхней части робота, поскольку робот чрезвычайно устойчив и прочен и не может вот так вот легко опрокинуться.

    Надеюсь, вам понравилось это руководство, и оно вдохновило вас на создание своего собственного четвероногого робота. Удачи!


    Автор оригинальной статьи: Technovation

    Перевод и адаптация: Robototehnika.ru