Манипулятор схват своими руками

Манипулятор схват своими руками

Что такое манипулятор?

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

Манипулятор — это механизм для управления пространственным положением орудий и объектов труда.

Как устроен манипулятор?

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

Сочетание и взаимное расположение звеньев определяет степень свободы (подвижности) робота, а также область действия манипуляционной системы робота.

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

· звенья, обеспечивающие поступательные движения; · звенья, обеспечивающие вращательные перемещения.

Совместные перемещения звеньев позволяют схвату описывать в пространстве (ограниченном размерами и конструкцией манипулятора) траекторию практически любой формы.

Двухпальцевый схват Трехпальцевый схват Многопальцевый схват

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

Магнитный схват Вакуумный схват

Схват-дрель
Схват-инструмент хирурга Схват – пульверизатор с краской

Как работают манипуляторы?

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

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

  • Если таким источником является гидропривод, то его называют гидравлическим.

  • Если таким источником является пневмоцилиндр, то привод называют пневматическим.

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

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

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

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

Итак, привод, являясь «мускулом» манипулятора, приводящим его в движение, во многом определяет, каков снабженный этим приводом робот: насколько он силен (какова его грузоподъемность), ловок (как точно он может выполнить заданное действие), быстр (сколько ему надо на это времени) и др.

Управление манипуляторами подразделяется на:

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

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

Рассмотрите картинки следующих механизмов и обсудите принцип их действия:

Складная линейка Складные решетки на окна Механические щипцы-захваты

З адание по конструированию 1

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

Требования к конструкции следующие:

  • Манипулятор-хватательный механизм должен иметь минимальную длину в сложенном состоянии и максимальную в разложенном;
  • У манипулятора должно быть две ручки, как у щипцов, многоколенчатое соединение, ведущее к схвату — хватательной части манипулятора;
  • Изобретатель должен суметь взять с помощью схвата некоторый предмет и перенести его с места на место.

При оценке манипулятора будут производиться следующие измерения:

  1. Измерение габаритов (длина, ширина) в сложенном состоянии.
  2. Измерение габаритов (длина, ширина) в разложенном состоянии
  3. Захват мелкой, средней и крупной детали.

По итогам измерений будет выбран лучший манипулятор.

Задание по конструированию 2

Посмотрите видео про робота-художника.

Видео YouTube

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

При оценке робота-художника будут учитываться:

  1. Длина, нарисованной прямой линии при стационарном положении робота;
  2. Ровность круга, нарисованного роботом при стационарном положении (движется только рука робота).

Источник

Дешевый и полнофункциональный робот-манипулятор своими руками

Сразу оговоримся, что совсем дешево делать не будем, т.к. не хочется убивать нервные клетки, делая доморощенные энкодеры для моторчиков + хочется упростить создание 3D модели, которая нужна для управления через ROS (ссылка на готовую модель – ниже в статье).

На момент написания статьи ориентировочная конечная стоимость изделия составляет

70 000 руб. Если у вас есть 3D принтер, то можно смело вычесть из нее 20 000 руб. Если принтера нет, то его появление станет приятным бонусом. Все расходы я буду описывать исходя из того, что у нас нет ничего, кроме денег.

Как выглядит результат:

Также нужно отметить, что для программирования руки нам понадобится компьютер с установленными ОС Linux (я использую Ubuntu 18.04) и фреймворком ROS (я использую Melodic).

Может возникнуть вопрос «почему 70К рублей – это дешево?»

Отвечаю. Изначально я не хотел заморачиваться с созданием роборуки и думал просто купить что-нибудь простенькое, но достаточно функциональное в сборе.

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

Конкурентные решения на рынке

Опишу, однако, кратко примеры того, что я рассматривал на рынке:

1) top3dshop.ru/robots/manipulators/dobot-magician-basic.html
176 000 руб. DOBOT можно купить не только в этом магазине, но обычно он стоит еще больше. Наверняка есть шанс найти его где-нибудь дешевле, но все равно это будет сильно дороже, чем 70 000 руб.

2) robotbaza.ru/product/robot-manipulyator-widowx-robotic-arm-mark-ii
280 000 руб. Еще дороже. Вообще, манипуляторы от TossenRobotics прямо у производителя стоят супервменяемых денег. Вот только доставку в Россию (а я-то именно тут) из их магазина не заказать.

Забегая немного вперед скажу, что делать мы будем копию робо-руки PhantomX Pincher Robot Arm Kit Mark II, которая производится именно компанией TossenRobotics.

Итого, видим, что 70 000 руб – это совсем не так дорого.

Что же нам нужно купить?

Все цены привожу на момент написания статьи (июль 2020 года):

1) 6 моторчиков DYNAMIXEL AX-12A

Я покупал по цене 7200 руб за 1 штуку, но, кажется, можно найти и за 6000 при большом желании. Будем считать, что вам не повезет и вы тоже купите за 7200.
Суммарная стоимость: 43 200 руб

Подойдет любой простенький, можно уложиться в 20 000 руб.

3) Arduino Uno + Power Shield

4) Опционально (но я очень рекомендую): Лабораторный источник питания

Сборка

Отлично! Мы закупили все, что нам нужно (вероятно, дольше всего ждали доставки моторчиков, мне их везли больше месяца).

1) Напечатаем детали для манипулятора на 3D принтере.

Качаем STL файлы отсюда

2) Собираем воедино с моторчиками. Проблем со сборкой быть не должно, но если они вдруг появятся, можно воспользоваться вот этой инструкцией

Делаем 3D модель

Класс! Рука у нас есть, но ведь ей же нужно как-то управлять. Хочется максимально использовать достижения человечества, поэтому установим себе ROS.

Для того, чтобы полноценно работать с манипулятором в ROS – нужно сделать его URDF модель. Она будет нам необходима для того, чтобы управлять робо-рукой с помощью пакета MoveIT!
На момент написания статьи последняя стабильная сборка доступна для Melodic/Ubuntu 18.04, чем и объясняется мой выбор версии системы и фреймворка в начале статьи.

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

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

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

Выглядит модель вот так:

Из полученного URDF файла мы сделаем конфиг MoveIT!, который позволит нам моделировать движения манипулятора и отправлять управляющие команды на реальную робо-руку.

Для создания конфига есть отличный туториал (ссылка)

Тут я могу опять сэкономить время и предоставить свой конфиг. Лежит он вот тут:

Можно скачать конфиг с гитхаба и запустить следующей командой:

Примерно так можно будет управлять нашей реальной робо-рукой через rviz, когда мы подключим ее к ROS:

А что с реальной рукой?

Переместимся из мира 3D моделей в суровую реальность. У нас есть собранный ранее манипулятор. Хотелось бы его как-то подвигать. Сделаем это с помощью Arduino UNO и Power Shield.

Подключим первый моторчик манипулятора (который снизу) к Power Shield’у и блоку питания следующим образом:

Да, data pin моторчика мы соединим сразу с 3 и 4 выводом Arduino. Пытливый читатель мануала Dynamixel (вот он) сразу заметит, что связь с внешним миром у моторчика организована по Half Duplex Asynchronous Serial Communication, а это означает, что data pin используется сразу и для получения команд и для ответа.

По умолчанию, на аппаратном уровне Arduino умеет работать только с Full Duplex UART. Эту проблему можно обойти, используя Soft Serial библиотеку, что мы и сделаем. Именно использование Half Duplex режима объясняет подключение data pin мотора к 3 и 4 выводам шилда одновременно.

Помимо полудуплексного обмена работа с Dynamixel через Arduino имеет еще пару занимательных моментов, которые могут быть не совсем очевидны с самого начала. Сведем их все воедино.

Как подвигать наш манипулятор?

1) Сначала скачаем нужную библиотеку. Она называется ardyno и ее можно получить через Arduino Library Manager, либо тут (ссылка)

2) По умолчанию Dynamixel AX-12A хотят работать с baud rate = 1000000. Однако Software Serial Interface не потянет такую скорость, поэтому baud rate стоит снизить до 57600. Таким образом, начало файла с вашей программой будет выглядеть примерно вот так:

3) Все наши моторчики соединены друг с другом последовательно. Значит, чтобы обращаться к каждому из них — нужно знать его ID? Это действительно так, объект DynamixelMotor при инициализации получает два параметра: interface (одинаков для всех, его мы задали в предыдущем пункте) и id (должен быть у всех разный, иначе поведение будет у манипулятора весьма странное)

Id каждому моторчику придется задать вручную. Кажется, что будучи соединенными последовательно, они могли бы и сами рассчитаться по номерам от 1 до 6, но этого не предусмотрено. Поэтому нужно каждый моторчик отдельно подключить к Arduino (отключив от остальных) и выполнить следующую программу:

Изначально все моторчики имеют именно поэтому мы и указываем вверху

NEW_ID для каждого моторчика нужно заменить на число от 1 до 6 (да, ок, первый моторчик можно не трогать). Нумеруем их в порядке от нижнего к верхнему.

Ура! у нас есть полноценный манипулятор, который мы можем двигать, а также имеется 3D модель к нему. Можно брать ROS и программировать любые крутые штуки. Но это уже рассказ для отдельной статьи (и не одной). Данное же повествование подошло к концу, спасибо за внимание!

Источник

Читайте также:  Приспособление для смотки шланга своими руками
Оцените статью
Своими руками