VPLからRDS 2008のシミュレータ機能を使ってみる(1)(成功編)

前回、ようやく、「ビジュアル・シミュレーション環境」(Visual Simulation ENvironment:VSE)を動かしてみることに成功したのですが、結果しか書いておらず肝心の手順を書くのを忘れていました。。。σ(^-^;)
グラフィックのドライバがインストールされていなくて真っ赤なエラー画面が出てしまったり、VPL図を間違えて動かなかったりなんだりでなんだかごちゃごちゃしてしまったので、今回はうまく動いた場合の手順をまとめたいと思います。


今回、実験したかったこと

ビジュアル・シミュレーション環境」(Visual Simulation Environment:VSE)を起動して、LEGO NXTを動かす。(「DSS Direction Dialog」の上矢印ボタンを押すとロボットが前に進み、その他のボタンを押すと止まる。))


手順1.VPLを起動する。

スタート→すべてのプログラム→Microsoft Robotics Developer Studio(RDS)2008 Express Edition(以下、RDS 2008 Express Edition )→Visual Programing Language 2008 Express

手順2.VPLを作成する。

以下A〜GのブロックをVPL中央のDialog領域にドラックドロップをして順番につなぎ、それぞれパラメータを指定し、VPL図を作成します。

今回使用したブロック
(S:Services、BA:Basic Activities)

A.DirectionDialog(S)
B.Calculate(BA)
C.Switch(BA)
D,E.Data(BA)
F,G.SimulatedGenericDifferentialDrive(S)


  • パラメータ設定

AからBへ接続した時
From:ButtonPress、To:Calculateを指定します。


B.Calculateブロック中央のテキストボックスをクリックし、ドロップダウンリストの中から「Name」を指定します。

BとCを接続します。
C-1.Switchブロック中央のテキストボックスをクリックし、ドロップダウンリストの中から「ButtonDirection」を指定します。

C-2.ピリオドを入力するとインテリセンス機能がはたらき、「Forwards」というプロパティが指定可能であることが確認できたので、テキストボックスの中には「"Forwards"」と入力します。

ここで、テキストボックスの中に「ButtonDirection.Forwards」と入力してもうまく動作しません。

また、『"』で括らずにで単に「Forwards」とすると、エラー表示されるので注意して下さい。


The expression entered is not valid.
There is no input value for 'Forwards'.
The operation '=' is not valid for types 'string' and 'Unknown'.

私は前回ここで勘違いをして、つまずきました。


こちらにSwitchブロックについての説明がありました。

CからD、CからEへそれぞれ接続します。

DおよびEをデータ型にStringを指定し、テキストボックスの中には「Data」と入力します。

DからFへ接続時
From:DataValue、To:SetDrivePowerを指定し、OKボタンを押します。

すると、Data Connectionsというダイアログが表示されるので、Edit values directlyにチェックをいれ、左右のモータパワー値を以下のように設定し、OKボタンを押します。

Value Target
0.5 LeftWheelPower
0.5 RightWheelPower

EからGへ接続時
From:DataValue、To:AllStopを指定します。

F.SimulatedGenericDifferentialDriveをクリックし、VPL右下のプロパティ領域(Properties)で
Configration:Use a manifest
Manifest:LEGO.NXT.Tribot.Simulation.manifest.xml
を指定します。

Manifestはimportボタンを押すと、Import Manifestダイアログが表示されるので、その中から該当のファイルを指定します。

手順3.VPLを実行する。
メニューバーのRun→Start(またはF5キーおよび、三角ボタンでも同様)を押し、ファイルの保存場所を指定します。(今回はSimulationtest2.mvplというファイル名にしました。)


手順4.シミュレーションの動作確認

  • 「DSS Direction Dialog」の上矢印ボタンを押す:ロボットが前進するか?→OK


  • 「DSS Direction Dialog」の上矢印ボタン以外のボタンを押す:ロボットが停止する?→OK


  • 結果動画