LEGO MindstormsNXT によるビジュアルフィードバック実験システム開発資料 Copyright:中京大学工学部 作成:初版 橋本研究室 2015/11/16 LEGO Mindstorms NXT による ビジュアルフィードバック制御 初版 中京大学 工学部 橋本研究室 作成者:有賀治樹,北村友香 【注】本資料は,橋本研究室所属学生による実習作品であり,記載内容に関する質問等には回答できま せんので予めご了承ください.また,記載内容の信頼性,および記載内容に基づいて製作・試作された ソフトウェア,ハードウェア等の動作に関しては,一切責任を負いません. 1 / 19 LEGO MindstormsNXT によるビジュアルフィードバック実験システム開発資料 Copyright:中京大学工学部 橋本研究室 概要 本手順書は,LEGO Mindstorms NXT を用いてビジュアルフィードバック制御をおこなうための手順 を記したものである.この手順書における,ビジュアルフィードバック制御の構成を図 1 に示す.PC で の画像処理結果をもとにして生成したモータ制御信号を NXT に送信し,NXT が動作するという一連の流 れを繰り返す. PC では画像処理プログラム,NXT ではモータ制御プログラムを実行し,両プログラム間で通信をおこ なうモジュールを設けることによって,ビジュアルフィードバック制御をおこなう.図 2 に NXT と PC の動作の流れを示す. カメラ PC カメラ画像 制御信号 図 1. ビジュアルフィードバック制御の構成 PCの動作 NXTの動作 PC動作を初期化 画像取り込み 画像処理 ロボット動作を初期化 Bluetooth 通信 PCからの信号を待つ NO モーター動作信号を生成 信号をロボット側に送信 wait 信号が来たか? YES 動作終了させるか? 信号に従ってモーターを動作 YES 終了 図 2. ビジュアルジードバック制御の流れ 2 / 19 NO LEGO MindstormsNXT によるビジュアルフィードバック実験システム開発資料 Copyright:中京大学工学部 橋本研究室 (1)インストールマニュアル 1. 必要物品 ① PC(OS は windows7) ② Microsoft Visual Studio 2010(以下 VS) ③ LEGO Mindstorms NXT2.0 一式 ④ Web カメラ ⑤ USB Bluetooth Dongle(以下 BD) なお,Web カメラと BD については,以下の製品で動作を確認済み. Web カメラ:HD Webcam C270 http://www.logicool.co.jp/ja-jp/webcam-communications/webcams BD:F9847 Bluetooth Dongle http://lego.wikia.com/wiki/F9847_Bluetooth_Dongle 2. ソフトウェアの事前準備 ① PC に VS をインストール ※VS2008,VS2010 でのみ動作確認済み. ② OpenCV のダウンロード 下記のサイトの「opencv-win」の「2.3.1」の「OpenCV-2.3.1-win-superpack.exe」を クリックし,ダウンロード. http://sourceforge.net/projects/opencvlibrary/files/?source=navbar ③ OpenCV のインストール 1. 保存された「OpenCV-2.3.1-win-superpack.exe」をクリックし,実行. 2. すべての質問にデフォルトで回答し,インストール. ④ VS で OpenCV-2.3.1 を使用できるようにパスなどを設定 詳しい設定方法は,下記のサイトを参照. http://imagingsolution.net/program/opencv/opencv2-3-1-downlaod-install/ https://c5155196669c564620ef9c12a25f195f52ea786c.googledrive.com/host/0By7jP ChnijtHSlp1QnlYanNhOE0/opencv231/index.html ⑤ BricxCC(Bricx Comand Center)のダウンロード 下記のサイトの「bricxcc_setup_3389.exe」をクリックし,ダウンロード. http://sourceforge.net/projects/bricxcc/files/bricxcc/bricxcc%203.3.8.9/ ⑥ BricxCC のインストール 保存された「bricxcc_setup_3389.exe」をクリックし,実行. 図 3 の画面の「実行」を選択. 図 4 の画面の「Next」を選択していくとインストールが完了する. (Yes と NO を選択する場合は Yes を選択する) 3 / 19 LEGO MindstormsNXT によるビジュアルフィードバック実験システム開発資料 Copyright:中京大学工学部 橋本研究室 図3 図4 ⑦ Fantom Driver のダウンロード 下記のサイトの「NXT_USB_Driver_120.zip」 (図 5 赤枠)をクリックし,ダウンロード. http://www.robotc.net/support/troubleshooting/fantom-driver.php ⑧ Fantom Driver のインストール 1. 保存された「NXT_USB_Driver_120.zip」を解凍. 2. 解凍したフォルダ内の「setup.exe」をクリックし,実行. 3. 図 6 の「next」を選択していくとインストールが完了する. 4 / 19 LEGO MindstormsNXT によるビジュアルフィードバック実験システム開発資料 Copyright:中京大学工学部 図 5 図 6 ⑨ BD(PC)と NXT との接続の設定 PC に BD を接続し,NXT との接続を確認.詳細は(4)に記載 5 / 19 橋本研究室 LEGO MindstormsNXT によるビジュアルフィードバック実験システム開発資料 Copyright:中京大学工学部 橋本研究室 (2)NXT によるビジュアルフィードバック制御の実行手順 図 7 に LEGO Mindstorms NXT を用いたビジュアルフィードバック制御の手順を示す.Step1~ Step6 に従って,PC および NXT のプログラムを起動させることによって,ビジュアルフィードバ ック制御を実現できる.以下に Step1~Step6 の詳細な手順を示す. 開始 Step1 COMポート番号の確認 Step2 Microsoft Visual Studioの起動 Step3 PCプログラムの修正 Step4 PCプログラムの実行 Step5 NXTの起動とプログラムの実行 Step6 NXTとPCプログラムの終了 終了 図7 6 / 19 LEGO MindstormsNXT によるビジュアルフィードバック実験システム開発資料 Copyright:中京大学工学部 橋本研究室 Step 1. COM ポート番号の確認 図 8 のように USB Bluetooth Dongle を PC に接続する. 図8 Bluetooth Dongle を接続すると,タスクバーの右にあるインジケーターに Bluetooth デバイスの アイコンが生成される(図 9 の赤枠) .このアイコンを左クリックする. ※アイコンが生成されない場合は,コントロールパネル->ハードウェアとサウンド->デバイスとプリン ター->Bluethooth デバイスをクリックする. 図9 Bluetooth デバイスの表示(図 10 の赤枠)を選択する. 図 10 7 / 19 LEGO MindstormsNXT によるビジュアルフィードバック実験システム開発資料 Copyright:中京大学工学部 橋本研究室 接続している NXT のデバイスが表示されるので,右クリックしプロパティを選択する. ※Bluetooth による PC と NXT の接続は, (4)で説明. 図 11 「ハードウェア」タブを選択し,COM ポート番号を確認する. この COM ポート番号を PC のプログラムで使用するためメモしておく. (図 12 の場合は COM8) 図 12 8 / 19 LEGO MindstormsNXT によるビジュアルフィードバック実験システム開発資料 Copyright:中京大学工学部 Step 2. 橋本研究室 Microsoft visual studio の起動 「Microsoft Visual Studio 2010」を起動する. 事前に作成したソリューションファイルを立ち上げる. Step 3. PC プログラムの修正 立ち上げたソリューションファイルの「ソースファイル」を右クリックし, 「追加」の「既存の項目」を クリックし,実行したいソースファイルを追加する. 図 13 ソースコードの COM ポートの設定部分(図 14 の赤枠)の COM ポート番号を Step1 でメモした番号に 変更する. ※COM ポートの設定が間違っていると実行時にエラーが発生する. 図 14 9 / 19 LEGO MindstormsNXT によるビジュアルフィードバック実験システム開発資料 Copyright:中京大学工学部 Step 4. PC プログラムの実行 「ビルド」→「ソリューションのビルド」をクリックしビルドする. 図 15 ビルドに成功していたら, 「デバッグ」→「デバッグなしで実行」をクリックする. 図 16 10 / 19 橋本研究室 LEGO MindstormsNXT によるビジュアルフィードバック実験システム開発資料 Copyright:中京大学工学部 橋本研究室 Step 5. NXT の起動とプログラムの実行 1. LEGO Mindstorms NXT の決定ボタン(図 17)を押し,NXT を起動させる.起動させると図 17 の 右図の起動画面が表示される. 図 17. NXT の各ボタンの名称と起動画面 2. 「My Files」を選択し,決定ボタンを押す.これにより,図 18 の画面が表示される. 図 18 3. 「Software files」を選択し,決定ボタンを押す.これにより,図 19 の画面が表示される. 図 19 11 / 19 LEGO MindstormsNXT によるビジュアルフィードバック実験システム開発資料 Copyright:中京大学工学部 橋本研究室 4. 実行したいプログラムを選択し,決定ボタンを押す. (図 19 では LEGO1)これにより,図 20 の画 面が表示されるので,続けてもう一度決定ボタンを押すことで,NXT のプログラムが起動する. 図 20 Step 6. NXT と PC プログラムの終了 NXT の戻るボタン(図 17)を押すことでプログラムが停止する. ※長押しすると,電源が切れるので注意すること. PC のプログラムの終了条件が設定されていない場合は,Ctrl キーと“C”を同時に押すことでプログラム を停止させる. 12 / 19 LEGO MindstormsNXT によるビジュアルフィードバック実験システム開発資料 Copyright:中京大学工学部 橋本研究室 (3)NXT と PC のプログラムの作成 PC と NXT で通信を実現するためのプログラムについて説明する.各プログラムの作成方法を以下に示 す. NXT のプログラム作成 NXT で動作するプログラムは,BricxCC というソフトウェアを使い nxc という言語を用いて作成する. (1)でインストールした BricxCC を起動する. BricxCC を起動する際に NXT と接続するため,あらかじめ Bluetooth で PC と NXT を接続しておく か,USB で NXT と PC を直接つないでおく必要がある. ※Bluetooth での PC と NXT の接続方法は(4)を参照. BricxCC を起動させると図 21 の画面が表示される.Port(図 21 の左上)で接続したい NXT を選択 し,Brik Type(図 21 の右上)を NXT に変更した上で OK ボタンを押す.これにより BricxCC が起 動する(図 22) . ※USB 接続の場合は,Port は usb を選択する. 図 21 図 22 File の New を選択すると新しいソースファイルが開くので,ここでプログラムを開発する.開発言 語は,基本的に C 言語に似ている. BricxCC での開発言語については,以下のサイトを参照. http://bricxcc.sourceforge.net/nbc/nxcdoc/nxcapi/index.html 13 / 19 LEGO MindstormsNXT によるビジュアルフィードバック実験システム開発資料 Copyright:中京大学工学部 橋本研究室 プログラムを作成後,NXT にプログラムを転送する.主要な操作をおこなうボタンを図 23 に示す. コンパイル 転送 実行 停止 図 23 図 24 に NXT のサンプルコードを示す. サンプルコードでは,NXT のポート A,B につながれたモータを Bluetooth 経由で得られた制御信号 の速度で回転させる.GetBTInputBuffer( )を使うことで,PC から Bluetooth 経由で送られた制御信 号を取得できる.関数の詳細は,下記のサイトを参照. http://bricxcc.sourceforge.net/nbc/nxcdoc/nxcapi/index.html NXT のポートB のモータを speed_left の速度で回す関数 Bluetooth 経由でデータを 取得する関数 NXTの画面に x を 表示する関数 並列タスクを 処理する関数 図 24 14 / 19 LEGO MindstormsNXT によるビジュアルフィードバック実験システム開発資料 Copyright:中京大学工学部 橋本研究室 PC のプログラム作成 PC で動作するプログラムは,VS を使用して作成する. VS を起動し,図 25 の赤枠で示した「新しいプロジェクト」を選択する. 図 25 「新しいプロジェクト」を選択すると,図 26 の画面が表示される.図 26 の赤枠で示した「Win32 コンソールアプリケーションを」選択し,新規プロジェクトの名前を入力した後,「OK」を押す. 図 26 15 / 19 LEGO MindstormsNXT によるビジュアルフィードバック実験システム開発資料 Copyright:中京大学工学部 図 27 のウィンドウが立ち上がるので, 「次へ」を選択する. 図 27 図 28 の赤枠で示した「空のプロジェクト」にチェックし,右下の「完了」ボタンを押す. 図 28 以上の処理により,プロジェクトの作成が完了する. 16 / 19 橋本研究室 LEGO MindstormsNXT によるビジュアルフィードバック実験システム開発資料 Copyright:中京大学工学部 橋本研究室 次に新しいソースファイルを作成する. プロジェクトを作成すると図 29 のようにソリューション エクスプローラが立ち上げるので, 「ソース ファイル」を右クリックし, 「追加」→「新しい項目」を選択する. 図 29 図 30 の「C++ファイル(.cpp) 」を選択し,ファイル名を入力して「追加」を押す. 図 30 これらの処理により,新しいソースファイルの作成が完了. 17 / 19 LEGO MindstormsNXT によるビジュアルフィードバック実験システム開発資料 Copyright:中京大学工学部 橋本研究室 このソースファイルにプログラムを書いていく. 図 31 に NXT との通信をおこなうためのサンプルコードを示す. 20 行目の CreateFileA( )で Bluetooth と接続しているポートを開き,42 行目の WriteFile( )でデータ を送信する.サンプルコードでは,100 という値を送信している.buffer という配列が 150 個の要素 を持っているのは,150 個ぐらいの要素を持つデータを一度に送ると NXT でデータを受け取る際の ミスが少なかったためである. 図 31 18 / 19 LEGO MindstormsNXT によるビジュアルフィードバック実験システム開発資料 Copyright:中京大学工学部 橋本研究室 (4)NXT と PC の接続 NXT と PC の接続の手順 ①PC と NXT を起動させる. ②NXT の左右の矢印ボタンを使い, 「Bluetooth」→「On/Off」→「On」の順番で決定ボタンを押 すことで NXT の Bluetooth 通信機能をオンにする. ③BD を PC に接続するとデスクトップの右下に Bluetooth のアイコン(図 9)が表示されるので右 クリックし, 「Bluetooth デバイスの追加」を選ぶ. ※Bluetooth が接続されるまでに時間がかかることがある. ④PC 側に NXT が表示されるのでそれをダブルクリックする.(図 11) ※通信したい NXT が表示されない場合の対処方法 NXT と PC との距離が遠い → NXT と PC を近づける. すでに接続している → 「Bluetooth デバイスの表示」で確認し,接続を切り, ① からやり直す. ⑤NXT の画面に図 32 の表示が出るので,そのまま決定ボタンを押す. 図 32 ⑥PC の画面に図 33 の表示が出るので,1234 とキーボードで入力し, 「次へ」を押す. 図 33 これらの処理によって,接続が完了. 19 / 19
© Copyright 2025 ExpyDoc