Соберите робота для захвата и переноса с проверкой
Роботизированная рука берёт детали из лотка и сортирует их в два контейнера, распознаёт пустой захват, повторяет попытку, ведёт журнал и считает успешные циклы.
Что вы собираете
Роботизированную руку, опустошающую лоток. Детали попадают в один из двух контейнеров в зависимости от того, что о них можно узнать: размера, цвета или исходной оснастки, — а машина работает без присмотра, пока лоток не опустеет или не произойдёт отказ, после чего она остановится и сообщит, в каком состоянии это случилось.
Интересна здесь не рука. Комплекты манипуляторов DOF стоят £40, а кинематика — страница тригонометрии. Интересно то, что машину для захвата и переноса оценивают в процентах, а переход от «на видео всё сработало» к «пятьдесят выполнено подряд» представляет собой другую инженерную задачу, отличную от простого перемещения.
Два решения приводят к цели, и оба относятся к схвату.
Два важных решения
1. Палец не должен быть жёстким
Именно это удивляет людей, поэтому стоит сказать прямо до начала печати.
Ручка схвата задаёт положение — угол сервопривода. Ограничения детали задаются
силами: нижней, при которой она выпадает, и верхней, при которой разрушается.
Коэффициент перехода между ними определяется последовательной жёсткостью k всего,
что находится между рычагом сервопривода и деталью, поэтому фактическое окно, в
которое нужно попасть, равно
window (mm) = ( min(F_crush, F_servo) − F_slip ) / k
Жёсткий напечатанный палец имеет жёсткость около 25 N/mm. Бюджетный сервопривод с рычагом 30 mm обеспечивает разрешение примерно 0.524 mm хода губок. Подставьте числа для клубники: окно равно 0.108 mm, в пять раз меньше одного шага, то есть подходящей команды не существует и настройка её не найдёт.
| Палец | k | Окно | Рабочие положения сервопривода |
|---|---|---|---|
| Жёсткий напечатанный | 25 N/mm | 0.108 mm | 0 |
| Поролоновая накладка | 4 N/mm | 0.677 mm | 1 |
| Последовательно включённая пружина | 0.8 N/mm | 3.386 mm | 7 |
| Напечатанная упругая пластина | 0.35 N/mm | 7.739 mm | 15 |
Установите растягивающую пружину за 40p между рычагом и пальцем, и проблема исчезнет. Определите размер своей конструкции в лаборатории по собственному объекту и длине рычага до расхода филамента и прочитайте полное обоснование в руководстве усилие, блокировка и податливость схвата на сервоприводе.
2. Необходим этап проверки
Цикл состоит из сближения, опускания, захвата, проверки, подъёма, переноса и размещения. Без состояния проверки каждый отказ остаётся незамеченным: схват закрывается в пустоте, рука переносит воздух над столом и раскрывается над контейнером, а счётчик сообщает об успехе.
Рычажный микровыключатель на внутренней стороне одного пальца стоит пятьдесят
пенсов и одного входного вывода; это самая ценная деталь этой сборки. Считывайте
его после выдержки 300–400 ms: податливый палец после закрытия колеблется, и опрос
во время колебаний равносилен подбрасыванию монеты. Устраните дребезг по трём
последовательным показаниям и предоставьте конечному автомату состояние RECOVER с
ограниченным числом повторов. Руководство по конечному автомату
содержит всю реализацию.
Порядок сборки
- Выберите рабочий орган. Если детали плоские и доступны сверху, сначала оцените присоску и небольшой насос: они превзойдут всё напечатанное. Иначе используйте два пальца. Типы схватов и усилие захвата.
- Измерьте объект. Массу на кухонных весах, усилие раздавливания на тех же весах с несколькими жертвенными деталями и µ перетаскиванием багажной шкалы по материалу накладок. Эти три числа определяют конструкцию, а найденные в интернете значения для вашей детали неверны.
- Проверьте замыкание силами. Если поверхности под накладками имеют наклон больше
atan(μ), никакое усилие не удержит деталь и понадобится V-образная канавка или другая точка захвата. Трение и замыкание силами. - Определите размер схвата в лаборатории. Длина рычага от самой широкой детали, затем проверка окна относительно шага сервопривода. Симулятор схвата.
- Напечатайте схват с упругой пластиной или последовательно включённой пружиной, накладками из TPU, жёстким упором и микровыключателем. Сервоприводный схват.
- Правильно подключите пять сервоприводов. PCA9685 по I²C, отдельная силовая шина сервоприводов, шунтирование. Сделайте это до написания прошивки, иначе день уйдёт на отладку перезагрузок, вызванных проблемой питания.
- Напишите неблокирующий конечный автомат с состояниями
VERIFYиRECOVER. Конечный автомат захвата и переноса. - Ограничьте ускорение с помощью профиля движения, чтобы рассчитанное усилие схвата сохранялось во время переноса.
- Выполните пятьдесят циклов и подсчитайте результат.
Измерение
Пятьдесят последовательных циклов без присмотра со счётчиком и журналом отказов, который записывает состояние каждого отказа. Это и есть результат, и он значительно требовательнее видео.
| Результат | Что означает |
|---|---|
| Выше 95% | У вас машина. Переходите к определению позы по датчикам вместо жёстко заданных значений |
| 80–95% | Обычно неверна поза сближения или перед проверкой недостаточно времени стабилизации |
| Ниже 80% | Обычно проблема в питании или усилии схвата рассчитано без учёта ускорения |
| Отказ только на поздних циклах | Нагрев сервоприводов или загрязнение накладок. И то и другое реально и выглядит необъяснимо |
Таблица отказов в руководстве по конечному автомату сопоставляет большинство симптомов с причинами.
Чем не является этот проект
Он не выполняет компьютерное зрение и не планирует обход препятствий. Лоток находится в известном месте, контейнеры — в известных местах, и рука движется туда, куда ей указано. Это сделано намеренно: захват является отдельной и более сложной, чем кажется, задачей по сравнению с позиционированием, и их смешение становится причиной того, что первые машины для захвата и переноса останавливаются на полпути.
Когда рука должна найти деталь вместо получения её координаты, используйте калибровку камеры и определение позы по маркеру; этот слой надстраивается над рабочим циклом захвата, а не заменяет его.
Дорожная карта проекта
Путь сборки
Следуйте по дереву технологий от деталей к работающему роботу. Каждый узел открывается, когда выполнены его предварительные условия, а ваш прогресс сохраняется на этом устройстве.
0 / 21 выполнено
Компоненты
- ШассиКомплект роботизированной руки 4-DOFАкриловая или металлическая рама превращает сервоприводы в манипулятор: основание, плечо, локоть и захват.
- Исполнительный механизмЗахват на сервоприводеОдин сервопривод, два пальца и единственное число, о котором не сообщает объявление о продаже.
- Исполнительный механизмСервопривод SG90Сервопривод массой девять граммов для большинства роботизированных рук, захватов и механизмов поворота.
- ДрайверДрайвер сервоприводов PCA968516 сервоприводов через два вывода I²C — плата за большинством роботизированных рук и гексаподов.
- КонтроллерArduino UnoПрощающая 8-битная плата, с которой большинство знакомится с робототехникой.
- ДатчикРычажный микропереключательЕдинственный бит данных, который сообщает роботу, что он уже столкнулся с препятствием.
- ПитаниеБатарейный блок питания роботаРазница между работающим роботом и роботом, который постоянно перезагружается.
Руководства на этом пути
- Начальный · 30 минТипы роботозахватов и расчёт силы сжатияВыберите тип захвата, а затем рассчитайте силу с учётом составляющей, которую все забывают: ускорения.
- Средний · 25 minТрение, силовое замыкание и риск двух контактовПочему объект выскальзывает, как бы сильно вы ни сжимали, и что на самом деле сообщает конус трения.
- Средний · 30 минСила сервопривода в захвате: заклинивание и податливостьСервопривод задаёт положение, границы — силы, а жёсткость определяет коэффициент преобразования между ними.
- Средний · 35 минКонечный автомат захвата и перемещения, устойчивый к отказамПриблизиться, захватить, проверить, поднять и поместить — и что делать, если проверка не пройдена.
- Продвинутый · 22 мин чтенияОбратная кинематика манипулятора с двумя звеньямиПочему у манипулятора с двумя звеньями два решения, куда он может и не может дотянуться и что такое сингулярность.
- Средний · 18 min readУправление сервоприводами через PCA9685 (драйвер PWM по I²C)Задайте частоту и ширину импульсов, откалибруйте шестнадцать сервоприводов и управляйте ими с двух выводов I²C, обеспечив питание.
- Средний · 40 минПрофили движения: трапецеидальное ускорение и S-криваяПлавно разгоните перемещение вместо его мгновенного задания: трапецеидальные профили, ограничения рывка и цена S-кривой.
- Начальный · 17 min readКонечные автоматы для поведения роботаЗамените запутанную логику робота явными состояниями, событиями, переходами, тайм-аутами и восстановлением.
- Начальный · 30 минПочему ваш робот перезагружается при запуске двигателейПерезагрузка, похожая на ошибку кода, почти всегда связана с аккумулятором. Спланируйте ток, а затем измерьте просадку напряжения.
- Начальный · 30 минПочему delay() ломает роботов: синхронизация с помощью millis()Робот в delay() слеп. Замените его на millis() и сравнивайте значения с учётом переполнения.
Попрактикуйтесь до сборки схемы
Настройте его в интерактивном симуляторе
Путь сборки проходит через лабораторию в браузере. Добейтесь правильного поведения здесь, а затем перенесите настройки на реального робота.
Часто задаваемые вопросы
Что сложнее всего при сборке робота для захвата и переноса?
Не рука и не кинематика, а то, что схват задаёт положение, а деталь реагирует на силу. С жёсткими напечатанными пальцами рабочее окно между падением и раздавливанием детали составляет около десятой доли миллиметра, тогда как один шаг бюджетного сервопривода перемещает губки примерно на половину миллиметра. Ни одна команда не попадает в это окно. Исправление — последовательно включённая пружина или упругая пластина, расширяющая окно пропорционально 1/k; это решение определяет успех всего проекта. Определите размер в симуляторе схвата до печати.
Почему роботизированная рука роняет деталь при движении?
Усилие схвата рассчитано на вес, а для перемещения требуется больше. Необходимое усилие захвата равно m(g + a)·SF/(μ·n), и на быстрой руке составляющая ускорения больше силы тяжести. Захват, удерживающий 58 g на месте с усилием 1.63 N, требует 1.93 N при подъёме на 250 mm за 0.9 s и 2.59 N при выполнении за 0.35 s — и отпускает деталь примерно через 40 ms после начала движения, когда рука ещё заметно не переместилась, поэтому это выглядит как отказ схвата, а не как арифметическая ошибка. Ограничьте ускорение профилем движения или увеличьте усилие захвата; обычно профиль дешевле.
Как узнать, что схват действительно поднял деталь?
Установите рычажный микровыключатель на внутренней поверхности одного пальца и подключите его к входному выводу с подтягивающим резистором. Примерно пятьдесят пенсов, один провод и прямой цифровой ответ. Разместите его на податливой части пальца, чтобы он срабатывал при повторяемом усилии, устраните дребезг программно по трём последовательным показаниям, а не по одному, и считывайте его после выдержки 300–400 ms, чтобы не попасть в колебания пальца. Измерение тока тоже работает и дополнительно обнаруживает раздавливание, но требует откалиброванного порога и дрейфует по мере разряда аккумулятора.
Нужна ли обратная кинематика?
Строго говоря, нет: позы можно задать вручную и сохранить углы суставов, а для неподвижного лотка и двух фиксированных контейнеров этого действительно достаточно. Обратная кинематика нужна, как только требуется сближение и отведение по прямой, поскольку это декартовы перемещения, и вручную заданные углы суставов не обеспечат прямую траекторию. Поскольку наклонный подход к детали опрокидывает её, а подъём по кривой тащит, большинству сборок в итоге нужны прямые отрезки, а значит, нужна IK.
Сколько сервоприводов и сколько мощности требуется?
Пять: основание, плечо, локоть, запястье и схват. Это больше каналов, чем Uno следует самостоятельно синхронизировать, поэтому используйте PCA9685 по I²C. Питание недооценивают: пять бюджетных сервоприводов, движущихся одновременно, создают всплеск тока в несколько ампер, и регулятор 5 V платы просядет и перезагрузит контроллер посреди захвата. Предоставьте сервоприводам отдельный источник с общей «землёй» и несколько сотен мкФ рядом с платой.
Что считается завершённой работой?
Пятьдесят последовательных циклов без присмотра, со счётчиком и журналом отказов. Это намного лучшая цель, чем видео одного успешного захвата, поскольку заставляет создать этап проверки, ограниченное число повторов и источник питания без просадки — именно три вещи отличают машину от демонстрации. Ниже 95% всегда есть одна конкретная причина, и журнал показывает, в каком состоянии произошёл отказ.