SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Microsoft Robotics Developer Studio 2008 入門

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

Microsoft Robotics Developer Studio 2008 入門(3)

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

 図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]ボタンを押します。

次のページ
Bボタン、Yボタンを使ってみる

この記事は参考になりましたか?

Microsoft Robotics Developer Studio 2008 入門連載記事一覧

もっと読む

この記事の著者

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

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト asa(asa)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/4291 2009/09/17 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー