iHand
роботизированная антропоморфная рука
От идеи к реализации:
история развития проекта iHand
Роборука iHand
от московской команды инженеров ЦИФ МГУ им. М. В. Ломоносова
Этот видеоролик озвучен нейронной сетью
пояснение
iHand — это роботизированная антропоморфная рука с большим количеством степеней свободы, которая имеет цифрового двойника, позволяющего обучать искусственный интеллект манипулированию объектами

Ещё 15 — 20 лет назад кадры из «Терминатора» казались нам фантастикой, а сегодня роботы стали обыденностью современного мира.


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


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


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


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


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

Начало начал

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

История проекта iHand зародилась в 2019 году.


Технический директор ЦИФ МГУ, кандидат физико-математических наук, научный сотрудник физического факультета

МГУ имени М. В. Ломоносова Сергей Запуниди читал в это время студентам факультативный курс «Нейронные сети» и часто общался со слушателями по темам применения искусственного интеллекта.


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


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


Эта идея показалась Сергею интересной в качестве студенческого проекта, где ребята смогут отработать навыки программирования, реализовать интересные идеи на практике и в последствии писать дипломные работы на собственном практическом примере. Задумка так увлекает Сергея, что он всё-таки решает организовать команду на базе ЦИФ МГУ и приглашает к работе над проектом всех желающих студентов факультативного курса «Нейронные сети».

В 2019 году Сергей даёт шанс своей идее воплотиться в жизнь в виде проекта iHand!

AliExpress — главный помощник в роботостроении

или как мы собирали первый вариант роборуки

2019 год
Первый вариант роборуки iHand
Сотрудники ЦИФ МГУ и студенты МГУ имени
М. В. Ломоносова, которые участвовали в разработке:

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

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

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

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

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

Марк Прихно и Никита Преснов
студенты Физического факультета МГУ

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


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


В самом начале мы поставили перед собой главную задачу — найти способ подключить роборуку к компьютеру и настроить ROS-систему и всю электронику.

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

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


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


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


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


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


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

важно

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


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


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


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

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


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


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

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

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

К этому времени Игорь Дегтярёв спроектировал 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-модели всех деталей.


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


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

ВАЖНО

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


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

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

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


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


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


Как мы уже упоминали, в конструкцию роборуки мы сознательно добавили потенциометры, которые измеряют угол поворота каждого из суставов и передают эти показания на компьютер. Всего в кисть было установлено 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 для управления всеми подвижными частями кисти и сервопривода RDS3115 для управления положением кисти относительно предплечья. Электроника состоит из 1-й платы управления 32-мя сервоприводами и 4-х плат аналого-цифровых преобразователей USBADC10, которые мы разработали самостоятельно. Через них сигналы с потенциометров подаются в программу управления ROS-control.

Таким образом, третий вариант роборуки стал финальной версией iHand.

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

Фото: ЦИФ МГУ

Строение роборуки iHand

Строение роборуки iHand

Видео: ЦИФ МГУ

В настоящий момент роборука iHand доступна для пользователей в двух вариантах:

Для самостоятельных


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

Для увлеченных


Мы выпускаем iHand в виде конструктора, доступного к покупке. Что-то вроде всем известного Лего, только для любителей роботостроения: роборука собирается по инструкции, из деталей, разложенных по пакетам (в конструктор не входит программное обеспечение, его приобретение обсуждается по запросу).


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


Для заказа напишите нам на почту info@physlab.ru

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

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


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

Made on
Tilda