Управление мыслями чем-либо, кроме собственных конечностей – область завораживающая. Всегда интересно представлять будущее, в котором мы можем взаимодействовать с интернетом не только при помощи пальцев, рта, глаз и ушей.
Если задуматься, то компьютер и телефон – ужасно неэффективные интерфейсы для получения нужной информации. Вы точно осознаете, что хотите узнать: например, текущий курс рубля к доллару. Нажимаете пальцами на определенные области экрана телефона с буквами, целясь каждый раз в нужные точки, после чего смотрите ответ.
Гораздо прекраснее было бы мысленно произнести «Привет, Игорь!», сформулировать мысленно вопрос и получить ответ ухом/глазом/другим способом. Или таким же быстрым способом отправить сообщение другу. В общем, подключить интернет к мозгам.
Раз это можно попробовать на практике уже сейчас, стоит поуправлять чем-то, посмотреть, насколько это удобно, и сделать выводы. Видео с результатами – в конце статьи.
1. Входная идея
2. Что нужно
3. Собираем вместе
4. Пробуем раз
5. Пробуем два
6. Три
7. Выходные мысли
Идея
План вышел нехитрый:
Шаг 1. Берем ЭЭГ-устройство, считывающее активность головного
Шаг 2. Тренируем какой-то алгоритм, позволяющий с достаточной точностью определять мысленные команды. Пробуем несколько типов мысленных команд (об этом позже).
Шаг 3. Подключаем к какой-либо движущейся штуке.
Шаг 4. Пытаемся выполнить простое задание, например, проехать из точки А в точку Б.
Шаг 5. Делаем из всего этого выводы, если пора. Если нет, то повторяем шаги 2 и 4.
Да, подобные эксперименты и ранее проводились рядом специалистов: есть много тестов подхода по P300, позволяющего набирать текст мыслями (выходит очень точно, но долго), управлению различными протезами и другими устройствами. Ничего нового с научной точки зрения в текущем эксперименте не происходит, цель – попробовать мозговое управление лично и сделать из ощущений и размышлений вокруг BCI (brain-computer interface) некие выводы.
Что нужно
В качестве ЭЭГ девайса берем Emotiv Insight. Далеко не самый точный прибор с невысоким разрешением выстаиваемой электромагнитной карты, но достаточный для наших целей. Стоит $299, на эту модель почти всегда есть скидки, но проблема с доставкой в Россию: ее нет. Объясняется это не столько логистическими, сколько законодательными проблемами: ЭЭГ устройства являются медицинскими приборами с точки зрения таможенных правил РФ (с соответствующими последствиями).
Прийти и забрать где-то по миру тоже нельзя, поэтому остается только заказывать в те близкие к России страны, в которые есть опция доставки: Польша, Израиль или что-то в этом роде. Ходят слухи, что продается и в Москве из-под полы, но с соответствующими наценками.
Устройства Emotiv хороши и с точки зрения софта: оно проприетарное, но умеет достаточно многое, и, что важно для целей нашего эксперимента, имеет встроенные инструменты для работы с ментальными командами.
В качестве робота берем платформу Hicat.Livera. Построена на базе Arduino. По сути, это оно и есть, только с камерой, колесиками, лазером и небольшими доработками софта. Стоит порядка $100-$150, удобнее, наверное, заказывать через AliExpress, но мы заказали напрямую через сайт, хотя без проблем с доставкой не обошлось.
Собираем вместе
По пунктам процесс соединения всего в тестовый стенд выглядел так:
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, очищаем их от шума по порогу и отправляем полученное значение мощности роботу. Через треть секунды после каждого сигнала сбрасываем напряжение на моторах. Получилось вот так:
Саму карту для Node-RED можно скачать вот отсюда и импортировать в свой Flow.
Далее остается только потренироваться и пробовать.
Пробуем раз
Робот может ехать вперед/назад, отдельно вращать каждое колесо, поднимать/опускать камеру и включать/отключать лазер. Тренироваться одновременно на 6-8 действиях сложно, поэтому первая попытка подразумевала три действия: ехать вперед, повернуть налево и повернуть направо.
Качество подключения Церебры можно видеть на удобном мониторе. В случае с Insight важно, чтобы основной заушный датчик прилегал к скальпу очень плотно: если в нем будут помехи, то от других шести сенсоров сигнала не будет.
Далее – тренировка. Сначала самое сложное – записать спокойное и нормальное состояние сознания, без внешних раздражителей и мыслей. Кто владеет медитативными практиками – еще куда ни шло, но вот так сходу ни о чем совсем не думать совсем непросто. Алгоритм будет принимать эту запись за фоновую и искать отличия командных состояний от дефолтного.
После этого – тренировки каждой команды. Первые две-три записи воспринимаются безусловно как основа для обучения. Далее алгоритм каждый раз определяет, насколько ваша запись похожа на предыдущую. Если разница слишком велика, то предлагается не учитывать данный сеанс в обучении. Очевидно, что при слишком разносторонних состояниях сознания тренировка бессмысленна.
Каждый последующий сеанс обучения уточняет состояние модели, отслеживающей команды. По карте этой модели можно посмотреть, насколько сильно отличаются команды между собой: если сходство слишком велико (точки на радаре находятся рядом), то алгоритм с трудом будет понимать что вы имели в виду в каждом конкретном случае.
Основной вопрос при тренировке – что, собственно, думать? Осознанно
Остается думать. Тут большое раздолье: проговаривать мысленно слова, думать о каком-то ощущении, представлять себя где-то, воображать движение робота в нужном направлении и т.д.
Для начала было выбрано вербальное направление: проговаривать внутренним голосом определенную фразу для каждой команды.
Результаты этого подхода оказались неудовлетворительными: да, команды при разных настройках чувствительности определенно выполнялись, но контролировать их оказалось совершенно невозможным. Есть отчетливая грань между старанием выполнения команд и их отсутствием: в первом случае робот что-то делает, во втором практически нет, но заставить ехать его хотя бы в примерном направлении не удалось.
Пробуем два
Далее возникла мысль попробовать следующие направления:
- Думать о каком-то ярком моменте, например, лежишь на пляже и тепло греет солнце.
- Слушать разные звуковые сигналы/отрывки музыки.
- Представлять холод/тепло в определенных частях определенных конечностей.
- Пытаться имитировать приподнятое и плохое настроения.
- Слушать голосовые команды разных людей с разных сторон (для увеличения дифференциации сигналов добавлением пространственного ощущения).
Результаты были интересными: например, голос одного человека рядом с субъектом эксперимента приводил к движению робота в одном направлении, а другого человека – в другом. При этом было неважно, что говорят эти люди.
Но в общем и целом точность выдалась настолько же грустная: управлять с качеством, позволяющим выполнить строгую последовательность команд, не вышло.
Три
Для увеличения точности управления было решено сократить количество команд с трех до двух: движение вперед и разворот на месте в одном направлении. Этого достаточно для перемещения на плоскости, а распознавание всего двух команд должно быть проще.
Результат получился следующим:
Вот так просто доехать из точки А в точку Б не удается, но после ряда тренировок примерный результат есть.
Выходные мысли
BCI в виде абстрактных мысленных команд – скорее невозможная вещь с практической точки зрения. Да, можно вживить электроды в конкретный участок
В качестве массового интерфейса: купил, натянул на голову и используешь – это не работает. У кого-то из нас сразу получалось добиваться четкого выполнения команд, кому-то не удавалось совершенно ничего даже после длительных тренировок. Процесс слишком индивидуальный и слишком сложно объяснимый для изложения в инструкции к пользованию. Кроме того, на следующий день после успешного управления повторить тоже самое удается с трудом: состояние сознания уже чем-то отличается.
Гораздо эффективнее, на мой взгляд, применять для «мысленного» управления устройства, считывающие внутренний голос через изменение потенциалов мышц нижней челюсти и шеи. Когда мы говорим сами с собой, на мышцы речевого аппарата подаются нервные сигналы, они совсем чуть-чуть двигаются. Если их мониторить чувствительными датчиками, то практически без обучения можно диктовать внутренним голосом текст.
Подобных устройств тоже немало, одно из последних – проект AlterEgo от исследователей MIT. Пока в разработке, но на видео демонстрациях можно увидеть, что оно таки относительно работает.
По сути, однако, это то же речевое управление, но беззвучное. Проблема же всех речевых интерфейсов – в отсутствии понимания палитры команд. Если мы смотрим на сайт или приложение, то видим кнопочки, подписи к ним и понимаем, куда можно тыкнуть. В случае же с голосовым помощником понимания, что именно можно спросить – нет, возможные команды надо выучить наизусть или каждый раз слушать длинные перечни возможных тем диалога. Все это вместе с неидеальным распознаванием речи приводит к тому, что сейчас мы пользуемся только стандартным набором команд голосовых помощников: позвони Софоклу, поставь таймер на пятьсот лет, напомни заехать на работу.
Так что на текущий момент имеем следующее: а) если и управлять чем-то так, чтобы это выглядело круто, но при этом и получалось, то это только считывание внутреннего голоса (надо будет сделать эксперимент и тут) и б) конкуренции графическому интерфейсу пока нет даже и близко.
Касательно второго пункта есть технологии в области транскраниальной магнитной стимуляции. Если коротко: если сфокусировать что-то наподобие микроволновки на зрительной коре, то мы будем видеть фосфены – светящиеся точки и эффекты, которых глаз не видит. Такие устройства могут рисовать достаточно точные знаки, например, буквы в пространстве. Эти процедуры, как правило, вызывают сильные головные боли и тошноту, не очень рекомендуются для экспериментов, но в теории возможно рисовать интерфейс перед лицом как у железного человека без линз и очков. Правда можно использовать линзы и очки, но об этом, возможно, в другой раз.
На обложке фото, снятое Road to VR к статье об экспериментах компании Valve в области BCI.
Автор: Александр Мурзанаев