目次

プラットフォーム共通のトラブル

GrxUI on Eclispe をコンパイルする時型解決のエラーが発生

GrxUI on Eclispe をコンパイルする際jp.go.aist.hrp以下のパッケージが 見つからないために型解決のエラーが起こることがあります。
GrxUIonEclipse-project-0.9.8/openhrpstubskel.jarのファイルが 1KBのような極端に小さいファイルであれば、openhrpstubskelの生成に失敗したことが原因です。
openhrpstubskel.jarはopenrtmstubskel.jarに依存するのですが、特に並列コンパイルの時、 生成タイミングの影響でopenhrpstubskelの生成に失敗することがあります。
openhrpstubskelのjavacのメッセージ異常で早めに気づく方もおられると思いますが、それも同じ理由です。


対処法ですが、正常なopenhrpstubskel.jarを以下の方法で作成します。
その後Eclipse側のプロジェクトをF5で更新してください。

Linuxでの対処法

make時にjオプションを指定した場合特有のエラーですので、jオプションを使用しないでコンパイルしてください。

Windowsでの対処法

VCのプロジェクトで明示的に依存プロジェクトを指定するとこのエラーを回避できるようになります。

  1. メニューのプロジェクト→プロジェクト依存関係を選択して、プロジェクトの依存関係ダイアログを開いてください。
  2. 依存関係タブ・ウインドウにてプロジェクト・プルダウンボックスからJavaStubSkelを選択します。
  3. 依存先のOpenRTMStubSkelのチェックボックスをチェックします。
  4. OKボタンを押して適応します。
  5. プロジェクトをリビルドします。
依存関係が解決できない原因を調査中ですが、CMakeの誤用、使用法に問題があるか、CMake独自のバグなのか今のところ不明です。今後改善する予定です。

RTSystemEditorの「ゾンビをクリア」ボタンを押下するとGrxUIが正常に動作しなくなる

RTSystemEditorには 「ネームサーバにエントリされてはいるが、実体のオブジェクトにアクセスできないゾンビオブジェクト」をネームサーバーから一括して削除する機能 があります。
RTSystemEditorをOpenHRPと併用して使用する場合、図の黄色枠のようにOpenHRPのサーバがゾンビとして列挙されてしまいますが、 実際には動作中のプロセスですので図の赤枠のボタンは押下しないでください。
このボタンを押下したらネームサーバからOpenHRPのサーバ群の登録が削除されますのでGrxUIが正常に動作しなくなります。


図:ゾンビをクリア

ファイルの一時保存先を変更したい

OpenHRP3では、シミュレーションの実効中、ログを一時的にファイルに保存しています。
ファイルの場所は、Javaのシステムプロパティ"java.io.tmpdir"で指定されているディレクトリ+"grxui-(ユーザ名)"となります。
"java.io.tmpdir"で指定されているディレクトリが、ネットワーク上のドライブなど、アクセスが遅いドライブに割り当てられている場合には、 シミュレーションの動作が極端に遅くなる場合があります。このような場合には、以下のようにして、保存先ディレクトリを変更してください。

Eclipseの初期設定を参照して、eclipse.iniを開いてください。
最後の行に
-Djava.io.tmpdir=(変更先のディレクトリ)
を追加してください。

Linux特有のトラブル

Ubuntu9.04以降の環境でサンプルが動作しない(Linux 対象)

Ubuntu9.04以降の環境で初回導入時、サンプルが動作しないことがあります。 この時、端末から

$ openhrp-aist-dynamics-simulator -ORBInitRef NameService=corbaloc:iiop:localhost:2809/NameService
と実行して
IDL:omg.org/CORBA/TRANSIENT:1.0
と出力されれば、Ubuntu9.04以降でipv6がデフォルトで有効になったことが原因による不具合と思われます。

対処法は、/etc/hostsの
::1        localhost ip6-localhost ip6-loopback
ipv6のlocalhost設定の行をコメントアウトしてください。

Ubuntuでアップデートを行うとコンパイルエラー、またはGrxUIの起動時に例外が発生して起動できない(Linux 対象)

javaコードのコンパイルエラーやGrxUI実行時に

Null peer?!
とコンソール出力されてGrxUIの起動が止まるなどの現象が起こります。
Ubuntuのアップデートを行うとデフォルトでインストールされているgcjが最新版に更新されて、 インストール時に切り替えた標準Java環境がsunのJavaから gcjへ切り替わる現象が原因です。

この現象を解消するには、インストール時と同様にコマンド

$ sudo update-java-alternatives -s java-6-sun
または
$ sudo update-java-alternatives -s java-6-openjdk
を実行してシステムの標準Javaを切り替えてください。 gcjを使用しない場合はgcjをアンインストールしてしまうのも手です。

GrxUI起動時にOpenHRPのサーバ群が起動しない

インストールディレクトリを変更してインストールした場合、OpenHRPの実行ファイルから共有ライブラリが見つからないために正しくサーバ群が起動できないことがあります。
以下のコマンドで共有ライブラリへの依存関係が正しいことを確認してください。
下記の openhrp-model-loader の部分はOpenHRPの実行ファイルであれば他のファイルでも構いません。

$ ldd openhrp-model-loader
上記の結果、libhrp* のライブラリが not found になっている場合、
環境変数 LD_LIBRARY_PATH に (インストール先ディレクトリ)/lib を追加してください。



Windows特有のトラブル

omniNamesが正常に起動しない

GrxUIパースペクティブを開き、ネームサービスモニタ・タブ・ウィンドウの更新ボタンを押下してもサーバが列挙されない場合はこの不具合の可能性があります。

Python版のomniORBを導入した環境でPythonのルートディレクトリを環境変数のPATHに登録した時に起こる不具合

コマンドプロンプトにて
>omniNames -ORBendPointPublish giop:tcp:localhost: -start 2809
を実行した時
Fri Feb 05 09:40:17 2010:

Error: cannot open log file 'C:\temp\omninames-PC_NAME.log'.

usage: omniNames [-start [<port>]]
                 [-logdir <directory name>]
                 [-errlog <file name>]
                 [-ignoreport]
                 [<omniORB-options>...]

Use -start option to start omniNames for the first time.
With no <port> argument, the standard default of 2809 is used.

Use -logdir option to specify the directory where the log/data files are kept.

Use -errlog option to specify where standard error output is redirected.

Use -ignoreport option to ignore the port specification.

You can also set the environment variable OMNINAMES_LOGDIR to specify the
directory where the log/data files are kept.
のように表示された場合がこれにあたります。
対処法として環境変数PATHからPythonのルートディレクトリを除外してください。