Robotics Studio


皆さん、Robotics Studioをご存知でしょうか?
Robotics Studioは、Microsoftが提供するロボット制御向けプラットフォーム環境です。昨年Version1.0が公開され、5月に1.5(CTP)が、そして7月に1.5がリリースされています。ロボット向けアプリケーションは、疎結合コンポーネント群が並行して実行するアプリケーションであると特徴付けし、その様な特徴をもつアプリケーションを構築するための、実行環境とオーサリング環境、そして、シミュレーション環境を提供しています。


Robotics Studioでは様々な新しい技術が取り入れられています。疎結合コンポーネント間のメッセージのやり取りはSOAをベースとしたDSSSP(Decentralized Software Service Protocol)が使われ、並行実行環境は、.NET Frameworkのライブラリとして提供されるCCR(Cuncurrency and Coordination Runtime)を使っています。また、プログラミング言語としては、VPL(Visual Programming Language)というデータフローを基本とした新しい言語が用意されています。プログラミングはVPL以外にもC#やVBなど.NET言語群も使えます。他にSimulation環境ではWPFやXNAといった技術が使われています。


Robotics Studioは、以下のサイトからダウンロードして使うことが可能です。


http://www.microsoft.com/robotics/


ここから1.5をダウンロードしてインストールすると、デフォルトで、C:¥Microsoft Robotics Studio(1.5)というディレクトリに必要ファイルが格納されます。このディレクトリーの下にsamplesというフォルダーがあり、各種チュートリアルやサンプルコードが入っているので、色々と試してみることができます。最新バージョンのひとつ前のCTP版ではいくつか不具合があり、動かせないサンプルがあったので、CTP版をインストールしてうまく動かなかった方は、一旦アンインストールして、最新バージョンをインストールしなおしてみてください。
また、samples¥simurationtutorials¥tutorial2を試す場合、そのままビルドして動かない場合は、以下の手順を踏んでください。



  • samples¥misc¥simpledashboardのSimpleDashboard.slnをVisual Studio 2005で開く。

  • ソリューションを全てリビルドする

  • デバッグ実行してみる

  • コマンドウィンドウに赤字でエラーが表示される場合は、SimpleDashboardの参照設定の下のGameController.Y2006.M09.Proxyを一旦削除して、リビルドされたGameController.Y2006.M09.Proxy.dll(sample¥misc¥GameController¥Proxy¥obj¥debugにあります)を参照に追加しなおして、リビルドしてください。

  • デバッグ実行するとDashboardとSimulationウィンドウが現れます。

  • Dashboardの右上のRemote Nodeにlocalhostと入力して、Connectボタンを押すとサービスリストが表示されます。LegoNXTMotorBaseをダブルクリックし、左のDriveボタンをクリックします。その後、十字が描かれた球をマウスで動かすとSimulator上のロボットが動きます。

この後、tutorial2のソリューションをVisual Studioで開き、ソリューションのビルド、実行するとうまく動きます。Simulation環境で、Physics→Settingで表示されるダイアログで、Gravityを0にして実行してみてください。面白いことが起こります。また、Mode→Editで表示されている物体の属性を変えることができます。私も全ての属性の意味を把握しているわけではありませんが、設定を変えるとSimulationの世界の設定が変わります。


Lego MindstomrsやRoombaなどデフォルトでいくつかのロボットが用意されていて制御することができるのでお手持ちの方は実際に試してみてください。また、既に布留川さんという方が書かれた本(「Microsoft Robotics Studioプログラミング」ISBN978-4-8399-2383-9)も出版されていますのでそちらも参考にしてみてください。


Robotics Studioで使われている基本技術は興味深いものが多いのでまた後ほどこのブログで紹介しようと思います。


 


Skip to main content