この説では、前の章でクロスコンパイルしたコンポーネント SeqOutComp をUSBメモリにコピーしArmadillo上で実行します。 なお、rtchokuyoaistについても作業内容は同じです。
ATDE2上でコンパイルしたコンポーネントをArmadillo上で実行するには、ファイルセットをUSBメモリにコピーする必要があります。 USBメモリをATDE2を実行しているWindows側で認識させファイルをコピーする方法、ATDE2側で直接USBメモリをマウントしてコピーする方法があります。
VM上のATDE2 for OpenRTM-aistは、samba経由でATDE2上のファイルにアクセスできるようになっていますので、
といった手順でファイルセットをUSBメモリにコピーできます。
ただし、USBメモリを抜き取るのは、次の節で述べる手順に従って rtc.confを書き換えてからにしてください。
Linux経由でコピーする方法は、手順が煩雑なので推奨しません。
まず、VMwareの「仮想マシン」->「仮想マシンの設定」からの設定で、USBコントローラが有効になっていることを確認します。
次にVMを起動し、USBメモリを挿入します。VMware Playerでは画面の右下に、接続されているデバイスの一覧が表示されます。このうちどれか一つがUSBメモリのデバイスに対応します。マウスカーソルをアイコン上に置くとバルーン表示されますので確認してください。
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
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上で動作するSeqOutCompと、PC上で動作するSeqInCompを接続してみます。
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でネームサーバに接続します。
ArmadilloをシリアルケーブルでPCと接続し、PC側でターミナルソフト(TeraTerm等)を起動して、Armadilloをモニタリングしてください。 SDメモリをArmadilloに挿し、Armadilloに電源を入れ起動します。
うまく行けば、PC上のネームサーバにSequenceOutCompという名前のコンポーネントが起動していることを確認できます。
Armadillo 側で起動した SequenceOutCompoと、PC側で起動した SequenceInComp というコンポーネントを接続してみます。
接続完了後、2つのコンポーネントをActivateすると、PC側で起動した SequenceInComp のコマンドプロンプトに連続した様々な数字が表示され、Armadillo の SeqOutCompから数値が送られていることが確認できます。
モーションエディタ/シミュレータ
動力学シミュレータ
統合開発プラットフォーム
産総研が提供するRTC集
東京オープンソースロボティクス協会
ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク
コンポーネントの実行
この説では、前の章でクロスコンパイルしたコンポーネント SeqOutComp をUSBメモリにコピーしArmadillo上で実行します。 なお、rtchokuyoaistについても作業内容は同じです。
USBメモリへのコピー
ATDE2上でコンパイルしたコンポーネントをArmadillo上で実行するには、ファイルセットをUSBメモリにコピーする必要があります。 USBメモリをATDE2を実行しているWindows側で認識させファイルをコピーする方法、ATDE2側で直接USBメモリをマウントしてコピーする方法があります。
Windows経由でコピーする
VM上のATDE2 for OpenRTM-aistは、samba経由でATDE2上のファイルにアクセスできるようになっていますので、
といった手順でファイルセットをUSBメモリにコピーできます。
ただし、USBメモリを抜き取るのは、次の節で述べる手順に従って rtc.confを書き換えてからにしてください。
Linux経由でコピーする
Linux経由でコピーする方法は、手順が煩雑なので推奨しません。
まず、VMwareの「仮想マシン」->「仮想マシンの設定」からの設定で、USBコントローラが有効になっていることを確認します。
次にVMを起動し、USBメモリを挿入します。VMware Playerでは画面の右下に、接続されているデバイスの一覧が表示されます。このうちどれか一つがUSBメモリのデバイスに対応します。マウスカーソルをアイコン上に置くとバルーン表示されますので確認してください。
USBメモリのデバイスが見つかったら、アイコンを右クリックし接続します。
ATDEでは通常USBメモリは自動的にマウントされます。 ここで、コマンドラインから mount コマンドを入力してUSBメモリのマウントポイントを調べます。
リムーバブルディスクはデフォルトでは /media の下にマウントされます。 ここでは SDメモリは /media/SD にマウントされたことがわかります。
先ほど作成した seqout ディレクトリの内容を、USBメモリにコピーします。
USBメモリをアンマウントします。
USBメモリファイルセット側のrtc.confの書き換え
Armadillo上で起動するRTコンポーネントが自分の参照を登録するネームサーバのアドレスをrtc.confに設定します。
ネームサーバは現在作業中のPC(VMではなくWindowsホスト)で起動することにしますので、PCのIPアドレスを調べます。コマンドプロンプトから
と入力し、PCのIPアドレスを覚えておきます。 ネットワーク・インターフェースが複数ある場合は注意が必要です。 VMwareがインストールされている場合、ほぼ100%複数のネットワーク・インターフェースが存在します。 実際にネットワークにつながっているインターフェースを見つけて、そのアドレスを覚えておいてください。 仮にPCのネットワークインターフェースのアドレスが 192.168.11.16 であったとして、USBメモリ上のrtc.confを以下のように書き換えます。
これで設定は完了です。USBメモリを取り外してArmadilloに挿入します。
Armadillo上での動作テスト
ここでは、Armadillo上で動作するSeqOutCompと、PC上で動作するSeqInCompを接続してみます。
Windowsホスト側のrtc.confの書き換え
Windows側のホストには仮想のものも含めて複数のネットワークインターフェースがあります。RTコンポーネントが使用するIPアドレスを固定するために、ホスト側のrtc.confも設定ををこないます。
上述の例ではIPアドレスは192.168.11.16でしたので、rtc.confに次の1行を追加します。
Vista以降のWindowsではUACにより C:\Program Files\OpenRTM-aist 以下の rtc.conf を書き換えることはできませんので、その場合 C:\tmpなど適当なフィルダに SeqInComp.exe とrtc.confをコピーして上の1行を追加してください。
ネームサービス・RTSystemEditorおよびSeqInCompの起動
次に、以下のようにネームサーバやコンポーネントを起動します。
RTSystemEditorでネームサーバに接続します。
Armadilloの起動
ArmadilloをシリアルケーブルでPCと接続し、PC側でターミナルソフト(TeraTerm等)を起動して、Armadilloをモニタリングしてください。 SDメモリをArmadilloに挿し、Armadilloに電源を入れ起動します。
うまく行けば、PC上のネームサーバにSequenceOutCompという名前のコンポーネントが起動していることを確認できます。
Armadillo 側で起動した SequenceOutCompoと、PC側で起動した SequenceInComp というコンポーネントを接続してみます。
接続完了後、2つのコンポーネントをActivateすると、PC側で起動した SequenceInComp のコマンドプロンプトに連続した様々な数字が表示され、Armadillo の SeqOutCompから数値が送られていることが確認できます。