コンポーネントの実行

コンポーネントの実行

openrtm_sdbmem.sh によるRTC実行ファイルセットの作成

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

SDメモリへのコピー

Windows経由でコピーする

VM上のATDEには上述の方法でsamba経由でアクセスできるようになっていますので、
  • SDメモリをPCに刺す
  • エクスプローラからATDEにアクセスする
    • '\\192.168.xxx.yyy <ATDEのIPアドレス>\atmark\sdmemory' にアクセス
  • sdmemory 内のすべてのファイルをSDメモリにDnDでコピー
  • SDメモリの接続を解除してSDメモリを取り外す
    SDmemory_copy.png
    SDメモリカードへSeqOutCompの実行に必要なファイルをコピーする

Linux経由でコピーする

Linux経由でコピーする方法は、手順が煩雑なので非推奨です。 また、SDメモリカードアダプタの接続方法により異なるため、以下の手順で実行できるとは限りません。

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

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

vmware_sdmemory01.png
SDメモリカードデバイスの確認

SDカードのデバイスが見つかったら、アイコンを右クリックし接続します。

vmware_sdmemory02.png
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
 
これで、PCからSDメモリを抜き取ることができます。

Armadillo上での動作テスト

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

PC上での準備

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行を追加してください。

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

  • ネームサービス: 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

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