LinuxにOpenRTM-aistをインストール

プチ格闘したので残しておきます。

目標

手軽にやりたいのでVMWare PlayerにUbuntu 8.04をホストで入れてみます。Ubuntu 7.10だとよくないらしいので。

まずはマニュアル通りに

$ su
# sh pkg_install_debian.sh

同じようなメッセージが何度も出ますが指示どおりYを押しまくります。
できたのみたいなのでサンプルRTCを叩いてみます。
私の場合は/usr/share/OpenRTM-aist/example/ にありました。まずはネームサーバーから起動します。

ネームサーバー再起動

/usr/bin/rtm-naming が失敗します。OpenRTM-aist公式サイトでは「すでに起動している(ので問題ない)」という言い方をしていますが、噂によるとよくないらしいので解決策を記します。あくまで噂です。
すでに立ち上がっている問題のプロセスを探します。

$ su
# ps alx | grep omni

omniNamesを名乗っているプロセスのプロセスIDをKILLする

$ kill xxxx

再度プロセスを確認して、いなければOKなのかな

$ rtm-naming 2809

んー。よさそう

ConnectorCompが起動しない

$ cd /usr/share/OpenRTM-aist/example/
$ ./ConsoleInComp

$ ./ConsoleOutComp

$ ./ConnectorComp
Subscription Type:
terminate called after throwing an instance of 'std::bad_alloc'
what() : std::bad_alloc
Aborted

残念です。
先輩に聞いたところ、ConnectorCompがバグっているとのこと。誰か直し方を知っている人は教えてください。治そうと思う人いないと思いますが。

Eclipseいれる

本当はConnectorComp直してもあまり意味はないかもしれません。RTCLinkから繋げばいいから。でもEclipseを起動するにはJavaいれたり、チコチコいじったりしなきゃだから面倒くさいんですよね
JDKをダウンロードしてもいいのですが、インストールしたり、パス設定したりが面倒そうなのでSynapticパッケージマネージャーを使ってjava関連を片っ端からインストールします
java-common さえあれば動くものなのかな?
Eclipseも自分でいろいろ設定するのが面倒なので「全部入り」をDLします。ありがたいですね。公式サイト曰く、Eclipseはコンソールから立ち上げろとのことなので指示どおり入力。

$ cd /eclipse/
$ ./eclipse

無事Eclipseが立ち上がりました。
RTCLinkをつかうためにはEMFとGEFをインストールする必要があります→Windowsと同じ手順で完了。
そしてOpen PerspectiveからRTCLinkを起動!あれ、NameServiceViewにエラーが出ました。

ビューcom.sun.corba.se.spi.orb.ORBを作成できません

ORBライブラリに問題があるのか、JREのインストールがいい加減だったせいか。。。
Synapticパッケージマネージャーでいろいろ入れて試したら、Openjdk-6-jre というのを入れたら動くようになりました。javaのバージョンは以下のようになっていました

$ java -version
OpenJDK Runtime Environment (build 1.6.0_0-b11)
OpenJDK Client VM (build 1.6.0_0-b11, mixed mode, sharing)

というわけでConsoleInCompとConsoleOutCompをつないでActivateして、動きしましたー。
長かった。。。