読者です 読者をやめる 読者になる 読者になる

Robotics Studioで遊ぶ(1)

robot book

Robotics Studioは、発表された当初から気になってたんだけど、なかなか手が出てなかった。
最近、Robotics Studioの本も出版されたので早速買ってきた。この本を参考にして色々遊んでみようと思う。

Microsoft Robotics Studio プログラミング

Microsoft Robotics Studio プログラミング

まずは、Robotics Studioのインストール。DirectXのインストールのところで、「ダウンロードに失敗しました。」とかエラーが出たけど、その他は特に問題なく進んだ。DirectXだけ、あとで手動インストール。

次に、VPL(Visual Programming Language)を使って、ロボットを制御するためのアプリケーションを作ってみる。VPLでは、データを生成したり、計算したり、条件分岐をおこなうような「アクティビティ」と呼ばれるブロックと、ジョイスティックとか、実際のロボットのアクチュエータやセンサにアクセスするための「サービス」と呼ばれるブロックを、描画領域にポコポコ並べていく。そして、ブロックにはデータを入出力するためのピンがあるので、これらのピンを使ってブロックとブロックを接続していくだけで、データのやり取りができて、ロボットアプリケーションが完成すると。なるほど。

サービスのコンフィギュレーションを変更することによって、実際のロボットを制御するか、シミュレータ上のロボットを制御するか変更できるようになってる。しかも、単一のロボットだけではなく、他のロボットにも切り替えられる。つまり、1つのロボットアプリケーションを用意するだけで、いろんなロボットを制御できるようになっているのか。
まぁ、実際にはすべてのロボットがまったく同じ機能を備えているわけではないので、多少の変更は必要になるんだろうけど、大部分は再利用できるだろうし、ロボットアプリケーションは、開発しやすくなるだろうなぁ。

最後に、作ったアプリケーションを、LEGO MINDSTORMS NXTのシミュレータ(Microsoft Visual Simulation Environment)で動かしてみた。シミュレータには、PhysXという物理演算のエンジンを使っているだけあって、慣性とかの影響が出たリアルな動きになってるように見える。サッカーロボットシミュレータとか、相撲ロボットシミュレータまであるのか。すごい充実ぶり。

気になるのは、このRobotics Studioで、どの程度のリアルタイム性を持ったシステムが構築できるかかな。それを解決するのが、CCR(Concurrency and Coordinaation Runtime)なんだろうか?読み進めてみることにしよう。