Как сделать робота кошку

Как сделать робокота



Мастер уже давно увлекается фигурами типа Strandbeest, Trotbot, проект с котом это его новое увлечение.

Основная цель проекта — робот должен выглядеть как кошка и вести себя как кошка.

Шаг первый: бионика*
*Бионика — прикладная наука о применении в технических устройствах и системах принципов организации, свойств, функций и структур живой природы, то есть формах живого в природе и их промышленных аналогах.

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

Кошка — дигиград, это означает, что она стоит или ходит на пальцах ног. Таким образом, у кошки есть заметные 3 сустава задних ног, в то время как у человека (плантиград) только 2 сустава. На передних лапах кошки пястные кости относительно короткие. Так что заметно два сустава для передних ног. Таким образом, робот-кошка имеет 2 сустава на передних ногах и 3 сустава на задних ногах, то есть 10 сервоприводов (у большинства других роботов-кошек и собак есть только 2 сустава для задних ног).

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

Читайте также:  Как лечить загноившийся глаз у котенка







Шаг третий: электроника
По моему предыдущему опыту, сервоприводы с прямым приводом с MCU GPIO — не лучший выбор. Гораздо стабильней установить отдельную плату драйвера.

В данном проекте мастер использует плату драйвера PCA9685.

ESP32 имеет связанный пример под названием FSBrowser. Это простой веб-сервер, на котором размещаются исходные веб-файлы, скопированные в SPIFFS. У него есть простой веб-редактор для изменения источника через Wi-Fi, а также простой API для чтения значений GPIO.

Мастер расширил его возможности:
Добавлен API сервоплаты PCA9685.
Добавлен сервер WebSocket
Добавлена веб-страница дизайна позы робота-кота.


Шаг четвертый: код
Загрузите и установите Arduino IDE:
https://www.arduino.cc/en/main/software
Следуйте инструкциям по установке, чтобы добавить ESP32:
arduino-esp32
Загрузите FSBrowserPlus: («Clone or Download» -> «Download ZIP»)
FSBrowserPlus
Загрузите последние библиотеки arduinoWebSockets: («Clone or Download» -> «Download ZIP»)
arduinoWebSockets
Импортируйте библиотеки в Arduino IDE. («Sketch» Menu -> «Include Library» -> «Add .ZIP Library» -> select downloaded ZIP file)
Подключите модуль камеры M5Stack с помощью USB-кабеля.
Откройте Arduino IDE
Открыть FSBrowserPlus
Измените ssid и пароль на свои собственные учетные данные точки доступа WiFi
Нажмите кнопку «Загрузить» в Arduino IDE.

Шаг пятый: сборка
Дальше мастер производит монтаж электроники.
Штекер Lipo Battery
Вывод + ve — вход регулятора постоянного тока 5 В + вывод ve
Регулятор постоянного тока 6В INPUT + ve pin
-ve контакт— ВХОД регулятора 5 В постоянного тока -ve контакт
Регулятор 6V DC INPUT -ve pin
Плата сервопривода PCA9685
Вывод GND — Вывод регулятора 5V DC -ve
ВЫХОД регулятора постоянного тока 6 В — вывод
провод черный контактный
разъем SCL -> разъем желтого кабеля Grove
разъем SDA -> разъем белого цвета кабеля Grove
Вывод VCC -> ВЫХОД регулятора постоянного тока 5 В + вывод ve
Кабель Grove красный контакт
Вывод V + -> Регулятор постоянного тока 6 В ВЫХОД + вывод ve



Шаг шестой: положение сервопривода и подключение
Программа FSBrowserPlus устанавливает все сервоприводы в среднее положение диапазона поворота. Перед установкой сервоприводов лучше подключить сервоприводы к плате драйвера, подключить разъем Grove к модулю камеры M5Stack и подключить батарею, чтобы установить все положения сервоприводов в среднее положение.

Ниже список сервоприводов ос схемой подключения.
Порт 0: соединение левой передней ноги 1
Порт 1: шарнир левой передней ноги 2
Порт 2: сустав 1 левой задней ноги
Порт 3: сустав левой задней ноги 2
Порт 4: сустав левой задней ноги 3
Порт 5: поворот головы
Порт 6: наклон головы
Порт 7: не подключен
Порт 8: не подключен
Порт 9: не подключен
Порт 10: Хвост
Порт 11: сустав правой задней ноги 3
Порт 12: сустав правой задней ноги 2
Порт 13: сустав правой задней ноги 1
Порт 14: сустав правой передней ноги 2
Порт 15: сустав правой передней ноги 1

Шаг седьмой: сборка
Чтобы лапы не скользили и не разъезжались нужно установить на ни резинки.


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

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

Повторите шаги установки шарнира и сервопривода для всех 10 суставов ног.







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

Метод установки сервопривода наклона головы такой же, как и для суставов ног. Затем устанавливаем модуль камеры M5Stack с помощью двух винтов M4 12 мм.

Сервопривод хвоста должен быть установлен с нижней стороны и зафиксирован винтом M2 8 мм.









Источник

Распечатанный четвероногий робот под управлением Arduino

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

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

Шаг 1: общая информация и процесс проектирования

Робота я разработал в свободном ПО для трёхмерного моделирования от Autodesk — Fusion 360. Я начал с импортирования серводвигателей, вокруг которых нарисовал ноги и туловище. Потом я разработал удерживающие моторы скобы, дающие им вторую точку крепления, диаметрально противоположную валу. Валы с каждой стороны мотора придают структуре прочность и устраняют вероятность перекоса при нагрузке ног. Подшипники вставляются в специальные держатели, а в кронштейнах в качестве вала используются болты. После того, как держатели прикрепляются к валам с помощью гайки, подшипник обеспечивает надежную точку поворота на противоположной от вала стороне серводвигателя.

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

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

Список необходимых материалов для создания собственного четвероного робота под управлением Arduino. Все компоненты распространённые и доступные.

Электроника:

  • Arduino Uno x 1.
  • Towerpro MG995 серводвигатель x 12.
  • Arduino Sensor Shield (у меня версия 4, но рекомендую купить версию 5).
  • Соединительные провода, 10 шт.
  • MPU6050 IMU (не обязательно).
  • Ультразвуковой датчик расстояния (не обязательно).

Компоненты:

  • Подшипники (8x19x7 мм, 12 шт.).
  • Болты и гайки М4.
  • Пластик для 3D-принтера.
  • Плексиглас 4 мм.

Инструменты

  • 3D-принтер.
  • Лазерный резак.

Большая часть трат приходится на 12 серводвигателей. Рекомендую всё же не использовать дешёвые пластиковые моторы, поскольку они слишком легко ломаются. За исключением инструментов, всё вместе обошлось мне в $60.

Шаг 3: напечатанные компоненты

Компоненты робота пришлось разработать специально – для этого мы воспользовались возможностями цифрового проектирования и CAD. Большая часть компонентов напечатана на 3D-принтере, а некоторые мы вырезали из 4 мм плексигласового листа. Печатали с 40% наполнением, 2 периметрами, соплом 0,4 мм, высотой слоя в 0,1 мм с PLA. Некоторым компонентам нужны подпорки из-за их сложной формы с нависающими частями, однако доступ к ним есть, и их легко удалить кусачками. Цвет можете выбрать по вкусу. Ниже идёт список компонентов и ссылки на STL для печати, а также двумерные чертежи для резака.

Компоненты для 3D-печати:

  • Кронштейн бедренного серводвигателя х 2.
  • Зеркальный кронштейн бедренного серводвигателя х 2.
  • Кронштейн коленного серводвигателя х 2.
  • Зеркальный кронштейн коленного серводвигателя х 2.
  • Держатель подшипника х 2.
  • Зеркальный держатель подшипника х 2.
  • Ноги х 4.
  • Держатели серводвигателя х 4.
  • Держатели подшипников х 4.
  • Крепёж Arduino х 1.
  • Крепёж датчика расстояния х 1.
  • Угловой крепёж х 4.
  • Втулка подшипника х 4.
  • Шайба серводвигателя х 24.

Компоненты для лазерной резки:

  • Панель крепления серводвигателей х 2.
  • Верхняя панель х 1.

В целом нужно распечатать 30 деталей, за исключением разных шайб, а всего количество деталей, изготовленных цифровым способом, равно 33. Я всё распечатал за 30 часов.

Шаг 4: подготовка держателей с подшипниками

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

Шаг 5: готовим скобы серводвигателей

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

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

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

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

Соберите так все четыре ноги.

Шаг 7: сборка туловища

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

Серводвигатели крепите так, чтобы оси смотрели наружу – см. фотографии.

Затем закрепите болтами угловые держатели с обеих сторон панели. Они помогают надёжно прикрепить панель крепления моторов к верхней панели.

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

Шаг 8: собираем всё воедино

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

Четвероногий робот готов.

Шаг 9: провода и электроника

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

Далее перечислены подсоединения серводвигателей и контактов платы. Примечание: Hip1Servo – это серводвигатели бедра, подсоединённый к туловищу. Hip2Servo – серводвигатели бедра, подсоединённый к ноге. KneeServo – серводвигатели колена.

Нога 1 (передняя левая):

Hip1Servo — 2
Hip2Servo — 3
KneeServo — 4

Нога 2 (передняя правая):

Hip1Servo — 5
Hip2Servo — 6
KneeServo — 7

Нога 3 (задняя левая):

Hip1Servo — 8
Hip2Servo — 9
KneeServo — 10

Нога 4 (задняя правая):

Hip1Servo — 11
Hip2Servo — 12
KneeServo — 13

Шаг 10: первоначальная настройка

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

Чтобы избежать случайного повреждения моторов, можно сначала снять с них угловые скобы. Затем закачайте в Arduino код (ссылка ниже). Код поворачивает все серводвигатели в положение 90°. После этого прикрутите скобы обратно так, чтобы все ноги стояли абсолютно ровно, а серводвигатели, прикреплённые к туловищу, были перпендикулярны верхней панели.

Возможно, некоторые сочленения не удастся выровнять идеально. Тогда нужно будет подправить значения массива zeroPositions, расположенного на 4-й строке кода. Каждое число обозначает нулевую позицию соответствующего серводвигателя (их порядок такой же, какой перечислен в списке подключения к Arduino). Поиграйте со значениями до тих пор, пока ноги не встанут идеально прямо.

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

Шаг 11: немного о кинематике

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

  1. Задавать углы сочленений разным моторам методам перебора. Долго, сложно и подвержено ошибкам – всё оценивается на глаз.
  2. Задавать координаты конечного эффектора, а не углы всех промежуточных сочленений. Этот подход называется инверсная кинематика. Пользователь вводит нужные координаты, а сочленения принимают такую позицию, чтобы конечный эффектор оказался в нужной точке. Это метод чёрного ящика, принимающего на вход координаты, а выдающего углы сочленений. Для интересующихся уравнениями я привёл построенную мною диаграмму. Если вам это неинтересно, я запрограммировал всё это, и в коде можно просто вызывать функцию pos, принимающую координаты точки, в которой должен оказаться эффектор, и выдающую три угла, которые должны принимать оси моторов.

Шаг 12: программируем робота

Закончив с подключением и инициализацией, можно начать программировать робота и задавать ему прикольные траектории движения для выполнения интересных задач. В коде на 4-й строке поменяйте значения на те, что вывели на шаге инициализации. После закачки кода робот должен начать ходить. Если вы заметите, что направления каких-то сочленений инвертированы, поменяйте соответствующую величину в массиве на строчке 5 (-1 на 1 и наоборот).

Шаг 13: итоги и время экспериментов

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

Источник

Оцените статью