連載
» 2007年05月11日 00時00分 公開

解説! ロボット開発環境Robotics Studio(4):シミュレータでロボットをグリグリ動かす! (1/2)

物理学の法則を適用したシミュレータ「Visual Simulation Environment」を使って、ロボットを制御する!

[大川 善邦 工学博士 日本大学工学部非常勤講師/大阪大学名誉教授,@IT MONOist]

 今回は、マイクロソフトのRobotics Studio 1.0(以下、MSRS)のシミュレータ「Visual Simulation Environment(以下、VSE)」について紹介します。

 下の動画1がVSEの画面です。いかがでしょうか? 何やらロボットらしきものがグリグリと動いていますね。


VSEでシミュレートしている様子動画1 VSEでシミュレートしている様子

 それでは、VSEがどのようなものなのか? 早速見ていきましょう!

※注:
現在、Microsoft Robotics Studio 1.5 (CTP May 2007)がリリースされています(執筆時点)。


モデルベース開発を可能にする強力なツール

 近年、“モデルベース開発”を採用して、自動車や航空機を設計する企業が増えてきました。モデルベース開発では、対象となるメカの動特性を数式モデルで表現して、これをコンピュータ内に実現し、シミュレーションによって設計パラメータを決定します。そして、その結果を実機へダウンロードして実機検証を行います。

 このモデルベース開発を採用することで、開発コストの削減が可能になります。また、“開発期間を短縮(製品開発サイクルを短縮)できる”点も見逃せません。

 今回紹介するVSEは、(ロボットの分野において)モデルベース開発を可能にする強力なツールです。しかし、強力なツール故に大規模なシステムでもあります。そのすべてを説明するのは大変ですので、ここでは、VSEの基礎について解説します。

VSE実行環境の準備

 はじめに、VSEを実行する際に必要となるハードウェアとソフトウェア構成について紹介します。

 まずは、ハードウェアです。

本連載で使用したLEGO「MINDSTORMS NXT」 画像1 本連載で使用したLEGO「MINDSTORMS NXT」

 VSEは、シミュレーションプログラムであるため、連載第23回で使用したロボットは必要ありません。ロボットは、どこか戸棚にでも大切にしまっておいてください。

 VSEは、「.NET Framework 3.0(特に、WPF:Windows Presentation Foundation)」を前提としているため、DirectX 9対応のビデオボードが必要となります。ちなみに、MSRSの仕様書には「ATIもしくはNVIDIAが、ここ2年間に開発したミドルレンジ以上のGPU(Graphics Processing Unit)搭載のビデオボードが必須」と記載されています。

 VSEでは、ロボットなどを「Entity(VSEの用語)」と呼びます。そのEntityの運動を物理学的に計算するために、米AGEIA Technologiesの物理演算処理プロセッサ「PhysX」が推奨されています。MSRS付属のサンプルプログラムを動かす程度であれば、PhysXなしでも十分です。しかし、実用的なプログラムを目指すのであれば、こちらを購入した方がよいでしょう。

 今回紹介するサンプルプログラムでは、ロボットを操縦するために“Xbox 360のコントローラー”を使用します。Xbox 360のコントローラーをPCへ差し込んで、必要なドライバーをインストールします。ただし、このコントローラーは必須ではありませんのでご安心ください。マウスで代用することも可能です。

 続いて、ソフトウェアです(注)。

※注:
すでにMSRSがインストールされている前提で説明します。


 VSEのサンプルをビルドするために、Visual Studio 2005が必要です。Visual Studio 2005が手元にない場合は、マイクロソフトのダウンロードサイトから、Visual C# 2005 Express Edition(以下、VC#)をダウンロードして、インストールします。

 これで、ハードウェアとソフトウェアの準備が完了しました。


サンプルでシミュレーション体験

 それでは、MSRSのサンプルプログラムを使ってシミュレーションを体験してみましょう! MSRSをデフォルトでインストールした場合、

C:\Microsoft Robotics Studio (1.0)\samples\SimulationTutorials\Tutorial2\SimulationTutorial2.csproj

にファイルがあるはずです。

 VC#で「SimulationTutorial2.csproj」を開き、プロジェクトを立ち上げます。画面1のようにVC#のプロジェクトがスタートします。

VC#のプロジェクト 画面1 VC#のプロジェクト

 ちなみに、「SimulationTutorial2.cs」がメインのプログラムとなります。C#などに詳しい方は、ソースコードを眺めてみてください。

 続いて、プロジェクトをビルドします。

 VC#のメニューから、[Build]−[Build SimulationTutorial2]とクリックします。また、[F6]キーを押しても同じ操作が可能です(注)。

※注:
通常、VC#でプロジェクトをビルドする場合は、環境設定などを行う必要があります。しかし、MSRSをインストールした直後のデフォルト状態でビルドする場合であれば、特に環境設定などを追加、修正する必要はありません。上述した手順でビルドを行えば、正常にビルドが行われます。


 プログラムをビルドすると、インストール直後の状態(初期設定など)が変更されてしまいます。もし、インストール直後の状態を保存しておきたければ、あらかじめフォルダをほかの場所へコピーするなどして対処してください。

 何がいいたいかというと「MSRSをインストールした場所でビルドをすれば、余計な操作は不要」ということです。

 実行を開始します。VC#のメニューから、[Debug]−[Start Debugging]とクリックします。[F5]キーを押しても同じ操作が可能です。

 PC内に、デフォルトのノードが作成されて、ビルドしたプログラム(厳密には、「サービス」)がスタートします。

 しばらくすると、画面2のシミュレーション画面が表示されます。

シミュレーションの画面 画面2 シミュレーションの画面

 「テーブル」1個と「移動ロボット」2機が平面上に置いてあります。左の大きなロボットは「Pioneer 3DX」、右の小さなロボットは「NXT(連載第23回で使用したロボット)」です。遠くに雲などが描かれていますが、これを「スカイボックス」といいます。

 同時に「Dashboard(画面3)」と呼ばれるサービスもスタートします。SimulationTutorial2のプロジェクトには、Dashboardのプログラムが含まれているため、プログラムをスタートすると2つのサービスが同時に実行されます。

Dashboard 画面3 Dashboard

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.