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

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Так уж вышло, что мне, и моему другу-сокурснику, выпал шанс получить опыт разработки бионического протеза руки в рамках магистерской ВКР в ИТМО. В этой статье я бы хотел поделиться опытом и помочь заинтересованным разработчиком на примере нашей разработки вникнуть в столь сложную и в то же время интересную предметную область протезирования.

Статья состоит из двух основных частей:

  • Глава 1. Предметная область протезирования - краткая теоретическая составляющая предметной области. В данной главе рассматривается проблематика области и рассматривается бионический протез с точки зрения киберфизической системы.

  • Глава 2. Разработка бионического протеза руки человека - практическая составляющая статьи с исходным кодом и 3d моделями. Рассматривается общая архитектура разработанного решения и каждая из подсистем протеза, которая была разработана.

Глава 1. Предметная область протезирования

1.1. Бионический протез как средство помощи людям с ампутациями

В США около 2 миллионов человек с ампутациями конечностей, и ежегодно проводится 185000 ампутаций. Согласно статистическим данным по Германии, Италии, Ирландии в ЕС примерно 3,18 миллиона человек с ампутациями конечностей (4,66 миллиона по всей Европе), и около 295 000 ампутаций выполняются каждый год (431 000 по всей Европе). В России это число достигает более 70000 в год. Это создает огромную медицинскую и экономическую проблему. Ампутации оказывают разрушительное воздействие на здоровье пациентов и вызывают психологический стресс с вытекающими отсюда экономическими потерями и ухудшением качества жизни.

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

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

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

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

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

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

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

p.s. Конструкторы и механики, простите, для вас в этой статье лишь тихий ужас и самые примитивные решения, но, надеюсь, вам тоже будет интересно.

1.2. Бионический протез как аппаратно-программная системы

Достижение конца 20 и начала 21 века в развитии интегральной схемотехники, 3-D печати, малоразмерных и мощных приводов, а также емких и компактных аккумуляторов, обеспечили скачек использования бионических протезов на замену механическим аналогам (протезы приводимые в движения мышцами человека). С каждым годом область разработки бионических протезов развивается, уже сейчас имеются футуристические устройства, которые помимо установки степеней свободы на основании приема и обработки ЭМГ сигнала, позволяют выполнять мониторинг процесса реабилитации и повседневного использования, проводить NFC оплату, взаимодействовать с протезом с помощью мобильного телефона и голоса. Помимо этого, исследуются и частично начинают применяться новые виды контроля и вживления протезов (остеоинтеграция, инвазивное управление, нейроинтерфейсы).

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

Рисунок 1 - Состав бионического протеза руки
Рисунок 1 - Состав бионического протеза руки
  1. Каркас. Корпус протеза, произведенный из лёгких металлических сплавов, чаще всего титана. В последнее время, с развитием 3D-печати все чаще начинает изготавливаться из пластика для удешевления конструкции. Обеспечивает антропоморфность конструкции для имитации биологической руки и защищает внутренние компоненты протеза от повреждений. Имеет культеприемную гильзу, изготавливаемую индивидуально. В культеприемник встроены ЭМГ электроды, максимально близко прилегающие к мышцам человека. При начале использования протеза пользователь помещает культю в гильзу.

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

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

В соответствии с данной структурой рассмотрим бионический протез проекта «EMG based Hand Gesture Recognition on Embedded Low Power Platforms» от команды под руководством Simone Benatti.

Рисунок 2 - Диаграмма архитектуры системы проекта «EMG based Hand Gesture Recognition on Embedded Low Power Platforms»
Рисунок 2 - Диаграмма архитектуры системы проекта «EMG based Hand Gesture Recognition on Embedded Low Power Platforms»

На рисунке 2 представлена заявленная проектом архитектура протеза, которая состоит из: (1) эластичной повязки с 4 датчиками ЭМГ; (2) носимого узла (контроллер), отвечающего за сбор и классификацию данных, приведение в действие приводов протеза и связь через Bluetooth; (3) полиартикулярного (механика) протеаза руки (каркаса) и (4) персонального устройства для сбора данных, обучения алгоритму распознавания и настройки параметров системы.

Основной интересен в рамках встраиваемой системы представляет носимый узел (контроллер), структурная схема которого была выделена авторами проекта (рисунок 3).

Рисунок 3 – Структурная схема контроллера в проекте «EMG based Hand Gesture Recognition on Embedded Low Power Platforms»
Рисунок 3 – Структурная схема контроллера в проекте «EMG based Hand Gesture Recognition on Embedded Low Power Platforms»

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

Схема разработана на 4-слойной печатной плате и включает 32-битный микроконтроллер для получения сигнала ЭМГ и управления приводами, а также включает приемопередатчик Bluetooth для связи с внешними устройствами.

Система основана на микроконтроллере ARM Cortex M4 от NXP. Наличие двух независимых 16-битных SAR АЦП (АЦП0 и АЦП1) и выделенного выходного ШИМ периферийных позволяют управлять приводами и считывать данные с 4-х каналов непосредственно периферийными устройствами контроллера, что сводит к минимуму необходимость внешних компонентов и, следовательно, сложность платы. Данные собираются с частотой 500 Гц. На каждом канале RC-фильтры нижних частот минимизируют высокочастотный электрический шум. Дополнительный резистивный делитель напряжения защищает входы АЦП, ограничивая диапазон сигнала до диапазона 0–3,3 В, в то время как диапазон выходного сигнала электрода составляет 0–5 В. Программное обеспечение микроконтроллера выполняет классификацию входного сигнала SVM сетью.

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

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

Аппаратная конфигурация завершается приемопередатчиком Bluetooth (SPBT2632C2A от STM), позволяющим системе связываться с другими устройствами на теле пользователя или поблизости. Этот двунаправленный беспроводной интерфейс используется для потоковой передачи полученных данных ЭМГ на ПК или для сохранения на устройстве индивидуальных параметров и настроек. Потоковая передача данных на хост-устройство используется для тестирования системы и получения экземпляров жестов для автономного анализа и для обучения алгоритма классификации. Обученные модели распознавания и дополнительные системные настройки затем отправляются обратно на встроенное устройство. Потоковая передача осуществляется по протоколу, который был разработан авторами проекта.

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

  1. Создание корпуса и механики протеза.

  2. Управление приводами.

  3. Прием и обработка показаний датчиков.

  4. Классификация паттернов.

  5. Взаимодействие с внешними системами.

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

Глава 2. Разработка бионического протеза руки человека

Рассмотренные в первой главе структура и задачи являются хорошей отправной точкой для начала реализации своего решения. При желании, опираясь на другие работы и исследования, можно приступать к проработке. Для примера, рассмотрим решение, которое получилось изготовить нашей команде из двух человек в свободное от учебы и работы время (приблизительно 1000 часов на двоих). Рассмотрим разработку общей архитектуры протеза и каждого его компонента (включая механику и корпус).

2.1. Предпосылки разработки

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

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

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

Хочу выразить благодарность научным руководителям, коллегам и друзьям, которые помогали продвигать проект в различных конкурсах, грантах и статьях, а так же служили идейными генераторами различных функциональностей протеза. Разработка просуществовала около 3 лет от участия и победы в международном конкурсе "IT-ПЛАНЕТА 2017-2018" и до закрытия гранта "УМНИК" и защиты магистратской диссертации в "ИТМО".

За это время было разработана три версии протеза, которые придерживались основной цели, но были совершенно различны в технологическом исполнении. Так, первая версия протеза базировались на сервоприводах и тягах и позволяла только устанавливать положения пальцев с консольного приложения для ПК, которое подцеплялось к контроллеру протеза по Bluetooth (STM32F103C8T6 + HC06). Схема была минимальной, ПО было минимально, но этого хватало для самого главного - протез двигался!

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

Третья версия рассматривается далее в этой статье. Но количество набитых шишек позволяют дать следующий самый главный совет: не пытайтесь уместить большое количество электроники в протез. Протез является малогабаритным устройством, в которое должна еще и культя (остаток руки) вставляться. Места для электроники всегда будет не хватать, а еще и большое количество места занимают аккумуляторы.

2.2. Архитектура бионического протеза

С точки зрения разработки аппаратно-программной системы, основным компонентов в бионическом протезе является контроллер, который обеспечивает управление приводами протеза, обработку показаний датчиков и обмен данными с внешними устройствами. Ранее, в главе 1.2, был рассмотрен основной состав контроллера бионического протеза на примере проекта «EMG based Hand Gesture Recognition on Embedded Low Power Platforms», который отражает перечень основных аппаратно-программных компонентов, необходимый для обеспечения полноценной работы протеза, а именно:

  1. Драйверы приводов для движения электрических моторов.

  2. Микропроцессор для обработки данных.

  3. ЭМГ электрод.

  4. Модуль связи с персональными устройствами.

Для разрабатываемого бионического протеза была спроектирована близкая по концепции структура [1], за исключением некоторых компонентов. Структурная схема протеза приведена на рисунке 4.

Рисунок 4 – Структурная схема бионического протеза руки
Рисунок 4 – Структурная схема бионического протеза руки

В первую очередь было принято решение разделить контроль над приводами и остальной логикой протеза (обработка ЭМГ показаний, взаимодействие с внешними устройствами) по следующим причинам:

  1. Точечная установка положений даже с точностью до 5° на основании обратной связи приводов является ресурсоемкой операцией, которая может значительно влиять на частоту дискретизации и обработки ЭМГ сигнала.

  2. Подобное решение позволяет сделать систему модульной и абстрагировать логику управления протезом от конкретных приводов, что позволит выполнять легкую замену механики устройства, например перейти с линейных приводов на сервоприводы, либо электрические моторы без переработки схемотехники и ПО главного устройства.

Для разделения управления линейными приводами система была разделена на два контроллера:

  1. Контроллер линейных приводов – обеспечивает управление механической составляющей протеза в зависимости от используемых в протезе моторов. Так, для пяти пальцев кисти с механикой, построенной на линейных приводах, используются шесть H-мостов (большой палец требует два привода) и шестиканальное АЦП для получения обратной связи в виде позиций приводов. Обработку обратной связи и управление приводами осуществляет микроконтроллер, принимающий внешние команды по SPI.

  2. Контроллер управления – обеспечивает работу миоэлектрического управления на основании принимаемого ЭМГ сигнала одноканального датчика с помощью АЦП. Беспроводной интерфейс в составе контроллера предназначен для взаимодействия с внешними устройствами, которые должны поддерживать самописный протокол взаимодействия запрос/ответ поверх Bluetooth протокола RFCOMM [2]. В дополнении на контроллере управления расположено постоянно запоминающее устройства для хранения создаваемых пользовательских жестов. Создание пользовательских жестов обеспечивается на внешних устройствах, которые в рамках системы представлены приложениями для персонального компьютера, либо мобильного телефона. В дополнении, мобильное приложение позволяет исполнять жесты с помощью графического, либо голосового управления. Так, максимальное количество исполняемых протезом жестов, ограничивается только объемом ПЗУ системы.

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

2.3. Корпус и механика протеза

Для разрабатываемой системы была спроектирован корпус (рисунок 5) на основе модели кисти компании "Youbionic".

Рисунок 5 – Разработанная 3D модель протеза
Рисунок 5 – Разработанная 3D модель протеза

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

Рисунок 6 – Мышцы и сухожилия руки человека
Рисунок 6 – Мышцы и сухожилия руки человека

Модель представляет следующие группы мышц.

Переднюю группу мышц предплечья:

  • поверхностный сгибатель пальцев - сгибает средние фаланги второго-пятого пальцев (первый считается большой палец, 5 мизинец);

  • глубокий сгибатель пальцев - сгибает дистальные (конечные) фаланги второго-пятого пальцев;

  • длинный сгибатель большого пальца кисти - сгибает большой палец и кисть.

Заднюю группу мышц предплечья, разгибающую пальцы:

  • разгибатель пальцев - разгибает второй-пятый пальцы кисти;

  • разгибатель мизинца;

  • короткий разгибатель большого пальца кисти - разгибает проксимальную (ближнюю) фалангу большого пальца;

  • длинный разгибатель большого пальца - разгибает большой палец;

  • разгибатель указательного пальца - разгибает большой палец.

Мышцы самой кисти:

  • короткий сгибатель большого пальца;

  • короткий сгибатель мизинца;

  • червеобразные мышцы - четыре штуки для второго-пятого пальцев (сгибают их проксимальные фаланги и разгибают средние и дистальные).

Только благодаря столь сложному механизму осуществляется сжатие биологической руки человека (в учет не взяты мышцы, сухожилия и сочленения необходимые для выполнения более сложных действий/жестов). В макете количество элементов сведено к минимуму, задняя и передняя группа мышц была воспринята как единое целое и реализована в едином корпусном элементе (рисунок 7), а на основе мышц сгибателей и разгибателей была реализована шарнирная система (соединения элементов 1–3) с аналогом червячной мышцы (элемент 4). Аналогичным образом реализованы все пальцы макета протеза, за исключение большого пальца (он имеет дополнительную ось вращения для реализации различного рода хватов). Благодаря подобной системе пальца имеется возможность принимать большое количество положений за счет размещения линейного привода с обратной связью в пространстве элемента 3 и прикрепления его движущего механизма к элементу 2. Так, в протезе используется 6 линейных приводов Actuonix PQ12-P с обратной связью в виде напряжения, пропорционального положению хода привода.

Рисунок 7 – Элементы пальца протеза
Рисунок 7 – Элементы пальца протеза

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

Проектирование модели производилось с использованием системы проектирование трехмерных объектов - "КОМПАС 3D v18". Модель была распечатана на 3D-принтере, а в основу печати был взят черный PLA пластик (полилактид). Он достаточно прост в обработке, материал не токсичен (в основе лежат натуральные, биоразлагаемые компоненты) и мало подвержен деформации (имеет плотность 1,25 г/см³). Ссылку на модель можно найти в конце статьи в приложении 3 [3]. Распечатанная и собранная модель протеза представлена на рисунке 8. Модель имеет различные допущения. Например, культеприемник выполнен из PLA пластика, а не из специально предназначенных для этого материалов.

Рисунок 8 - Распечатанная модель протеза
Рисунок 8 - Распечатанная модель протеза

2.4. Структура исполняемых жестов

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

Рисунок 9 - Иллюстрация позиции пальца в градусном представлении
Рисунок 9 - Иллюстрация позиции пальца в градусном представлении

Так, палец протеза может быть представлен в виде угла от 0 до 180 градусов, где 0° – выпрямленный палец, а 180° – согнутый (рисунок 9), а набор позиций пальцев и их комбинаций можно принять за жест руки. Подобных набор комбинаций позволяет реализовывать большинство положений руки, необходимых в повседневной жизни. Пользователь сможет самостоятельно одеваться, брать мелкие предметы, открывать двери, а также сможет выполнять наборы жестов, наподобие рукопожатия и приветствия.

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

Структура жеста протеза (Gesture) включает в себя уникальный идентификатор (id), информацию о жесте (info) и список положений пяти пальцев протеза в угловом соотношении (actions).

Информация о жесте (GestureInfo) позволяет пользователю настраивать: (1) названия жеста (name) для отображения в графическом интерфейсе и для исполнения с помощью голосового управления; (2) итеративность жеста (iterable) – бесконечное повторение жеста до приема нового жеста на исполнение; (3) количество повторений (repetitions) – ограниченное количество повторов жеста.

Рисунок 10 – Диаграмма структуры жеста протеза
Рисунок 10 – Диаграмма структуры жеста протеза

Коллекций позиций жеста (GestureActions) позволяет выполнять установку набора положений пальцев протеза через временной промежуток (delay), хранимый в миллисекундах.

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

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

2.5. Контроллер линейных приводов

Управление линейными приводами Actuonix PQ12-P осуществляется за счет контроллера на базе микроконтроллера STM32F103C8T6. Схема контроллера приведена на рисунке 11 (для более удобного просмотра советую открыть ссылку [4] из приложения и перейти к PDF варианту). К контроллеру подключается шесть приводов через три H-моста L293D, которые представляют каждый палец руки (два привода требуются для движения и поворота большого пальца) и могут быть установлены в независимые положения в зависимости от требований пользователя. Благодаря тому, что привод имеет обратную связь в виде напряжения, пропорционального положению хода привода, становится возможным не просто сжимать и разжимать конечность, а устанавливать промежуточные положения с требуемой точностью. Обратная связь считывается встроенными модулями АЦП у микроконтроллера. Взаимодействие с контроллером управления протеза осуществляется с помощью встроенного модуля SPI у микроконтроллера.

Рисунок 11 - Схема контроллера линейных приводов [4]
Рисунок 11 - Схема контроллера линейных приводов [4]

Программное обеспечение контроллера [5] базируется на ОС FreeRTOS и имеет две основные задачи (FreeRTOS Task).

Первая задача выполняет обработку показаний обратной связи для каждого привода. Обратная связь поступает в контроллер с помощью АЦП работающих в непрерывном режиме и транслирующих данные через DMA в ОЗУ. На основе обратной связи задача принимает решение о направлении хода каждого привода и производит остановку и запуск движения при наличии запроса на установку положений пальца.

Вторая задача обеспечивает обработку приема команд (сам прием осуществляется в прерывании) и отправку ответа по SPI интерфейсу. Контроллер приводов является Slave устройством SPI. Контроллер приводов поддерживает прием команды установки позиций в угловом соотношении и прием команды запроса телеметрии устройства. Протокольные команды имеют фиксированный размер в 9 байт и содержат (рисунок 12):

Рисунок 12 - Формат передачи состояния драйвера моторов
Рисунок 12 - Формат передачи состояния драйвера моторов
  • Команду – протокольная команда, которая закодирована следующими значениями:

    • 0x0 – запрос/получение телеметрии устройства.

    • 0x1 – запрос установки положений протеза.

  • Состояние протеза – текущий режим работы драйвера протеза, который закодирован следующими значениями:

    • 0x0 – режим инициализации. Драйвер находится в момент старта системы и до окончания калибровки положения всех пальцев;

    • 0x3 – режим ожидания. Драйвер ожидания запроса выполнения установки положений.

    • 0x4 – режим установки положений. Драйвер выполняет установку новых положений на каждый палец.

    • 0x5 – режим ошибки. Драйвер находится в ошибке. Требуется привлечение специалиста.

  • Позиция - значение от 0 до 180 градусов, где 180 – согнутое состояние пальца.

Master устройство (в системе им выступает контроллер управления протезом) выполняет отправку выбранной команды по SPI размером 9 байт, ожидает 2мс (время обработки команды) и отправляет еще 9 байт пустого заполнителя (0xFF) для установки на линии CLK синхросигнала, чтобы slave устройство могло отправить ответ на команду. Диаграмма последовательности протокола представлена на рисунке 13.

Рисунок 13 – Диаграмма последовательности протокола между контроллером управления и контроллером линейных приводов
Рисунок 13 – Диаграмма последовательности протокола между контроллером управления и контроллером линейных приводов

2.6. Контроллер управления протезом

Контроллер управления построен на базе Raspberry Pi Zero W. Схема контроллера приведена на рисунке 14 (для более удобного просмотра советую открыть ссылку [6] из приложения и перейти к PDF варианту). В связи с тем, что контроллер по большей части содержит только логику работы протеза, то схема имеет минимальное количество элементов, которые необходимы для работы. Так, Raspberry Pi Zero W содержит встроенный модуль Bluetooth, SPI и слот для Flash карты, что покрывает основные требования к аппаратуре контроллера. Исключением является модуль АЦП ADS1115, который требуется для получения показаний с одноканального ЭМГ датчика 13E200 MyoBock.

Также была предпринята попытка создать схему на базе STM32F407, но она была отброшена, так как значительно усложняет программное обеспечение (особенно для алгоритмов распознавания паттернов мышц) и требует изготовление и монтаж схемы.

Рисунок 14 – Схема контроллера управления протезом [6]
Рисунок 14 – Схема контроллера управления протезом [6]

Программное обеспечение [7] контроллера представлено в виде уровневой архитектуры (рисунок 15). За счет того, что в проекте используется Raspberry Pi Zero W с операционной системой Raspberry Pi Os, то в разработке уровня драйверов и оборудования нет необходимости. Исключением является внешнее АЦП для которого используется пакет Adafruit_ADS1x15. На уровне HAL (уровень OS опущен и совмещен с HAL и уровнем микропрограмм) имеются различные сервисы для более удобной и абстрактной работы с оборудования, там происходит преобразование данных из бинарного формата в доменные объекты.

Рисунок 15 – Архитектура уровней аппаратно-программного обеспечения центрального контроллера бионического протеза
Рисунок 15 – Архитектура уровней аппаратно-программного обеспечения центрального контроллера бионического протеза

Уровень программного обеспечения представлен в виде сети процессов Кана (хотя не везде удалось соблюдать использование очередей и местами пришлось использовать семафоры и мьютексы). DFD модель представлена на рисунке 16. Каждая функция протеза является отдельным потоком, взаимодействие с которым происходит с помощью очередей Python Queue. Так, имеются потоки для исполнения жестов, обработки команд, телеметрии. Наиболее интересным потоком является поток распознавания миоэлектрических паттернов P5.

Рисунок 16 – DFD модель центрального контроллера протеза
Рисунок 16 – DFD модель центрального контроллера протеза

Распознавание миоэлектрических паттернов осуществляется следующим образом: происходит считывания ЭМГ показаний с частотой 100-130Гц с одноканального электрода 13E200 MyoBock. В потоке ЭМГ данный происходит выделение сигнала паттерна за счет расчета среднего по окну из 5 элементов с пороговым значением 400. Над полученным сигналом проводится сегментирование на 10 сегментов и по каждому сегменту происходит извлечение MAV (mean absolute value) признаков. Полученные признаки передаются в обученную KNN сеть (пакет scikit-learn) с 10 входами и 2 выходами. KNN сеть обучена для двух паттернов: медленного и резкого сгибания мышц руки. В результате точность для двух паттернов достигает свыше 95%, а среднее время распознавания – 16мс, что позволяет использовать алгоритм в реальном времени.

Взаимодействие с внешними системами осуществляется с помощью самописного протокола взаимодействия запрос/ответ поверх Bluetooth протокола RFCOMM [2]. В отличие от TCP/IP стека на Bluetooth отсутствует какой-либо удобный протокол программного уровня, поэтому и используется собственное решение, которое работает поверх RFCOMM протокола и поддерживает прием запросов с внешних устройств с данными в виде protocol-buffer структур обернутых во фреймы протокола программного уровня.

2.7. Пользовательские приложения

Взаимодействие пользователя с протезом осуществляется за счет использования двух приложения.

Первым является десктоп-приложение для Windows [8], которое предоставляет пользователю возможность конфигурирования жестов и паттернов, осуществляемых протезом руки. Пользовательский интерфейс приложения приведен на рисунке 17. Приложение осуществляет подключение по Bluetooth к протезу и требует наличие соответствующего модуля на ПК (либо на материнской плате, либо внешнего модуля). Данное приложение появилось в системе самым первым для конфигурирования жестов (android был тогда только в планах) и планировало дальнейшее развитие в виде терминала для конфигурирования и мониторинга различных датчиков, но система так и не доросла до подобной сложности. В итоге приложение осталось без значительных изменений в функциональности с момента появления (даже статическую картинку руки на 3D модель не заменили, хотя в планах было).

Рисунок 17 - Пользовательский интерфейс конфигурирования жестов для Windows приложения
Рисунок 17 - Пользовательский интерфейс конфигурирования жестов для Windows приложения

Вторым приложением системы является android приложение [9], которое выступает устройством управления протеза руки. В него заложена отправка запроса на исполнение жестов посредством выбора в графическом интерфейсе, а также реализация запросов посредством голосового управления с помощью фреймворка android.speech. В третьей версии протеза (описанной в этой статье) в приложение добавилась функциональность в виде конфигурирования жестов и мониторинга телеметрии и ЭМГ показаний. Пользовательский интерфейс конфигурирования жестов в приложении приведен на рисунке 18.

Рисунок 18 - Пользовательский интерфейс конфигурирования жеста/действия для android приложения
Рисунок 18 - Пользовательский интерфейс конфигурирования жеста/действия для android приложения

Заключение

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

  1. Пользовательские устройства, подключенные по Bluetooth, и обеспечивающие возможность исполнения жестов в количестве 5000. Ограничение взято со значительным запасом и связано с объемом RAM при кешировании жестов на Raspberry Pi Zero W. В действительности в данном количестве нет необходимости и планируется использование пользователем максимального количества в 50–100 жестов.

  2. Миоэлектрическое управление на основании алгоритма классификации паттернов через MAV признаки и KNN сеть. Для одноканального ЭМГ электрода и двух паттернов система выполняет распознавание с точностью более 95% при времени классификации 0.016мс.

  1. Пользовательские устройства, подключенные по Bluetooth, и обеспечивающие возможность исполнения жестов в количестве 5000. Ограничение взято со значительным запасом и связано с объемом RAM при кешировании жестов на Raspberry Pi Zero W. В действительности в данном количестве нет необходимости и планируется использование пользователем максимального количества в 50–100 жестов.

  2. Миоэлектрическое управление на основании алгоритма классификации паттернов через MAV признаки и KNN сеть. Для одноканального ЭМГ электрода и двух паттернов система выполняет распознавание с точностью более 95% при времени классификации 0.016мс.

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

Небольшое видео демонстрирующие работу. На видео изображено исполнение жестов "Привет" и "Разжать":

По завершению разработки следует отметить направления, которые требуют улучшения в системе:

  1. Увеличить количество ЭМГ каналов системы до 4, чтобы обеспечить получать ЭМГ показания с большего количества групп мышц, а не только с одной. Это позволит реализовать классификацию15-20 паттернов при миоэлектрическом управлении.

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

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

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

Предполагаемые вопросы, на которые следует дать ответы заранее:

  • Сколько ушло денег на разработку? - По себестоимости протез обошелся нам в 130000 (включены расходники и неудачные решения ~30000). Основные затраты составляют ЭМГ датчик (50000) и привода (32000).

  • Время работы протеза? - В активном режиме около 4 часов (постоянные сжатия и разжатия кисти). В пассивном режиме может держать заряд сутки и более. Выверено эмпирическим путем.

  • Какими компетенциями надо обладать для начала разработки? - В идеале нужно разбираться в 3D моделировании, механике, схемотехнике и программировании встраиваемых систем. Даже скопипастив код и модели из статьи будет довольно сложно (или скорее невозможно) повторить разработку без знаний в этих сферах.

  • Почему бы не выйти на рынок с этим решением доработав его в упомянутых ранее направлениях? - Рынок медицины является очень требовательным к качеству оборудования и количеству лицензий, которые требуется получить. Ответственность возлагаемая на разработчиков при этом максимальна, так как любая неисправность в работе может быть травмоопасной для пользователя. Выполнить эти нормы для двух разработчиков практически нереально, а тратить время на стартапы было бы опрометчивым решением при наличии постоянной работы. Поэтому и решили сделать этот проект open-source, чтобы помочь более предприимчивым разработчикам и компаниям узнать что-то новое и увидеть пример проработки решения в области протезирования.

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

p.s. Статья является краткой выжимкой двух диссертаций по 100 страниц, различных публикаций и 1000 часов разработки и может не покрывать все аспекты проекта (в частности выбор того или иного решения). Для более подробной информации можно изучить материалы из основного репозитория проекта с документацией и ссылками [1]. Также, тема с реализацией алгоритмов распознавания паттернов не сильно покрыта в статье, но является довольно важной. При потребности в дополнительном пояснении могу написать дополнительную статью, либо скинуть научные англоязычные статьи по этой теме, которые я посчитал важными при разработке.

Приложения:

[1] Общий репозиторий проекта, содержащий ссылки на всю документацию

[2] Bluetooth API для управления протезом

[3] Ссылка на yandex driver с 3D моделью протеза

[4] Схема контроллера линейных приводов

[5] ПО контроллера линейных приводов

[6] Схема контроллера управления протезом

[7] ПО контроллера управления протезом

[8] ПО для конфигурирования протеза для ПК на WPF

[9] Приложение для управления протезом для Android

Источник: https://habr.com/ru/post/572146/


Интересные статьи

Интересные статьи

Сегодня речь пойдет о модном — о RISС-V микроконтроллере. Я давно хотел познакомиться с этим ядром и ждал когда появится что-то похожее на STM32 и вот дождался, встречайте — китайск...
Продолжаем серию (1, 2, 3) статей о сюрпризах, спрятанных в разнообразных музыкальных записях. В прошлый раз мы начали говорить о посланиях, скрытых намеках и зашифрованных образах. Сегодня ре...
Cтатья будет полезна тем, кто думает какую выбрать CMS для интернет-магазина, сравнивает различные движки, ищет в них плюсы и минусы важные для себя.
Привет, читатель! В интернете много статей по веб-аналитике, но найти действительно стоящие и последовательно сгруппированные материалы нелегко. Поэтому сделал для вас большую подборку ма...



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