Опенсорс приключения киберэлектроника

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

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

Я подумал, могу ли я что-то сделать для ускорения прогресса подобных систем.



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

По моим данным, она стоит порядка 10-15К долларов, в зависимости от страны покупки. Это, конечно, идет в дополнение к цене самого протеза.


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

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

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

Хотелось заложить проект так, чтобы специалисты из распостраненных отраслей IT имели возможность внести вклад, каждый в своей области.

Выросло несколько задач:

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

Как получить сигнал нервов


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

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

Кому интересно — есть результаты классификации жестов руки на данных с этого датчика.



К слову, кто подскажет, как сделать достойный браслет с металлическими контактами в полевых условиях?

Машинное обучение на носимом компьютере


Тут я решил сесть на поезд смартфонов. Каждый год они обрастают ядрами, увеличивают батарею. Существует Tensorflow Lite для использования машинного обучения на мобилках.
Если можно к смартфону подключить датчик и контроллер моторов с батарейкой, почему бы не попробовать сделать протез на основе смартфона? Ну хотя бы для начала=)

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

Приложение может работать с датчиками нервной активности по USB либо Bluetooth. Данные пользователя записываются и отправляюся на сервер для тренировки модели. Натренированная модель скачивается и работает в режиме офлайн. С приложением очень помогли garastard и ArsenyChernyaev.

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

Обратно в физический мир


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



Как сделать хорошую модель распознания нервной активности


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

Для сбора данных датчика с ПК и создания экспериментов с ними, планируется допиливать десктопное приложение.



P.S.


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

P.P.S.


Недавно компания CD Project Red устроила конкурс косплея по их игре Cyberpunk2077. Я решил, что было бы круто скооперироваться с креативным классом, и поучаствовать с костюмом, в котором правда будет нейроинтерфейс. Моторы крутила Raspberry Pi. Элементы костюма управлялись с телефона нервами косплеера. Вот что у нас получилось:

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


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

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

На работе я занимаюсь поддержкой пользователей и обслуживанием коробочной версии CRM Битрикс24, в том числе и написанием бизнес-процессов. Нужно отметить, что на самом деле я не «чист...
Доброго карантинного апреля, дамы и господа. Подготовил для вас подборку самых интересных находок из опенсорса за март 2020. За полным списком новых полезных инструментов, статей и докладов мож...
Но если для интернет-магазина, разработанного 3–4 года назад «современные» ошибки вполне простительны потому что перед разработчиками «в те далекие времена» не стояло таких задач, то в магазинах, сдел...
Как-то у нас исторически сложилось, что Менеджеры сидят в Битрикс КП, а Разработчики в Jira. Менеджеры привыкли ставить и решать задачи через КП, Разработчики — через Джиру.
Если в вашей компании хотя бы два сотрудника, отвечающих за работу со сделками в Битрикс24, рано или поздно возникает вопрос распределения лидов между ними.