В рамках проекта Robossembler прорабатываются доступные для любого DIY-энтузиаста промышленные роботы и инструменты для их производства. В этой статье мы поделимся текущими успехами - обновлённым и прошедшим испытания редуктором, 5-ой версией станка намотки и дополнительно оптимизированным под 3D-печать роботом-манипулятором!
Двигатель, как правило, сам по себе не обладает трубуемым усилием, чтобы повернуть или поднять какой-то тяжелый предмет в реальном мире, поэтому ему нужен редуктор или трансмиссия. Редуктор - это такая штука, которая позволяет преобразовать крутящий момент двигателя в выходное усилие. В нашем случае это было особенно значимо - печатный статор с DIN-винтами в качестве магнитопроводов в ходе испытаний показал себя в 3-4 раза слабее аналогов с цельнометаллическим статором из электротехнической стали.
Следовательно, с таким не очень большим усилием требуется редуктор с высоким передаточным числом, а ещё, как и всё другое в Robossembler - быть простым в сборке и доступным для изготовления на принтере. Мы рассматривали многие модели редукторов, даже самые экзотические, и они все не подошли по отдельным критериям. Последним из претендентов был волновой редуктор с телами промежуточного качения. Он показал себя неплохо, но при этом оказался слишком сложен в изготовлении.
Тем не менее, после долгих экспериментов, оптимальная конструкция-таки была найдена! Им оказался прециссирующий редуктор с передаточным числом 1:43.
Посмотрите насколько он прост в сборке:
Редуктор уже прошёл ряд ключевых испытаний и тестов. Обратите внимание на вес сервопривода вместе с редуктором - всего 273 грамма, что соответствует классическому металлическому двигателю без редуктора и контроллера!
Четвёртая версия станка намотки в ходе испытаний показала себя неплохо и дала возможность намотать первые статоры в автоматическом режиме. Тем не менее, она была далека от идеала по стабильности и повторяемости результата. В пятой версии станка добавлено большое количество улучшений, из которых мы приведём лишь некоторые.
В 4 версии станок управлялся проприетарным контроллером шаговых двигателей от Creality. 5-ю версию станка мы спроектировали таким образом, чтобы можно было использовать RAMPS - контроллер из легендарного принтера RepRap.
В модель станка добавлен калибратор иглы, что существенно упростит пуско-наладку оборудования.
Сейчас 5-я версия станка проходит испытания. Вместе с этим тестируется наша утилита для генерации намоточных программ. Ранее программа для станка была задана жёстко - под определённую модификацию нашего двигателя. Новый генератор GCode позволит быстро адаптировать управляющую программу для новых конструкций статоров.
По мере готовности к производству мотора и редуктора, мы задумываемся и о оптимизации конструкции самого манипулятора. Да, он был изначально неплохо оптимизирован для 3D-печати. По крайней мере, мы так думали до того как в команде не появился 3D-технолог с 10-летним стажем. Он тут же выявил ряд моментов, которые следовало бы улучшить и мы взялись за эту работу. Мы попробовали добиться того, чтобы печать всех деталей была предсказумой даже на низко-бюджетных принтерах. Например, мы улучшили основные детали корпуса звеньев таким образом, чтобы они печатались практически без поддержек.
По запросу motion control программиста-робототехника из нашей команды была перепроектирована вилка - деталь, соединяющая приводные звенья мунипулятора в единую кинематическую "цепь". Предыдущая версия вилки обеспечивала лучший радиус рабочей зоны - с ней робот мог достать дальше. Однако, такая конструкция приводила к частым сингулярным положениям в ходе вычисления траектории движения, что затрудняло управление роботом в симуляции. Новая конструкция вилки лишена этого недостатка - кинематика робота теперь будет более оптимальной и больше напоминать Kuka Iiwa ;D.
Для эффективного управления роботом-манипулятором параллельно нами разрабатывается программное обеспечение на базе ROS 2 Humble (Jazzy тестируется) и Behaviour Tree CPP v4, который сейчас проходит испытания на AR4. Одна из главных инноваций: интенсивное использование узлов управления жизненным циклом для изменения параметров исполнения в runtime - например, конфигурация контроллеров или загрузка новых моделей весов нейросетей машинного зрения в режиме runtime.
В ближайшем будущем мы планируем:
Следите за обновлениями в моём блоге в Telegram!