CodeZine(コードジン)

特集ページ一覧

Robotics Developer StudioとXbox 360コントローラで
ロボット制御シミュレーションを体験してみよう

Microsoft Robotics Developer Studio 2008 入門(3)

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2009/09/17 14:00

目次

左右のトリガー(アナログ)ボタンを使ってみる

 図2の左トリガー(アナログ)と右トリガー(アナログ)を使ってシミュレーション環境でロボット(LEGO NXT)をボタンを押している間左旋回、右旋回させます。まず、Visual Programming Language 2008 R2 ExpressのVPLエディタを起動します。

1. 必要なブロックを配置する

 図3はXInputControllerとSimulatedGenericDifferentialDriveブロックを「ダイアグラム領域」に配置した状態を示したものです。

 XInputControllerブロックはXbox 360のコントローラをPC利用時に使うサービスで、SimulatedGenericDifferentialDriveブロックはシミュレーション環境で2つのモータをもつロボットを制御するためのサービスです。

図3:ブロックを「ダイアグラム領域」に配置した状態
図3:ブロックを「ダイアグラム領域」に配置した状態

 XInputControllerブロックの右側に三角と丸のマークが上下に配置されています。上の三角は結果を出力するピンで、下の丸は通知を出力するピンです。今回は下の丸い通知出力ピン上でマウスを左クリックしたまま、SimulatedGenericDifferentialDriveブロック左側の入力ピンまでドラックし、この2つのブロックを接続します。これで、Xbox 360コントローラの信号の状態をパソコンで受けとり、モータの状態を決定します。

2. [Connections]ダイアログを設定する

 1.で、XInputControllerとSimulatedGenericDifferentialDriveブロックを接続すると、図4のような[Connections]ダイアログが表示されるので、XInputControllerブロックのどの機能を使用するかを設定します。今回は左右のトリガー(アナログ)ボタンを使用してロボットをそれぞれ左旋回、右旋回させたいので、From側でトリガーの状態が変更した場合に通知を発生する「TriggersChanged」、To側でモータの出力をセットする「SetDrivePower」を選択し、[OK]ボタンを押します。

図4:XInputControllerとSimulatedGenericDifferentialDriveブロックを接続した時の[Connections]ダイアログ
図4:XInputControllerとSimulatedGenericDifferentialDriveブロックを接続した時の[Connections]ダイアログ

3. [Data Connections]ダイアログを設定する

 2.で[OK]ボタンを押すと、[Data Connections]ダイアログが表示されます。左右のモータを制御したいので、LeftWheelPowerとRightWheelPowerに対して図5のようにValue側でそれぞれ左のトリガー(アナログ)ボタンの値を持つ「Left」、右のトリガー(アナログ)ボタンの値を持つ「Right」を選択し、[OK]ボタンを押します。

図5:[Data Connections]ダイアログ
図5:[Data Connections]ダイアログ

4. シミュレーション環境を指定する

 図6にここまでのVPL図を示します。

図6:左右のトリガーボタンを使ってロボットを制御するVPL図
図6:左右のトリガーボタンを使ってロボットを制御するVPL図

 図6において、SimulatedGenericDifferentialDriveブロックを選択し、右下の「Properties」欄の[Configuration]プロパティで「Use a manifest」を指定します。

 引き続き、[Manifest]プロパティでマニフェストファイルを指定します。マニフェストファイルとは、サービス実行時の各種情報を保持しているXMLファイルです。下方にある[Import]ボタンを押すと、[Import Manifest]ダイアログが表示されるので、LEGO NXT Tribotのシミュレーション環境が設定されている「LEGO.NXT.Tribot.Simulation.Manifest.xml」を指定し、[OK]ボタンを押します。設定後の「Properties」欄を図7に示します。

 詳細は第2回の図を参考にしてください。

図7:SimulatedGenericDifferentialDriveブロックの「Properties」欄
図7:SimulatedGenericDifferentialDriveブロックの「Properties」欄

5. 作成したVPL図を実行する

 メニューのRunからStartを選択すると、DSSランタイムが実行され[Run]ダイアログ、[Visual Simulation Environment]画面がそれぞれ続けて立ち上がります。図8にVSE画面を示します。

図8:図6を実行させた時のVSE画面
図8:図6を実行させた時のVSE画面

 左右のトリガーボタンを押している間、ロボットがそれぞれ、左旋回、右旋回する様子を確認してください。実行を終了するときは[Run]ダイアログの[STOP]ボタンを押します。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:Microsoft Robotics Developer Studio 2008 入門

著者プロフィール

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XM...

  • WINGSプロジェクト asa(asa)

     <WINGSプロジェクトについて>  有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5