NALGO研究部の笹川です。
前回の記事では、JINS MEMEから送信される情報をWebSocketでリアルタイム取得できることを確認しました。
今回は、取得した情報を使ってメガネ(顔)の角度をリアルタイムに表示してみたいと思います。
動作のようす
(顔認識ではないので、この状態で動きます!)
アプリの構成
前回の記事ではひとまずPythonを使いましたが、JINS MEMEドキュメント側で公開されているモーショントラッキング前処理例がJavaScriptだったため、今後これを取り込む可能性を考えてJavaScriptを使おうと思いました。(Pythonに書き直すこともできるが手間なので)
またせっかくなので、JavaScript実行環境は使い慣れたNode.jsではなく新しいdenoを使ってみることにしました。もちろんTypeScriptで書きます。
以下、動作構成です。
deno(TypeScript)プログラムの本体は以下の動作をします。
- ブラウザーからのアクセスに対してHTMLを返す
- ブラウザーとLoggerアプリからのWebSocket接続をそれぞれ待ち受け、両方接続した後はLoggerからのメッセージをブラウザーに中継する
- 中継する際に加工も可。現在は接続時点の値が真正面になるように角度を補正しています。将来的には前述のモーショントラッキング前処理を取り込むことができます。
プログラム
今回作成したプログラムは以下で公開しています。