Робот промоутер — Oscar. Манипулятор

ea0a02e34d784bb1bc2fc61b756ac06a.jpg
Сегодня мы хотим рассказать об устройстве манипулятора промо-робота Oscar. Хотя изначально к манипулятору не были предъявлены жесткие индустриальные требования, тем не менее нашей целью было сделать практичное и эстетичное решение, при этом не очень дорогое и относительно несложное в изготовлении в домашних условиях.
Длина манипулятора от плеча до кончиков пальцев составляет 0.6 метров, вес — 2.25 кг. Материалы изготовления — PLA.
Манипулятор условно можно разделить на 3 компонента:

  • Бионическая кисть
  • Запястье (2 степени свободы)
  • Локтевой и плечевой суставы (5 степеней свободы)


Связано это с тем, что каждый из компонентов имеет свое техническое решение.

Бионическая кисть


Для быстрого и легкого старта было решено взять за основу открытый проект Hackberry. Конструкцию кисти немного доработали под свои нужды.
f317b269620f497fa7ede60e72657514.jpg
Приводы управления пальцами располагаются в самой кисти. Всего их три штуки. Один — на большой палец, один — на указательный, и еще один — на все остальные.
При помощи такого хитроумного захвата робот может взять какой-то объемный предмет, например, бутылку минеральной воды, а также пожать руку человеку или схватить более мелкий/тонкий объект, зажав его между большим и указательным пальцем.

Запястье


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


Для большей эстетики были спроектированы и распечатаны на 3D принтере мастер-модели для корпуса предплечья.
71fb8cf766e04205b7006aadb5fc45b1.jpg

А методом вакуумной формовки был изготовлен корпус. Получилась вот такая антропоморфная рука.
891b1208b1a4498ebb4aa2113089c97e.jpg

По-моему выглядит симпатично.

Локтевой и плечевой суставы


Тут, на мой взгляд, начинается самое интересное. Чтобы добиться приемлемого поведения этих суставов, в отличии от весьма гладкого этапа разработки кисти с запястьем, нам пришлось изрядно повозиться как с механикой, так и с управлением.
Управление было решено реализовывать сервоприводами на базе обычных 37Dx70L
ДПТ, которые у нас были в нужном количестве от предыдущих проектов.
355dd1e588034199a43ec722f6d240d1.jpg

В целом данные ДПТ нам понравились, но есть у них один недостаток, а именно уровень шума. В дальнейшем планируем заменить их на идентичные, но менее шумными.
6d1710f746234479ab79fe314fe717ce.jpg

Основу несущей конструкции суставов составляют распечатанные на 3D-принтере подшипники и профили. Подшипник состоит из четырех полужелобов, стянутых между собой попарно, и металлических шариков 4, 6 и 8 миллиметров.
2b7fd02e65184a56acf1374f6278adf9.jpg

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

Первоначально в некоторых степенях вал двигателя крепили к подшипнику посредством муфты.
16f3efa63e2d4937b403928a811d8af9.jpg

Но за неимением приводов с нужными скоростями и усилием мы переделали конструкцию на ременные редукторы.

Серва


К управлению «cервой» были предъявлены следующие требования:

  • Управление положением выходного вала
  • Регулировка скорости
  • Регулировка усилия (условие со звёздочкой)


Сперва поискали аналогичные проекты в интернете — не одни же мы такие «умные». Взяв за основу один из приглянувшихся проектов, мы были очень недовольны полученным результатом. Позиционирование вала привода оказалось весьма посредственное.
В итоге нас устроила только разработка своего кастомного решения. В данном вопросе очень помогла статья «Поддержание положения в сервоприводе: подчиненное регулирование vs шаговый режим», за что автору большое спасибо!
Общая схема управления получилась такой (схема взята из вышеупомянутой статьи):
e0239b5facc04641b6837156da6637ba.png

В качестве датчика положения в нашей схеме используется магнитный энкодер as5045, а показания тока снимаются при помощи датчика GY-712 5А.
Первоначально для управления приводами использовался Arduino Mega, и хотя результат был удовлетворительным, мы в итоге перешли на более надежный и ламповый STM32F4.
Вот результат работы привода:

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

Ну и конечно же видео работы манипулятора целиком:

Напоследок


В целом реализацией первой версии манипулятора мы удовлетворены. Средняя погрешность всех «серв» колеблется в интервале 0,2 — 1 градус (не делать же нам этим манипулятором хирургические операции). Не очень понравился захват — слишком тяжелый (350 грамм). Скорее всего будем разрабатывать свой. В перспективе хотим повысить точность всех степеней, переделать механику запястья — поставить туда также нашу «кастомную» серву и сделать систему безопасности.

Что дальше?


Сейчас мы завершаем работу над головой Oscar-a, о которой расскажем в следующей статье.

Спасибо за внимание! Всем хорошего дня!
332a5ba3034340b091d10ad9b19c0353.jpg

© Geektimes