物理学の法則を適用したシミュレータ「Visual Simulation Environment」を使って、ロボットを制御する!
今回は、マイクロソフトのRobotics Studio 1.0(以下、MSRS)のシミュレータ「Visual Simulation Environment(以下、VSE)」について紹介します。
下の動画1がVSEの画面です。いかがでしょうか? 何やらロボットらしきものがグリグリと動いていますね。
それでは、VSEがどのようなものなのか? 早速見ていきましょう!
近年、“モデルベース開発”を採用して、自動車や航空機を設計する企業が増えてきました。モデルベース開発では、対象となるメカの動特性を数式モデルで表現して、これをコンピュータ内に実現し、シミュレーションによって設計パラメータを決定します。そして、その結果を実機へダウンロードして実機検証を行います。
このモデルベース開発を採用することで、開発コストの削減が可能になります。また、“開発期間を短縮(製品開発サイクルを短縮)できる”点も見逃せません。
今回紹介するVSEは、(ロボットの分野において)モデルベース開発を可能にする強力なツールです。しかし、強力なツール故に大規模なシステムでもあります。そのすべてを説明するのは大変ですので、ここでは、VSEの基礎について解説します。
はじめに、VSEを実行する際に必要となるハードウェアとソフトウェア構成について紹介します。
まずは、ハードウェアです。
VSEは、シミュレーションプログラムであるため、連載第2、3回で使用したロボットは必要ありません。ロボットは、どこか戸棚にでも大切にしまっておいてください。
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へ差し込んで、必要なドライバーをインストールします。ただし、このコントローラーは必須ではありませんのでご安心ください。マウスで代用することも可能です。
続いて、ソフトウェアです(注)。
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#のプロジェクトがスタートします。
ちなみに、「SimulationTutorial2.cs」がメインのプログラムとなります。C#などに詳しい方は、ソースコードを眺めてみてください。
続いて、プロジェクトをビルドします。
VC#のメニューから、[Build]−[Build SimulationTutorial2]とクリックします。また、[F6]キーを押しても同じ操作が可能です(注)。
プログラムをビルドすると、インストール直後の状態(初期設定など)が変更されてしまいます。もし、インストール直後の状態を保存しておきたければ、あらかじめフォルダをほかの場所へコピーするなどして対処してください。
何がいいたいかというと「MSRSをインストールした場所でビルドをすれば、余計な操作は不要」ということです。
実行を開始します。VC#のメニューから、[Debug]−[Start Debugging]とクリックします。[F5]キーを押しても同じ操作が可能です。
PC内に、デフォルトのノードが作成されて、ビルドしたプログラム(厳密には、「サービス」)がスタートします。
しばらくすると、画面2のシミュレーション画面が表示されます。
「テーブル」1個と「移動ロボット」2機が平面上に置いてあります。左の大きなロボットは「Pioneer 3DX」、右の小さなロボットは「NXT(連載第2、3回で使用したロボット)」です。遠くに雲などが描かれていますが、これを「スカイボックス」といいます。
同時に「Dashboard(画面3)」と呼ばれるサービスもスタートします。SimulationTutorial2のプロジェクトには、Dashboardのプログラムが含まれているため、プログラムをスタートすると2つのサービスが同時に実行されます。
Copyright © ITmedia, Inc. All Rights Reserved.