Привет, Хабр! 22 марта я выступал с презентацией на ROS Meetup в МФТИ, и по горячим следам решил оформить материал в статью. Хочу рассказать про опыт нашей команды Robonine в разработке манипулятора на 6 степеней свободы. Проект пока находится на этапе тестирования прототипа, но за это время накопилось достаточно материала, чтобы поделиться с сообществом - от мотивации и выбора кинематической схемы до борьбы с люфтами бюджетных сервоприводов и топологической оптимизации конструкции.

Как всё началось
В начале 2025 года меня сильно зацепило видео проекта Aloha Mobile от исследователей из Стэнфорда и Google. На нём их мобильная платформа самостоятельно поливала цветы и мыла посуду. Ещё год назад это выглядело как существенный прогресс в робототехнике - обучение с подражанием (imitation learning) на реальных задачах в домашней среде.
Проект открытый, я пошёл смотреть комплектующие - и цена сильно удивила.
Стоимость существующих решений:
Aloha 2 (настольная сборка из 4 манипуляторов, Trossen Robotics): ~$19 000
Aloha Mobile (мобильная платформа): ~$26 000
Agilex Cobot Magic: ~$30 000

Есть и другие аналогичные разработки, но ценовой порядок примерно одинаковый. Для исследовательской лаборатории это, может, и приемлемо, но для более широкого применения - барьер слишком высокий. Мы решили попробовать сделать значительно дешевле.
Выбор приводов: почему серводвигатели
Ключевой и самый дорогой компонент манипулятора - приводы. Это примерно 60% стоимости комплектующих (BOM). Соответственно, если цель - сделать дешёвый манипулятор, начинать нужно именно с них.
Из вариантов в бюджетном сегменте:
Шаговые двигатели - хороший момент, но нет обратной связи по положению без дополнительного энкодера, склонность к пропуску шагов под нагрузкой.
Серводвигатели (smart servo) - встроенный энкодер, обратная связь, возможность последовательного подключения (daisy chain).
Ценовой диапазон примерно одинаковый, в разных бюджетных проектах используют и те, и другие. Мы остановились на серводвигателях.

Feetech STS3215 - один из наиболее популярных бюджетных smart серво двигателей. За $15–30 за штуку мы получаем:
Магнитный энкодер на 12 бит (4096 позиций)
Рабочий момент в районе 15 кг·см
Вес 55 грамм
Последовательное подключение по шине (TTL/RS485)
Среди DIY-сообщества особенно популярна модель Feetech STS3215, которая используется в таких открытых проектах, как 5-осевой SO-ARM100. Мы тоже выбрали эту линейку как основу.
Выбор кинематической схемы: полу-SCARA
Следующее важное решение - выбор кинематики. Классический антропоморфный манипулятор с длинным плечом (скажем, 650 мм) для нагрузки в 1кг создаёт момент:
на сервоприводы в основании. При бюджетных серво с моментом 15 кг·см это просто нерабочая схема. Чтобы решить эту проблему, мы выбрали конструкцию полу-SCARA:
Вертикальное перемещение - линейный узел с шарико-винтовой передачей (по аналогии с 3D-принтерами).
SCARA-часть - звенья работают в горизонтальной плоскости, что снимает нагрузку от веса конструкции с приводов этих осей.

Начинали с Lego Technic - быстрый способ проверить идею кинематики.

CAD-модель первого прототипа: видна башня с шарико винтовой передачей обеспечивающая двидение по оси z, далее идет две консоли, которые перемащаются только в горизонтальной плоскости (SCARA-часть) и предплечье манипулятора с гриппером.
Проблема люфта (backlash) в бюджетных сервоприводах
Вот этот момент мы поначалу недооценили. Когда начали тестировать первый прототип, стало ясно, что люфт в бюджетных сервоприводах - это серьёзная проблема.

Наши измерения показали, что для серводвигателей бюджетной категории люфт может существенно отличаться от паспортных значений: 0.8° вместо заявленных <0.5°. Казалось бы, мелочь - но на рычаге 650 мм угловая ошибка в 0.8° на одном суставе даёт линейное отклонение порядка 9 мм. А если сложить люфты всех суставов, добавить податливость конструкции, люфты в узлах сопряжения и ограниченную точность энкодера - ошибка абсолютного позиционирования становится уже больше 1 см. Такую ошибку очень сложно компенсировать программно.
Компенсация люфта парными сервоприводами
Для решения этой проблемы мы используем комбинацию из двух серводвигателей на каждую ось. Двигатели работают с небольшим преднатягом (preload) относительно друг друга - один «толкает» по часовой стрелке, другой - против. Это практически полностью устраняет мёртвую зону (backlash).

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

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

Плотная компоновка узла второй версии: пары серво работают на две перпендикулярные оси.
Расположение всех узлов
Полная конструкция насчитывает 11 серводвигателей и 1 шаговый двигатель (для вертикального подъёма с шарико винтовой передачей).

На фото выше показана нумерация приводов манипулятора: 11 серводвигателей + 1 шаговый для линейной оси.
Тестовая сборка

Далее наш инженер перешел к тестированию работы узла с нагрузкой на ипровизированном стенде.
Оптимизация стоимости: от 46 деталей к 6
Сборка была передана на оценку производством. Только заказных металлических деталей было 46 наименований (лазерная резка, ЧПУ-обработка алюминия, токарные работы). Общая себестоимость для единичного производства составляла порядка 150 000 рублей (~$1500). Отпускная цена выходила близкой к тому, что предлагает Agilex со своим PIper 6 DOF - то есть ценовое преимущество терялось.
Такая стоимость нас не устроила. На следующем этапе мы радикально упростили конструкцию. Рассматривали несколько вариантов:

Радикальное упрощение по типу Aharobot (минимум деталей, максимум компромиссов по жёсткости)

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

В итоге число заказных деталей сократилось в 7 раз — с 46 до примерно 6 наименований. Стоимость вместе с доставкой из Китая составила $452. Обащая стоимоть BOM до примерно $900.
Топологическая оптимизация

После упрощения конструкции мы провели топологическую оптимизацию ключевых несущих элементов. Результаты:
Параметр | Исходная конструкция | После оптимизации |
|---|---|---|
Масса | 1.937 кг | 2.376 кг (+22%) |
Макс. напряжение | 93 МПа | 25 МПа (↓ в 3.7 раза) |
Отклонение по оси Y | 1.05 мм | 0.41 мм (↓ в 2.5 раза) |
Отклонение по оси X | 1.03 мм | 0.31 мм (↓ в 3.3 раза) |
Отклонение по оси Z | 0.62 мм | 0.21 мм (↓ в 3.0 раза) |
При умеренном увеличении массы на 22% мы получили уменьшение максимального напряжения почти в 4 раза и уменьшение отклонений по осям в 2.5–3.3 раза. Подробный материал по оптимизации опубликован на нашем сайте.

Финальная конструкция после топологической оптимизации - характерные «органические» формы рёбер жёсткости.
Финальная конструкция и концепт
Итоговая конструкция объединяет все наработки: полу-SCARA кинематику, парные серво для компенсации люфта, оптимизированный BOM и топологически оптимизированные элементы.



Итого: что получилось
Ключевые решения, которые позволили снизить стоимость:
Бюджетные серводвигатели (Feetech STS3215 или Feetech STS3250, $15 - 40 за штуку) вместо дорогих Dynamixel.
Полу-SCARA кинематика - снижение нагрузки на приводы за счёт горизонтальной работы части звеньев.
Парные серво с преднатягом - компенсация люфта без дорогих безлюфтовых редукторов.
Радикальное упрощение BOM - с 46 до 6 заказных деталей.
Топологическая оптимизация - снижение напряжений в 3.7 раза при росте массы всего на 22%
Стоимость комплектующих для одного манипулятора: ~ $900 .
GitHub: github.com/roboninecom
Telegram: t.me/robo_9
