Летающий роботы своими руками

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

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

Читайте также:  Пожарная машина своими руками поэтапно

Источник

Как cделать орнитоптер своими руками

Эта инструкция — история о том, как я сделал прототип орнитоптера.

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

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

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

Инструкция со временем будет исправляться и улучшаться новыми материалами, как и Орнитоптер.

Видеообзор

1. Выбор начальных параметров размаха крыльев, веса и частоты взмахов.

С какой частотой птицы обычно машут крыльями?

Это зависит от площади крыла самой птицы. Например, для аиста достаточно махать крыльями с частотой 2 взмаха в секунду, воробей должен делать 13 взмахов в секунду, а колибри — до 80. Я хотел сделать большой орнитоптер, поэтому площадь крыла тоже будет большой. Для расчета площади крыла нужно знать размах крыльев. Итак, размах крыльев стал первым выбранным параметром. Я решил сделать орнитоптер с размахом крыльев в диапазоне 1200-1400 мм.

Я искал в интернете существующие конструкции орнитоптеров и анализировал их размеры. Большинство орнитоптеров сделаны в строке определенного размера. Орнитоптеры Hobbie могут быть отсортированы по размаху крыльев (от 660 до 3000 мм) и весу в полете. Мой орнитоптер с размахом крыльев 1200-1400 мм будет где-то посередине этой шкалы, не большой, но и не маленький.

Я искал информацию о конструкции на форумах авиамоделирования, в спецификациях об орнитоптерах и во множестве видео на Youtube. Я выяснил, что орнитоптеры с таким размахом крыльев должны выполнять от 5 до 7 взмахов в секунду и иметь полетный вес в диапазоне от 300 до 500 г. Я выбрал среднее значение веса полета — 400 г. Поскольку у меня нет опыта в создании самолетов и махалетов, я выбрал все значения эмпирически и в основном надеялся на удачу.

Зная приблизительную частоту взмахов (от 5 до 7 Гц), я могу разработать механизм взмахов.

В итоге для орнитоптера мною были выбранны следующие параметры:

2. Выбор Махательного Механизма

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

Существует большое количество махательных механизмов. Вот самые используемые.

Кривошип (Staggered Crank)

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

Кривошип с одной передачей (Single Gear Crank)

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

Кривошип с дмумя передачами (Dual Gear Crank)

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

Читайте также:  Ортез для лап своими руками

Поперечный вал (Transverse Shaft)

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

Я решил выбрать конструкцию с поперечным валом. Размер моего орнитоптера позволяет использовать дополнительную массу механизма. Кроме того, такую ​​конструкцию легко изготовить из листового материала, так как плоскости зубчатых колес параллельны плоскости корпуса.

3. Выбор компонентов. Мотор, ESC и Aккумулятор.

Выбор мотора

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

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

Принимая во внимание размеры орнитоптера, хобби электромоторы размером 300 — 400 должны идеально подходить. Хобби-моторы такого размера могут быть коллекторными или бесколлекторными. В основном вы можете найти их в средних RC катерах и вертолетах.

Я выбрал этот мотор:

Его можно заменить на:

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

Основные характеристики двигателя:

Краткое объяснение названия:

Первые, 4 цифры в описании (2627) — это размеры двигателя. Первая пара цифр показывает диаметр двигателя (26 мм), а вторая пара показывает длину (27 мм). Значение «кВ» относится к постоянной скорости двигателя. Он измеряется числом оборотов в минуту (об / мин), которое совершает двигатель, когда на него подается 1 В (один вольт) без нагрузки. Например: Этот 2627 4200 кВ бесколлекторник может быть запитан батареей 2S (7.4В) или 3S (11.1В). При значении 4200 кВ и без нагрузки этот двигатель имеет следующие скорости:

Источник питания

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

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

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

Основные характеристики батареи:

Довайте проверим, достаточно ли максимального тока батареи.

Умножив скорость разряда на емкость, можно рассчитать максимальное значение тока, которое может выдавать аккумулятор:

30C * 0,9Ah = 27 Amp.

Максимальный ток 27 А превышает значение, которое может потреблять двигатель (22 А), поэтому все в порядке. Так же очень важана емкость аккумулятора. Этот параметр влияет на продолжительность полета орнитоптера.

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

Регулятор оборотов (ESC)

Для управления и регулирования скорости бесколлекторного мотора нужен контроллер. Любой хобби ESC подходит для этого. Единственное, что нужно проверить — это длительный и пиковый ток. Чтобы уменьшить вес орнитоптера, лучше выбрать контроллер в мини-форме.

Источник

Оцените статью
Своими руками