Робот промоутер — Oscar. Манипулятор
Сегодня мы хотим рассказать об устройстве манипулятора промо-робота Oscar. Хотя изначально к манипулятору не были предъявлены жесткие индустриальные требования, тем не менее нашей целью было сделать практичное и эстетичное решение, при этом не очень дорогое и относительно несложное в изготовлении в домашних условиях.
Длина манипулятора от плеча до кончиков пальцев составляет 0.6 метров, вес — 2.25 кг. Материалы изготовления — PLA.
Манипулятор условно можно разделить на 3 компонента:
- Бионическая кисть
- Запястье (2 степени свободы)
- Локтевой и плечевой суставы (5 степеней свободы)
Связано это с тем, что каждый из компонентов имеет свое техническое решение.
Бионическая кисть
Для быстрого и легкого старта было решено взять за основу открытый проект Hackberry. Конструкцию кисти немного доработали под свои нужды.
Приводы управления пальцами располагаются в самой кисти. Всего их три штуки. Один — на большой палец, один — на указательный, и еще один — на все остальные.
При помощи такого хитроумного захвата робот может взять какой-то объемный предмет, например, бутылку минеральной воды, а также пожать руку человеку или схватить более мелкий/тонкий объект, зажав его между большим и указательным пальцем.
Запястье
Запястье имеет дифференциальный привод и управляется при помощи пары тяг. Один конец тяги крепится к основанию кисти, другой — к рычагу сервопривода. Таким образом, получается 2 степени свободы.
Для большей эстетики были спроектированы и распечатаны на 3D принтере мастер-модели для корпуса предплечья.
А методом вакуумной формовки был изготовлен корпус. Получилась вот такая антропоморфная рука.
По-моему выглядит симпатично.
Локтевой и плечевой суставы
Тут, на мой взгляд, начинается самое интересное. Чтобы добиться приемлемого поведения этих суставов, в отличии от весьма гладкого этапа разработки кисти с запястьем, нам пришлось изрядно повозиться как с механикой, так и с управлением.
Управление было решено реализовывать сервоприводами на базе обычных 37Dx70L
ДПТ, которые у нас были в нужном количестве от предыдущих проектов.
В целом данные ДПТ нам понравились, но есть у них один недостаток, а именно уровень шума. В дальнейшем планируем заменить их на идентичные, но менее шумными.
Основу несущей конструкции суставов составляют распечатанные на 3D-принтере подшипники и профили. Подшипник состоит из четырех полужелобов, стянутых между собой попарно, и металлических шариков 4, 6 и 8 миллиметров.
Профили имеют пазы для соединения между собой, также используются дополнительные ребра жесткости. Все это счастье стягивается болтиками.
Первоначально в некоторых степенях вал двигателя крепили к подшипнику посредством муфты.
Но за неимением приводов с нужными скоростями и усилием мы переделали конструкцию на ременные редукторы.
Серва
К управлению «cервой» были предъявлены следующие требования:
- Управление положением выходного вала
- Регулировка скорости
- Регулировка усилия (условие со звёздочкой)
Сперва поискали аналогичные проекты в интернете — не одни же мы такие «умные». Взяв за основу один из приглянувшихся проектов, мы были очень недовольны полученным результатом. Позиционирование вала привода оказалось весьма посредственное.
В итоге нас устроила только разработка своего кастомного решения. В данном вопросе очень помогла статья «Поддержание положения в сервоприводе: подчиненное регулирование vs шаговый режим», за что автору большое спасибо!
Общая схема управления получилась такой (схема взята из вышеупомянутой статьи):
В качестве датчика положения в нашей схеме используется магнитный энкодер as5045, а показания тока снимаются при помощи датчика GY-712 5А.
Первоначально для управления приводами использовался Arduino Mega, и хотя результат был удовлетворительным, мы в итоге перешли на более надежный и ламповый STM32F4.
Вот результат работы привода:
Добившись приемлемого результата в управлении выходным валом «сервы» без нагрузки, он был поставлен в плече манипулятора. И «внезапно» оказалось, что управлять приводом и манипулятором — разные вещи. Проблема заключалась в том, что манипулятор «колбасило» в целевых точках, присутствовал так называемый «дребезг сервы». Попробовали различные коэффициенты регуляторов, но все было тщетно.
Причиной же наших бед была пресловутая гравитация. В положении виса (когда рука опущена вертикально вниз) для отклонения на 10 градусов в плечевом суставе необходимы одни коэффициенты регуляторов, а для достижения такого же отклонения в горизонтальном положении, другие коэффициенты. Т.к. система не слишком динамичная, то для определения уровня влияния гравитации и впоследствии ее компенсации, мы воспользовались обычным трехосевым акселерометром, что и решило нашу проблему. Данное решение не претендует на панацею — просто это наш путь. Возможно среди читателей нашей статьи найдутся опытные электроприводчики которые смогут что-то посоветовать.
Вот видео теста одной из степеней плеча (как оказалось, самая сложная степень с точки зрения управления).
Ну и конечно же видео работы манипулятора целиком:
Напоследок
В целом реализацией первой версии манипулятора мы удовлетворены. Средняя погрешность всех «серв» колеблется в интервале 0,2 — 1 градус (не делать же нам этим манипулятором хирургические операции). Не очень понравился захват — слишком тяжелый (350 грамм). Скорее всего будем разрабатывать свой. В перспективе хотим повысить точность всех степеней, переделать механику запястья — поставить туда также нашу «кастомную» серву и сделать систему безопасности.
Что дальше?
Сейчас мы завершаем работу над головой Oscar-a, о которой расскажем в следующей статье.
Спасибо за внимание! Всем хорошего дня!