Installation of OpenRTM-aist Python for Ubuntu
Ubuntu OS上にOpenRTM-aist Python版をインストールする方法を解説します。
▶ 更新履歴
-
15/08/2013 ブラウザによってレイアウトが崩れる問題に対処しました。
-
23/06/2013 インストール方法に不備があったので全体的に訂正しました。
1. インストールに必要なソフトウェアの準備
インストールに必要なソフトウェアを準備します。皆さんの環境に合わせたソフトウェアをダウンロードして下さい。
Ubuntu以外は未検証ですが、Debianであれば同様の方法でインストールできるかもしれません。
■Ubuntu12.04 LTS 32bit / 10.04 LTS 32bitの場合
・Python
Ubuntuであれば、デフォルトでPythonがインストールされています。
2.4.4以降で2系列の32bit版Pythonなら動作すると思います。
・OpenRTM-aist Python
OpenRTM-aist-Python-1.1.0-RC1.tar.gz
・Java SE Development Kit 7 / 6
OpenRTM-aist Java版を使用する場合はJava SE Development Kit 6を選択して下さい。ソフトウェアはインストール時に入手します。
・OpenRTP1.1.0-RC4
2. ソフトウェアのインストール
先ほど入手したOpenRTM-aist Pythonと、Java SE Development Kit 7 / 6をインストールします。
2.1 OpenRTM-aist Pythonのインストール
OpenRTM-aist Pythonに必要なソフトウェアをインストールします。
$ sudo apt-get install python-omniorb-omg omniidl-python omniorb-nameserver
$ cd
$ mkdir openrtm
$ python setup.py build
正常にインストールが完了しているか確認します。
図のようにJavaのバージョンが表示されればインストールされています。
$ sudo python setup.py install
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update && sudo apt-get install oracle-jdk7-installer
$ sudo apt-get update && sudo apt-get install oracle-jdk6-installer
$ java -version
図のようにOpenRTPが起動すれば正常にリンクが貼られています。
起動時にワークスペースを選択するよう聞かれた場合は、任意の場所を選択して下さい。

$ cd /usr/bin
$ sudo ln -s ~/openrtm/eclipse/openrtp
$ cd
$ openrtp

$ cd ~/Downloads
$ tar xzf OpenRTM-aist-Python-1.1.0-RC1.tar.gz -C ~/openrtm/
$ cd ~/openrtm/OpenRTM-aist-Python-1.1.0/
$ python rtm-naming.py

3.8 コンポーネントのActive化
「All Acitvate」ボタンを押して、すべてのコンポーネントをアクティブ状態に遷移させます。
Active状態に遷移させたあと、各コンポーネントのターミナルを確認します。
3.9 RTミドルウェアのHello World!
ConsoleInのターミナル上に「Please input number」と表示されています。
そこで数値(今回は1)を入力しています。するとConsoleInに入力された数値がConsoleOutに表示されていることがわかります。
4. おわりに
これでOpenRTM-aist Python版のインストールは終わりです。
インストールそのものは簡単だったと思います。
動作確認として、RTミドルウェアの「Hello World!」とも言うべき、ConsoleInとConsoleOutが構築するシステムを体験しました。
このシステムはConsoleInでキー入力された数値をConsoleOutのターミナルに上に表示しました。
このように、RTミドルウェアはお互いにデータをやり取りして、ひとつのシステムを構築します。
他のサンプルも動作させて遊んで見て下さい。
次に、OpenRTM Python版や統合開発環境を保存するディレクトリを作成します。
ビルドが完了したのを確認してインストールを行います。
作成したディレクトリにOpenRTM-aistを解凍します。
なお、OpenRTM-aist-python-1.1.0-RC1.tar.gzはDownloadに保存されているものとします。
解凍したらビルドします。
2.2 Java SE Development Kitのインストール
Javaをレポジトリに追加します。
Javaをインストールします。
■JDK7の場合
■JDK6の場合
2.3 OpenRTPのインストール
eclipse381-openrtp110rc4v20130216-ja-linux-gtk.tar.gzはDownloadに保存されているとします。
圧縮ファイルを展開し、移動させます。
$ cd ~/openrtm
$ sudo tar xzf ~/Downloads/eclipse381-openrtp110rc4v20130216-ja-linux-gtk.tar.gz
$ cd eclipse
$ ./openrtp
無事OpenRTPが起動したら一旦終了して下さい。
次にOpenRTPにシンボリックリンクを張ります。
最後にリンクが正常に張れているか確認します。
3. 動作確認
OpenRTM-aist Pythonの動作確認をおこないます。
3.1 ソフトウェアの確認
インストール時にデフォルトでインストールしていれば各ソフトウェアは、下記アドレスにあるはずです。
見つからない場合は、検索して探してみて下さい。
・rtm-naming.py
~/openrtm/OpenRTM-aist-Python-1.1.0/OpenRTM_aist/utils/rtm-naming
・ConsoleIn.py
~/openrtm/OpenRTM-aist-Python-1.1.0/OpenRTM_aist/examples/SimpleIO
・ConsoleOut.py
~/openrtm/OpenRTM-aist-Python-1.1.0/OpenRTM_aist/examples/SimpleIO
3.2 ネームサーバーの起動
rtm-naming.pyを実行してネームサーバーを起動します。
Pythonスクリプトを実行する場合は、「python ファイル名」というように実行します。
無事に起動できると「Checkpointing completed.」と表示されます。
本ウェブサイトのやり方に従ってインストールした方は、「Is omniNames already running?」と表示されるかもしれません。
これはすでにネームサーバー(port:2809)が起動しているということです。
ネームサーバーが起動しているか確認する場合は、以下のコマンドを使用して下さい。
$ ps ax | grep omni
起動していれば左図のような、起動していなければ右図のような結果となります。


ネームサーバーが起動している場合
ネームサーバーが起動していない場合
3.3 ConsoleInの起動
ConsoleIn.pyを実行し、ConsoleInを起動します。
コンソールに下図のように表示されるのを確認します。

3.4 ConsoleOutの起動
ConsoleOut.pyを実行し、ConsoleOutを起動します。
コンソールに下図のように表示されるのを確認します。

3.5 RT System Edotorの起動
RT System EditorはRTコンポーネントの振る舞いを制御できます。
まずはOpenRTPを起動します。
$ openrtp
はじめての起動時には、「ようこそ(Welcome)」という画面が表示されますので、それを閉じます。

次に、右上の方にある「パースペクティブを開く」ボタンを押し、パースペクティブを切り替えます。
ボタンを押すと、パースペクティブの選択ダイアログが立ち上がるので、「RT System Editor」を選択しOKを押します。


パースペクティブが以下のように、RT System Editorに切り替わります。

3.6 ネームサーバーの追加
ポートをデフォルト(Pot:2809)で使用している場合は、ネームサーバは自動的に追加されています。
「127.0.0.1」と書いてある 項目を展開すると、下図のようにコンポーネントが登録されているのがわかります。

ネームサーバーを追加する場合は、下図のように「ネームサーバーの追加」ボタンを押すか、
プルダウンメニューの「ネームサーバーの追加」を選択します。
ボタンが見えない場合は、右側にエクスプローラを拡大してみて下さい。


プルダウンメニューから追加する場合
ボタンから追加する場合
「ネームサーバーの追加」を押すと、ネームサーバーのアドレスを入力するダイアログが起動します。
今回は「localhost:2809」と入力してOKを押して下さい。2809はデフォルトのポート番号です。

追加したネームサーバーの項目を展開すると、先ほど起動したコンポーネントが確認できます。

3.7 コンポーネントの接続
コンポーネントの接続を行います。
「New Open System Edior」ボタンを押して、新しいSystem Diagramを開きます。

Sytem Diagram上にコンポーネントをドロップします。
するとコンポーネントを示す図が表示されます。

ConsoleInコンポーネントの凸の部分をドラッグするとラインが伸びるのが分かります。
ラインをConsoleOutコンポーネントの凹までドッラグしていきドロップすると、
「Connector Profile」というダイ アログが現れるので、OKを押します。

しばらく数値を入力して遊んでみて下さい。
遊び終わったら、RT System Editor上のAll Deacitveボタンを押して下さい。
各コンポーネントがInactive状態に遷移します。
Inactive状態に遷移したら各コンポーネントのコンソール上で「Ctrl + c」を押して終了して下さい。
*ここでDeactive命令が受付られない場合は、ConsoleInに何か数値を入力して下さい。
これはキー入力待状態からConsoleInが抜けられないため発生する問題です。


各コンポーネントのターミナル上に表示されたメッセージが変わっていることがわかります。
コンポーネントの状態が遷移し、メインの処理が開始されています。



