Сварочный робот своими руками

Обновлено: 20.05.2024

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

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

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

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

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

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

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

Длина: 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: свою игрушку собираешь сам, за тебя не трудятся филиппинские дети
  • Ещё крепёжных элементов, прозапас
  • Детали и запчасти к нему, чтобы можно было заменить при необходимости
  • Ещё роботов, разных и сложных
  • Идеи, что можно улучшить\приделать\убрать — словом, на сборке игра не заканчивается! Очень хочется, чтобы она продолжалась!

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

Доброго времени суток! Не судите строго и не пинайте новичка, пожалуйста. Некоторое время назад я задался целью собрать приспособу для сварки длинных прямых швов "сварочного робота" и как ни странно это мне удалось ( конструкция примитивная: бп, регулятор напряжения, рельса, каретка на рельсе, мотор с редуктором ) в принципе идея практически оправдала ожидания, но после первых ходовых испытаний проявились недостатки и огромное желание идти дальше. А дальше я вижу только один путь: ЧПУ, ув. форумчане возьмите под "крыло" новичка, со своей стороны постараюсь вдумчиво и пытливо следовать вашим советам. Моё Тех. задание: Создать устройство способное варить mig/mag оборудованием прямые швы в горизонтальном и вертикальном положении (собранная мной приспособа с вертикальными не справляется). Комплект разработчика который я попытаюсь использовать для следующего образца выглядит так: ( http://www.ebay.com/itm/3-axis-USBCNC-N . 4617ba40b8 ) на его базе я собираюсь усовешенствовать предыдущую модель: Хочу добиться более устойчивой скорости перемещения каретки, добавить возможность "разводки" сварочного шва (тянуть горелку не просто по прямой, а с круговыми или игольчатыми движениями). А в идеале мечтаю создать машину которой надо будет показать точку "А" и точку "Б" задать параметры "маршрута" и запустить процесс.
но это пока просто мечта. П.с. заранее благодарю людей готовых потратить на меня немного времени, фото отчёты и процессы постройки обязуюсь вкладывать регулярно.

esisl » 28 апр 2014, 12:38

Ценная задача.
Но варить вертикальный шов. ХЗ. Оно ручкам-то не всегда получается Хотя автоматом наверно проще.
Интересно, если камерой на шов в процессе сварки смотреть, можно оценить качество и "правильность" варимого шва по яркостной картине?

Aseris » 28 апр 2014, 18:11

Ет скорее в институт сварки обращатся, там проблема основная не в перемещении а в качестве шва. Есть подобное в автомобилестроении на конвеерах. также гдето на форуме разработка какогото института проскакивала про робота/ЧПУ сварщика сложных конструкций.

Так толком и непонял что свариваем из описания, если листовой метал - копать в сторону контактная сварка

esisl » 28 апр 2014, 18:22

Авто варят точечной сваркой - это гораздо проще. Сварить горизонтальный шов, в принципе - представимая задача. А вот сварить вертикальный шов.

Jevgenij » 29 апр 2014, 01:31

Немного "разверну" тех задание: Работать надо с металом от 5-15 мм, основные типы сварочных соединений 1. нижнее горизонтальное 2. и с верху вниз вертикальное. Все швы прямые, а главный фокус в том что варить их надо без отрыва макс. длинна шва 3 метра, допускается 1 старт\стоп (отрыв). К концу недели выложу Фото первой версии с образцами сваренного шва. Далее ищу людей которые могут проконсультировать и подсказать совет дельный по постройке более умного устройста (чпу). В перфектном варианте построить бы манипулятор . Может кто что-то похожее строил, расскажите про "грабли".

П.с. точечная сварка не вариант.

Duhas » 29 апр 2014, 06:43

«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность.
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"

esisl » 29 апр 2014, 16:05

Проект очень интересный. Следить буду с удовольствием. Пойдёте на бумстартер - зовите
А консультации. вряд ли.

Aseris » 29 апр 2014, 18:57

Для начала, советую описать требования к движению сварочной "головы", скорости, вес, как крепится заготовка или сварочный робот к ней.

Начало конец сварки, как это с точки зрения движения и нагрузок выглядит, в процесе описяния половина проекта прояснится.

Jevgenij » 30 апр 2014, 01:40

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

Требования к движению сварочной головы. хм как-то не замерял но от себя могу сказать я могу проварить 1 метр за мин 2-3, ну а для робота было-бы неплохо 1 за 1-3 минуты можно медленнее, но по скорости особых претензий нет. По поводу позиционирования робота лутше всего его подтаскивать к детали поскольку 5-6 тонные кострукции зажимать в роботе бабла у меня не хватит, а так на тачечке: подкатил, зафиксировал, по уровню выставил и т.д. И вари себе. Ну как-то так. Движение строго по прямой от точки "А" до "Б" вне зависимости от положения точек в пространстве с возможностью развода круговыми, восьмёркаобразными или игольчатыми движениями.

Duhas » 30 апр 2014, 06:07

я о том, что если вам нужен робот типа KUKA и т.д. могу дать контакты )

а если собирать самостоятельно - уйдет прилично денег/времени. может получиться что дешевле купить ) максимально упростите ТЗ, чтобы все "сложные" кинематически операции выполнял человек.

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

AlexKit » 30 апр 2014, 18:22

Aseris » 30 апр 2014, 18:58

Сразу вопрос. Движение 2д+подход-отрыв или деталь типа "фигуристая дева" где 3д нада?
Точность перемещений 0.1мм, 1мм, 10мм?

По движению. вес головы (незабываем про кабеля и прочее что механизму таскать)?
В идеале фото того что варить будем, чтоб увидить сложность движений
Может выйти что KUKA(промышленный манипулятор) оптимальный вариант с точки зрения затрат и гемороя в процесе разработки.

Jevgenij » 01 май 2014, 00:41

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

Задачи. 1 привентить шаговые двигатели
2 добавить ещё одну ось лутше 2.
3 касаемо движения головы пока сделам 2д + отрыв, а птом глянем
4 разобраться с управлением ( сделать что-то вроде пульта или джойстика )
5 нажраться в хлам на церемонии присвоения статуса робота.

П.с. Заранее благодарю всех учавствующих в проэкте, подождите до воскресения скину фотки Бета версии.

Jevgenij » 05 май 2014, 21:55

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  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-совместимую плату. С другой стороны как-то раз мне подвернулась возможность дешево изготовить платы (о чем я тоже писал). В итоге все это закончилось тем, что я использовал для управления манипулятором свою собственную Arduino-совместимую плату и специализированный шилд.

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

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

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

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

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

Видео работы

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

Ссылки


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

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

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

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

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


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

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

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

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

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

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

Забегая немного вперед скажу, что делать мы будем копию робо-руки 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 000 руб

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


Стоимость: ~3 500 руб

Сборка

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

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 и программировать любые крутые штуки. Но это уже рассказ для отдельной статьи (и не одной). Данное же повествование подошло к концу, спасибо за внимание!

Читайте также: