LSLってなんぞ

2020年12月25日

最近、手から勝手に10まんボルトが発射されるようになった鬼塚です。
寒くなってきましたが乾燥にも気をつけましょう。

前回はUllo(ウロ)社の三つのデバイス、Echo(エコー)、Flower(フラワー)、Vibes(バイブス)について紹介しましたが、
これらをBITalinoと接続する方法について考えていきたいと思います。


まずはメーカーさんに色々と聞いてみたのですが、FlowerとVibesはBLEを使ってスマートフォンを経由してセンサと接続しているらしく、汎用の心拍数センサとして認識させれば使えるようですが、そうなるとBITalinoのBLEモジュールのファームウェアを書き換える必要があります。 

これはかなりハードルが高そうです。。。

ちなみに最初から使えるようになっている心拍数センサは市販のものでMIO LINKというものです。
EchoはMIO LINKに加えて脳波センサのMUSE2とUllo社が独自に作った呼吸センサを使います。
そのEchoちゃんではどうかというと、センサをBLEで接続するのは同じですが、内部ではLSLというものを
使って取得したデータをやり取りしているとのこと。

なので、BITalinoから取得したデータをLSLでEchoに送れば良さそうな気がしてきました。
ひとまず、Echoちゃんにターゲットを絞ってBITalinoとの接続をやっていこうと思います。

LSLというキーワードで調べると、とある仮想世界を制御するようなスクリプトが出て来たりしますが、これは関係ありません。
正式名称は「Lab Streaming Layer」です。こちらの名前で検索すれば情報が出てくるかと思います。
全体的に情報は少なめですが、本家はこのあたりのようです。

https://github.com/sccn/labstreaminglayer

https://labstreaminglayer.readthedocs.io/info/intro.html

公式説明にも色々と書いてありますが、毎度ざっくり説明しますと、LSLは研究、
実験用途向けのローカルネットワーク上で動作する、データの送受信システムです。

主に脳波計やアイトラッカーなどでデータをやり取りするために使われています。
対応しているデバイスやセンサは結構あるようです。

https://labstreaminglayer.readthedocs.io/info/supported_devices.html

実はBITalinoのデータ取得ソフトウェア「OpenSignals」もLSLに対応しているのですが、
残念ながらEchoにデータを送信するためには使えないそうです。

LSLを使用するためにはLAN(ローカルエリアネットワーク)などのネットワークが必要ですが、
IPアドレスでお互いを識別するのではなく名前"name"とタイプ"type"を指定することで通信できるようです。

何はともあれLSLがどのように使われているか実際に見ていきましょう。

LSLはネットワークで動作しますので、Echoちゃんを会社のLANに接続してみました。
無線LANのアクセスポイントの設定はスマートフォンから行うことができます。
これでLSLのデータがネットワークに流れるのでPCとかから受信を行えば良いはずです。

LSLのデータを取得するソフトウェアをメーカーさんから教えてもらいましたので、早速使ってみます。

https://github.com/labstreaminglayer/App-LabRecorder

"LabRecorder.exe"を起動すると「Record from Streams」のところに項目が増えています。

Lab Recorder

これで「Start」をクリックすると記録が開始されるようですが、このログはxdfというフォーマットらしく、
開けるソフトウェアが何故か見つかりませんでした。

仕方ないのでテキストエディタで開くとバイナリデータっぽいのですが、なにやらヘッダ情報のようなものが含まれているようです。

LSLで使われている名前とタイプが知りたかったのですが、この情報から読み取れそうですね。

とりあえずEchoから何かしらの情報を受信できたのですが、BITalinoからのデータをEchoに伝えるために、
LSLを送信する側も必要です。そのためにはプログラミングが必要となりますので、次はその話をしていきたいと思います。

次回もお楽しみに!

次の記事へ

PAGE TOP