RTコンポーネント作成(NXTway編)


はじめに

  • NXT MINDSTORM と OpenRTM の Bluetooth コンポーネントと接続し、NXT MINDSTORM をコントロールする方法を説明する。
  • NXT MINDSTORM に対するソフトウェアのインストール方法および基本的な操作、RTコンポーネントとの接続する方法を説明する。
    gaiyou.png

環境構築

LEGO の組み立て

nxtOSEK 環境設定(Windows XP/Vista)

kannkyousetumei.png

  • Cygwin のインストール
    • Cygwin は Windows 環境で各種の Linux ソフトウェアを実行できることである
    • Download : http://www.cygwin.com/
    • 設定オプション
      • Root Directory : 「c:\cygwin」
      • Select Packages : Devel カテゴリにある「make 3.81-1」と Libs カテゴリにある「libintl3」を選択してインストールする
  • GNU ARM のインストール(必ず4.0.2)
    • GNU ARM は NXT の ARM7コアプロセッサ(AT91SAM7S256)に対応した GCC コンパイラパッケージである
    • Download : http://www.gnuarm.com/bu-2.16.1_gcc-4.0.2-c-c++_nl-1.14.0_gi-6.4.exe
    • 設定オプション
      • Diriectory : 「c:\cygwin\GNUARM」
      • Select Components : 「Floating Point Unit」選択しない
      • Select Additional Tasks : 「Install Cygwin DLLs...」選択しない
  • NeXTTool のダウンロード
    • NeXTTool は NXTと通信用 PC コンソールで、*.rxe(アプリ) と *.rfw(ファームウェア)を NXT にアップできる
    • Download : http://bricxcc.sourceforge.net/nexttool.zip
    • 設定オプション
      • 解凍ディレクトリ : 「c:\cygwin\nexttool」
  • 拡張 NXT ファームウェアのダウンロード
    • 拡張 NXT ファームウェアは標準 NXT ファームウェアをベースに機能拡張したものである
    • NXT の ARM7 コアCPUのネイティブコードも実行できる
    • Download : http://bricxcc.sourceforge.net/lms_arm_jch.zip
    • 設定オプション
      • 「lms_arm_nbcnxc_107.rfw」だけをコピーする
      • コピーディレクトリー : 「c:\cygwin\nexttool」
  • 「sg.exe」ファイル追加
    • Download : http://www.toppers.jp/download.cgi/osek_os-1.1.lzh
    • 解凍して「toppers_osek」フォルダーの下に「sg」フォルダーの下にある「sg.exe」ファイルを「c:\cygwin\nxtOSEK\toppers_osek\sg」フォルダーにコピーする

拡張 NXT ファームウェアの NXT へのアップロード

  • NXT ファームウェアアップデートモード
    • 電流が ON の状態でリセットボタンを安全ピンの先で5秒ぐらい押し続ける
      resetButton.jpg
    • NXT スピーカーに小さなクリック音が聞こえるようになる
    • NXT と PC の USB 接続
  • Cygwin 起動及び拡張ファームウェアアップロード cygwin-icon.gifcygwinを起動する
    • 下記のコマンドを入力
       $cd c:\cygwin\nexttool
       $./NeXTTool.exe /COM=usb -firmware=lms_arm_nbcnxc_107.rfw
    • アップロードが完了すると、NXT の液晶画面が砂嵐画面のようになる
    • NXT のボタン操作できない場合は NXT のバッテリを外し再び装着することで拡張 NXT ファームウェアが起動

NXTway ソース修正及びコンパイル

NXT 側のソース修正及びコンパイル、アップロード

  • ソース修正
    • 「c:\cygwin\nxtOSEK\samples_c++\cpp\NXTway_GS++」フォルダーにある「sample.cpp」の中で
      samplecpp.png
    • 「btConnection.connect」で検索したら、下記の「Main Task」の中にある関数が検索できる
       //=============================================================================
       // Main Task
       TASK(TaskMain)
       {
           // establish blutooth connection with a PC to use a PC HID GamePad controller
           BTConnection btConnection(bt, lcd, nxt);
           (void)btConnection.connect(BT_PASS_KEY);
       
           for (U32 i = 5; i <= Lcd::MAX_CURSOR_Y; i++) lcd.clearRow(i);
           lcd.cursor(0,5);
           lcd.putf("snsns", "TOUCH:START/STOP", "STAND IT UP AND", "WAIT FOR A BEEP.");
           lcd.disp();
           SetRelAlarm(Alarm4msec, 1, 4); // Set 4msec periodical Alarm for the drive event
       
           while(1)
           {
               sonarDriver.checkObstacles(sonar);
               clock.wait(40); // 40msec wait
           }
       }
    • 「(void)btConnection.connect(BT_PASS_KEY);」を下記のように修正する
       (void)btConnection.connect(BT_PASS_KEY, "alias")
    • "alias"の部分に自分が確認できる名前を入力する
  • コンパイル cygwin-icon.gifcygwinを起動する
     $cd c:\cygwin\nxtOSEK\samples_c++\cpp\NXTway_GS++
    • cygwinの上で上のフォルダ「C:\cygwin\nxtOSEK\samples_c++\cpp\NXTway_GS++」で
       $make all
       ...
       Generating binary image file: nxtway_gs++_rom.bin
       Generating binary image file: nxtway_gs++_ram.bin
       Generating binary image file: nxtway_gs++_.rxe
       $
    • 上のようなメッセージを確認すればコンパイル完了
  • NXT にアップロード
    • 拡張 NXT ファームウェアが入っている NXT を USB で接続する
    • コンパイルした cygwin の状態で
       $sh ./rxeflash.sh
       Executing NeXTTool to upload nxtway_gs++.rxe...
       nxtway_gs++.rxe=34240
       NeXTTool is terminated.
       $
    • 上のようなメッセージを確認したらアップロード完了

動作確認

NXT側の起動

  • 下の図で⑦番の状態で待機する
    NXTStart.jpg
    ;

PC 側 RTC の起動

  • OpenRTM-aist の Naming Service をスタートする
    NamingServiceStart.png
  • TkJoyStickComp コンポーネントを起動する
    TkJoyStickCompStart.png
  • Bluetooth 接続
    • Bluetooth を PC に接続する
      BluetoothPlus.png
    • "alias"の部分で入れたネームの Bluetooth ディバイスを接続する
      BluetoothPlus2.png
    • Password は基本的に「1234」に設定されている
      BluetoothPass.png
    • 接続した Bluetooth の Comport を確認する
      BluetoothComport.png
  • Bluetooth コンポーネントを起動
    • BluetoothComp.zipをダウンロード
    • BluetoothComp.zipを解凍した後、「components」フォルダーにある「NXTBlueToothComp.exe」ファイルを実行する
      NXTBluetoothCompStart.png
  • RT System Editor を起動
    • 下の図のようにRT System Editor を起動する
      RTSystemEditorStart.png
  • Naming Service 追加
    • 下の図のように追加ボタンをクリックし、「127.0.0.1」を追加する
      NamingServicetuika.png
  • コンポーネント配置
    • 下の図のようにコンポーネントを配置する
      Componenthiichi.png
  • TkJoyStickComp と Bluetooth コンポーネントを接続する
    • 下の図のように TkJoyStickComp と BluetoothComp を接続する
      Componentsetuzoku.png
    • Bluetooth コンポーネントの Configuration View で「m_COM」変数に確認した Comport の番号を入れる
      Setupm_COM.jpg
  • Activate する
    Activate.png
    • 接続が完了したら NXT 側が下の図のようになる
      8.png

ダウンロード

最新バージョン : 2.0.1-RELESE

統計

Webサイト統計
ユーザ数:2160
プロジェクト統計
RTコンポーネント307
RTミドルウエア35
ツール22
文書・仕様書2

Choreonoid

モーションエディタ/シミュレータ

OpenHRP3

動力学シミュレータ

OpenRTP

統合開発プラットフォーム

産総研RTC集

産総研が提供するRTC集

TORK

東京オープンソースロボティクス協会

DAQ-Middleware

ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク