トラブルシューティング

トラブルシューティング

RTsystemEditorのネームサービスビューにArmadilloのコンポーネント(SeqOut)が表示されない

[原因] Armadilloの電源が入っていない

Armadilloの電源を入れてください。

[原因] Armadilloが起動していない

工場出荷状態のArmadilloは起動可能なカーネルおよびユーザランドが書き込まれてい無いことがあります。 アットマークテクノで配布しているデフォルトのカーネルとユーザランドを書き込んで機能可能な状態にしてからご利用ください。

[原因] ArmadilloにLANケーブルが接続されていない

有効なネットワークにLANケーブルを接続してください。

[原因] Armadilloがネットワークにつながっていない

ArmadilloはデフォルトではDHCPでアドレスを取得してネットワークに接続します。 利用しているLAN上にDHCPがない場合、DHCPサーバを立てるか、Armadilloに固定アドレスを振る設定を行ってくださ。

[原因] SDメモリカードがカードスロットに挿入されていない

SDメモリカードはArmadilloの起動前にカードスロットに差し込む必要があります。Armadillo動作中、RTC起動中に抜き差ししないでください。

[原因] SDメモリカード内に、ライブラリ、コンポーネント起動スクリプト、rtc.confが入っていない

必要なファイルが一つでも欠けている場合コンポーネントは起動しません。 Armadilloにログインし、/mnt ディレクトリを確認してみます。

 atmark-dist v1.30.0 (AtmarkTechno/Armadillo-440)
 Linux 2.6.26-at16 [armv5tejl arch]
 
 armadillo440-0 login: root
 Password: root
 [root@armadillo440-0 (ttymxc1) ~]# ls -R /mnt
 /mnt:
 boot.sh*     rtc/         rtc1577.log* rtc1709.log* rtc1747.log*
 lib/         rtc.conf*    rtc1688.log* rtc1728.log*
 
 /mnt/lib:
 libRTC-1.1.0.so*      libgcc_s.so.1*        libomnithread.so.3*
 libc.so.6*            libm.so.6*            libpthread.so.0*
 libcoil-1.1.0.so*     libomniDynamic4.so.1* libstdc++.so.6*
 libdl.so.2*           libomniORB4.so.1*     libuuid.so.1*
 
 /mnt/rtc:
 SeqOutComp*

上記の例SeqOutCompを動作させるには、このような構成になっている必要があります。

[原因] SDメモリカードが正しくマウントされていない

Armadilloにログインして、マウントポイントを確認します。

 
 [root@armadillo440-0 (ttymxc1) ~]# mount
 /dev/ram0 on / type ext2 (rw)
 proc on /proc type proc (rw)
 usbfs on /proc/bus/usb type usbfs (rw)
 sysfs on /sys type sysfs (rw)
 udev on /dev type tmpfs (rw)
 ramfs on /home/ftp/pub type ramfs (rw)
 /dev/mmcblk0p1 on /mnt type vfat (rw,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1)

最後の行、/dev/mmcblk0p1 が /mnt ディレクトリにマウントされています。 もし、/dev/mmcblk0p1 がマウントされていない場合、

 # mount -t vfat /dev/mmcblk0p1 /mnt

のようにして手動でマウントしてみます。

[原因] 起動スクリプトにバグがある

起動スクリプトにバグがあり、RTコンポーネントが起動できないケースがあります。 起動スクリプト boot.sh に書いてある手順通りに、シリアル端末からRTCを実行してみる。

ネームサービスビューにゾンビとして表示される

[原因] オブジェクト参照に不正なアドレスが設定されている

Armadilloに複数のネットワークインターフェースがあり、PC側から届かない方のアドレス (Unreachable) がセットされている場合、システムエディタがRTCのプロファイル情報を取得できずにゾンビ表示になります。

Armadillo上で実行するRTC用のrtc.confにendpointを設定してください。

 corba.endpoints: 192.168.0.10:
 # 192.168.0.10: はArmadilloのネットワークインターフェースのアドレス

[原因] PCとArmadilloの間にファイヤウォールがあるもしくはArmadilloがプライベートアドレス空間にある

PCとArmadilloの間にファイヤウォールがある場合、またはArmadilloがNATを介してネームサービスに名前を登録している場合、PC側からはArmadilloに到達することができずにゾンビン表示となります。

ArmadilloをPCと同じセグメント(ネットワーク)に接続して起動してください。

ポートの接続ができない(エラー、RTSystemEditorが固まるなど)

[原因] PCのRTCからArmadilloのRTC(またはその逆)が Unreachable

ポートの接続をする際にはコンポーネント同士でポートのオブジェクト参照を交換します。 その際、相手のポートのIPアドレスおよびポートを利用して相手のポートの接続しに行くため、両RTC間が相互に到達可能なIPアドレスである必要があります。

特にPC側はVMwareなどがインストールされており、ネットワークインターフェースをたくさん持つ状態になっています。 たとえば、PC側のRTCが持つVMネットワークのプライベートアドレス 192.168.5.10 を、RTC上のRTCのオブジェクト参照内に埋め込むと、Armadillo側のRTCは 192.168.5.10 にポートの接続をしに行こうとします。この192.168.5.10というアドレスは、VMwareの仮想プライベートネットワーク内でのみ有効なアドレスなので、Armadillo側のRTCは到達し得ないポートに接続しに行こうとし、タイムアウトになるまで試行します。 この時、RTSystemEditorはRTCから応答が返ってこないため固まります。

この場合、PC側のRTCが読み込むrtc.confにendopiintを設定する必要があります。 ipconfig 等のコマンドでPCの実際のLAN上でのアドレスを調べ (仮に150.29.123.123とします)、

 corba.endpoints: 150.29.123.123:

のようにcorba.endpointsオプションに指定します。最後のコロン「:」は必ず付けてください。

RTSystemEditorで接続、またはActivateするとRTCが落ちる

[原因] ライブラリの不整合

実行しているRTCと、そのRTCが利用しているライブラリ (Linuxでは.so、WindowsではDLL) のバージョンに不整合がある場合、何らかの操作をすると落ちるケースがあります。 RTCとそのRTCが参照しているライブラリのバージョンを確認してください。

[原因] RTCのバグ

自作のRTCの場合、RTCに実装したロジックにバグがあればRTCは落ちます。 OpenRTM-aistに付属のサンプルRTCは簡単なロジックのものしかありませんので、この原因の可能性は低いでしょう。

[原因] OpenRTM-aistのバグ

OpennRTM-aistのバグの可能性がある場合は、

  • OpenRTM-aist のバージョン
  • 使用している環境の詳細
  • 使用しているRTCの詳細

を添えてメーリングリストにて報告してください。

その他

その他、どうしてもうまくいかない場合は、メーリングリスト ( OpenRTM-users ) で気軽に質問してください。

ダウンロード

最新バージョン : 2.0.1-RELESE

統計

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

Choreonoid

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

OpenHRP3

動力学シミュレータ

OpenRTP

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

産総研RTC集

産総研が提供するRTC集

TORK

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

DAQ-Middleware

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