VPLからRDS 2008のシミュレータ機能を使ってみる(1)(解決編)
前回、「ビジュアル・シミュレーション環境」(Visual Simulation Environment:VSE)で動かなかったNXT...
動きました。(≧▽≦)
- 今回、実験したかったこと
ビジュアル・シミュレーション環境」(Visual Simulation ENvironment:VSE)を起動して、LEGO NXTを動かす。(「DSS Direction Dialog」の上矢印ボタンを押すとロボットが前に進み、その他のボタンを押すと止まる。))
かなり見づらいかと思いますが、動いた様子です。
初め、ストップ機能を付け忘れたところ、NXTを止めるすべがなくNXTがはるかかなたまで走っていってしまい、なんとも切ない気分に(/_;)/~~
- 最初に参考にしたVPL図(『Microsoft Robotics Developer Studio入門』(第8章 p.138〜参照))
XInputCOntrollerブロックはXboxのコントローラがないと確認できないので、代わりにDirectionDialogブロックを使って書き換えようとしたしました。
- 動かなかったVPL図
- 成功したVPL図
原因は
- DirectionDialogブロックとSwitchの間に必要なのはDataブロックではなくCalculateブロックだった。
- SwitchブロックとSimulatedGenericDIfferentialDriveの間にDataブロックが不足していた。
- DiretionDialogブロックからSwitchへの接続種類をReplaceにしていた。(ButtonPressを指定していたつもりがいつのまにか変更してしまっていたようです。。。)
からでした。
書籍例ではIfブロックが使用されていたので、試しにこのVPL図でIFブロックの中に"Forwards"と書いてみると赤いアイコンが表示されて、マウスを近づけると以下のようなメッセージが表示されました。
The expression entered does evaluate to a Boolean(true or false)value.
(Expression result type is 'string')
なるほど、Ifブロックの中央テキストボックス中にに文字列は入力できないようです。
って、そりゃそうか。。。
If("Forwards"){
//実行処理
}
なんて書かないですもんね。。。σ(^-^;)
DataブロックとCalculateブロックの違いがまだ、よくわかっていないので、次回はここを調べてみようと思います。
たったこれだけのことをするのに何かと悪戦苦闘の毎日。。。(+_+)