Управление роботом мыслями

image

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

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

Гораздо прекраснее было бы мысленно произнести «Привет, Игорь!», сформулировать мысленно вопрос и получить ответ ухом/глазом/другим способом. Или таким же быстрым способом отправить сообщение другу. В общем, подключить интернет к мозгам.

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


1. Входная идея
2. Что нужно
3. Собираем вместе
4. Пробуем раз
5. Пробуем два
6. Три
7. Выходные мысли


Идея


План вышел нехитрый:

Шаг 1. Берем ЭЭГ-устройство, считывающее активность головного мозга.
Шаг 2. Тренируем какой-то алгоритм, позволяющий с достаточной точностью определять мысленные команды. Пробуем несколько типов мысленных команд (об этом позже).
Шаг 3. Подключаем к какой-то движущейся штуке.
Шаг 4. Пытаемся выполнить простое задание, например, проехать из точки А в точку Б.
Шаг 5. Делаем из всего этого выводы, если пора. Если нет, то повторяем шаги 2 и 4.

Да, подобные эксперименты и ранее проводились рядом специалистов: есть много тестов подхода по P300, позволяющего набирать текст мыслями (выходит очень точно, но долго), управлению различными протезами и другими устройствами. Ничего нового с научной точки зрения в текущем эксперименте не происходит, цель – попробовать мозговое управление лично и сделать из ощущений и размышлений вокруг BCI (brain-computer interface) некие выводы.


Что нужно


В качестве ЭЭГ девайса берем Emotiv Insight. Далеко не самый точный прибор, с невысоким разрешением выстаиваемой электромагнитной карты, но достаточный для наших целей. Стоит $299, на эту модель почти всегда есть скидки, но проблема с доставкой в Россию: ее нет. Объясняется это не столько логистическими, сколько законодательными проблемами: ЭЭГ устройства являются медицинскими приборами с точки зрения таможенных правил РФ с соответствующими последствиями.

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

image

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

В качестве робота берем платформу Hicat.Livera. Построена на базе Arduino. По сути, это оно и есть, только с камерой, колесиками, лазером и небольшими доработками софта. Стоит порядка $100-$150, удобнее заказывать через AliExpress. Напрямую через сайт не получилось, все время были проблемы с доставкой.

image


Собираем вместе


По пунктам процесс соединения всего в тестовый стенд выглядел так:

1. Устанавливаем нужный софт для Emotiv отсюда. Из всего набора нам нужен коннектор и Emotiv BCI.

2. Подключаем Insight к компьютеру и тестируем соединение.

3. Устанавливаем Node-RED. Это такая прекрасная штука, позволяющая удобно обрабатывать данные и сигналы. С помощью имеющегося огромного количества модулей вы можете за пару минут собрать какую-то утилиту: отправлять себе в телеграмм оповещение о предстоящем дожде, обработать кучу сырых данных и всякое такое.

4. Добавляем в Node-RED Emotiv Toolbox в качестве модуля. Вот тут описано что это такое, ставится за пару кликов.

5. Собираем Hicat.Livera. Так себе он собирается: если все делать по инструкции, то аккумулятор будет постоянно отваливаться, один из саморезов блокирует повороты камеры и так далее. Тут нужно немного креативчика.

6. Подключаем робота к компьютеру. Для этого не нужно никакого дополнительного софта, управляется он через WebSocket, достаточно быть в одной Wi-Fi сети. Правда, тут тоже не все так просто: оказалось, что не все файлы записаны на карту памяти производителем, поэтому пришлось разбираться, скачивать из репозитория и перезаписывать. В общем, классические блеск и нищета проектов кикстартера.

7. Мастерим Flow в Node-RED. Берем сигналы от натренированных команд в Emotiv BCI, очищаем их от шума по порогу и отправляем полученное значение мощности роботу. Через треть секунды после каждого сигнала сбрасываем напряжение на моторах. Получилось вот так:

image

Саму карту для Node-RED можно скачать вот отсюда и импортировать в свой Flow.

Далее остается только потренироваться и пробовать.


Пробуем раз


Робот может ехать вперед/назад, отдельно вращать каждое колесо, поднимать/опускать камеру и включать/отключать лазер. Тренироваться одновременно на 6-8 действиях сложно, поэтому первая попытка подразумевала три действия: ехать вперед, повернуть налево и повернуть направо.

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

image

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

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

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

image

Основной вопрос при тренировке – что, собственно, думать? Осознанно мозгом мы можем делать две вещи: управлять мышцами и думать. Дело в том, что моторная кора, отвечающая за движения мыщц, дает очень сильные помехи с точки зрения ЭЭГ. То есть если в качестве команды пытаться двигать конечностями, напрягать их или представлять, что они функционируют, то это сгенерирует сплошной неразборный шум на такой общей точности, как у Insight модели.

Остается думать. Тут большое раздолье: проговаривать мысленно слова, думать о каком-то ощущении, представлять себя где-то, воображать движение робота в нужном направлении и т.д.

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

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


Пробуем два


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

1. Думать о каком-то ярком моменте, например, лежишь на пляже и тепло греет солнце.
2. Слушать разные звуковые сигналы/отрывки музыки.
3. Представлять холод/тепло в определенных частях определенных конечностей.
4. Пытаться имитировать приподнятое и плохое настроения.
5. Слушать голосовые команды разных людей с разных сторон (для увеличения дифференциации сигналов добавлением пространственного ощущения).

Результаты были интересными: например, голос одного человека рядом с субъектом эксперимента приводил к движению робота в одном направлении, а другого человека – в другом. При этом было неважно, что говорят эти люди.

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


Три


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

Результат получился следующим:



Вот так просто доехать из точки А в точку Б не удается, но после ряда тренировок примерный результат есть.


Выходные мысли


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

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

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

Подобных устройств тоже немало, одно из последних – проект AlterEgo от исследователей MIT. Пока в разработке, но на видео демонстрациях можно увидеть, что оно таки относительно работает.

image

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

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

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

На обложке – фото, снятое Road to VR к статье об экспериментах компании Valve в области BCI.
Источник: habr.ru