コンポーネントの実行

コンポーネントの実行

この説では、前の章でクロスコンパイルしたコンポーネント SeqOutComp をUSBメモリにコピーしArmadillo上で実行します。 なお、rtchokuyoaistについても作業内容は同じです。

USBメモリへのコピー

ATDE2上でコンパイルしたコンポーネントをArmadillo上で実行するには、ファイルセットをUSBメモリにコピーする必要があります。 USBメモリをATDE2を実行しているWindows側で認識させファイルをコピーする方法、ATDE2側で直接USBメモリをマウントしてコピーする方法があります。

Windows経由でコピーする

VM上のATDE2 for OpenRTM-aistは、samba経由でATDE2上のファイルにアクセスできるようになっていますので、

  • USBメモリをPCに刺す
  • エクスプローラからATDEにアクセスする
    • '\\192.168.xxx.yyy <ATDEのIPアドレス>\atmark\sdmemory' にアクセス
  • sdmemory 内のすべてのファイルをUSBメモリにDnDでコピー
  • USBメモリの接続を解除して取り外す

といった手順でファイルセットをUSBメモリにコピーできます。

usbmemory_copy.png
USBメモリカードへSeqOutCompの実行に必要なファイルをコピーする

ただし、USBメモリを抜き取るのは、次の節で述べる手順に従って rtc.confを書き換えてからにしてください。

Linux経由でコピーする

Linux経由でコピーする方法は、手順が煩雑なので推奨しません。

まず、VMwareの「仮想マシン」->「仮想マシンの設定」からの設定で、USBコントローラが有効になっていることを確認します。

次にVMを起動し、USBメモリを挿入します。VMware Playerでは画面の右下に、接続されているデバイスの一覧が表示されます。このうちどれか一つがUSBメモリのデバイスに対応します。マウスカーソルをアイコン上に置くとバルーン表示されますので確認してください。

vmware_usbmemory01.png
USBメモリデバイスの確認

USBメモリのデバイスが見つかったら、アイコンを右クリックし接続します。

vmware_usbmemory02.png
USBメモリデバイスの接続

ATDEでは通常USBメモリは自動的にマウントされます。 ここで、コマンドラインから mount コマンドを入力してUSBメモリのマウントポイントを調べます。

 atmark@atde3:~$ mount | grep media
 /dev/sdb1 on /media/SD type vfat (rw,nosuid,nodev,uhelper=hal,shortname=lower,uid=1000)
 atmark@atde3:~$

リムーバブルディスクはデフォルトでは /media の下にマウントされます。 ここでは SDメモリは /media/SD にマウントされたことがわかります。

先ほど作成した seqout ディレクトリの内容を、USBメモリにコピーします。

 atmark@atde3:~$ cp -r seqout/* /media/SD/

USBメモリをアンマウントします。

 atmark@atde3:~$ umount /media/SD
 
これで、PCからUSBメモリを抜き取ることができます。 ただし、USBメモリを抜き取るのは、次の節で述べる手順に従って rtc.confを書き換えてからにしてください。

USBメモリファイルセット側のrtc.confの書き換え

Armadillo上で起動するRTコンポーネントが自分の参照を登録するネームサーバのアドレスをrtc.confに設定します。

ネームサーバは現在作業中のPC(VMではなくWindowsホスト)で起動することにしますので、PCのIPアドレスを調べます。コマンドプロンプトから

 > ipconfig

と入力し、PCのIPアドレスを覚えておきます。 ネットワーク・インターフェースが複数ある場合は注意が必要です。 VMwareがインストールされている場合、ほぼ100%複数のネットワーク・インターフェースが存在します。 実際にネットワークにつながっているインターフェースを見つけて、そのアドレスを覚えておいてください。 仮にPCのネットワークインターフェースのアドレスが 192.168.11.16 であったとして、USBメモリ上のrtc.confを以下のように書き換えます。

 corba.nameservers: 192.168.11.16

これで設定は完了です。USBメモリを取り外してArmadilloに挿入します。

Armadillo上での動作テスト

ここでは、Armadillo上で動作するSeqOutCompと、PC上で動作するSeqInCompを接続してみます。

Windowsホスト側のrtc.confの書き換え

Windows側のホストには仮想のものも含めて複数のネットワークインターフェースがあります。RTコンポーネントが使用するIPアドレスを固定するために、ホスト側のrtc.confも設定ををこないます。

上述の例ではIPアドレスは192.168.11.16でしたので、rtc.confに次の1行を追加します。

 corba.endpoints: 192.168.11.16

Vista以降のWindowsではUACにより C:\Program Files\OpenRTM-aist 以下の rtc.conf を書き換えることはできませんので、その場合 C:\tmpなど適当なフィルダに SeqInComp.exe とrtc.confをコピーして上の1行を追加してください。

ネームサービス・RTSystemEditorおよびSeqInCompの起動

次に、以下のようにネームサーバやコンポーネントを起動します。

  • ネームサービス: rtm-naming
    • 「スタート」->「OpenRTM-aist」->「C++」->「tools」->「Start Naming Service」
  • RTSystemEditor
    • 「スタート」->「OpenRTM-aist」->「C++」->「tools」->「RTsystemEditor」
  • SeqInComp
    • 「スタート」->「OpenRTM-aist」->「C++」->「components」->「examples」->「SeqInComp.exe」

RTSystemEditorでネームサーバに接続します。

Armadilloの起動

ArmadilloをシリアルケーブルでPCと接続し、PC側でターミナルソフト(TeraTerm等)を起動して、Armadilloをモニタリングしてください。 SDメモリをArmadilloに挿し、Armadilloに電源を入れ起動します。

armadillo_boot01.png
起動中のArmadillo

うまく行けば、PC上のネームサーバにSequenceOutCompという名前のコンポーネントが起動していることを確認できます。

armadillo_boot02.png
起動したArmadillo

Armadillo 側で起動した SequenceOutCompoと、PC側で起動した SequenceInComp というコンポーネントを接続してみます。

rtse_seqinout.png
SeqInCompとSeqOutCompの接続

接続完了後、2つのコンポーネントをActivateすると、PC側で起動した SequenceInComp のコマンドプロンプトに連続した様々な数字が表示され、Armadillo の SeqOutCompから数値が送られていることが確認できます。

ダウンロード

最新バージョン : 2.0.1-RELESE

統計

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

Choreonoid

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

OpenHRP3

動力学シミュレータ

OpenRTP

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

産総研RTC集

産総研が提供するRTC集

TORK

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

DAQ-Middleware

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