Контакты

Робот-манипулятор механическая рука. Настольная робо-рука манипулятор из оргстекла на сервоприводах своими руками или реверс-инжиниринг uArm

  • DIY или Сделай сам ,
  • Электроника для начинающих
  • Привет, гиктаймс!

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

    Сейчас моя робо-рука выглядит так:

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

    Пробы и ошибки

    Начиная работать над чертежами, я хотел не просто повторить uArm, а улучшить его. Мне казалось, что в моих условиях вполне можно обойтись без подшипников. Так же мне не нравилось то, что электроника вращается вместе со всем манипулятором и хотелось упростить конструкцию нижней части шарнира. Плюс я начал рисовать его сразу немного меньше.

    С такими входными параметрами я нарисовал первую версию. К сожалению, у меня не сохранилось фотографий той версии манипулятора (который был выполнен в желтом цвете). Ошибки в ней были просто эпичнейшие. Во-первых, ее было почти невозможно собрать. Как правило, механика которую я рисовал до манипулятора, была достаточно простая, и мне не приходилось задумываться о процессе сборки. Но все-таки я его собрал и попробовал запустить, И рука почти не двигалась! Все детли крутились вокруг винтов и, сли я затягивал их так, чтобы было меньше люфтов, она не могла двигаться. Если ослаблял так, чтобы она могла двигаться, появлялись невероятные люфты. В итоге концепт не прожил и трех дней. И приступил к работе над второй версией манипулятора.

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

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

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

    Меня удручает то, что я не смог привнести ничего принципиально нового в проект uArm. К тому времени, как я начал рисовать финальную версию, они уже выкатили 3D-модели на GrabCad. В итоге я только немного упростил клешню, подготовил файлы в удобном формате и применил очень простые и стандартные комплектующие.

    Особенности манипулятора

    До появления uArm, настольные манипуляторы подобного класса выглядели достаточно уныло. У них либо не было электроники вообще, либо было какое-нибудь управление с резисторами, либо было свое проприетарное ПО. Во-вторых, они как правило не имели системы параллельных шарниров и сам захват менял свое положение в процессе работы. Если собрать все достоинства моего манипулятора, то получается достаточно длинный список:
    1. Система тяг, позволяющих разместить мощные я тяжелые двигатели в основании манипулятора, а также удерживающие захват параллельно или перпендикулярно основанию
    2. Простой набор комплектующих, которые легко купить или вырезать из оргстекла
    3. Подшипники почти во всех узлах манипулятора
    4. Простота сборки. Это оказалось действительно сложной задачей. Особенно трудно было продумать процесс сборки основания
    5. Положение захвата можно менять на 90 градусов
    6. Открытые исходники и документация. Все подготовлено в доступных форматах. Я дам ссылки для скачивания на 3D-модели, файлы для резки, список материалов, электронику и софт
    7. Arduino-совместимость. Есть много противников Arduino, но я считаю, что это возможность расширения аудитории. Профессионалы вполне могут написать свой софт на C - это же обычный контроллер от Atmel!

    Механика

    Для сборки необходимо вырезать детали из оргстекла толщиной 5мм:

    С меня за резку всех этих деталей взяли около $10.

    Основание монтируется на большом подшипнике:

    Особенно трудно было продумать основание с точки зрения процесса сборки, но я подглядывал за инженерами из uArm. Качалки сидят на штифте диаметром 6мм. Надо отметить, что тяга локтя у меня держится на П-образном держателе, а у uFactory на Г-образном. Трудно объяснить в чем разница, но я считаю у меня получилось лучше.

    Захват собирается отдельно. Он может поворачиваться вокруг своей оси. Сама клешня сидит прямо на валу двигателя:

    В конце статьи я дам ссылку на суперподробную инструкцию по сборке в фотографиях. За пару часов можно уверенно все это скрутить, если все необходимое есть под рукой. Также я подготовил 3D-модель в бесплатной программе SketchUp. Её можно скачать, покрутить и посмотреть что и как собрано.

    Электроника

    Чтобы заставить руку работать достаточно всего навсего подключить пять сервоприводов к Arduino и подать на них питание с хорошего источника. У uArm использованы какие-то двигатели с обратной связью. Я поставил три обычных двигателя MG995 и два маленьких двигателя с металлическим редуктором для управления захватом.

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

    Этот шилд на самом деле очень простой. На нем четыре переменных резистора, две кнопки, пять разъемов для сервопривода и разъем питания. Это очень удобно с точки зрения отладки. Можно загрузить тестовый скетч и записать какой-нибудь макрос для управления или что-нибудь вроде того. Ссылку для скачивания файла платы я тоже дам в конце статьи, но она подготовлена для изготовления с металлизацией отверстий, так что мало пригодна для домашнего производства.

    Программирование

    Самое интересное, это управление манипулятором с компьютера. У uArm есть удобное приложение для управления манипулятором и протокол для работы с ним. Компьютер отправляет в COM-порт 11 байт. Первый из них всегда 0xFF, второй 0xAA и некоторые из оставшихся - сигналы для сервоприводов. Далее эти данные нормализуются и отдаются на отработку двигателям. У меня сервоприводы подключены к цифровым входам/выходам 9-12, но это легко можно поменять.

    Терминальная программа от uArm позволяет изменять пять параметров при управлении мышью. При движении мыши по поверхности изменяется положение манипулятора в плоскости XY. Вращение колесика - изменение высоты. ЛКМ/ПКМ - сжать/разжать клешню. ПКМ + колесико - поворот захвата. На самом деле очень удобно. При желании можно написать любой терминальный софт, который будет общаться с манипулятором по такому же протоколу.

    Я не буду здесь приводить скетчи - скачать их можно будет в конце статьи.

    Видео работы

    И, наконец, само видео работы манипулятора. На нем показано управление мышью, резисторами и по заранее записанной программе.

    Ссылки

    Файлы для резки оргстекла, 3D-модели, список для покупки, чертежи платы и софт можно скачать в конце моей

    Сейчас уже мало кто помнит, к сожалению, что в 2005 году были Chemical Brothers и у них был замечательный клип - Believe, где роботизированная рука гонялась по городу за героем видео.

    Тогда у меня появилась мечта. Несбыточная на тот момент, т. к. ни малейшего понятия об электронике у меня не было. Но мне хотелось верить - believe. Прошло 10 лет, и буквально вчера мне удалось впервые собрать своего собственного робота-манипулятора, запустить его в работу, затем сломать, починить, и снова запустить в работу, а попутно найти друзей и обрести уверенность в собственных силах.

    Внимание, под катом спойлеры!

    Всё началось с (привет, Мастер Кит, и спасибо, что разрешили написать в вашем блоге!), который был почти сразу найден и выбран после статьи на Хабре. На сайте говорится, что собрать робота - под силу даже 8-летнему ребёнку - чем я хуже? Я точно так же только пробую свои силы.

    Сначала была паранойя

    Как истинный параноик, сразу выскажу опасения, которые у меня изначально были относительно конструктора. В моём детстве сперва были добротные советские конструкторы, потом рассыпающиеся в руках китайские игрушки… а потом детство кончилось:(

    Поэтому из того, что осталось в памяти об игрушках, было:

    • Пластмасса будет ломаться и крошиться в руках?
    • Детали будут неплотно подходить друг к другу?
    • В наборе будут не все детали?
    • Собранная конструкция будет непрочной и недолговечной?
    И, наконец, урок, который был вынесен из советских конструкторов:
    • Часть деталей придётся допиливать напильником
    • А части деталей просто не будет в наборе
    • И ещё часть будет изначально не работать, её придётся менять
    Что я могу сказать сейчас: не зря в моем любимом клипе Believe главный герой видит страхи там, где их нет. Ни одно из опасений не оправдалось : деталей было ровно столько, сколько нужно, все они подходили друг к другу, на мой взгляд - идеально, что очень сильно поднимало настроение по ходу работы.

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

    Технические характеристики:

    Длина: 228 мм
    Высота: 380 мм
    Ширина: 160 мм
    Вес в сборке: 658 гр.

    Питание: 4 батарейки типа D
    Вес поднимаемых предметов: до 100 гр
    Подсветка: 1 светодиод
    Тип управления: проводной дистанционный пульт
    Примерное время сборки: 6 часов
    Движение: 5 коллекторных моторов
    Защита конструкции при движении: храповик

    Подвижность:
    Механизм захвата: 0-1,77""
    Движение запястья: в пределах 120 градусов
    Движение локтя: в пределах 300 градусов
    Движение плеча: в пределах 180 градусов
    Вращение на платформе: в пределах 270 градусов

    Вам понадобятся:

    • удлинённые плоскогубцы (не получится обойтись без них)
    • боковые кусачки (можно заменить на нож для бумаги, ножницы)
    • крестовая отвёртка
    • 4 батарейки типа D

    Важно! О мелких деталях

    Кстати о «винтиках». Если вы сталкивались с подобной проблемой, и знаете, как сделать сборку ещё удобнее - добро пожаловать в комментарии. Пока что поделюсь своим опытом.

    Одинаковые по функции, но разные по длине болты и шурупы достаточно чётко прописаны в инструкции, например, на средней фото внизу мы видим болты P11 и P13. А может P14 - ну, то есть, вот опять, я снова их путаю. =)

    Различить их можно: в инструкции прописано, какой из них сколько миллиметров. Но, во-первых, не будешь же сидеть со штангенциркулем (особенно если тебе 8 лет и\или у тебя его попросту нет), а, во-вторых, различить их в итоге можно только, если положить рядом, что может не сразу прийти на ум (мне не пришло, хе-хе).

    Поэтому заранее предупрежу, если надумаете собирать этого или похожего робота сами, вот вам подсказка:

    • либо заранее присмотритесь к крепёжным элементам;
    • либо купите себе побольше мелких винтов, саморезов и болтов, чтобы не париться.

    Также, ни в коем случае не выбрасывайте ничего, пока не закончите сборку. На нижней фотографии в середине, между двумя деталями от корпуса «головы» робота - небольшое кольцо, которое чуть не полетело в мусор вместе с прочими «обрезками». А это, между прочим, держатель для светодиодного фонарика в «голове» механизма захвата.

    Процесс сборки

    К роботу прилагается инструкция без лишних слов - только изображения и чётко каталогизированные и промаркированные детали.

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

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

    Моторчики мы обнаружили аккуратно упакованными и «прилипшими» друг к другу - готовьтесь ответить на вопрос ребёнка, почему коллекторные моторчики магнитятся (можно сразу в комментариях! :)

    Важно: в 3 из 5 корпусов моторчиков нужно утопить гайки по бокам - на них в дальнейшем мы посадим корпуса при сборке руки. Боковые гайки не нужны только в моторчике, который пойдёт в основу платформы, но чтобы потом не вспоминать, какой корпус куда, лучше утопите гайки в каждом из четырёх жёлтых корпусов сразу. Только для этой операции будут нужны плоскогубцы, в дальнейшем они не понадобятся.

    Примерно через 30-40 минут каждый из 4х моторов оказался снабжён своим шестереночным механизмом и корпусом. Собирается всё не сложнее, чем в детстве собирался «Киндер-сюрприз», только гораздо интереснее. Вопрос на внимательность по фото выше: три из четырёх выходных шестерёнок черные, а где белая? Из её корпуса должны выходить синий и чёрный провод. В инструкции это всё есть, но, думаю, обратить на это внимание ещё раз стоит.

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

    Когда платформа и основная часть руки собраны, инструкция предложит вам перейти к сбору механизма захвата, где полно мелких деталей и подвижных частей - самое интересное!

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

    Как стать душой компании при помощи робота

    Легко! Когда мы продолжили сборку вместе, стало понятно: собирать робота самостоятельно - очень приятно. Работать над конструкцией вместе - приятно вдвойне. Поэтому смело могу рекомендовать этот набор для тех, кто не хочет сидеть в кафе за скучными разговорами, но хочет повидаться с друзьями и хорошо провести время. Более того, мне кажется, и тимбилдинг с таким набором - например, сборка двумя командами, на скорость - практически беспроигрышный вариант.

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

    Мы поняли, что жутко проголодались и пошли поесть. Идти было недалеко, поэтому робота мы донесли в руках. И тут нас ждал ещё один приятный сюрприз: робототехника не только увлекательна. Она ещё и сближает. Как только мы сели за столик, нас окружили люди, которые хотели познакомиться с роботом и собрать себе такого же. Больше всего ребятам понравилось здороваться с роботом «за щупальца», потому что ведёт он себя действительно как живой, да и в первую очередь это же рука! Словом, основные принципы аниматроники были освоены пользователями интуитивно . Вот как это выглядело:

    Troubleshooting

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

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

    Но потом меня осенило: если ты сам её только что собрал, за чем же дело стало? =) Я же прекрасно знаю набор шестерёнок внутри корпуса, а чтобы понять, сломался ли сам мотор, или просто недостаточно хорошо был закреплён корпус, можно не вынимая моторчика из платы дать ему нагрузку и посмотреть, продолжатся ли щелчки.

    Вот тут-то мне и удалось почувствовать себя настоящим робо-мастером!

    Аккуратно разобрав «локтевой сустав», удалось определить, что без нагрузки моторчик работает бесперебойно. Разошёлся корпус, внутрь выпал один из шурупов (потому что его примагнитил моторчик), и если бы мы продолжили эксплуатацию, то шестерёнки были бы повреждены - в разобранном виде на них была обнаружена характерная «пудра» из стёршейся пластмассы.

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

    Совет: первое время после сборки держите отвёртку и плоскогубцы под рукой - могут пригодиться.

    Что можно воспитать благодаря данному набору?

    Уверенность в себе!

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

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

    Итоги

    Что понравилось:
    • Собранный по инструкции робот не потребовал отладки, запустился сразу
    • Детали почти невозможно перепутать
    • Строгая каталогизация и наличие деталей
    • Инструкция, которую не надо читать (только изображения)
    • Отсутствие значимых люфтов и зазоров в конструкциях
    • Лёгкость сборки
    • Лёгкость профилактики и починки
    • Last but not least: свою игрушку собираешь сам, за тебя не трудятся филиппинские дети
    Что нужно ещё:
    • Ещё крепёжных элементов, прозапас
    • Детали и запчасти к нему, чтобы можно было заменить при необходимости
    • Ещё роботов, разных и сложных
    • Идеи, что можно улучшить\приделать\убрать - словом, на сборке игра не заканчивается! Очень хочется, чтобы она продолжалась!
    Вердикт:

    Собирать робота из этого конструктора - не сложнее, чем паззл или «Киндер-сюрприз», только результат гораздо масштабнее и вызываЛ бурю эмоций у нас и окружающих. Отличный набор, спасибо,

    Робот-манипулятор MeArm — карманная версия промышленного манипулятора. MeArm - простой в сборке и управлении робот, механическая рука. Манипулятор имеет четыре степени свободы, что позволяет легко захватывать и перемещать различные небольшие предметы.

    Данный товар представлен в виде набора для сборки. Включает в себя следующие части:

    • набор деталей из прозрачного акрила для сборки механического манипулятора;
    • 4 сервопривода;
    • плата управления, на которой расположен микроконтроллер Arduino Pro micro и графический дисплей Nokia 5110;
    • плата джойстиков, содержащая два двухкоординатных аналоговых джойстика;
    • USB кабель питания.


    Перед сборкой механического манипулятора необходимо произвести калибровку сервоприводов. Для калибровки будем использовать контроллер Arduino. Подсоединяем сервоприводы к плате Arduino (необходим внешний источник питания 5-6В 2А).

    Servo middle, left, right, claw ; // создание 4 объектов Servo

    Void setup()
    {
    Serial.begin(9600);
    middle.attach(11); // присоединяет серво на контакт 11 на вращение платформы
    left.attach(10); // присоединяет серво на контакт 10 на левое плечо
    right.attach(9); // присоединяет серво на контакт 11 на правое плечо
    claw.attach(6); // присоединяет серво на контакт 6 claw (захват)
    }

    Void loop()
    {
    // устанавливает позицию сервопривода по величине(в градусах)
    middle.write(90);
    left.write(90);
    right.write(90);
    claw.write(25);
    delay(300);
    }
    Используя маркер, сделайте линию через корпус серводвигателя и шпиндель. Подключите пластмассовую качалку из комплекта к сервоприводу, как показано ниже с помощью небольшого винта из комплекта креплений к сервоприводу. Мы будем использовать их в этом положении при сборке механической части MeArm. Будьте осторожны, чтобы не переместить положение шпинделя.


    Теперь можно производить сборку механического манипулятора.
    Возьмём основание и прикрепим ножки к её углам. Затем установим четыре 20 мм болта и накрутим на них гайки (половину от общей длины).

    Теперь крепим центральный сервопривод двумя 8-мм болтами к маленькой пластине, и получившуюся конструкцию крепим к основанию с помощью 20 мм болтов.

    Собираем левую секцию конструкции.

    Собираем правую секцию конструкции.

    Теперь необходимо соединить левую и правую секции. Сначала леую к переходной пластине

    Потом правую, и получаем

    Подсоединяем конструкцию к платформе

    И собираем "клешню"

    Крепим "клешню"

    Для сборки можно использовать следующее руководство (на англ. языке) или руководство по сборке подобного манипулятора (на русском).

    Схема расположения выводов

    Теперь можно приступать к написанию Arduino кода. Для управления манипуляторм, наряду с возможностью управления управления с помощью джойстика, было бы неплохо направлять манипулятор в какую-то определенную точку декартовых координат (x, y, z). Есть соответствующая библиотека, которую можно скачать с github - https://github.com/mimeindustries/MeArm/tree/master/Code/Arduino/BobStonesArduinoCode .
    Координаты измеряются в мм от центра вращения. Исходное положение находится в точке (0, 100, 50), то есть 100 мм вперед от основания и 50 мм от земли.
    Пример использования библиотеки для установки манипулятора в определенной точке декартовых координат:

    #include "meArm.h"
    #include

    Void setup() {
    arm.begin(11, 10, 9, 6);
    arm.openGripper();
    }

    Void loop() {
    // вверх и влево
    arm.gotoPoint(-80,100,140);
    // захватить
    arm.closeGripper();
    // вниз, вред и вправо
    arm.gotoPoint(70,200,10);
    // отпустить захват
    arm.openGripper();
    // вернуться вт начальную точку
    arm.gotoPoint(0,100,50);
    }

    Методы класса meArm:

    void begin (int pinBase , int pinShoulder , int pinElbow , int pinGripper ) - запуск meArm, указываются пины подключения для сервоприводов middle, left, right, claw. Необходимо вызвать в setup();
    void openGripper () - открыть захват;
    void closeGripper () - захватить;
    void gotoPoint (float x , float y , float z ) - переместить манипулятор в позицию декартовых координат (x, y, z);
    float getX () - текущая координата X;
    float getY () - текущая координата Y;
    float getZ () - текущая координата Z.

    Руководство по сборке (англ.)

    Человеческая рука (вернее, кисть руки) это одно из чудес природы и громадный вызов инженерам робототехникам, которые пытаются её скопировать “один к одному”. Это – сложнейшая конструкция с 29-ю гибкими суставами и тысячами специализированных нервных окончаний, за которыми наблюдает “система управления”, настолько чувствительная, что она может сразу определить, насколько горячий объект, насколько гладкая его поверхность, и даже с какою силой он должен удерживаться.
    Неудивительно, что “слепое” копирование кисти человеческой руки – занятие малоперспективное. И все больше и больше, робототехники приходят к мысли, что в данном случае копирование природы не является правильным подходом. Лучшая идея состоит в том, чтобы решить, какие из наиболее важных функций кисти руки должны быть воспроизведены, и как этого лучше всего достичь, пользуясь сейчас доступными технологиями.

    Промышленные роботы, конечно, манипулируют предметами уже в течение многих десятилетий. Но они обычно используют самые простые захваты (типа параллельных “челюстей”), которые открываются и закрываются по команде, чтобы схватить, держать, или переместить предмет строго заданной формы, на который они и рассчитаны. Такая “негибкость” (низкая степень адаптации) – не проблема на сборочном конвейере. Но этого не будет достаточно для будущих роботов, разработанных для взаимодействия с людьми в самой разнообразной окружающей обстановке.

    Многие исследователи в области робототехники предполагают, что скоро появится новое поколение роботов, “бродящих” вокруг домов, санаториев, фабрик, и т.д. К этим роботам люди будут обращаться с самыми разнообразными просьбами: cварить кофе, принести лекарства или притащить заготовки к цеху. Каждая такая главная полезная функция в свою очередь потребуют реализации множества вспомогательных функций. Например, открытие бутылки потребует, чтобы робот определил размер и форму предмета, правильно схватил её (горлышком вверх) и затем приложил достаточное усилие, чтобы удержать бутылку (но не чрезмерное, чтобы не раздавить её) и достаточный вращающий момент, чтобы открутить пробку. Чтобы удовлетворить эти разнообразные потребности, чтобы приспособиться к огромному разнообразию ситуаций “на лету” захватам робота будет нужна очень высокая степень адаптации и чувствительности.

    Поиски универсальной руки для роботов привели к проектам, в которых рука робота точно подражает человеческой руке, и другим, в которых “кисть руки” больше напоминает металлические зажимы. А авторы этой большой статьи работали в течение почти десяти лет над компромиссным решением между этими двумя подходами: “руки”, у которой есть часть ловкости человеческой кисти, но без её большой сложности. Их рука не выглядят человеческой, но она неплохо владеет навыками захвата и управления большого разнообразия предметов во многих задачах.

    Следует отметить, что Управление перспективных исследовательских программ (DARPA) весьма заинтересована в создании универсальной (и при этом максимально простой, надёжной и дешёвой) роботизированной руки, для чего придумало ежегодные соревнования между роботами и командами робототехников с приличным кушем в 2 млн. долларов США наличными. Мы уже много рассказывали об этих соревнованиях, поэтому, будем акцентировать своё внимание на технических деталях универсальной роборуки.

    В 1980-х робототехники могли конструировать и изготавливать роборуки с тремя или четырьмя пальцами (и противопоставляемым большим пальцем), копируя структуру кисти человеческой руки. У этих рук был футуристический, научно-фантастический вид, и они привлекли большое внимание. Но большинство из них выполняли свои функции не эффективно. Копирование многих суставов человеческой руки увеличило сложность и стоимость человекоподобных роборук. У некоторых моделей было больше чем 30 приводов, каждый из которых приводил в действие только один сустав (и каждый из которых мог внезапно отказать). И, из-за наличия на каждом пальце датчиков осязания с низкой чувствительностью, было трудно скоординировать движения “пальцев” руки между всеми точками контакта пальцев с поверхностью захватываемого предмета.

    Так называемые “подприводные” (underactuated) руки – это альтернативный подход к роботизированной манипуляции предметами. Их так называют потому, что в них используется меньше двигателей, чем суставов. Они используют пружины или другие механические связи, чтобы соединить твердые детали (такие как фаланги пальца) и “соединить” в единое целое их движения. Тщательная конструкция этих связей может позволить руке автоматически приспосабливаться к различным формам. Это означает, что пальцы могут, например, “обернуться” вокруг предмета без необходимости активного тактильного контроля. (примечание – это очень похоже на процесс “свёртывания” технической системы).

    Авторы статьи были довольны своими предыдущими проектами “подприводной” руки, но они знали, что у предстоит ещё много работы, чтобы их роборука могла выполнить технические требования . И на это было всего 18 месяцев. Недавно сформированная команда робототехников бросила новый взгляд на конструкцию руки в свете решения определенных задач, поставленных Управлением перспективных исследовательских программ. Как снять со стола тонкий предмет, такой как ключ? Что нужно сделать, чтобы включить электрический фонарь? И робототехники пересмотрели такие фундаментальные аспекты конструкции, как число пальцев, их размещение вокруг основы кисти руки и захват, который может обеспечить кончики пальцев. Остановились на конструкции из 2-х “подприводных” пальцев и противоположно к ним расположенного полностью приводного большого пальца.


    Глядя на картинку видно, что “фишки” конструкции руки-захвата заключается в следующем:
    - 2 “небольших пальца” могут поворачиваться на угол до 90 градусов, а большой палец – вправо-влево на угол порядка 45 градусов.
    - Все пальцы имеют по 2 фаланги, и связаны гибкой пластиной.
    - Все пальцы снабжены “ногтями” (далее ясно станет зачем).
    Устройство “пальца” захвата показано на рисунке ниже.


    Жёсткие основания фаланг пальцев (детали белого цвета) скреплены друг с другом гибкой упругой пластиной (flexure). Через жёсткие основания протянут трос в оболочке (авторы трос назвали “сухожилие”). Эта конструкция шарнирно закреплена на шарнирном соединении с возвратной пружиной (pin joint with return spring). Основания фаланг покрыты эластичными подушечками пальцев (pad), в которую вмонтированы датчики осязания (embedded touch sensors). Трос может изменять свою длину путём его накручивания, например, на вал, вращаемый маленьким электромотором (на рисунке не показаны). К основанию фаланг винтами прикручены “ногти” (nails). При натяжении/укорочении троса, фаланги пальцев движутся друг навстречу другу, чтобы охватить предмет. При ослаблении/удлинении троса, фаланги движутся в противоположную сторону под действием силы упругости гибкой пластины.


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

    В то время как четыре двигателя управляли тремя пальцами, ещё один двигатель позволил пальцам перемещаться в плоскости ладони между двумя конфигурациями (показанными на верхнем рисунке) для различных видов обхвата. Для надёжного схватывания узких предметов, два пальца устанавливаются параллельно на одной стороне ладони, а большой палец- напротив них, чтобы получился закрытый хват. Можно также выполнять захват при помощи всех трех пальцев в треугольной конфигурации. Эта конфигурация позволяет руке захватить большие объекты, такие как баскетбольный мяч.

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

    Эти различные захватывающие движения помогли роборуке соответствовать всем требованиям к соревнованиям Управления перспективных исследовательских программ.
    Следует отметить, что идея “ногтей” оказалась очень полезной. При их помощи роборука научилась справляться с задачами захвата с приподнятием предмета (например, захвата ключа, лежащего на поверхности стола).
    Пока что во время соревнований руками (и пальцами) робота управляли члены команды робототехников. Но в будущем требуется, чтобы робот управлял своими захватами автономно. Это значит, что будет необходимо разрабатывать множество датчиков, которые смогут дать роботу смысл понятий формы, веса и гибкости объекта, с которым руки будут обращаться и разработать соответствующее программное обеспечение.

    А пока что, чтобы отследить движение пальцев вокруг их цели, был разработан ряд волоконно-оптических датчиков. Они состояли из петли волоконно-оптического кабеля, включенного в резиновый средний сустав и рецепторов-фотодиодов, размещенных в каждой фаланге пальца. Волоконно-оптические кабели излучали свет, которые попадали в рецепторы по-разному в зависимости от того, как сустав согнут. Например, когда сустав согнут под углом 60 градусов, волоконно-оптический свет попадают в рецепторы в различном месте и с различной интенсивностью, чем когда палец согнут под углом75 градусов. Эти данные можно использовать, чтобы “нанести на карту”: где каждый палец покоился во время пассивного схватывания.

    Чтобы дополнить эту информацию, в фаланги пальцев установлены множество датчиков давления. Датчики могут “сказать”, касалась ли рука предмета кончиком пальца, ладонью, или каким-нибудь другим местом. Образцы этой информации обеспечивают компьютер (управляющий руками) данными о форме захватываемого предмета. Например, ручка отвертки будет вступать в контакт с другими датчиками. Датчики давления также снабдят компьютер данными о весе и гибкости поверхности предмета, говоря роботу, как плотно нужно захватить предмет. В каждом пальце на руке размещено 22 таких датчиков, и ещё 48 размещены в ладони.

    Коллеги из компании iRobot разработали аппаратное и программное обеспечение, которые позволяет авторам этой статьи управлять рукой и передавать информацию с датчиков на компьютер. Микроконтроллеры, включили в каждый палец, собирают данные от оптоволоконных датчиков и датчиков давления и отправляют данные в главный микроконтроллер, расположенный в ладони. Главный контроллер действует как своего рода “транспортный полицейский” для всей руки, посылая данные с руки на компьютер управления и передавая команды от компьютера управления до отдельных пальцев. Хотя эта информация пока не использовалась, чтобы управлять рукой во время соревнования, была обеспечена визуализация этой информации, чтобы продемонстрировать ее возможности “осязания” роборук.

    Рука – ничто без своих пальцев. И роборука – не исключение. Изготовить пальцы помогли коллеги из Гарвардского и Йельского университетов, которые построили части с электронными компонентами, уже включенными в них при проектировании предыдущих версий роборук. А датчики и необходимые для них печатные платы были внедрены в материал подушечек для пальцев методом холодной заливки отверждающимся составом в соответствующие формы. В результате получился палец с внедрённой в него необходимой электроникой, и это работало. Такой производственный метод позволил сильно упростить конструкцию пальцев. От исходного прототипа пальца, из 60 различных частей, пришли к пальцу из всего 12 частей. И отпала необходимость в маленьких винтах других маленьких креплениях.

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

    За счёт использования обычных пластмасс и резины и дешёвого метода сборки, роборука получилась не только надёжной, но и дешёвой. Это помогло остаться близко к ожиданию Управления перспективных исследовательских программ, что универсальная роборука будет стоить приблизительно 5,000 долларов США.


    В день соревнования DARPA, в июне 2012, роборука превзошла все ожидания. Она выполнила все 19 тестов (9 на захват различных предметов, 9 на захват и манипуляции и 1 тест на силу руки). Каждый тест повторялся 5 раз, чтобы показать, что успешное выполнение теста – не счастливая случайность. Захват таких предметов как шар и телефонная трубка заняли время только секунды. Даже такие задачи на захват и манипуляции как сверление отверстия в деревянном блоке и включение переносного радио были выполнены с лёгкостью. Возможно, самый удивительный был тест на силу, где роборука подняла и держала 22-килограммовый вес (на 6 кг больше, чем это было в предыдущих лабораторных тестах). Роборука справилась с тестами так быстро, что осталось ещё несколько часов свободного времени. Это позволило показать некоторые другие возможности роборуки, о которых даже не подозревали её разработчики. В одном импровизированном тесте штатный сотрудник компании iRobot положил на испытательный стол пинцет и тонкую соломинку. И бросил вызов взять пинцет роборукой и затем взять соломинку, используя пинцет. Этот тест был выполнен за одну попытку….

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

    Всем привет!
    Пару лет назад на kickstarter появился очень занятный проект от uFactory - настольная робо-рука uArm . Они обещали со временем сделать проект открытым, но я не мог ждать и занялся реверс-инжинирингом по фотографиям.
    За эти годы я сделал четыре версии своего виденья этого манипулятора и в итоге разработал вот такую конструкцию:
    Это робо-рука с интегрированным контроллером, приводимая в движение пятью сервпоприводами. Основное ее достоинство в том, что все детали либо можно купить, либо дешево и быстро вырязать из оргстекла лазером.
    Так как в качестве источника вдохновения я брал open sorce - проект, то всеми своими результатми делюсь полностью. Вы сможете скачать все исходники по ссылкам в конце статьи и, при желании, собрать такую же (все ссылки в конце статьи).

    Но проще один раз показать ее в работе, чем долго рассказывать что она из себя представляет:

    Итак, перейдем к описанию.
    Технические характеристики

    1. Высота: 300мм.
    2. Рабочая зона (при полностью вытянутом манипуляторе): от 140мм до 300мм вокруг основания
    3. Максимальная грузоподъемность на вытянутой руке, не менее: 200г
    4. Потребляемый ток, не более: 6А
    Также мне хочется отметить некоторые особенности конструкции:
    1. Подшипники во всех подвижных частях манипулятора. Всего их одинадцать: 10 штук на вал 3мм и один на вал 30мм.
    2. Простота сборки. Я очень много внимания уделил тому, чтобы была такая последовательность сборки манипулятора при которой все детали прикручивать предельно удобно. Особенно сложно было сделать это для узлов мощных сервоприводов в основании.
    3. Все мощные сервоприводы расположены в основании. То есть "нижние" сервоприводы не таскают "верхние".
    4. За счет параллельных шарниров инструмент всегда остается параллелен или перпендикулярен земле.
    5. Положение манипулятора можно менять на 90 градусов.
    6. Готовое Arduino-совместимое программное обеспечение. Правильно собранная рука может управляться мышкой, а по примерам кода можно составить свои алгоритмы движения
    Описание конструкции
    Все детали манипулятора режутся из оргстекла толщиной 3 и 5мм:

    Обратите внимание, как собирается поворотное основание:
    Самый сложный, это узел в нижней части манипулятора. В первых версиях у меня уходило очень много сил, чтобы собрать его. В нем соединяются три сервопривода и передаются усилия на захват. Детали вращаются вокруг штифта диаметром 6мм. Захват удерживается парралельно (или перпендикулярно) рабочей поверхности за счет дополнительных тяг:

    Манипулятор с установленым плечом и локтем показан на фотографии ниже. К нему еще только предстоит добавить клешню и тяги для нее:

    Клешня тоже устанавливается на подшипниках. Она может сжиматься и поворачиваться вокруг своей оси:
    Клешню можно установить как вертикально, так и горизонтально:

    Управляется все Arduino-совместимой платой и шилдом для нее:

    Сборка
    Чтобы собрать манипулятор потребуется около двух часов и куча крепежа. Сам процесс сборки я офмил в виде инструкции в фотографиях (осторожно, траффик!) с подробными комментариями по каждой операции. Также я сделал подробную 3D-модель в простой и бесплатной программе SketchUp. Так что всегда можно повертеть ее перед глазами и посмотреть непонятные места:


    Электроника и программирование
    Я сделал целый шилд, на котором установил, помимо разъемов сервоприводов и питания, переменные резисторы. Для удобства отладки. На самом деле достаточно при помощи макетки подвести сигналы к двигателям. Но у меня в итоге получился вот такой шилд, который (так уж сложилось) я заказал на заводе:

    Вообще я сделал три разные программы под Arduino. Одна для управления с компьютера, одна для работы в демо-режиме и одна для управления кнопками и переменными резисторами. Самая интересная из них, конечно, первая. Я не буду приводить здесь код целиком - он доступен в онлайн .
    Для управления необходимо скачать программу для компьютера. После ее запуска мышь переходит в режим управления рукой. Движение отвечает за перемещение по XY, колесико изменяет высоту, ЛКМ/ПКМ - захват, ПКМ+колесико - поворот манипулятора. И это на самом деле удобно. Это было на видео в начале статьи.
    Исходники проекта

    Понравилась статья? Поделитесь ей