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」ファイル追加

拡張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

最新バージョン

初めての方へ

Windows msi(インストーラ) パッケージ (サンプルの実行ができます。)

C++,Python,Java,
Toolsを含む
1.1.2-RELEASE

RTコンポーネントを開発するためには開発環境のインストールが必要です。詳細はダウンロードページ

統計

Webサイト統計
ユーザ数:1632
プロジェクト統計
RTコンポーネント286
RTミドルウエア21
ツール20
文書・仕様書1

Join our slack

Enter email address for slack invite.

旧Webサイト

OpenRTM.org旧Webサイト

OpenHRP3

動力学シミュレータ

Choreonoid

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

OpenHRI

対話制御コンポーネント群

OpenRTP

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

産総研RTC集

産総研が提供するRTC集

TORK

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

DAQ-Middleware

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

VirCA

遠隔空間同士を接続し、実験を行うことが可能な仮想空間プラットホーム