Microsoft Cube SDKが公開されました
Open Source Microsoft Cube Toolkit Released. Including "Kinect Transport" for multiple sensors http://t.co/GJlXY7KW2M #k4wdev #KinectWindows
— Roland Smeenk (@rolandsmeenk) 2015, 2月 12
複数のKINECTで発生したデータを複数のPCに公開・ハンドリングさせる機能を持ったMicrosoft Cube SDKが公開されました。ソースコードはGitHubに公開されていますがライセンスは明記されていません。
このSDKに含まれているKINECT Transportを利用するとTCPを経由することで最大5台のPC、4台のKINECTを用いたDepthデータ、スケルトンデータの送受信を実現することができます。
Microsoft Cubeってなに?
KINECTを利用したプレゼンテーションの一例として発表されたデモンストレーションです。くわしくは以下の動画を参照してください。
Kinect-Powered Cube Unveiled at Decibel Festival ...
Microsoft Cube SDKの構造
SDKはおおまかに以下のような構成になっています。
SDK - Common - Kinect Transport - Deploy Tool - Samples - Cinder Sample - NodeJS Sample - Unity Sample
Common
CommonパッケージはKINECTからのデータ取得、データの変換 *1、KINECTのデータをサーバに送信する責務を担っています。
Kinect Transport
Kinect Transportパッケージは複数PC間でのデータ送受信の制御や設定をする責務を担っているようです。以下、READMEから引用します。
KinectTransport is designed to push Kinect2 data from one machine to one or many other machines over a ethernet network.
Kinect Transport自体はSDKとして利用するものではなく、KINECTのデータを送信/受信したいPC上で実行させ、どこに対してどのような情報を送信するかを設定するGUIを提供するためのものになっています。
Deploy tool
Deploy toolパッケージは中央サーバから接続されたクライアントに対して実行可能なプログラムを配布し、プログラムの開始・終了を制御する責務を担っています。こちらもREADMEから引用すると以下のようになります。
Additionally the Deploy Tool provides a method for automatically pushing builds from a centralized server to each side of the cube and starting and stopping the application.
Samples
NodeJS, Cinder, Unityのサンプルがリポジトリに含まれています。詳しく見ていませんが、KINECTのデータを配布するためのTCPサーバはNodeJSで実装されているようです。
早くもGitHub IssueにはUnityのサンプルが動かないバグが公開されていますが、チュートリアルはNodeJSなので大丈夫でしょう…たぶん。
インストール方法
まだ試していませんが、READMEそのままを日本語訳したメモです。
- このリポジトリをcloneする
- NodeJSをインストールしていない場合はインストールする
NodeJSSample
ディレクトリに移動してnpm install
サンプルの実行方法
- KINECTを接続し、KINECT Transportを実行します
NodeJSSample
ディレクトリに移動してserver.bat
を実行します- ブラウザで http://localhost:8000 を開いてKINECTからデータが送信されていることを確認します
MS Cube SDK雑感まとめ
KINECTのデータをネットワーク越しに利用したい、複数台のKINECTのデータをまとめて制御したいという要望はKINECT v1の時点から多くありました。
ちゃんと調べたわけではありませんが、TCPソケットやWebSocketを利用してネットワーク経由でKINECTのデータを扱う実装はすでに多くあると思われます。 *2
@UnaNancyOwen いま、ちょうどKinectのデータをソケットで送るの作ってますw
— 中村 薫 (@kaorun55) 2015, 2月 13
現状で感じられるMS Cube SDKの価値は以下の様な点でしょうか。
MS Cube SDK自体は恐らくこの状態から大きく進化することはないでしょうが、このすぐ先には複数のKINECTから取得した点群の合成やフレーム合わせが待っているわけです。楽しみですね(だれが実装するかは置いておいて) : )