Emotiv EPOC+を使って脳波で画面内の物体を動かす


# 1. 概要

簡単に入手可能な脳波デバイスといえばNeuroSkyのMindWaveが有名ですが、他のものも試してみたくなりEmotivのEPOC+を使ってみました。
予想以上に情報が少なくて(特に日本語は)大変だったのでメモしておきます。
多分自分ももう一回使うことがあったら忘れてそうなので。

脳波でイメージした動きを記録して、それをOSCで送ることを目的としていましたが、結論としてはMind Your OSCsで接続しようとするとソフトウェアがクラッシュしてしまいOSC送信はできませんでした(Windowsでも試しましたがダメでした)。
そのため画面内のオブジェクトを脳波で動かすところまでです。
![Push.gif](https://qiita-image-store.s3.amazonaws.com/0/94069/af6944a4-43e2-216a-2b93-7256fca43e45.gif "Push.gif")

動きをイメージするのが難しかったです。トラックパッドを上に動かしながらそこに集中することで上手くいくようになりましたが、最初は画面に手をかざして念力を送っているようなイメージだった(実際に手をかざしていた)ので、脳波計を付けている状態とあいまって相当怪しい感じでした。

# 2. 環境
* 脳波デバイス
	* Emotiv EPOC+ ([EMOTIV EPOC+ - 14 Channel Wireless EEG Headset](https://www.emotiv.com/epoc/))
* ソフトウェア
	* Emotiv Xavier Control Panel 3.3.3
	* Emotiv Xavier Composer 3.3.3
	* Mind Your OSCs 3.4.0
* PC
	* Macbook Pro (Retina, 13-inch, Mid 2014) & macOS Sierra 10.12.6)

# 3. 参考サイト
* [Processing + EPOC via OSC &#8211; Hyperritual](http://hyperritual.com/blog/processing-epoc-osc/)
	* MindYourOSCsの使い方が載っている
	* 脳波でProcessing内の物体を動かすデモ
* [Where can I find a user manual? &ndash; Knowledge Base](https://emotiv.zendesk.com/hc/en-us/articles/201222455-Where-can-I-find-a-user-manual-)
	* マニュアル。今とUIや名前が違うがキャプチャ画面の構成から推測して、流れや役割を何となく理解できる

# 4. 手順

## 4.1 ソフトウェアのインストール

Emotiv ControlPanelとMind Your OSCsをダウンロードします。

それぞれ以下のURLからダウンロードします。無料ですが購入と同じプロセスが必要なので、アカウントを作る必要があります。

* [EMOTIV Control Panel - Emotiv](https://www.emotiv.com/product/xavier-control-panel/)
	* EPOCからの情報を受け取り、センサの状態などを
* [Mind Your OSCs - Emotiv](https://www.emotiv.com/product/mind-your-oscs/)

Checkoutするとダウンロードリンクが表示されますが、分かりにくいです。

![Checkout_-_Emotiv.png](https://qiita-image-store.s3.amazonaws.com/0/94069/592aa337-7202-2cd9-19a5-d8fb324a3db7.png "Checkout_-_Emotiv.png")


## 4.2 Emotiv ControlPanelを起動する

Emotiv ControlPanelを起動します。
![スクリーンショット 2017-12-13 22.30.38.png](https://qiita-image-store.s3.amazonaws.com/0/94069/e1904d93-e9ba-a338-7d60-d33142ea2d05.png "スクリーンショット 2017-12-13 22.30.38.png")


## 4.3 脳波デバイス/シミュレータを調整する

Emotiv EPOC+(脳波デバイス)がない場合でもEmotiv Xavier Composer(シミュレータ)があるので、そちらで試すことができます。

### 4.3.1 Emotiv EPOC+(脳波デバイス)を使用する場合

USBドングルを挿して、Emotiv EPOC+が認識されると以下のような画面になります。

![スクリーンショット 2017-12-12 12.14.24.png](https://qiita-image-store.s3.amazonaws.com/0/94069/fcc94ce4-ed02-7916-3cfd-101b3c4e365f.png "スクリーンショット 2017-12-12 12.14.24.png")

左側の頭の画像の黒い丸が全て緑になるように、スポンジを濡らして頭に押さえつけます。頭が冷たいなって分かるくらいでないと反応しないように思います。

### 4.3.2 Emotiv Xavier Composer(シミュレータ)を起動する場合

Emotiv Control Panelの左上のメニューのApplicationの中のEmotiv Xavier Composerを選択します。
![スクリーンショット_2017-12-13_22_31_33.png](https://qiita-image-store.s3.amazonaws.com/0/94069/651d201a-9bec-071a-5769-cd00ef7fec04.png "スクリーンショット_2017-12-13_22_31_33.png")

Emotiv Xavier Composerが起動します。
![スクリーンショット 2017-12-13 22.07.51.png](https://qiita-image-store.s3.amazonaws.com/0/94069/5b6d68a6-b6b6-bc70-2204-3eaa4a4ed3f0.png "スクリーンショット 2017-12-13 22.07.51.png")


Auto Resetにチェックを入れてStartを押します。
![スクリーンショット_2017-12-13_22_35_28.png](https://qiita-image-store.s3.amazonaws.com/0/94069/c52d0f9f-ef64-743f-e35f-92e9945ea4b7.png "スクリーンショット_2017-12-13_22_35_28.png")

Emotiv ControlPanelに戻り、左上のメニューからConnect - Connect Composerを選択します。
![スクリーンショット_2017-12-13_22_37_58.png](https://qiita-image-store.s3.amazonaws.com/0/94069/da55f910-9a28-e40b-b073-997a89903218.png "スクリーンショット_2017-12-13_22_37_58.png")

アドレスとポートが入力された状態でダイアログが開くのでそのままOKを押します。
![スクリーンショット_2017-12-13_22_43_18.png](https://qiita-image-store.s3.amazonaws.com/0/94069/6f5d2f7b-85b7-5d72-12c0-0d8cf6f8d0da.png "スクリーンショット_2017-12-13_22_43_18.png")

Emotiv Xavier Composerに接続されます。
![スクリーンショット 2017-12-13 22.43.30.png](https://qiita-image-store.s3.amazonaws.com/0/94069/2658c2ed-03a3-b51c-778a-4bb152839bde.png "スクリーンショット 2017-12-13 22.43.30.png")

## 4.4 Mind your OSCsを起動する(失敗)


ControlPanelを起動したままMind Your OSCsを起動します。左側のドロップダウンリストからControlPanelを選択してConnectを押すと、中央のパラメータが変化します。
Emotiv Xavier Composerの場合はドロップダウンリストからEmoComposerを選ぶとControlPanelを介さず接続できます。

![スクリーンショット 2017-12-12 12.17.35.png](https://qiita-image-store.s3.amazonaws.com/0/94069/0a2a0f17-7f2a-af3d-591e-76005dbbe48a.png "スクリーンショット 2017-12-12 12.17.35.png")

ただOSCのConnectを押すとソフトウェアがクラッシュしてしまいます。
Windows(Windows 10 Pro 64bit)でも同じでした。

Webでも同様の報告があります。
* [Mind Your OSCs crashing down - Emotiv](https://www.emotiv.com/forums/topic/mind-your-oscs-crashing-down/)
* [Mind your OSC and Control Panel crashing on Mac - Emotiv](https://www.emotiv.com/forums/topic/mind-your-osc-and-control-panel-crashing-on-mac/)

Mind Your OSCsはサードパーティが作成したオープンソースとのことで、ソースを自分で見てなんとかしないといけなさそうです。
[Mind your OSCs download | SourceForge.net](https://sourceforge.net/projects/mindyouroscs/)

## 4.5 Mental Commands

Mental Commandsはトレーニングによって頭で思い描いた物体を動かすイメージを記録して、ContorolPanel内の物体を動かすことができます。

### 4.5.1 Mental Commandsメニューへ移動

左上のメニューからDetections - Mental Commandsを選びます
![スクリーンショット_2017-12-15_11_48_53.png](https://qiita-image-store.s3.amazonaws.com/0/94069/0c09338e-c93c-37a5-2160-75af8ed004f6.png "スクリーンショット_2017-12-15_11_48_53.png")

このような画面が表示されます。
![スクリーンショット 2017-12-15 11.39.45.png](https://qiita-image-store.s3.amazonaws.com/0/94069/be0009c5-a01d-03bd-8901-28593aeda397.png "スクリーンショット 2017-12-15 11.39.45.png")


### 4.5.2 ニュートラル状態の記録

左側のタブからTrainingを選択し、「Record Neutral」を押してニュートラル状態の脳波を記録します。
![スクリーンショット_2017-12-15_11_39_51.png](https://qiita-image-store.s3.amazonaws.com/0/94069/b9ce5655-db48-7544-8570-40a7c8a2dd74.png "スクリーンショット_2017-12-15_11_39_51.png")


30秒ほど掛かります。
![スクリーンショット 2017-12-15 11.39.58.png](https://qiita-image-store.s3.amazonaws.com/0/94069/0a7ea23d-5339-bed0-0e0c-2a6e266847d9.png "スクリーンショット 2017-12-15 11.39.58.png")

記録できました。
![スクリーンショット 2017-12-15 11.40.32.png](https://qiita-image-store.s3.amazonaws.com/0/94069/1fed298e-7d13-aa99-3bfa-131d36805c47.png "スクリーンショット 2017-12-15 11.40.32.png")

### 4.5.3 Mental Commandsの記録

次にActionsタブに戻り、動かしたい動きを選びます。
下のAddボタンを押します。
![スクリーンショット_2017-12-15_11_39_45.png](https://qiita-image-store.s3.amazonaws.com/0/94069/d47969b4-8ab6-0a31-aa0a-77d67ff2291b.png "スクリーンショット_2017-12-15_11_39_45.png")

左下の表にアクションが追加されたら「Apply」を押します。
![スクリーンショット_2017-12-15_11_40_44.png](https://qiita-image-store.s3.amazonaws.com/0/94069/7182c304-52b7-fca6-d208-12037f6e4f6d.png "スクリーンショット_2017-12-15_11_40_44.png")


アクションの種類はこの中から選ぶことができます。
![スクリーンショット 2017-12-15 11.40.46.png](https://qiita-image-store.s3.amazonaws.com/0/94069/68b155fa-432a-41fd-763a-e8524a901d2d.png "スクリーンショット 2017-12-15 11.40.46.png")

再び「Training」タブに移動します。
先程選んだアクションにxマークが表示されています。
![スクリーンショット_2017-12-15_11_41_05.png](https://qiita-image-store.s3.amazonaws.com/0/94069/520fad36-04e8-ab7d-35ea-585bac3699d7.png "スクリーンショット_2017-12-15_11_41_05.png")


「Animate Model According to Training Action」にチェックを入れて、その下の「Start Training」を押します。
![スクリーンショット_2017-12-15_11_43_11.png](https://qiita-image-store.s3.amazonaws.com/0/94069/30385937-2eab-6211-0a2d-bad0312387dc.png "スクリーンショット_2017-12-15_11_43_11.png")

記録が始まり画面上のが動き始めます。この場合「Push」を選んだので物体は奥に動いてきます。
時間は8秒です。このときに私は指でトラックパッドを上に動かす動作をして、指先に集中してみました。
![スクリーンショット 2017-12-15 11.43.03.png](https://qiita-image-store.s3.amazonaws.com/0/94069/198be76d-33dc-1ea0-13fa-7aca71dd9bde.png "スクリーンショット 2017-12-15 11.43.03.png")

記録が終わるとダイアログボックスが開くので「Yes」を押します。
![スクリーンショット 2017-12-15 11.43.24.png](https://qiita-image-store.s3.amazonaws.com/0/94069/650c5124-984a-7ad6-6f13-866e2afd9a96.png "スクリーンショット 2017-12-15 11.43.24.png")

先程のxマークがチェックマークに変わります。
![スクリーンショット 2017-12-15 11.43.28.png](https://qiita-image-store.s3.amazonaws.com/0/94069/c5af476c-d31c-a55f-7c0a-dcbc02696000.png "スクリーンショット 2017-12-15 11.43.28.png")

「Action」タブに戻って先程記録した時のイメージをすると物体が動きます。
![Push.gif](https://qiita-image-store.s3.amazonaws.com/0/94069/af6944a4-43e2-216a-2b93-7256fca43e45.gif "Push.gif")