Robotics Developer Studio 4.0 Beta + Kinect for Windows SDK 1.0 Beta 2
Microsoft Researchから、Robotics Developer Studioの最新バージョン4.0のベータ版が公開されています。しかしこのバージョン、2011/11/25現在ではKinect for Windows SDK 1.0 Beta 2に未対応です。
え?RDSってKinectに関係してたっけ・・・ですって?RDS4からセンサーの一種としてKinectセンサーが仲間入りして、Kinectセンサーのシミュレーションサービス、実Kinectセンサー向けサービスが追加されています。
Kinectを使ったシミュレーションもサンプルとして用意されています。
しかし、RDS(Robotics Developer Studio)4.0 Betaが公開されて直ぐに、K4W(Kinect for Windows) SDKが1.0 Beta 2にアップデートされてしまったので、そのままでは動きません。また、K4W SDK 1.0 Beta 2をインストールした状態で、RDS4.0 Betaをインストールすると、KinectセンサーをWindows PCが認識しなくなってしまうので、注意が必要です。
以下、RDS4.0 BetaとK4W SDK 1.0 Beta 2を共存させる方法を説明します。※多分、RDSも対応版がそのうちに出ると思うので、このポストの日から随分経った後にこのブログを呼んでいる方は、https://www.microsoft.com/robotics をチェックしてみてください。
- 既にRDSもK4W SDKもインストール済みの場合は、両方をアンインストール
- RDS4.0 Betaをインストール
- K4W SDK 1.0 Beta 2をインストール
※ここで一旦Kinectが動くかK4W SDKのサンプルアプリで動作を確認しておきましょう。 - https://mrdssamples.codeplex.com/releases/view/76620 からKinectFix.zipをダウンロード
- KinectFix.zipのブロックを外し、RDSがインストールされたフォルダーに中身(KinectFix.exe)をコピー
※RDSのインストール先は、デフォルトで、c:\Users\{UserName}\Microsoft Robotics Dev Studio 4 Beta - KinectFix.exeを実行
- スタートメニュー→Microsoft Robotics Developer Studio 4 Beta→DSS Command Prompt( x64)を管理者権限で起動
- samplesフォルダーにチェンジディレクトリし、BuildAllSamples.cmdを実行
後は、DSS Command Promtのコンソールで、一個上のディレクトリに移動して、UserSimRefPlatform.cmdを実行すれば、先ほどの図のようなシミュレータ、コンソール、画像Viewと深度画像Viewが作成されシミュレーションできます。
次に、UserKinectUI.cmdを実行すると、エラーになります。Step 8ではモジュールの依存関係が微妙で全て、再構築できないようで、RDSがインストールされたディレクトリのSamplesフォルダーをエクスプローラーで開き、”*.sln”で検索し、表示されたソリューションファイルをVisual Studio 2010で片っ端から開いてリビルドしていきます。
※SimulatedWebCam、SimlatedSonar、SimulatedPGS、SimulatedCompass、SimulatedColorSensor,MultipleSimulatedSensor、MultipleSimulatedRobots、entityui、CustomSimulatedEntities、ApartmentScene辺りがくさい。多分これらの全てもしくは一部をリビルドすれば十分っぽいです。
で、もう一度、UserKinectUI.cmdを実行してみてください。
こんな感じで表示されます。Kinectセンサーの深度データ、スケルトンデータを、RDSのDSS/CCRを介して受け取って表示してます。このパネルからKinectセンサーのチルトを動かすことも可能です。(出演は、@yukofuji さん。右側のくたった親父は @embedded_george )
最後に、RDS、K4W SDKを公開しているURLを紹介しておきます。
- Robotics Developer Studio 4.0 Beta
https://www.microsoft.com/robotics - Kinect for Windows SDK 1.0 Beta 2
https://www.kinectforwindows.org
RDSの便利なところは、Kinectセンサーやロボットのモータ制御が全てサービス化されていてネットワークで連携していて、その各サービスをシミュレーター、実機に個別に切り替え可能なこと。ソフトウェアの骨格はそのままで、個別に差し替えてテストもできます。また、全てのコンポーネントがネットワーク上のサービスなので、ソフトウェアコンポーネントを全く変更せずに、参照先のURLを変えれば別のノードにサービスを個別に配置することが可能です。つまり、複数のPCやサーバー(それぞれKinectセンサーやロボットがつながっている)に分散配置してシステムを動かすことも可能です。
全部がシミュレーションなら、Kinectセンサーが無くても動くので是非、お試しあれ。