iHand
роботизированная антропоморфная рука
От идеи к реализации:
история развития проекта iHand
Роборука iHand
от московской команды инженеров МГУ им. М. В. Ломоносова
пояснение
iHand — это роботизированная антропоморфная рука с большим количеством степеней свободы, которая имеет цифрового двойника, позволяющего обучать искусственный интеллект манипулированию объектами
Ещё 15 — 20 лет назад кадры из «Терминатора» казались нам фантастикой, а сегодня роботы стали обыденностью современного мира.

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


Разработками умных и полезных роботов и роботизированных устройств с применением ИИ занимаются по всему миру. Интерес к робототехнике растёт как у профессионалов, так и у любителей.

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

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

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

Технический директор ЦИФ МГУ кандидат физико-математических наук, научный сотрудник физического факультета
МГУ имени М. В. Ломоносова Сергей Запуниди читал в это время студентам факультативный курс «Нейронные сети».

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

Сегодня в мире есть много манипуляторов, которые распознают объекты по видеосигналу: они «видят» положение объекта, его форму и только после этого, манипулируют им. А Сергею захотелось, создать такую роборуку, которая сможет выполнять манипуляции предметом на ощупь как, например, это делает незрячий человек: он не видит сам предмет, но трогает его рукой и начинает им манипулировать на ощупь, например, перебирать пальцами.

Эта идея показалась Сергею интересной в качестве студенческого проекта, где ребята смогут отработать навыки программирования, реализовать интересные идеи на практике и в последствии писать дипломные работы на собственном практическом примере. Задумка так увлекла Сергея, что он все-таки решает организовать команду на базе ЦИФ МГУ и приглашает к работе над проектом всех желающих студентов факультативного курса «Нейронные сети».
В 2019 году Сергей даёт шанс своей идее воплотиться в жизнь в виде проекта iHand!
Сергей Запуниди
Технический директор Центра Инженерной Физики МГУ имени М. В. Ломоносова
«Создание роботизированной руки iHand началось с использования простых конструкций, которые постепенно усложнялись. Мы моделировали, разрабатывали, пробовали, ошибались, и это привело нас к оптимальным решениям»
Когда Сергей рассказал коллегам в Центре Инженерной Физики МГУ о своём решении, его сразу поддержали и согласились принять участие в работе. Его студенты с факультативного курса «Нейронные сети» тоже с интересом согласились помогать. Так команда энтузиастов под руководством Сергея Запуниди приступили к реализации проекта по созданию роботизированной антропоморфной руки iHand.
AliExpress — главный помощник в роботостроении
или как мы собирали первый вариант роборуки
2019 год
Первый вариант роборуки iHand
Сотрудники ЦИФ МГУ и студенты — слушатели факультативного курса «Нейронные сети», которые участвовали в разработке:

Сергей Запуниди
Руководитель проекта

Игорь Дегтярёв
Ведущий инженер

Алексей Милюшин
Монтажник

Олег Гончаров
Программист

Дмитрий Злобин и Руслан Бегишев
студенты ВМК МГУ

Марк Прихно и Никита Преснов
студенты Физического факультета МГУ
Без лишних раздумий, первыми к работе по проекту подключились коллеги: ведущий инженер Игорь Дегтярёв, монтажник Алексей Милюшин, программист Олег Гончаров и студенты факультативного курса «Нейронные сети» Дмитрий Злобин, Руслан Бегишев, Марк Прихно и Никита Преснов.

Ответственная роль в проекте досталась Игорю — ему предстояло спроектировать роборуку, подобрать все необходимые компоненты и координировать работу команды. Алексею отводилась роль сборщика всех компонентов, студенты Дмитрий и Руслан под руководством Олега занимались программированием, Никита реализовывал прошивку плат, а Марк помогал с выбором нейронной сети и алгоритмов обучения.

В самом начале мы поставили перед собой главную задачу — найти способ подключить роборуку к компьютеру и настроить ROS-систему и всю электронику.
пояснение
Robot Operating System (ROS) — платформа для разработки ПО роботов через которую мы планировали управлять роборукой

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


Игорь стал искать недорогие решения и нашёл оптимальный вариант… на AliExpress! Именно там мы купили первую подвижную механическую кисть фирмы XuQi Hobby.


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

Первый вариант роборуки iHand

Фото: архив ЦИФ МГУ
Кисть XuQi Hobby была самой простой моделью, в которой движение пальцами управлялось пятью сервоприводами, установленными в ладони. Угол сгиба пальца мы задавали сами через угол поворота сервопривода и этот же угол принимали за реальное положение пальца.

Для измерения сгиба локтевого сустава мы установили в шарнир линейный потенциометр SL10091N-A10K, а на кончики всех пальцев и в середину ладони закрепили датчики давления/касания. На тот момент мы приобрели доступные на рынке электроники плёночные резистивные тензодатчики FSR402.

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

Нам требовалась отладочная плата с определёнными параметрами:


* не менее 8-ми аналоговых каналов для датчиков с разрядностью АЦП 12-бит


* не менее 8-ми ШИМ-каналов для суставов


* возможность подключения к компьютеру по USB-интерфейсу или UART

Под эти запросы Игорь остановил выбор на отладочной плате STM32F429I-DISC1 от ST MICROELECTRONICS. Прошивку для неё реализовывал Никита Преснов, студент физического факультета МГУ.

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

Отладочная плата STM32F429I-DISC1 с платой-переходником.

Фото: архив ЦИФ МГУ
важно

Такой платы-переходника не существует на рынке электроники, поэтому Алексей Милюшин изготовил её самостоятельно.


На макетной плате он расположил:


* оптроны для гальванической развязки управляющих ШИМ-сигналов сервоприводов


* резисторы верхнего плеча для реализации резисторного делителя для тензодатчиков, чтобы можно было их подключить к АЦП-входу отладочной платы


* разъёмы для подключения сервоприводов, тензодатчиков и силового питания

К этому времени Игорь Дегтярёв спроектировал 3D-модель руки, чтобы её можно было использовать для реализации виртуальной руки в среде виртуального моделирования GAZEBO.

Механическая рука уже была собрана и нам требовалось подключить её к компьютеру при помощи интерфейсной платы и платы-переходника, чтобы протестировать в среде виртуального моделирования GAZEBO в сочетании с системой управления ROS-control.

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

Создание цифрового двойника

Фото: архив ЦИФ МГУ
важно

Весь софт для GAZEBO самостоятельно разрабатывали студенты ВМК МГУ

Дмитрий Злобин и Руслан Бегишев под руководством Олега Гончарова

Чтобы кисть могла захватывать объект, Дмитрий и Руслан разработали для неё специальный контроллер, логика которого была реализована на конечных автоматах. Он считывал показания с тензодатчиков на каждом пальце и ладони, и если хоть на одном из них менялось значение, то есть появлялось давление, то контроллер понимал, к какой части руки оно относится и запускал алгоритм захвата объекта. Таким образом происходило сжатие пальцев руки.


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

это интересно!

Чтобы активировать сжатие пальцев, нужно чтобы выполнялось одно из следующих условий:


* давление на ладонь должно быть больше заданного порога

* хотя бы на одном датчике должно было быть зарегистрировано давление и в течение заданного времени показания всех датчиков должны были быть растущими


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


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

Захват, поднятие и удержание объекта роборорукой.

Видео и фото: архив ЦИФ МГУ
Изначально в роборуке iHand мы планировали применить машинное обучение, для наиболее точного захвата и манипулирования объектами. И вот теперь, когда вся механическая часть была готова, а испытания в виртуальной среде проведены, мы решили начать работу с искусственным интеллектом.

Студент физического факультета МГУ Марк Прихно под руководством Сергея Запуниди начали работать над этой задачей. Изначально они ещё не понимали какую нейронную сеть будут брать и какой подход к обучению использовать.
В качестве тестового варианта, чтобы разобраться как вообще будет работать роборука, была выбрана простая нейросеть с обучением с учителем.

пОЯСНЕНИЕ

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

Архитектура нейросети выглядела так: на вход подавалось скалярное значение силы с датчика, а на выход — скалярное значение скорости пальца в данный момент времени. Модель являлась бинарным классификатором:
два класса 0 и 1 — скорости + Vmax и — Vmax соответственно.

Модель имела два скрытых слоя с общим числом обучаемых параметров 609, функция ошибки — binary_crossentropy, оптимизатор — классический adam.

Архитектура нейронной сети

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


После обсуждения Сергей предложил Марку сменить подход к обучению нейронной сети на «Обучение с подкреплением», а полученные в ходе работы результаты использовать для курсовой работы в МГУ. Марк согласился, и они стали думать, как продолжать работу.

пОЯСНЕНИЕ
Обучение с подкреплением (англ. reinforcement learning) — способ машинного обучения, при котором система обучается, взаимодействуя с некоторой средой.

В обучении с подкреплением существует агент (agent), который взаимодействует с окружающей средой (environment), предпринимая действия (actions). Окружающая среда даёт награду (reward) за эти действия, а агент продолжает их предпринимать.
Также в ходе проверок и тестирований, команда поняла, что механическая часть iHand требует значительной доработки, поэтому было принято решение делать второй вариант роборуки. В нём мы запланировали улучшить её механическую часть и научить нейросеть захватывать и удерживать объект по данным с тактильных датчиков.

Работа предстояла большая! При этом энтузиазм у команды немного погас, ведь исправлять ошибки всегда менее интересно, чем создавать новое. Однако азарт и желание увидеть готовую работающую роборуку придавали сил, чтобы завершить начатое!
Важно
На первый взгляд может встать вопрос: «Зачем в роборуке вообще стоит применять машинное обучение, ведь уже был создан цифровой двойник, с помощью которого можно управлять механической рукой?»

Ответ: с помощью цифрового двойника управление будет из разряда «поверни палец на 5 градусов» т.е. чтобы рука схватила предмет, нужны будут чёткие и детальные указания.

Классические алгоритмы не всегда смогут с ними справиться, а вот с помощью машинного обучения — это вполне реально.
Итоги первого варианта роборуки iHand
Чтобы реализовать первый вариант роборуки iHand, нам потребовался целый год.

На этом этапе силами небольшой команды Центра Инженерной Физики МГУ при участии студентов удалось:

* собрать простейшую механическую руку, с использованием готовой китайской роботизированной кисти и оснастить её всей необходимой электроникой

* создать её цифровой двойник, которым можно управлять с компьютера

* начать программирование роборуки

* выбрать нейронную сеть и понять, какой подход к её дальнейшему обучению стоит использовать
Чем дальше — тем интереснее
2020 год
Второй вариант роборуки iHand
Сотрудники ЦИФ МГУ и студенты — слушатели факультативного курса «Нейронные сети», которые участвовали в разработке:

Сергей Запуниди
Руководитель проекта

Игорь Дегтярёв
Ведущий инженер

Ирина Слободянюк
Инженер-конструктор

Алексей Милюшин
Монтажник

Олег Гончаров
Программист

Дмитрий Злобин и Руслан Бегишев
студенты ВМК МГУ

Марк Прихно и Никита Преснов
студенты Физического факультета МГУ
Собрав и протестировав первый вариант механической руки, мы поняли, над чем нам предстоит работать дальше.

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

Чтобы наша роборука стала более подвижной и точной, нам требовались значительные доработки:


* нужно было качественно спроектировать роборуку


* изготовить недостающие компоненты


* заново её собрать

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

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

Предстоящие сложности не испугали команду и мы приступили к доработкам!

Игорь Дегтярёв стал искать в интернете общедоступные модели и чертежи по изготовлению протезов и механических рук, которые можно было бы взять за основу и доработать. На YouTube он нашёл ролики с работами Will’а Cogley и показал их команде. Всех заинтересовала модель механической руки, созданная по образу и подобию человеческой. Мы захотели подробнее её изучить.

это интересно!
Will Cogley — энтузиаст, который создаёт механические подобия человеческих органов: рук, глаз, сердца.

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

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

Проект механической руки Will’а Cogley

Скриншот из видеозаписи автора

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

В это время в компанию пришла работать инженер-конструктор Ирина Слободянюк, которая тоже захотела помочь с проектом iHand. Мы просмотрели все видеоролики роботизированной руки Will’а Cogley и по образу из видеоряда составили проект для нашей будущей роборуки. Затем Ирина отрисовала его в CAD SolidWorks и спроектировала 3D-модели всех деталей.

3D-проект роборуки. Рендер. Разработка ЦИФ МГУ

Нам удалось скопировать визуальный образ механической руки Will’а Cogley, однако, чтобы сделать нашу роборуку с обратной связью, нам требовалось установить потенциометры внутрь каждого из подвижных суставов. Для этого нам пришлось сильно доработать все суставы руки. Благодаря потенциометрам получилось считывать реальные положения каждого сустава. По этим данным нейронная сеть будет обучаться более точному захвату объекта.

Все детали мы напечатали из PETG пластика на 3D принтере. Своего на тот момент у нас ещё не было, поэтому печать мы заказали в сторонней фирме. Из полученных деталей Алексей Милюшин собрал второй вариант роборуки, которая походила на человеческую больше, чем первая наша роборука с кистью с AliExpress. В новой версии iHand каждый палец механической руки имел три фаланги, соединённые суставами, она стала более эстетичной и функциональной.
на заметку

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

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

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

3D-модели деталей. Разработка ЦИФ МГУ

Также мы спроектировали и собрали новое предплечье с необходимой электроникой: с многоканальным АЦП
Lcard E-14−440 и ШИМ-контроллером Torobot PWM32.

Как мы уже упоминали, в конструкцию роборуки мы сознательно добавили потенциометры, которые измеряют угол поворота каждого из суставов и передают эти показания на компьютер. Всего в кисть было установлено 22 потенциометра 3382G-1−103: по 4 штуки в каждом пальце, 1 штуку в сочленении ладони с мизинцем, и 1 штуку в сочленении ладони с безымянным пальцем. Они подают информацию о скручивании кисти, которое происходит, если, например, мизинец касается основания большого пальца.

Собранная роборука iHand без кожухов. Второй вариант

Фото: архив ЦИФ МГУ

совет
Из-за малых размеров деталей нам требовался крепёж малого диаметра.
В основном мы работали с винтами М1.6 и М2, которые ранее заказывали на AliExpress.
В ходе сборки выяснилось, что нам потребуется дополнительный мелкий крепёж, но оказалось, что найти его в Москве по адекватной цене — это серьёзная проблема.

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

Поэтому, если вам потребуется мелкий крепёж, рекомендуем заранее позаботиться о нём и заказать на AliExpress. Из-за маленького веса доставка будет дешёвой или бесплатной, но имейте в виду, что сроки ожидания могут быть длительные.
Так как движение пальцев в этом варианте роборуки должно было осуществляется за счёт тросиковой системы и сервоприводов, мы стали искать способ реализовать эту систему, и вот как нам это удалось! От вала сервопривода к каждому подвижному элементу руки мы натянули корд — плетёную рыболовную леску для веса около 12 кг. Мы использовали именно плетёную леску, потому что она не подвержена сильному растяжению при больших нагрузках. Этот корд (леска) проходил в тефлоновой трубке. Почему именно тефлон? Он имеет низкий коэффициент трения и это позволяет корду проскальзывать по трубке, не нагружая сервоприводы дополнительным сопротивлением. Но тефлоновую трубку требовалось каким-то образом закрепить. Методом проб и ошибок мы нашли вариант как это можно сделать!
лайфхак

Оказывается, на тефлоновой трубке диаметром 2 мм, стальной гайкой М2 можно сформировать резьбу!


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

Чтобы придать руке завершённый и эстетичный вид, мы закрепили на пальцы и ладонь специальные кожухи. Так как мы внесли значительные доработки всех суставов, то сделать кожухи такими же, как у оригинальной механической руки
Will’а Cogley было невозможно, поэтому мы разработали собственные.

К тому моменту в нашей компании уже появился 3D-принтер и мы смогли самостоятельно напечатать на нём подходящие кожухи из ABS пластика. В них мы предусмотрели полости под провода потенциометров и тефлоновые трубки.

Как и в предыдущем варианте роборуки, на кончики пальцев и в середину ладони мы установили плёночные резистивные тензодатчики FSR402, которые мы закрепили к кожухам.

Кисть второго варианта роборуки в кожухах

Фото: ЦИФ МГУ

Пока одни занимались улучшением механической части роборуки, другие занимались настройкой её цифрового двойника.

3D-модель второго варианта роботизированной руки мы интегрировали в программный комплекс по управлению и компьютерной симуляции. Проект, созданный в программе SolidWorks, наши программисты Дмитрий Злобин и Руслан Бегишев конвертировали в более удобный для Gazebo и ROS-control формат urdf.

А ещё для Gazebo требовалось загрузить описание роборуки в формате sdf, поэтому ребята провели унификацию программных интерфейсов для реальной роборуки и её виртуального прототипа. Теперь, с точки зрения системы управления, нет разницы, идёт ли управление механической роборукой или её цифровым двойником. Также для второго варианта роборуки мы добавили контроль над длительностью цикла управления — это позволило избежать ошибок в расчёте управляющего воздействия из-за сдвигов по времени.
На заметку
Для поддержки электроники механической руки Дмитрий и Руслан самостоятельно написали необходимые подпрограммы и модули:

* модуль взаимодействия с многоканальным АЦП Lcard E-14−440

* модуль для работы с ШИМ-контроллером Torobot PWM32

* модули преобразования полученных АЦП напряжений в измеряемые величины для
потенциометров Bourns 3382G-2−103G и тензодатчиков Interlink FSR40
Теперь 3D-модель полностью соответствует прототипу механической руки, и мы решили использовать её для отладки и проверки алгоритмов управления в виртуальном мире.

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

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

Теперь с помощью программы RViz, мы можем отображать реальное положение роборуки в пространстве и оно полностью совпадает с виртуальным в GAZEBO.

Визуализация данных с тензодатчиков на макете роборуки и визуализация компьютерной модели роборуки в среде Gazebo

Фото: архив ЦИФ МГУ

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

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

Теперь нейронка работает следующим образом: модуль обучения (расположенный в блоке «train NN») отправляет нейронную сеть («NN») в симуляцию с виртуальной рукой (блок «generate experience»).
Нейронная сеть выбирает действия роботизированной руки, отклик симуляции сохраняется в файл («Database»), который посылается в основной модуль обучения и сохраняется в базу данных опыта. Нейронная сеть учится по накопленным данным, совершенствуется и снова отправляется генерировать опыт.

Архитектура нейронной сети для второго варианта роборуки

Применение такой архитектуры позволило:

1. Создать несколько симуляций с виртуальными механическими руками для ускорения набора опыта
2. Ввести иерархическую систему обучения: постепенную выработку навыков, от простых к сложным
3. Формировать различные задачи для руки и вырабатывать тем самым, различные навыки
4. Автоматизировать обучение: система способна стабильно накапливать опыт без вмешательства пользователя
5. Ввести нейронные сети, принимающие последовательности данных и обладающие памятью

Сергей и Марк протестировали эту систему и поняли, что автоматический обмен информацией между модулем обучения и виртуальной рукой позволяет ставить роборуке задачи.

Это настоящий прогресс!
это интересно!

По результатам, полученным при обучении нейронной сети для роборуки iHand, Марк Прихно написал и защитил свою курсовую работу.


Позже на её основе Марк написал и на отлично защитил дипломную работу «Сбор и оптимизация обучающей выборки для парадигмы офлайн обучения с подкреплением цифрового двойника роборуки».

Захват и удержание объекта с помощью управления цифровым двойником / нейронной сетью

Видео: архив ЦИФ МГУ

Итоги второго варианта роборуки iHand
У команды ушёл ещё 1 год на доработки.

Новая конструкция второго варианта роборуки дала более широкие возможности: теперь iHand может схватить и удерживать предметы разные по весу и по текстуре — тонкие, твёрдые, гибкие.

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

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

На этом этапе мы были близки к первоначальной задумке Сергея Запуниди, но ещё оставалось, над чем поработать.
Совершенству нет предела!
2021 год
Третий вариант роборуки iHand
Сотрудники ЦИФ МГУ, которые участвовали в разработке:

Сергей Запуниди
Руководитель проекта

Игорь Дегтярёв
Ведущий инженер

Павел Бычков
Инженер

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

Посмотрели мы на всё это и подумали: «Нет, это— не дело! Нужно дорабатывать!» Тем более что роборука уже практически готова и её очень хочется довести до первоначальной задумки.

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

Главная задача этого этапа — улучшить внешний вид, заменить электронику и незначительно доработать механику, сделав iHand эргономичной и эстетичной

Павел взялся за работу. Ему удалось полностью изменить конструкцию предплечья и при помощи шарового шарнира соединить с ним кисть роботизированной руки. Со сборкой ему помогал Алексей Милюшин,
а с настройкой — Игорь Дегтярёв. К этому моменту, наши помощники — студенты уже окончили университет и, к сожалению, не могут достаточно времени уделять проекту, поэтому основную работу доделывают сотрудники ЦИФ МГУ самостоятельно.

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

В этом варианте роборуки мы используем уже 21 сервопривод MG90S для управления всеми подвижными частями кисти и 2 сервопривода RDS3115 для управления положением кисти относительно предплечья. Электроника состоит из 1-й платы управления 32-мя сервоприводами и 4-х плат аналого-цифровых преобразователей USBADC10, которые мы разработали самостоятельно. Через них сигналы с потенциометров подаются в программу управления ROS-control.

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

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

Третий вариант роборуки iHand

Фото: ЦИФ МГУ

важно
Вы можете сказать: «Ну и что, ничего нового вы не изобрели!»

Конечно, Америку мы не открыли. В мире полно подобных разработок различного уровня исполнения. Однако стоит заметить, что наше ноу-хау в том, что у нас получилось самостоятельно собрать механическую роботизированную руку и создать её цифровой двойник, которым можно не только управлять, но и обучать его с помощью искусственного интеллекта.
А что дальше?
В перспективе мы планируем использовать iHand для обучения студентов МГУ имени М. В. Ломоносова искусственному интеллекту. Чтобы они самостоятельно могли задавать ей необходимые алгоритмы и обучать нужным действиям.

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

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

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

Во всяком случае, для реализации таких идей, нам необходимо сотрудничество с теми, кто будет заинтересован в таких разработках. Мы научились сами и сможем повторить этот опыт в партнёрстве с коллегами. Поэтому если наша разработка заинтересует технологическое сообщество, мы с удовольствием примем участие в поиске практического применения iHand и поделимся своим опытом!
I'll be back!
Эта история — пример того, что любая идея имеет шанс на воплощение в реальность!
Главное — очень захотеть и найти команду единомышленников. Ну и базовые инженерные знания, конечно же, никто не отменял.

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

Мы будем рады, если и наш опыт тоже окажется кому-то полезным!

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

Ну, а если вы представляете технологическую компанию и хотите купить готовую роборуку, или вместе с нами подключиться к поиску практического применения наших наработок, вы можете связаться с нами по контактам, указанным ниже.
Made on
Tilda