Привет, Хабр! Сегодня мы позвали в наш блог Валерию Скворцову — ассистента Лаборатории робототехники Университета Иннополис, чтобы она рассказала о разработке научного прототипа робота для реабилитации кистей рук при парезах, вызванных, например, инсультом. Робот спроектирован по принципу параллельного сферического манипулятора, и хотя проект еще не завершен, там уже есть на что посмотреть. Передаем ей слово.
Начну с начала. Можно сказать, что идею этого проекта подсказали преподаватели, когда я училась робототехнике на первом курсе магистратуры Университета Иннополис. Для курсовой работы по Introduction to Robotics предложили тему «Робот для реабилитации кисти руки». Я заинтересовалась и, так как разбираюсь в промышленном дизайне, решила сделать из курсовой диплом. Проект затянулся, я занималась разработкой всю магистратуру, получила грант «Умник» на развитие инновационного проекта и продолжаю совершенствовать конструкцию.
Проблема реабилитации важна, потому что каждый год в России регистрируется около 450 тысяч инсультов головного мозга. Эта болезнь часто приводит к нарушению двигательной активности, парезам — состоянию, когда резко ослабевает сила мышц. К сожалению, полностью восстанавливаются лишь около 10% пациентов.
При этом реабилитация при парезах — это регулярные тренировки, во время которых пациент заново учится двигаться, постепенно восстанавливает старые нейромышечные связи и формирует новые. Проблема в том, что специалистов по реабилитации не хватает, однако в ряде случаев для помощи пациентам применяют роботов.
Роботы для восстановления подвижности кистей рук уже существуют, их активно используют в США и Швейцарии. Пациент помещает руку в такой аппарат, его локтевой сустав фиксируют на специальной подставке, а затем подвижные элементы машины разрабатывают запястный сустав: плавно двигают кисть вниз и вверх, вправо и влево и скручивают в обе стороны. Я хотела сделать нечто подобное.
Старт разработки
Прежде всего нужно было выбрать тип конструкции. В процессе анализа литературы в одной из диссертаций нашлась модель параллельного сферического манипулятора. Я решила взять эту идею за основу и рассчитать кинематику под мою задачу.
Человеческая кисть, если зафиксировать руку в локтевом суставе, описывает в пространстве некую полусферу.
Параллельный сферический манипулятор так же, как и запястный сустав, имеет три вращательные степени свободы. Поэтому его использование для реабилитации кисти руки оправданно с физиологической точки зрения. А если спроектировать манипулятор так, чтобы фиксированный центр вращения совпадал с центром вращения кисти руки, робот сможет повторять ее движения во всем доступном человеку диапазоне. Кроме того, параллельная конструкция компактнее и обеспечивает большую жесткость, чем последовательные манипуляторы.
По сравнению с решениями для реабилитации, которые уже есть на рынке (с готовыми продуктами, а не другими научными разработками), это значительные преимущества.
Готовые коммерческие системы обладают одной, максимум двумя осями и не могут одновременно двигаться в трех степенях свободы и потому менее эффективны.
Расчет кинематики
Процесс разработки был итеративным и первое время даже хаотичным, поэтому его трудно разделить на последовательные этапы.
Я рассчитывала кинематику и сразу проверяла на простых механических моделях, распечатанных на 3D-принтере. Сначала без моторов, потому что прежде всего меня интересовала геометрия деталей.
Если что-то не получалось, плечи робота застревали или двигались не так, как я рассчитывала, приходилось пересчитывать кинематику и печатать модель заново. Все-таки конструирование робота — это больше математическая, а не чисто инженерная задача.
Вы не сможете точно управлять движениями робота, если не решите задачу обратной кинематики. Для этого мы выбираем желаемую ориентацию робота в пространстве и рассчитываем углы поворота моторов, которые помогут достичь этого положения.
Прямая кинематика представляет собой обратную задачу — вычисление того положения, в котором окажется робот, если моторы будут повернуты определенным образом. В моем проекте прямая кинематика используется для проверки правильности выполнения команд.
Решение дифференциальной задачи кинематики помогает управлять скоростью и силой, с которой движется манипулятор. Эти расчеты важны для безопасности пациента: если что-то пойдет не так, то робот может повредить его руку.
За всем этим скрываются сложные математические задачи. Вот, например, некоторые расчеты для обратной кинематики.
С математической точки зрения параллельный сферический манипулятор описывается двумя виртуальными пирамидами, стоящими друг на друге. Центр вращения робота находится в точке О, это точка соприкосновения вершин двух пирамид. Набор углов определяет механические свойства, не изменяется в процессе работы и определяет рабочее пространство робота.
Углы и определяют положение центра вращения и угол крепления ног к базовой и мобильной платформам соответственно, а углы и определяют длины дуг опорных плеч, из которых состоит каждая нога робота.
Для вычисления углов в нижних суставах опорных плеч используется скалярное произведение для z-векторов v и w систем координат в каждой из ног. Их скалярное произведение должно быть равно косинусу дуги опорного плеча между ними:
В этом уравнении можно провести следующую замену:
Получается простое квадратное уравнение:
Это означает, что решением для будет решение данного квадратного уравнения и его дальнейшее преобразование через арктангенс:
Чтобы вычислить углы в средних суставах между опорными плечами в ноге, используется следующее уравнение:
Для вычисления углов проводится тот же набор операций, только относительно угла .
Борьба с сингулярностью
Еще одна сложность связана с сингулярностью. Нет, не с тем моментом, когда нас поработит искусственный интеллект. В сингулярных состояниях робот испытывает очень высокую нагрузку на суставы либо его движение блокируется. Такие состояния есть у всех роботов, но проще объяснить суть проблемы на примере человеческого тела.
Когда вы приземляетесь после прыжка, безопаснее согнуть ноги, потому что если они будут выпрямлены, то коленный сустав может вывернуться и получится вывих. Можно сказать, что вытянутая нога находится в сингулярном состоянии. Это справедливо и для полностью вытянутой роборуки. Если подать команду на движение, нельзя будет предсказать, в какую сторону повернется рука относительно своих осей.
Для параллельных роботов существует три типа сингулярных состояний. Первый тип относится к последовательной части структуры робота и называется последовательной сингулярностью. Она возникает, когда мобильная платформа неподвижна, а активные суставы имеют ненулевую скорость.
С точки зрения математики это происходит тогда, когда матрица Якоби хотя бы одной из ног вырождается и приобретает линейную зависимость.
Второй тип сингулярности называется параллельной сингулярностью. В общей форме Якоби для робота используется оператор псевдоинверсии:
В этом операторе присутствует обратная матрица из . Если эта матрица вырождается, то получить ее обратную матрицу невозможно. Соответственно, ориентация робота, соответствующая этой матрице, является параллельно-сингулярной.
Физически в таком состоянии будет ненулевой поворот мобильной платформы, для которого скорости в активных суставах равны нулю. В окрестностях такой конфигурации робот может иметь бесконечно малейшие движения при заблокированных исполнительных элементах. В результате одна из степеней свободы мобильной платформы не поддается управлению.
Последний тип называется смешанным типом сингулярности. Это суперпозиция между первыми двумя типами (последовательная и параллельная сингулярность выполняются одновременно). В результате мобильная платформа перемещается в пространстве, когда исполнительные механизмы заблокированы, и наоборот.
Чтобы определиться с окончательной конструкцией, нужен был тип манипулятора, в котором сингулярность будет меньше, то есть я должна была решить задачи оптимизации для классического и асимметричного манипуляторов.
В классическом исполнении робота активные суставы находятся в месте соединения ног с базовой платформой, что на рисунке 1 соответствует u системам координат. Соответственно, набор активных и пассивных суставов в этом исполнении может быть описан набором векторов:
В асимметричном манипуляторе три активных сустава находятся в месте соединения опорных плеч каждой ноги робота, что соответствует w системам координат, и один из двигателей находится в основании первой ноги. В этом случае набор активных и пассивных суставов можно описать так:
Мне нужно было выбрать тип манипулятора, в котором сингулярность будет меньше, то есть решить задачи оптимизации для обоих типов манипуляторов.
Рабочее пространство классического исполнения параллельного сферического манипулятора с параметрами
Рабочее пространство асимметричного исполнения параллельного сферического манипулятора с параметрами
Моделирование показало, что асимметричное исполнение выигрывает у классического в рабочем пространстве при , так что выбор пал именно на эту конструкцию.
Математическая модель и визуализация в MATLAB
Все расчеты я производила в MATLAB. Там же написала простой визуализатор, в котором оси вращения соединены отрезками с системами координат, переходами и так далее, чтобы визуально можно было оценить верность тех или иных решений. Получился 3D-график того, как все детали располагаются в пространстве.
Особенность прямой и обратной задач кинематики параллельных роботов в том, что если все правильно, то все три ноги робота должны сходиться в одной точке. Поэтому даже такого простого визуализатора достаточно для валидации расчетов.
Сборка робота
Моторы для первого прототипа, подшипники, соединительные элементы и прочее я подбирала методом проб и ошибок и занимаюсь этим до сих пор. Строго говоря, просчитать и подобрать все детали — очень большая работа, на которую вечно не хватает времени.
Однако, научный прототип — это не законченный рыночный продукт, который полностью обсчитан и испытан. В научной разработке некоторыми вещами можно пренебречь, потому что задача — не продать робота, а проверить гипотезу, выяснить имеет ли она право на существование или нет.
Первоначально я печатала ноги и оси робота из нейлонового филамента. Я выбрала его из-за хороших показателей прочности, особенно на разрыв, но вскоре выяснилось, что деталям из этого материала не хватает жесткости.
В результате первый полноразмерный прототип вел себя как желе. Чтобы он хоть как-то работал, пришлось вставлять металлические спицы между ногами робота. Это позволило увеличить жесткость конструкции без значительного увеличения веса.
Сейчас мы с коллегами осваиваем лазерную резку металла. Это довольно дешевая технология, и с ее помощью можно добиться хороших результатов по жесткости.
Управление и программное обеспечение
В выбранные мной двигатели DYNAMIXEL MX-106 встроен драйвер с базовой системой управления по позиции, скорости и току. Они поддерживают протокол RS-485, имеют открытый исходный код и API для различных языков программирования. Для управления ими даже не понадобились микроконтроллеры. Я повесила моторы на одну последовательную шину и подключила на преобразователь напрямую в USB.
Обновленный прототип с большей жесткостью
Для тестирования прототипа я сначала пользовалась языком программирования MATLAB, потому что он часто используется в научной среде, достаточно прост и не требует глубоких знаний программирования. Но задачи постепенно усложнялись, и пришлось переходить на C++ и Phyton. Думаю, что в следующей реализации верхний уровень управления (траектории и UI) будет написан на Python, а нижний (опрос датчиков и управление моторами) — на C++.
Будущее проекта
Прототип робота получил базовую ось, с помощью которой он жестко крепится к поверхности, например к столу. Моторы установлены на нижних ногах, но около года назад в одной из статей про параллельные сферические манипуляторы я увидела реализацию подобного робота без оси и ног. В этом варианте моторы двигаются на подшипниках по окружности.
Траектории остаются прежними, но такая конструкция занимает меньше места. Сейчас я работаю над ее реализацией. Основная задача — уменьшение трения кареток на дуге, где располагаются моторы.
Прежде чем робота можно будет испытывать на людях, придется поработать над обратной связью. Сейчас я проверяю положение манипуляторов по данным с моторов, но этого недостаточно, так можно повредить пациенту руку. Коллеги в шутку предлагали установить микрофон, чтобы определять момент, когда пациент закричит, но, если серьезно, роботу необходимы специальные датчики.
Идеальный вариант — неинвазивные датчики, которые измеряют уровень напряжения в мышцах. Их применяют в экзоскелетах, но доступные образцы выдают очень шумные данные. Скорее всего, я сперва попробую датчики силы.
Есть исследования, которые говорят о том, что элементы геймификации повышают эффективность реабилитационных процедур, так как увеличивают вовлеченность пациента. Возможно, когда-нибудь я добавлю их в свой проект, но до этого еще далеко. Сперва необходимо запатентовать модель кинематики, завершить новый прототип, настроить податливое управление и организовать испытания на людях.
Впереди terra incognita, но у меня есть ясная цель — помочь людям, а опыт таких проектов, как ЭкзоАтлет, показывает, что это возможно.
Комментарии (8)
SpiritErr
02.05.2022 16:55+3Недавно в кабинете кинезотерапии проводила реабилитацию на тренажерах Kinetec и Artromot. В действительности они могут совершать множество движений в одном/ нескольких суставах. Однако для смены режима зачастую требуется поработать отверткой, что в условиях большого числа клиентов, совершенно не удобно. Поэтому у нас все пациенты с нарушением движений в луче-запястном суставе проходили абсолютно идентичную программу - циклично сгибали/разгибали руку в ЛЗС. Пациентам такая реабилитация кажется скучной и многие засыпают, пока тренажер разрабатывает руку :) Есть в кабинете также несколько активных тренажеров, один из которых Armeo Spring. Почитайте про него, если планируете расширение функционала вашего тренажера. Он позволяет совершать любые анатомические движения рукой для взаимодействия с объектами на экране в игровой форме, что нравится всем пациентам, особенно детям.
denaturat
02.05.2022 22:45+1Посмотрите на Armeo Power, они есть в РФ. Там все нормально со степенями свободы и вообще с извращенной мехатроникой.
Это я вам как когда-то сертифицированный по ним инженер говорю :)
denaturat
02.05.2022 22:51Давным-давно придуманы привода с датчиками усилия на выходе. То есть помимо тока на моторе смотрите ОС по сенсору силы и сравниваете с табличкой. Выход за пределы - останов.
Но вообще, к сожалению, как только вы захотите это все зарегистрировать в РЗН так и перехотите производить.
Когда я ещё трудился в этой отрасли меня добила регистрация такого комплекса как Motek GRAIL. Тоже есть в РФ одна штука. Есть у производителя и более крутая версия по имени CAREN. Погуглите если интересно.
in_no Автор
04.05.2022 11:41Датчики со встроенными приводами, это рабочий вариант, но не очень удобный в процессе разработки. К тому же, стандартные табличные значения не подойдут, так как в разных точках рабочего пространства разная нагрузка на моторы. Это обусловлено морфологией робота.
VladimirLiberty
04.05.2022 09:33Хорошо, что хоть что-то делается в этом направлении, в этой стране, а то что вам оказали содействие, вообще замечательно. У меня есть реализованный проект, направленный на решение этой же проблемы, но, с другой стороны, в игровой форме создает платформу для физиологической части реабилитационного процесса. Задействован именно вариант, который должен в большей степени способствовать наращиванию потенциала мозга. Я правда сам его делал, насколько было времени и ресурсов. Тем не менее, он работает. Сейчас готовлю к выпуску вторую версию, в ней уже больше косметические правки, дополнения по части аналитики и т.п. Работает под Android, Linux и MS Windows, можно под продукцию Apple, но это уже будет позже, при наличии возможностей. Windows версию дал в свободный доступ, народ скачивает, значит востребовано. Опубликованный ранее видеообзор, пока прикрыл. Впрочем, сами линки на просмотр и скачивание действительны, как и раньше.
List1
это все очень хорошо и правильно. но вам надо пообщаться с врачами(желательно с несколькими и только теми кто каждый день пытается вылечить пациентов, а не тех кто теоретизирует в кабинетах) и что еще более важно с реальными пациентами.
лично я не мог понять почему моя мать не может что то делать своей сломанной рукой довольно продолжительное время. она же зажила, в чем проблема ? но после того как сам сломал руку я ее понял. уже прошло почти год после перелома, но рука все еще далека от тех показателей что были до перелома.
SpiritErr
Добрый день. Из разговоров с клиентами центра реабилитации, я делаю вывод, что все стремятся прийти к тому состоянию, что было до перелома, операции, инсульта и пр. " Раньше я играл на гитаре, а сейчас даже кружку не могу нормально взять". Не достигая поставленной цели (за пол года, год), с таким настроением они все реже и с меньшей охотой занимаются разработкой руки. Это взрослые, а дети через какое-то время вообще забывают про свою больную конечность и делают все здоровой, не понимая, зачем родители заставляют ей что-то делать, ведь "она же не работает?" Восстановление долгий процесс, и чем дольше он длится, тем менее заметен становится прогресс. Восстанавливаете плечо? Нарисуйте крестик на стенке и каждый день пытайтесь поднять руку чуточку выше него. Получилось? Отметьте новое положение. Челендж. Самое главное, на мой взгляд, не падать духом и не пытаться сразу свернуть горы. Здоровья вам и вашей маме!