Робот промоутер — 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, о которой расскажем в следующей статье.

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

    TOD 32,29
    Компания
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Похожие публикации
    Комментарии 26
    • 0
      Отличная работа! Плавные движения очень хорошо смотрятся.
      • +1
        Эхей, ребята, вы всё ещё в деле! Статья отличная, как всегда.
        • 0
          Даже не знаю что и сказать)… Спасибо)
        • 0
          Прекрасная статья, спасибо!)
          Прочитать было очень интересно, но к сожелению, добавить что-то по сути не могу(
          • 0
            Пацаны. Это реально круто!

            Интересно, можно ли сюда добавить (не увеличивая габаритов) обратную связь на усилие? Ну например, чтобы рука, делающая массаж давила не до тех пор пока серва (или спина) треснет, а до момента когда создаст полукилограммовый эквивалент на текущем положении спины?
            • +1
              Можно, как раз об этом хотим отдельно пост опубликовать… уже ставим опыты))
            • 0
              Ну что, хорошая работа… Продолжайте в том же духе и скоро составим конкуренцию…

              • 0
                У нас уже есть кому соревноваться))
              • 0
                Красив! Интересно насколько это потянуло в цифрах
                • 0
                  Не совсем понял вопрос…
                  Последнее время не досыпаю, поэтому лучше задавать максимально конкретные вопросы))
                • 0
                  а какое применение планируете для вашего робота в будущем? И будут ли чертежи доступны в open-source?
                  • 0
                    Это будет робот промоутер: реклама, развлечение и т.д. Делать данный проект открытым не планируем… Много сил, времени и ресурсов потратили для получения приемлемого результата, соответственно есть желание получить профит.
                  • 0
                    Шикарная вещь! По плавности движений — один из лучших, что я видел.
                    На видео показана максимальная скорость движений? Хотелось бы посмотреть как манипулятор себя ведёт на разных скоростях.

                    Не понравился, пожалуй, большой палец кисти. Как-то не очень хорошо смотрится.
                    • 0
                      Спасибо за похвалу.
                      На видео 70% от максимально скорости. Для эксплуатации в 100% режиме необходимо доделать динамическое управление скоростью, т.к. нам не удалось получить хороший результат только лишь на регуляторах, т.к. сама рука обладает не линейной массой относительно точки приложения силы(т.е. если локоть согнуть, то плечу легче двигаться и наоборот в противном случае).
                      В качестве примера разных скоростей записали видео теста плечевого сустава. Для всего манипулятора не стали записывать т.к. на текущий момент без качественного ухудшения скорость можно только уменьшать))
                      Кистью мы тоже не особо удовлетворены — будем разрабатывать свою.
                    • 0
                      Неплохо. Вообще, статья хорошо отражает проблему отсутствия подходящих сервоприводов для подобных проектов из области «дешевой» робототехники. Насколько я знаю, даже старшие модели HerkuleX и Dinamixel не поддерживают управление по току.

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

                      Если же нужна компенсация гравитации, то наиболее прямой способ ее реализации — использование динамической модели робота. Есть специальные библиотеки (KDL, RDBL), способные вычислить моменты создаваемые силой тяжести на осях суставов (и не только их). Останется только пересчитать их в поправки к силе тока. Но для реализации такой системы нужно знать тензоры инерции и положения центра масс всех звеньев.
                      • 0
                        Спасибо, библиотеки возьмем на заметку. Но все же хотелось найти решение ограниченное вычислительными мощностями МК.
                        • 0
                          Все равно нужна будет обратная кинематика, потом захочется планирования траекторий и т.п. Так что к средствам ROS стоит присмотреться.
                          • 0
                            Был у нас уже опыт использования MoveIt) Все хорошо, вот только медленный он, добиться элегантных движений при помощи него не получилось :(
                            .
                            • 0
                              Так это от возможностей вашего манипулятора в первую очередь зависит. А настроить максимальную допустимую скорость и ускорение можно в конфигурации moveit. Но, конечно, рассчитывать траектории с учетом динамики робота он не умеет.
                      • 0
                        Очень впечатлило! Прямо захотелось повторить Ваш проект у себя дома. Не знаю только по силам ли он будет или нет(робототехникой не приходилось заниматься). 3D принтер мне удалось таки собрать самому(по ним правда полно форумов и инструкций различных).
                        • 0
                          Думаю что при наличии большого желания повторить можно, тем более что основные концептуальные моменты были освещены, что позволит избежать тупиков) Начните с малого — соберите аналогичный сервопривод, а дальше видно будет. Механика у нас примитивная: шестерня на валу привода -> ремень -> шестерня на рабочем звене.
                        • 0
                          изначально к манипулятору не были предъявлены жесткие индустриальные требования, тем не менее нашей целью было сделать практичное и эстетичное решение


                          эстетичное получилось, а вот с практичным мне кажется не очень.
                          есть от этого манипулятора практическая польза?
                          какой вес может поднять?
                          эл.чайник с водой поднимет?

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

                          тест предлагаю такой, набрать воды из крана в эл.чайник, нажать на нём кнопку, пока вскипает, положить в кружку пакетик чая и несколько кубиков сахара,
                          как вскипит вода, налить воды в кружку, и размешать ложкой,
                          и передвинуть кружку с чаем на новое место.
                          чтобы не заморачиваться с распознаванием образов и и тд, устанавливать все предметы на определённое заранее заданное место.
                          таким образом провериться манипулятор и на поднятие тяжестей, и на работу с мелкими предметами типа ложки и пакета с чаем.
                          • 0
                            Как уже было выше сказано, манипулятор это всего лишь часть от целого. Конечный проект не предусматривает манипуляцию увесистыми предметами, максимум бутылка пива. И тест конечно какой-то своеобразный)
                            Для манипулятора, на мой взгляд, важны всего лишь пару критетириев:
                            • точность позиционирования при определенных нагрузках.
                            • скорость

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

                              и даже если будет хотябы открывать бутылку пива, уже хорошо и есть практическое применение!!!
                              image
                              • 0
                                Смотрю у кого-то безграничная любовь к чаю)))
                            • 0
                              Так вроде же статься называется «Робот-промотер». Т.е. основное назначение — быть человекоподобным и уметь совершать человекоподобные движения как в видео. Вопросы практического применения для манипуляции объектами, тем более мелкими, уже вторичны. Да и с позиционированием «0,2 – 1 градуса» это будет не очень просто.

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

                            Самое читаемое