Armadillo上でOpenRTM-aistのサンプルコンポーネント SeqOutComp を実行してみます。 SeqOutCompは/usr/arm-linux-gnueabi/share/openrtm-1.1/examples の下にインストールされていますので、以下のように実行します。
atmark@atde3:~$ openrtm_sdbmem.sh -d ~/sdmemory -r /usr/arm-linux-gnueabi/share/openrtm-1.1/example/SeqOutComp Now Armadillo's USB memory image is created. Target directory: /home/atmark/sdmemory Target RTCs: /usr/arm-linux-gnueabi/share/openrtm-1.1/example/SeqOutComp Library search path: /usr/arm-linux-gnueabi Searching lib under /usr/arm-linux-gnueabi copying /usr/arm-linux-gnueabi/lib/libRTC-1.1.0.so -> /home/atmark/sdmemory/lib Searching lib under /usr/arm-linux-gnueabi copying /usr/arm-linux-gnueabi/lib/libcoil-1.1.0.so -> /home/atmark/sdmemory/lib copying /usr/arm-linux-gnueabi/lib/libuuid.so.1 -> /home/atmark/sdmemory/lib copying /usr/arm-linux-gnueabi/lib/libdl.so.2 -> /home/atmark/sdmemory/lib copying /usr/arm-linux-gnueabi/lib/libpthread.so.0 -> /home/atmark/sdmemory/lib copying /usr/arm-linux-gnueabi/lib/libomniORB4.so.1 -> /home/atmark/sdmemory/lib copying /usr/arm-linux-gnueabi/lib/libomnithread.so.3 -> /home/atmark/sdmemory/lib copying /usr/arm-linux-gnueabi/lib/libomniDynamic4.so.1 -> /home/atmark/sdmemory/lib copying /usr/arm-linux-gnueabi/lib/libstdc++.so.6 -> /home/atmark/sdmemory/lib copying /usr/arm-linux-gnueabi/lib/libm.so.6 -> /home/atmark/sdmemory/lib copying /usr/arm-linux-gnueabi/lib/libc.so.6 -> /home/atmark/sdmemory/lib copying /usr/arm-linux-gnueabi/lib/libgcc_s.so.1 -> /home/atmark/sdmemory/lib /home/atmark/sdmemory/boot.sh created. /home/atmark/sdmemory/rtc.conf created. NOTE: Edit /home/atmark/sdmemory/rtc.conf for your environment.
sdmemoryディレクトリ以下には、ファイルが以下のように配置されました。
atmark@atde3:~$ ls -R sdmemory/ sdmemory/: boot.sh lib rtc rtc.conf sdmemory/lib: libRTC-1.1.0.so libdl.so.2 libomniDynamic4.so.1 libpthread.so.0 libc.so.6 libgcc_s.so.1 libomniORB4.so.1 libstdc++.so.6 libcoil-1.1.0.so libm.so.6 libomnithread.so.3 libuuid.so.1 sdmemory/rtc: SeqOutComp
Linux経由でコピーする方法は、手順が煩雑なので非推奨です。 また、SDメモリカードアダプタの接続方法により異なるため、以下の手順で実行できるとは限りません。
まず、VMwareの「仮想マシン」->「仮想マシンの設定」からの設定で、USBコントローラが有効になっていることを確認します。
次にVMを起動し、SDメモリを挿入します。VMware Playerでは画面の右下に、接続されているデバイスの一覧が表示されます。このうちどれか一つがSDカードのデバイスに対応します。マウスカーソルをアイコン上に置くとバルーン表示されますので確認してください。
SDカードのデバイスが見つかったら、アイコンを右クリックし接続します。
ATDEでは通常SDメモリやUSBメモリ等は自動的にマウントされます。 ここで、コマンドラインから mount コマンドを入力してSDメモリのマウントポイントを調べます。
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 にマウントされたことがわかります。
先ほど作成した sdmemory ディレクトリの内容を、SDメモリにコピーします。
atmark@atde3:~$ cp -r sdmemory/* /media/SD/
SDメモリをアンマウントします。
atmark@atde3:~$ umount /media/SD
ここでは、Armadillo上で動作するSeqOutCompと、PC上で動作するSeqInCompを接続してみます。
PCのIPアドレスを調べます。コマンドプロンプトから
> ipconfig
と入力し、PCのIPアドレスを覚えておきます。 ネットワーク・インターフェースが複数ある場合は注意が必要です。 VMwareがインストールされている場合、ほぼ100%複数のネットワーク・インターフェースが存在します。 実際にネットワークにつながっているインターフェースを見つけて、そのアドレスを覚えておいてください。
rtc.confに次の1行を追加します。
# corba.endpoints: 192.168.11.16 corba.endpoints: <ip address>
<ip address>には先程覚えたアドレスを記載します。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集
東京オープンソースロボティクス協会
ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク
コンポーネントの実行
openrtm_sdbmem.sh によるRTC実行ファイルセットの作成
Armadillo上でOpenRTM-aistのサンプルコンポーネント SeqOutComp を実行してみます。 SeqOutCompは/usr/arm-linux-gnueabi/share/openrtm-1.1/examples の下にインストールされていますので、以下のように実行します。
sdmemoryディレクトリ以下には、ファイルが以下のように配置されました。
SDメモリへのコピー
Windows経由でコピーする
VM上のATDEには上述の方法でsamba経由でアクセスできるようになっていますので、Linux経由でコピーする
Linux経由でコピーする方法は、手順が煩雑なので非推奨です。 また、SDメモリカードアダプタの接続方法により異なるため、以下の手順で実行できるとは限りません。
まず、VMwareの「仮想マシン」->「仮想マシンの設定」からの設定で、USBコントローラが有効になっていることを確認します。
次にVMを起動し、SDメモリを挿入します。VMware Playerでは画面の右下に、接続されているデバイスの一覧が表示されます。このうちどれか一つがSDカードのデバイスに対応します。マウスカーソルをアイコン上に置くとバルーン表示されますので確認してください。
SDカードのデバイスが見つかったら、アイコンを右クリックし接続します。
ATDEでは通常SDメモリやUSBメモリ等は自動的にマウントされます。 ここで、コマンドラインから mount コマンドを入力してSDメモリのマウントポイントを調べます。
リムーバブルディスクはデフォルトでは /media の下にマウントされます。 ここでは SDメモリは /media/SD にマウントされたことがわかります。
先ほど作成した sdmemory ディレクトリの内容を、SDメモリにコピーします。
SDメモリをアンマウントします。
Armadillo上での動作テスト
ここでは、Armadillo上で動作するSeqOutCompと、PC上で動作するSeqInCompを接続してみます。
PC上での準備
PCのIPアドレスを調べます。コマンドプロンプトから
と入力し、PCのIPアドレスを覚えておきます。 ネットワーク・インターフェースが複数ある場合は注意が必要です。 VMwareがインストールされている場合、ほぼ100%複数のネットワーク・インターフェースが存在します。 実際にネットワークにつながっているインターフェースを見つけて、そのアドレスを覚えておいてください。
rtc.confに次の1行を追加します。
<ip address>には先程覚えたアドレスを記載します。Vista以降のWindowsではUACにより C:\Program Files\OpenRTM-aist 以下の rtc.conf を書き換えることはできませんので、その場合 C:\tmpなど適当なフィルダに SeqInComp.exe とrtc.confをコピーして上の1行を追加してください。
次に、以下のようにネームサーバやコンポーネントを起動します。
RTSystemEditorでネームサーバに接続します。
Armadilloの起動
ArmadilloをシリアルケーブルでPCと接続し、PC側でターミナルソフト(TeraTerm等)を起動して、Armadilloをモニタリングしてください。 SDメモリをArmadilloに挿し、Armadilloに電源を入れ起動します。
うまく行けば、PC上のネームサーバにSequenceOutCompという名前のコンポーネントが起動していることを確認できます。
Armadillo 側で起動した SequenceOutCompoと、PC側で起動した SequenceInComp というコンポーネントを接続してみます。
接続完了後、2つのコンポーネントをActivateすると、PC側で起動した SequenceInComp のコマンドプロンプトに連続した様々な数字が表示され、Armadillo の SeqOutCompから数値が送られていることが確認できます。