OpenRTM-aist (Java版) 1.1系のインストール

ここでは OpenRTM-aist (JAVA) のUNIX へのインストール方法を説明します。 ※以降の説明は便宜上 OpenRTM-aist-1.1.0 について書かれています。

Windows へのインストール

openrtm.org では Windows 用の msi (Microsoft Windows インストーラー)パッケージを提供しています。 msi パッケージを利用することで、RTSystemEditor といったツールも同時にインストールすることができます。

msi パッケージによるインストール

openrtm.org のダウンロードサイトから、msi パッケージをダウンロードします。msi パッケージには、必要な RTSystemEditor といったツールは含まれていますが、JDK は予めインストールしておく必要があります。

1.1.2 版からは一つの Windows 用インストーラーに3言語(C++、Java、Python)+ツール(Eclipse+rtshell)すべてが同梱されています。古いバージョンは予めアンインストールすることをお勧めします。 また、ダウンロードサイトでの赤字表記の注意書きをご覧ください。

JDK のインストール

OpenRTM-aist-Java-1.1.2の動作には JDK8 を推奨しています。
ダウンロードしたファイルを実行するとインストールが開始されます。途中、使用許諾やインストール先などを聞かれますので、お使いの環境に合わせて設定してください。 下記のインストール説明画像は JDK7 のものです。


[次へ] ボタンをクリックします。

oracleJDK7_001.jpg
Javaのインストール(1)



[次へ] ボタンをクリックします。

oracleJDK7_002.jpg
Javaのインストール(2)



[次へ] ボタンをクリックします。

oracleJDK7_003.jpg
Javaのインストール(3)



[閉じる] ボタンをクリックします。

oracleJDK7_004.jpg
Javaのインストール(4)



JDK のインストール確認

コマンド プロンプト画面を表示( [スタート] > [プログラム] > [アクセサリ] > [コマンド プロンプト] )し、

 >java -version

と入力します。インストールした Java のバージョンが表示されればインストールは完了です。


java-version.png
インストールの確認(Windows)



OpenRTM-aist インストーラーの起動

手順については、OpenRTM-aistを10分で始めよう! のページをご覧ください。


インストールの詳細

インストーラーの作業内容

インストーラーは以下の作業を行います。

  • インストールディレクトリー (デフォルトは C:\Program Files) 以下に各種ファイルをコピー
  • スタートメニュー以下に OpenRTM-aist フォルダーを作成し各種ショートカットを設定
  • 環境変数の設定
    • 32bit 用 msi 利用時の設定
 RTM_BASE=C:\Program Files (x86)\OpenRTM-aist\
 RTM_ROOT=C:\Program Files (x86)\OpenRTM-aist\1.1.2\
 RTM_VC_VERSION=vc12
 RTM_JAVA_ROOT=C:\Program Files (x86)\OpenRTM-aist\1.1.2\
 OMNI_ROOT=C:\Program Files (x86)\OpenRTM-aist\1.1.2\omniORB\4.2.1_vc12\
 OpenCV_DIR=C:\Program Files (x86)\OpenRTM-aist\1.1.2\OpenCV2.4.11\
 OpenRTM_DIR=C:\Program Files (x86)\OpenRTM-aist\1.1.2\cmake\
  • PATH への追加設定
    • 32bit 用 msi 利用時の設定

 C:\Program Files (x86)\OpenRTM-aist\1.1.2\bin\vc12\ 
 C:\Program Files (x86)\OpenRTM-aist\1.1.2\omniORB\4.2.1_vc12\bin\x86_win32\ 
 C:\Program Files (x86)\OpenRTM-aist\1.1.2\OpenCV2.4.11\x86\vc12\bin\ 

インストール環境の設定を確認するスクリプトを提供しています。スクリプトの使い方、確認できる内容について下記ページで解説しています。

インストールされるファイル

ファイルは以下のような構造でインストールされます。
上記のインストール環境の設定を確認するスクリプトを実行すると、tree コマンドによる OpenRTM-aist ディレクトリー構造をログファイルに保存しますので、詳細を確認することができます。

 <install_dir>
   + OpenRTM-aist
      + 1.x.x  :旧バージョンのランタイム
      + <version>
         + bin: dll, lib, 各種コマンド
         + cmake: OpenRTMConfig.cmake
         + coil: coil ヘッダファイル
         + Components
            + CXX:
               + Examples: C++ サンプルコンポーネント
               + OpenCV: OpenCV のC++ サンプルコンポーネント
            + Java: Java サンプルコンポーネント
            + Python: Python サンプルコンポーネント
         + etc: rtc.confサンプル
         + ext: ComponentObserverConsumer
         + jar: OpenRTM-aist と必要な jar ファイル
         + jre: OpenJDK JRE
         + omniORB
         + OpenCV
         + rtm: OpenRTM-aist ヘッダファイル
            + idl: OpenRTM-aist IDLファイル
         + util
            + OpenRTP:
            + RTSystemEditor:
            + rtc-template: 

Linuxへのインストール

OpenRTM-aist-Javaのインストール

動作条件

OpenJDK7 または oracleJDK7

インストールの流れ(概要)

インストールは次の3つの要件が整うことで完了します。

Java のインストール

OpenRTM-aist-Java は、JDK7 上で動作します。oracle の対象プラットフォーム用 JDK については下記サイトなどを参考にしてください。

インストールの実行

各ディストリビューションについて JDK 7 のインストール方法を JDK インストールのためのヒント にまとめましたので参考にしてください。なお、Java のインストールはスーパーユーザーで実行してください。


※ Fedora でエラーになった場合は、以前の情報ですが下記が役立つかもしれません

 → ''FAQ:'' Java をインストールする際の FedoraCore での対応について

 → ''FAQ:'' Q. Fedora Core 上でRtcLink の NameService View にエラーがでる

インストールの確認

ターミナルを起動し、

 $ java -version
と入力します。インストールした Java のバージョンが表示されればインストールは完了です。

 java version "1.7.0_75"
 OpenJDK Runtime Environment (IcedTea 2.5.4) (7u75-2.5.4-1~trusty1)
 OpenJDK Client VM (build 24.75-b04, mixed mode, sharing)

zipファイルのダウンロードと解凍

こちら から「 jar ファイルおよびサンプル」をダウンロードし、zip ファイルを任意の場所に解凍します。 解凍先は任意でかまいませんが、ディレクトリー構造は変更しないでください。 また、この解凍先に含まれる「jar」フォルダーへのパスは次に取り上げるシステム環境変数 RTM_JAVA_ROOT に設定しなければなりません。

何らの事情で、解凍後のフォルダー構造を自由な配置・自由な選択としたい場合はこちら を参照してください。


参考:

 → ''FAQ:'' Q. 任意のフォルダーにクラスパスを設定して Ant ビルドを行う方法は?

環境変数の設定

環境変数の設定を行います。 ログインシェルが bash の場合は .bashrc を、csh の場合は .cshrc を…など適宜設定ファイルを選択し、次のような設定を記述しておきます。 または、個々のユーザーに対してではなくシステムワイドに設定を行いたい場合には、設定ファイルとして /etc/profile などを選択する方法もあります
  • 変数名:RTM_JAVA_ROOT
  • 変数値:解凍ディレクトリー以下に含まれる「jar」ディレクトリー※※までのベースパス(「jar」ディレクトリーの親ディレクトリーへのフルパス)

例えば、ログインシェルが bash の場合で、OpenRTM-aist-Javaを/usr/lib 以下に解凍した場合を考えたとき、.bashrc(あるいは /etc/profile )の末尾に次の一文を追加します。

 export RTM_JAVA_ROOT=/usr/lib/OpenRTM-aist/<version>
この設定ファイルの編集が完了した時点で、
 > source ~/.bashrc
とするか(.bashrc に環境変数を設定した場合)、あるいはシステムを再起動します。


環境変数 RTM_JAVA_ROOTを.bashrc(bash の場合)などのユーザー設定にしたのか、あるいは、/etc/profile(bashの場合)などにシステムワイドに設定したのかで、GUI ツールである Eclipse の起動方法が変わってきます。 → Eclipse の起動方法 を参照

※※ 解凍時には「jar」ディレクトリーはクラスライブラリ「OpenRTM-aist-X.X.X.jar」(X.X.Xはバージョン)と「commons-cli-1.1.jar」の二つのファイルを含んだ状態で、「OpenRTM-aist\<version>」の直下にあります。 したがって、ディレクトリー構造を変えなければ、環境変数 RTM_JAVA_ROOT は必ずその値の末尾に「OpenRTM-aist\<version>」を持つという形になります。
すなわち、制限ユーザーがインストールする場合には「システム環境変数」の設定が追加・変更できないので、上記設定を「ユーザー環境変数」に対して行うことになります。


実行するには、ターミナルを起動し、カレントを「examples」ディレクトリーに移してから、該当するシェルスクリプトを起動してください。

zip ファイルを解凍して展開される内容

 +--<install_dir>
     +--OpenRTM-aist
        +--<version>
           +--jar
           +--examples
           +--JavaDoc
           +--JavaDocEn

jar

OpenRTM-aist-Java と 必要な jar ファイルが含まれています。
  • jar/OpenRTM-aist-X.X.X.jar (X.X.X はバージョン)
  • jar/commons-cli-1.1.jar
  • jar/rtcd.jar
  • jar/rtcprof.jar

examples

サンプルの class ファイルとそれを起動するためのシェルスクリプトとソースコードが含まれています。
  • サンプルの class ファイル
     examples/RTMExamples/SeqIO/SeqIn.class
     examples/RTMExamples/SeqIO/view/SeqView.class
     examples/RTMExamples/SeqIO/view/RootPane.class
     examples/RTMExamples/SeqIO/view/SeqViewApp.class
     以下 省略
  • サンプルを起動するためシェルスクリプト
     examples/AutoTestIn.sh
     examples/AutoTestOut.sh
     examples/Composite.sh
     examples/ConfigSample.sh
     examples/Connector.sh
     examples/ConsoleIn.sh
     examples/ConsoleOut.sh
     examples/ExtConnector.sh
     examples/ExtConsoleIn.sh
     examples/ExtConsoleOut.sh
     examples/GUIIn.sh
     examples/MyServiceConsumer.sh
     examples/MyServiceProvider.sh
     examples/SeqIn.sh
     examples/SeqOut.sh
     examples/SinCosOut.sh
     examples/rtcd_java.sh
     examples/start-orbd.sh
  • サンプルのソースコード
     examples/RTMExamples/SeqIO/SeqInImpl.java
     examples/RTMExamples/SeqIO/SeqOut.java
     examples/RTMExamples/SeqIO/view/RootPane.java
     examples/RTMExamples/SeqIO/view/SeqView.java
     以下 省略

JavaDoc

日本語のクラスリファレンス(Javadoc HTML 形式)が含まれています。

JavaDocEn

英語のクラスリファレンス(Javadoc HTML 形式)が含まれています。

ここまで確認できたら動作確認(Linux 編)へ進みましょう。

ソースからのビルド

OpenRTM-aist-Java 本体のソースを変更して利用したい場合には、ソースからコンパイルすることができます。

配布ソースのビルド

OpenRTM-aist (Java版) は Eclipse を利用したビルド環境を提供しています。

依存ライブラリ

OpenRTM-aist のビルドには下記の開発環境およびライブラリが必要です。

  • Eclipse SDK 3.3.x以上
  • jdk1.7.0_xx以上

それぞれのライブラリ等のドキュメントに従いインストールを行ってください。

ソースのダウンロード

OpenRTM-aist-Java のソースをダウンロードします。

ソースコードの展開

まずソースコードを適当なディレクトリーに展開します。
  • Linux の場合
     $ tar xvzf OpenRTM-aist-Java-X.X.X.tar.gz
  • Windows の場合は、tgz を展開できるツールを使用して展開します。

ビルド

ビルド方法を説明します。(図は Windows 版の Eclipse3.4.2 です。) Eclipse を起動し、プロジェクトをワークスペースへインポートします。 [ファイル] > [インポート] を選択します。

eclipse_open_import_ja.png
[ファイル] > [インポート]を選択

インポートの「選択」ウィンドウが開きます。ここで、[一般] > [既存プロジェクトをワークスペースへ] を選択して [次へ] ボタンをクリックします。

eclipse_select_import_ja.png
インポートの「選択」ウィンドウ

「プロジェクトのインポート」ウィンドウが開きます。「ルート・ディレクトリーの選択」へ展開したディレクトリーを指定して [完了] ボタンをクリックします。

eclipse_select_project_ja.png
「プロジェクトのインポート」ウィンドウ

これで、プロジェクトをワークスペースへインポートできます。

eclipse_open_project_ja.png
プロジェクトのインポート

パッケージ・エクスプローラーから build.xml を右クリックして [デバッグ] > -[2 Antビルド...] を選択します。

eclipse_select_ant_built_ja.png
[デバッグ] > -[2 Antビルド...] を選択

構成編集のウィンドウが表示さます。ここで、buildAllLinux を選択して [デバッグ] ボタンをクリックします。

eclipse_execute_ant_ja.png
構成編集のウィンドウ

ビルドが始まります。

eclipse_execution_result_ja.png
ビルド実行結果

コンソールウィンドウに以上の表示がでれば完了です。
日本語が文字化けしている場合は、メニューの「実行」→「外部ツール」→「外部ツールの構成」で共通タブを開き、文字コードを MS932 に変更(その他の欄に入力)します。

リポジトリのソースのビルド

OpenRTM-aist は開発に利用している subversion リポジトリを一般に公開しています。 リポジトリからチェックアウトしたソースコードからビルドを行うこともできます。

必要なツール

Eclipse でリポジトリにアクセスするために Subclipse が必要です。 Subclipse:Eclipse のプラグイン(http://subclipse.tigris.org/update_1.0.x/
最初のビルドの時には ant4eclipse が必要です。 ant4eclipse:Eclipse のプラグイン(http://ant4eclipse.sourceforge.net)
Windows ではこれに加えて、
Python 及び PyYAML が必要です。OpenRTM-aist の C++版のダウンロードのページ からダウンロードして、 環境変数を設定してください。 PATH に追加 C:\Python27 など
JSmooth が必要です。インストールして環境変数 JSMOOTH_HOME を設定してください。JSMOOTH_HOME=C:\Program Files (x86)\JSmooth 0.9.9-7 など

ソースのチェックアウト

ソースのチェックアウト方法を説明します。(図は Windows 版の Eclipse3.4.2 です。) Eclipse でソースをチェックアウトして、ワークスペースへインポートします。 [ファイル] > [インポート] でインポートの「選択」ウィンドウが開きます。ここで、[その他] > [SVNからプロジェクトをチェックアウト] を選択して [次へ] ボタンをクリックすると「SVNからチェックアウト」ウィンドウが開きます。 「新規リポジトリー・ロケーションを生成」を選択して「プロジェクトのインポート」[次へ] ボタンをクリックします。「Url」に http://svn.openrtm.org/OpenRTM-aist-Java/trunk/ と入力し [次へ] ボタンをクリックします。 「フォルダの選択」ウィンドウが開きますので、「jp.go.aist.rtm.RTC」を選択して [完了] ボタンをクリックします。
初回のみ(http://svn.openrtm.org/OpenRTM-aist-Java/trunk)からスクリプトファイルまたはバッチファイルをダウンロードして実行してください。
これらのファイル Subclipse ではチェックアウトできません。
idl ファイルから必要な java ソースファイルが生成されます。
現状の trunk には不備があり、TEST ファイル等の一部でエラーが出るほか、Windows では msi ファイルが生成されません。

ビルド(2回目以降)

ビルド方法を説明します。(図は Windows 版の Eclipse 3.4.2です。) パッケージ・エクスプローラーから build.xml を右クリックして [デバッグ] > [2 Antビルド...] を選択します。

eclipse_select_ant_built_ja.png
[デバッグ] > -[2 Antビルド...] を選択

構成編集のウィンドウが表示さます。 ここで、buildAllLinux を選択して [デバッグ] ボタンをクリックします。

eclipse_execute_ant_ja.png
構成編集のウィンドウ

ビルドが始まります。

eclipse_execution_result_ja.png
ビルド実行結果

コンソールウィンドウに以上の表示がでれば完了です。

動作確認 (Windows編)

サンプルコンポーネントの場所

インストールまたはビルドが正常に終了したら、付属のサンプルで動作テスト をします。サンプルは、通常は以下の場所にあります。

  • スタートメニュー: [スタート] > [OpenRTM-aist] > [Java] > [components] > [examples]
  • C:\Program Files\OpenRTM-aist\<version>\examples\Java
  • /OpenRTM-X.X.X-Java/installer/resources/Source/examples(X.X.Xはバージョン。) (ソースからビルドした場合)

サンプルコンポーネントセット SimpleIO を使って、OpenRTM-aist-Java が正しくビルド・インストールされているかを確認します。

サンプル (SimpleIO) を使用したテスト

RTコンポーネント ConsoleInComp、ConsoleOutComp からなるサンプルセットです。 ConsoleInComp はコンソールから入力された数値を OutPort から出力するコンポーネント、ConsoleOutComp は InPort に入力された数値をコンソールに表示するコンポーネントです。 これらは、最も Simple な I/O (入出力) を例示するためのサンプルです。 ConsoleInComp の OutPort から ConsoleOutComp の InPort へ接続を構成し、これらの2つのコンポーネントをアクティブ化 (Activate) することで動作します。

以下は、msi インストーラーで OpenRTM-aist をインストールした環境で、スタートメニューから各種プログラムを起動する前提で説明します。 スタートメニューから、OpenRTM-aist を右クリックし「開く」でフォルダーを開き、各プログラムへアクセスすると便利です。

open_win_HIRAKU_ja.png
スタートメニューの OpenRTM-aist を開く

ネームサーバーの起動

まず、コンポーネントの参照を登録するためのネームサーバーを起動します。 [OpenRTM-aist 1.1] > [Tools] にあるショートカットの「Start Java Naming Service」をクリックしネームサーバーを起動します。

win-start-tool-java.png
ネームサーバーへのショートカット

起動すると、以下のようなコンソール画面が開きます。

star_win_orbd_ja.png
ネームサーバーの起動

コンソール画面が開かない

ネームサーバーのコンソール画面が開かないケースがあります。この場合下記のようないくつかの原因が考えられますので、原因を調査して対処してください。

「Start Java Naming Service」は %RTM_ROOT%\bin\rtm-naming.bat にあるバッチファイルからネームサーバー (omniNames.exe) を起動します。 この際、omniNames.exe を参照するために環境変数 OMNI_NAMES を利用しています。 通常インストーラーで OpenRTM-aist をインストールした場合には、OMNI_ROOT 環境変数が自動で設定されますが、何らかの理由で環境変数が無効になっていたり、手動でインストールした場合などは、環境変数が設定されていないことがあります。

サンプルコンポーネントの起動

ネームサーバー起動後、適当なサンプルコンポーネントを起動します。先ほど開いたスタートメニューフォルダーの、[OpenRTM-aist 1.1] > [Java] > [Components] > [Examples] を開くと、図のようにいくつかのコンポーネントがあります。

open_win_examples_short_cut_ja.png
サンプルコンポーネントフォルダー

ここでは、「ConsoleInComp.bat」「ConsoleOutComp.bat」をそれぞれダブルクリックして2つのコンポーネントを起動します。 起動すると、下図のような2つのコンソール画面が開きます。

open_consolein_out2_ja.png
ConsoleIn コンポーネントと ConsoleOut コンポーネント

コンポーネントが起動しない場合

コンポーネントが起動しない場合、いくつかの原因が考えられます。

コンソール画面が開いてすぐに消える

rtc.conf の設定に問題があり、起動できないケースがあります。上記スタートメニューフォルダーの「rtc.conf for examples」を開いて設定を確認してください。 例えば、corba.endpoint/corba.endpoints などの設定が現在実行中の PC のホストアドレスとミスマッチを起こしている場合などは、CORBA が異常終了します。

以下のような最低限の rtc.conf に設定しなおして試してみてください。

 corba.nameservers: localhost

ランタイムエラーが出て終了する
ライブラリ等が適切にインストールされていない・設定されていない等の原因でラインタイムエラーが出る場合があります。
  • 再起動してみる
  • OpenRTM-aist をすべてアンインストールし、再インストールすることで改善される場合があります。

RTSystemEditor (RTSE) の起動

スタートメニューフォルダーから、RTSystemEditor を起動します。 RTSystemEditorは [OpenRTM-aist] > [Tools] > [RTSystemEditorRCP] にあります。

rtse_start_ja.png
RTSystemEditor の起動

ネームサーバーへの接続

RTSE が起動したらまずネームサーバーへ接続します。左ペインの上部にある、rtse_connect_ns_icon.pngのアイコンをクリックして接続ダイアログを開きます。 接続ダイアログのホスト名の部分に先ほど起動したネームサーバーのアドレス (この場合同一ホストですので localhost) を指定します。ポート番号も指定できますが、通常デフォルトの2809番を使用する場合は何も指定しません。

rtse_connect_dialog_ja.png
ネームサーバーへの接続ダイアログ

接続すると、ネームサービスビューに localhost が現れます。ツリー表示の [+] をクリックすると、先ほど起動した2つのコンポーネントが登録されていることがわかります。

rtse_ns_connected_ja.png
ネームサーバーに登録されたコンポーネント

エディタへの配置

システムを編集するエディタを開きます。上部のエディタを [開く] ボタンrtse_open_editor_icon_ja.pngをクリックすると、中央のペインにエディタが開きます。

左側のネームサービスビューに rtse_rtc_icon.png のアイコンで表示されているコンポーネント (2つ) を中央のエディタにドラッグアンドドロップします。

rtse_dnd_rtcs_ja.png
コンポーネントをエディタに配置

接続とアクティブ化

ConsoleIn0 コンポーネントの右側にはデータが出力される OutPort rtse_outport_icon.png 、ConsoleOut0 コンポーネントの左側にはデータが入力される InPort rtse_inport_icon.png がそれぞれついています。

これら InPort/OutPort (まとめてデータポートと呼びます) を接続します。 OutPort から InPort (または InPort から OutPort) へドラッグランドドロップすると、図のようなダイアログが現れますので、デフォルト設定のまま [OK] ボタンをクリックします。

rtse_portconnect_ja.png
データポートの接続

rtse_portconnect_dialog_ja.png
データポート接続ダイアログ

2つのコンポーネントの間に接続線が現れます。次に、エディタ上部メニューの [All Activate] ボタン rtse_all_actevate_icon.png をクリックし、これらのコンポーネントをアクティブ化します。 アクティブ化されると、コンポーネントが緑色に変化します。

rtse_actevated_all_ja.png
アクティブ化されたコンポーネント

コンポーネントがアクティブ化されると ConsoleIn コンポーネント側では

 Please input number: 

というプロンプト表示に変わりますので、適当な数値 (short int の範囲内:32767以下) を入力し Enter キーを押します。 すると、ConsoleOut 側では、入力した数値が表示され、ConsoleIn コンポーネントからConsoleOut コンポーネントへデータが転送されたことがわかります。

以上で、コンポーネントの基本動作の確認は終了です。

他のサンプル

インストーラーには、このほかにもいくつかのサンプルコンポーネントが付属しています。 これらのコンポーネントも同様に起動し、RTSystemEditor でポート同士を接続し、アクティブ化することで試すことができます。

付属しているコンポーネントのリストと簡単な説明を以下に示します。

ConsoleInComp.bat コンソールから入力された数値を OutPort から出力する。ConsoleOutComp.exe に接続して使用する。
ConsoleOutComp.bat InPort に入力された数値をコンソールに表示するコンポーネント。ConsoleInComp.exe に接続して使用する。
SeqInComp.bat ランダムな数値(Short、Long、Float、Double とそのシーケンス型)を出力するコンポーネント。SequenceOutComp.bat に接続して使用する。
SeqOutComp.bat InPort に入力される数値(Short、Long、Float、Double とそのシーケンス型)を表示。SequenceInComp.exe に接続して使用する。
MyServiceProviderComp.bat MyService 型のサービスを提供するコンポーネント。MyServiceConsumerComp.exe に接続して使用する。
MyServiceConsumerComp.bat MyService 型のサービスを提供するコンポーネント。MyServiceProviderComp.exe に接続して使用する。
ConfigSampleComp.bat Configuration のサンプル。RtcLink から Configuration を変更して Configuration の挙動を理解するためのサンプル。


動作確認 (Linux編)

インストールが正常に終了したら、付属のサンプルで動作テストをします。サンプルは、zip ファイルを展開したディレクト配下の以下の場所にあります。

  • /OpenRTM-aist/<version>/examples

ソースからビルドした場合は、プロジェクトディレクトリー配下の以下の場所にあります。

  • /OpenRTM-X.X.X-Java/installer/resources/Source/examples (X.X.Xはバージョン。)

サンプルコンポーネントセット SimpleIO を使って、OpenRTM-aist-Java が正しくビルド・インストールされているかを確認します。

サンプルコンポーネントセット SimpleIO

RTコンポーネント ConsoleInComp、ConsoleOutComp からなるサンプルセットです。 ConsoleInComp はコンソールから入力された数値を OutPort から出力するコンポーネント、ConsoleOutComp は InPort に入力された数値をコンソールに表示するコンポーネントです。 これらは、最も Simple な I/O (入出力) を例示するためのサンプルです。 ConsoleInComp の OutPort から ConsoleOutComp のInPort へ接続を構成し、これらの2つのコンポーネントをアクティブ化 (Activate) することで動作します。

以降、説明を簡単にするため OpenRTM-aist-Java が /home/openrtm/OpenRTM-aist/ にインストール(展開)されているとします。

サンプルを使用したテスト

ネームサーバーを起動

まず、コンポーネントの参照を登録するためのネームサーバーを起動します。 OpenRTM-aist-Javaでは、orbd(Java CORBA naming servic)の起動用シェルスクリプトを準備しています。 Linux などのパッケージで omniORB をインストールした場合、すでにシステムのサービスとしてネームサーバー (omniNames) が起動している場合があります。 orbd の代わりに omniNames を使用しても正常に動作します。

すでに omniNames が起動している場合、このようになります。

 $ ps ax | grep omni
 1550  ?        Sl     0:00 /usr/bin/omniNames -errlog /var/log/omniorb4-nameserver.log
 18418 pts/2    S+     0:00 grep --color=auto omni

omniNames が起動していない場合はこのようになります。

 $ ps ax | grep omni
 18418 pts/2    S+     0:00 grep --color=auto omni

ネームサーバーが起動していない場合、 start-orbd.sh コマンドでネームサーバーを起動します。 start-orbd.shは、/home/openrtm/OpenRTM-aist/1.1/examples に格納されています。

 $ sh /home/openrtm/OpenRTM-aist/1.1/examples/start-orbd.sh
 Starting Java CORBA naming service (orbd).

oebd はブロックします。

システムで IPv6 が設定されている場合、localhost というホスト名が正しく機能しない場合があります。 その場合、localhost の代わりに127.0.0.1に置き換えてください。

ConsoleInComp の起動

ターミナルを起動して ConsoleInComp を起動します。

 $ sh /home/openrtm/OpenRTM-aist/1.1/examples/ConsoleIn.sh
 
 Creating a component: "ConsoleIn"....
 succeed.
 =================================================
  Component Profile
 -------------------------------------------------
 InstanceID:     ConsoleIn0
 Implementation: ConsoleIn
 Description:    Console input component
 Version:        1.0
 Maker:          Noriaki Ando, AIST
 Category:       example
   Other properties   
 =================================================
 =================================================
 Port0 (name): 
 ConsoleIn0.out
 -------------------------------------------------
 - properties -
 port.port_type:DataOutPort
 dataport.data_type:TimedLong
 dataport.subscription_type:new, flush, periodic
 dataport.dataflow_type:push,pull
 dataport.interface_type:corba_cdr
 -------------------------------------------------
 
   

ConsoleOutComp の起動

ターミナルを起動して、同様に ConsoleOutComp を起動します。

 $ sh /home/openrtm/OpenRTM-aist/1.1/examples/ConsoleOut.sh
  
 Creating a component: "ConsoleOut"....
 succeed.
 =================================================
  Component Profile
 -------------------------------------------------
 InstanceID:     ConsoleOut0
 Implementation: ConsoleOut
 Description:    Console output component
 Version:        1.0
 Maker:          Noriaki Ando, AIST
 Category:       example
   Other properties   
 =================================================
 =================================================
 Port0 (name): 
 ConsoleOut0.in
 -------------------------------------------------
 - properties -
 port.port_type:DataInPort
 dataport.data_type:TimedLong
 dataport.subscription_type:Any
 dataport.dataflow_type:push,pull
 dataport.interface_type:corba_cdr
 -------------------------------------------------
 
 
 

RTSystemEditor の起動

RTSystemEditor を使って、RTコンポーネントの接続とアクティブ化を行います。 こちらから Eclipse 全部入りパッケージをダウンロードし解凍してください。

RTSystemEditor は Java Development Kit7 を使用します。以下のマニュアルを参考にインストールしてください。 また、Ubuntu 等では、デフォルトの Java 環境は OpenJDK が推奨されています。そうした場合、OpenJDK でも利用することは可能です。

こちらのページを参考にRTSystemEditorの起動してください。

ネームサーバーの参照と確認

ネームサーバーへ接続し登録内容を確認します。 ネームサーバーへの接続は、左側の Name Service View のコンセント型アイコンのボタンをクリックし、ダイアログで

 localhost
 または
 localhost:2809

と入力します。(orbd のデフォルトのポート番号は2809です。)

c_unix100_NameServer_ja.png
ネームサーバへーの接続

ネームサーバに登録された RTコンポーネントをシステムエディタに配置します。 左の Name Service View のConsoleOut0 および ConsoleIn0 を中央のエディタ上にドラッグアンドドロップします。 次に、コンポーネントの右端、左端に出ている突起上のアイコンを、片方からもう片方でドラッグアンドドロップします。 接続ダイアログが表示されますが、すべてデフォルトのままで結構ですので [OK] をクリックすると接続は完了します。

c_unix100_oneditor_ja.png
RTSystemEditorによるシステムの編集

メニューの下の緑色の [再生] ボタンをクリックすると、エディタ上のすべてのコンポーネントがアクティブ化されます。

数値入力と出力の確認

ConsoleInComp と ConsoleOutComp のポートを接続したら、

 Please input number: 

というプロンプトが表示されるので、そこに数字を入力します。入力する数字は、short int に収まる範囲の数値を入力してください。

ConsoleInComp 側のターミナルに数字を打ち込むと、ConsoleOutComp 側のターミナルに、入力した数値が表示されます。 以上で、OpenRTM-aist-Java が正しくインストールされていることが確認できました。

Tips

JDKインストールのためのヒント

JDKは、OpenJDK と OracleJDK のいずれかをインストールします。ここでは下記環境へのインストール方法を紹介します。



Ubuntu 14.04

OpenJDK7

apt-getでインストールできます。

 $ sudo apt-get install openjdk-7-jdk

JDKの確認

 $ java -version
 java version "1.7.0_75"
 OpenJDK Runtime Environment (IcedTea 2.5.4) (7u75-2.5.4-1~trusty1)
 OpenJDK 64-Bit Server VM (build 24.75-b04, mixed mode)

ここでバージョンが、「1.6.0_xx」という用に表示されたら、JDK7 を使用するように変更します。この切替えは、update-alternatives コマンドで行います。

 $ sudo update-alternatives --config java
 alternative java (/usr/bin/java を提供) には 2 個の選択肢があります。
   選択肢      パス                                          優先度    状態
 -------------------------------------------------------------------------------------
 * 0            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      自動モード
   1            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      手動モード
   2            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1051      手動モード
 現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください: 2
JDK7 を使用するので、番号の「2」を指定します。この操作後、java -version でJDKを確認します。

oracleJDK7

リポジトリを追加して、oracleJDK7をインストールします。

 $ sudo add-apt-repository ppa:webupd8team/java
 $ sudo apt-get update
 $ sudo apt-get install oracle-jdk7-installer

JDKの確認

 $ java -version
 java version "1.7.0_76"
 Java(TM) SE Runtime Environment (build 1.7.0_76-b13)
 Java HotSpot(TM) 64-Bit Server VM (build 24.76-b04, mixed mode)

OpenJDKもインストールしている場合は、選択状況を下記で確認できます。

 $ update-alternatives --config java
 alternative java (/usr/bin/java を提供) には 2 個の選択肢があります。
   選択肢      パス                                          優先度    状態
 -------------------------------------------------------------------------------------
 * 0            /usr/lib/jvm/java-7-oracle/jre/bin/java          1072      自動モード
   1            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      手動モード
   2            /usr/lib/jvm/java-7-oracle/jre/bin/java          1072      手動モード
 現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください: 


Debian 7.0 Wheezy

OpenJDK7

手順は上記の Ubuntu14.04 を参照して下さい。同じ手順で設定できます。

oracleJDK7(java-packageを使った方法:Debian7.0から対応)

右記の手順に従ってインストールします。 https://wiki.debian.org/JavaPackage

/etc/apt/sources.listの末尾に次の一文を追加します。

 deb http://http.debian.net/debian/ wheezy main contrib

JDKをインストールするために必要な java-package をインストールします。

 # apt-get update
 # apt-get install java-package

oracleのサイトからJDK (ここではjdk-7u75-linux-x64.tar.gz) をダウンロードします。
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

debパッケージを生成してインストールします。

 $ make-jpkg jdk-7u75-linux-x64.tar.gz
 $ ls
 oracle-j2sdk1.7_1.7.0+update75_amd64.deb
 # dpkg -i oracle-j2sdk1.7_1.7.0+update75_amd64.deb

oracleJDKを選択します。

 # update-alternatives --config java
 alternative java (/usr/bin/java を提供) には 3 個の選択肢があります。
   選択肢      パス                                          優先度    状態
 -------------------------------------------------------------------------------------
   0            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      自動モード
   1            /usr/lib/jvm/j2sdk1.7-oracle/jre/bin/java        317       手動モード
   2            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      手動モード
 * 3            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1051      手動モード
 現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください: 1

JDKの確認

 $ java -version
 java version "1.7.0_75"
 Java(TM) SE Runtime Environment (build 1.7.0_75-b13)
 Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)

Debian 6.0 Squeeze

OpenJDK7

/etc/apt/sources.list の最後にwheezyリポジトリを追加します。

 # vi /etc/apt/sources.list
 deb http://ftp.jp.debian.org/debian/ wheezy main

openjdk7 のインストールのためだけに追加したので、優先されるのはsqeezeバージョンということで、/etc/apt/apt.conf.d にlocalファイルを新設して以下を記述します。

 # vi /etc/apt/apt.conf.d/local
 APT::Default-Release "squeeze";

一方、wheezyに含まれるパッケージのプライオリティは最小にしておきます。squeeze環境で、主要なライブラリが不要にもアップグレードされてしまうことは避けたいためです。
/etc/apt/preferences.d にwheezyファイルを新設し、以下を記述します。

 # vi /etc/apt/preferences.d/wheezy
 Package: *
 Pin: release n=wheezy
 Pin-Priority: 10

priorityは、インストールしているパッケージには100、インストールしていないパッケージには500が割り当てられるので、100より小さい値を指定しておきます。

 # apt-get update
 # apt-get install -t wheezy openjdk-7-jdk

OpenJDK7を選択します。

 # update-alternatives --config java
 alternative java (/usr/bin/java を提供) には 3 個の選択肢があります。
   選択肢      パス                                          優先度    状態
 -------------------------------------------------------------------------------------
 * 0            /usr/lib/jvm/java-6-openjdk/jre/bin/java         1061      自動モード
   1            /usr/bin/gij-4.7                                 1047      手動モード
   2            /usr/lib/jvm/java-6-openjdk/jre/bin/java         1061      手動モード
   3            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1051      手動モード
 現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください: 3

JDKの確認

 # java -version
 java version "1.7.0_03"
 OpenJDK Runtime Environment (IcedTea7 2.1.7) (7u3-2.1.7-1)
 OpenJDK 64-Bit Server VM (build 22.0-b10, mixed mode)

参考サイト(外部サイト):


oracleJDK7(update-alternatives でインストールする方法)

Debian6.0 では java-package がサポートされていないので、update-alternatives でインストールします。

oracleのサイトからJDK (ここではjdk-7u75-linux-x64.tar.gz) をダウンロードします。
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

解凍し、生成されたディレクトリjdk1.7.0_75を /usr/lib に移動させます。

 # tar xvzf jdk-7u75-linux-x64.tar.gz
 # mv jdk1.7.0_75 /usr/lib/jvm/jdk1.7.0-oracle

update-alternatives コマンドでインストールします。この時、優先度を指定しますが、ここでは1としています。

 # update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.7.0-oracle/bin/java" 1
 # update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.7.0-oracle/bin/javac" 1

oracleJDKを選択します。

 # update-alternatives --config java
 alternative java (/usr/bin/java を提供) には 4 個の選択肢があります。
   選択肢      パス                                          優先度    状態
 -------------------------------------------------------------------------------------
   0            /usr/lib/jvm/java-6-openjdk/jre/bin/java         1061      自動モード
   1            /usr/bin/gij-4.7                                 1047      手動モード
   2            /usr/lib/jvm/java-6-openjdk/jre/bin/java         1061      手動モード
 * 3            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1051      手動モード
   4            /usr/lib/jvm/jdk1.7.0-oracle/bin/java            1         手動モード
 現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください: 4

JDKの確認

 $ java -version
 java version "1.7.0_75"
 Java(TM) SE Runtime Environment (build 1.7.0_75-b13)
 Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)


参考サイト(外部サイト):


Fedora 20

OpenJDK7

既にインストールされています。

 $ java -version
 java version "1.7.0_75"
 OpenJDK Runtime Environment (fedora-2.5.4.2.fc20-x86_64 u75-b13)
 OpenJDK 64-Bit Server VM (build 24.75-b04, mixed mode)

oracleJDK7

oracleのサイトからJDK(ここではjdk-7u75-linux-x64.rpm)をダウンロードします。
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

インストール

 # rpm -ivh jdk-7u75-linux-x64.rpm

インストール先の確認

 # ls -l /usr/java/
 lrwxrwxrwx. 1 root root   16  3月 17 10:47 default -> /usr/java/latest
 drwxr-xr-x. 8 root root 4096  3月 17 10:46 jdk1.7.0_75
 lrwxrwxrwx. 1 root root   21  3月 17 10:47 latest -> /usr/java/jdk1.7.0_75

oracleJDKをalternativesへ登録します。この時、上のインストール先から /usr/java/latest のパスを使っていればJDKのバージョン番号に依存せずに済むことが分かります。
登録前に、Javaの設定を確認しておきます。

 # update-alternatives --display java
 java - ステータスは手動です。
 リンクは現在 /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/java を指しています。
 /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/java - 優先項目 170075
  スレーブ keytool: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/keytool
  スレーブ orbd: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/orbd
  スレーブ pack200: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/pack200
  スレーブ rmid: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/rmid
  スレーブ rmiregistry: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/rmiregistry
  スレーブ servertool: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/servertool
  スレーブ tnameserv: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/tnameserv
  スレーブ unpack200: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/unpack200
  スレーブ jre_exports: /usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64
  スレーブ jre: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre
  スレーブ java.1.gz: /usr/share/man/man1/java-java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64.1.gz
  スレーブ keytool.1.gz: /usr/share/man/man1/keytool-java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64.1.gz
  スレーブ orbd.1.gz: /usr/share/man/man1/orbd-java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64.1.gz
  スレーブ pack200.1.gz: /usr/share/man/man1/pack200-java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64.1.gz
  スレーブ rmid.1.gz: /usr/share/man/man1/rmid-java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64.1.gz
  スレーブ rmiregistry.1.gz: /usr/share/man/man1/rmiregistry-java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64.1.gz
  スレーブ servertool.1.gz: /usr/share/man/man1/servertool-java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64.1.gz
  スレーブ tnameserv.1.gz: /usr/share/man/man1/tnameserv-java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64.1.gz
  スレーブ unpack200.1.gz: /usr/share/man/man1/unpack200-java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64.1.gz

上記の結果で、orbd がスレーブとして登録されていることが分かります。ネームサーバを起動する際、orbd にパスが通っている必要があります。update-alternatives --install でインストールしたjavaと一緒に切り替えたいものをスレーブで指定しています。よって、oracleJDK を alternatives へ登録する際も --slave オプションで指定することにします。
また、優先項目 170075 とは優先度のことです。update-alternatives --install 実行時に優先度を指定します。今回、OpenJDK7 と orcleJDK7 のバージョンが同じなので、oracleJDK7 を登録する際の優先度も 170075 を指定することにします。

これらのことから、次の設定で登録します。

 # update-alternatives --install /usr/bin/java java /usr/java/latest/bin/java 170075 
   --slave /usr/bin/javac javac /usr/java/latest/bin/javac 
   --slave /usr/bin/javaws javaws /usr/java/latest/bin/javaws 
   --slave /usr/bin/keytool keytool /usr/java/latest/bin/keytool 
   --slave /usr/bin/orbd orbd /usr/java/latest/bin/orbd 
   --slave /usr/bin/pack200 pack200 /usr/java/latest/bin/pack200 
   --slave /usr/bin/rmid rmid /usr/java/latest/bin/rmid 
   --slave /usr/bin/rmiregistry rmiregistry /usr/java/latest/bin/rmiregistry 
   --slave /usr/bin/servertool servertool /usr/java/latest/bin/servertool 
   --slave /usr/bin/tnameserv tnameserv /usr/java/latest/bin/tnameserv 
   --slave /usr/bin/unpack200 unpack200 /usr/java/latest/bin/unpack200

oracleJDKを選択します。

 # update-alternatives --config java
 2 プログラムがあり 'java' を提供します。
   選択       コマンド
 -----------------------------------------------
 *+ 1           /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/java
    2           /usr/java/latest/bin/java
 Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2

JDKの確認

 # java -version
 java version "1.7.0_75"
 Java(TM) SE Runtime Environment (build 1.7.0_75-b13)
 Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)

参考サイト(外部サイト):