ここでは OpenRTM-aist (Python) の Windows へのインストール方法を説明します。 ※以降の説明は便宜上 OpenRTM-aist-1.0.0 について書かれています。
openrtm.org では Windows 用の msi (Microsoft Windows インストーラー)パッケージを提供しています。 msi パッケージを利用することで、依存ライブラリである omniORBpy や RTSystemEditor といったツールも同時にインストールすることができます。
openrtm.org のダウンロードサイトから、msi パッケージをダウンロードします。msi パッケージには、必要な omniORBpy や RTSystemEditor といったツールは含まれていますが、Python は予めインストールしておく必要があります。
1.1.2 版からは一つの Windows 用インストーラーに3言語(C++、Java、Python)+ツール(Eclipse+rtshell)すべてが同梱されています。古いバージョンは予めアンインストールすることをお勧めします。 また、ダウンロードサイトでの赤字表記の注意書きをご覧下さい。
手順については、OpenRTM-aistを10分で始めよう! のページをご覧下さい。
インストーラーは以下の作業を行います。
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\
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 コマンドによる Python がインストールされているディレクトリーと Program Files 下の OpenRTM-aist ディレクトリー構造をログファイルに保存しますので、詳細を確認することができます。
<python_install_dir> + omniORBのdll, 各種コマンド + rtcd, rtcprofileなどOpenRTM-aist 関連の各種コマンド | + Lib | + site-packages | + OpenRTM_aist: OpenRTM-aist の Python モジュール | + RTM_IDL: IDLファイル | | + omniORB 関連の Python モジュール
<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: + jre: OpenJDK JRE + omniORB + OpenCV + rtm: OpenRTM-aist ヘッダファイル + idl: OpenRTM-aist IDLファイル + util + OpenRTP: + RTSystemEditor: + rtc-template:
以上、インストールが終了しましたら、動作確認 へ進みましょう。
Python 版 OpenRTM-aist は Ubuntu や Debian GNU Linuxで利用可能な deb パッケージが提供されています。 対応しているディストリビューションのバージョンは、ダウンロードページから確認できます。 Ubuntu/Debian GNU Linux への対応およびそのバージョンは、予告なしに変更または停止されることがありますので、予めご了承ください。
インストールの方法には大きく分けて以下の二種類のインストール方法があります。
好みの方法でインストールしてください。
openrtm.org が提供するインストール・スクリプト pkg_install_ubuntu.sh または pkg_install_debian.sh をダウンロードページからダウンロードし、root 権限で実行します。 このスクリプトは、必要なパッケージを順次 apt-get でインストールしていきます。
OpenRTM-aist を開発・実行するために必要なパッケージをもれなくインストールしてくれるので大変便利です。 オプションを指定することで、目的に合わせたパッケージをインストールできるようになったので、 初めて OpenRTM-aist をインストールしてみる方にもソースをコンパイルしてみる方にもお勧めします。
ただし、OpenRTM-aist 関係のすべてのパッケージをインストールするので、必要ないものもインストールされる可能性があります。 詳しく理解している人は、手動でインストールした方がよいでしょう。
詳しいインストール方法や、オプション・パッケージの種類につきましては、一括インストール・スクリプト をご確認ください。
openrtm.org では apt-get から利用可能なパッケージリポジトリを提供しています。 ただし、デフォルトのパッケージリポジトリには含まれていませんので、apt-get の設定を変更する必要があります。
/etc/apt/sources.list に以下の行を追加します。
> su # vi /etc/apt/sources.list # "sources.list" を編集
deb http://openrtm.org/pub/Linux/ubuntu/ (code name) main または deb http://openrtm.org/pub/Linux/debian/ (code name) main
の1行を追加。"(code name)" の部分には以下の debian/ubuntu のバージョンに対応したコードネームを指定します。
バージョン | code name |
Debian GNU Linux | |
Debian 7.0 | wheezy |
Debian 8.0 | jessie |
Debian 9.0 | stretch |
Ubuntu | |
Ubuntu 14.04 | trusty |
Ubuntu 16.04 | xenial |
Ubuntu 16.10 | yakkety |
Ubuntu 17.04 | zesty |
次の手順でインストールを行います。途中、いくつかの応答を求められるので、y を入力しながら完了させてください。
# apt-get update # apt-get install python # apt-get install python-omniorb-omg omniidl-python # apt-get install openrtm-aist-python openrtm-aist-python-example
なお、インストール済みの OpenRTM-aist を特定バージョンのまま保持したい場合には、/etc/apt/preferencesを編集して以下の行を追加します。 (この例では1.0系列にバージョンを固定します。)
Package: OpenRTM-aist-Python Pin: version 1.0.*
詳しくは http://www.debian.org/doc/manuals/apt-howto/ch-apt-get.ja.html#s-pin を参照してください。
インストールを確認します。
$ dpkg -l 'openrtm*' 要望=(U)不明/(I)インストール/(R)削除/(P)完全削除/(H)保持 | 状態=(N)無/(I)インストール済/(C)設定/(U)展開/(F)設定失敗/(H)半インストール/(W)トリガ待ち/(T)トリガ保留 |/ エラー?=(空欄)無/(R)要再インストール (状態,エラーの大文字=異常) ||/ 名前 バージョン アーキテクチャ 説明 +++-============================-===================-===================-============================================================= ii openrtm-aist-python 1.1.0-2 i386 OpenRTM-aist is a reference implementation of RT-Middleware ii openrtm-aist-python-example 1.1.0-2 i386 OpenRTM-aist-Python examples
各パッケージの内容は以下の通りです。
openrtm-aist-python には Python モジュールとコマンド群が含まれています。
/usr/bin/rtcprof_python /usr/bin/rtcd_python
/usr/etc/rtc.conf.sample
/usr/lib/python<version>/dist-packages/OpenRTM_aist/*
/usr/lib/python<version>/dist-packages/OpenRTM_aist/utils/rtcprof /usr/lib/python<version>/dist-packages/OpenRTM_aist/utils/rtcd /usr/lib/python<version>/dist-packages/OpenRTM_aist/utils/rtc-template /usr/lib/python<version>/dist-packages/OpenRTM_aist/utils/rtm-naming
openrtm-aist-python-exampleには RTC のサンプルが含まれています。
/usr/share/openrtm-1.1/example/python/SimpleIO/ /usr/share/openrtm-1.1/example/python/SimpleService/ 中略
以上、インストールが終了しましたら、動作確認へ進みましょう。
Python 版 OpenRTM-aist は Fedora Linux で利用可能な RPM パッケージが提供されています。 対応している Fedora Linux のバージョンは、ダウンロードページから確認できます。 Fedora Linux への対応およびそのバージョンは、予告なしに変更または停止されることがありますので、予めご了承ください。
Fedora Linuxへのインストールの方法には大きく分けて以下の二種類のインストール方法があります。
openrtm.org が提供するインストール・スクリプト pkg_install_fedora.sh をダウンロードページからダウンロードし、root 権限で実行します。このスクリプトは、必要なパッケージを順次 yum でインストールしていきます。
OpenRTM-aist を開発・実行するために必要なパッケージをもれなくインストールしてくれるので大変便利です。 オプションを指定することで、目的に合わせたパッケージをインストールできるようになったので、 初めて OpenRTM-aist をインストールしてみる方にもソースをコンパイルしてみる方にもお勧めします。
ただし、OpenRTM-aist 関係のすべてのパッケージをインストールするので、必要ないものもインストールされる可能性があります。 詳しく理解している人は、手動でインストールした方がよいでしょう。
詳しいオプションやパッケージの種類につきましては、こちらをご確認ください。
openrtm.org では yum から利用可能なパッケージリポジトリを提供しています。 ただし、デフォルトのパッケージリポジトリには含まれていませんので、yum の設定を変更する必要があります。
以下のような設定を記録したファイル /etc/yum.repos.d/openrtm.repo を作成しておきます。作成には通常 root 権限が必要です。
[openrtm] name=Fedora $releasever - $basearch failovermethod=priority baseurl=http://openrtm.org/pub/Linux/Fedora/releases/$releasever/Fedora/$basearch/os/Packages enabled=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEY
openrtm.repo を作成したら、次の手順でインストールを行います。 途中、いくつかの応答を求められるので、y を入力しながら完了させます。
> su # yum install python # yum install omniORB-servers omniORBpy omniORBpy-devel omniORBpy-standard # yum install OpenRTM-aist-Python OpenRTM-aist-Python-example
最後に以下のコマンドでインストールの確認をします。
# rpm -qa | grep OpenRTM-aist-Python OpenRTM-aist-Python-example-1.1.0-RELEASE0.fcx.i386 OpenRTM-aist-Python-1.1.0-RELEASE0.fcx.i386
各パッケージの内容は以下の通りです。
OpenRTM-aist-Python には Python モジュールとコマンド群が含まれています。
/usr/bin/rtcprof_python /usr/bin/rtcd_python
/usr/lib/python<version>/site-packages/OpenRTM_aist/*
/usr/lib/python<version>/site-packages/OpenRTM_aist/utils/rtcprof /usr/lib/python<version>/site-packages/OpenRTM_aist/utils/rtcd /usr/lib/python<version>/site-packages/OpenRTM_aist/utils/rtc-template /usr/lib/python<version>/site-packages/OpenRTM_aist/utils/rtm-naming
OpenRTM-aist-Python-example には RTC のサンプルが含まれています。
/usr/share/openrtm-1.1/example/python/SimpleIO/ /usr/share/openrtm-1.1/example/python/SimpleService/ 中略
以上、インストールが終了しましたら、動作確認へ進みましょう。
Python 版 OpenRTM-aist は Vine Linux で利用可能な RPM パッケージが提供されています。 対応している Vine Linux のバージョンは、ダウンロードページから確認できます。 Vine Linux への対応およびそのバージョンは、予告なしに変更または停止されることがありますので、予めご了承ください。
Vine Linux へのインストールの方法には大きく分けて以下の二種類のインストール方法があります。
openrtm.org が提供するインストール・スクリプト pkg_install_python_vine.sh をダウンロードページからダウンロードし、root 権限で実行します。 このスクリプトは、必要なパッケージを順次 apt-get でインストールしていきます。
OpenRTM-aist を開発・実行するために必要なパッケージをもれなくインストールしてくれるので大変便利です。 初めて OpenRTM-aist をインストールしてみる方にお勧めします。 ただし、OpenRTM-aist 関係のすべてのパッケージをインストールするので、必要ないものもインストールされる可能性があります。 より詳しくわかっている人は、手動でインストールした方がよいでしょう。 以下、一括インストールスクリプトを使用したインストールの手順です。
> wget [pkg_install_python_vine.sh のダウンロード URL ] > su # sh pkg_install1_python_vine.sh //途中、いくつかの質問をたずねられるので、''y'' あるいは ''Y'' を入力しながら完了させる。
openrtm.org では apt-get から利用可能なパッケージリポジトリを提供しています。 ただし、デフォルトのパッケージリポジトリには含まれていませんので、apt-get の設定を変更する必要があります。 まず、/etc/apt/sources.list の末尾に次の一文を追記します。このとき root 権限が必要ですので注意してください。
rpm http://www.openrtm.org/pub/Linux/Vine/apt x.x/$(ARCH) main
ここで、x.x の部分はバージョン番号です。例えば、Vine5.0 なら x.x を 5.0 と置き換えます。
rpm http://www.openrtm.org/pub/Linux/Vine/apt 5.0/$(ARCH) main
sources.list を書き変えたら、次の手順でインストールを行います。
> su # apt-get update # apt-get install python # apt-get install omniORB-servers omniORBpy omniORBpy-devel omniORBpy-standarda # apt-get install OpenRTM-aist-Python OpenRTM-aist-Python-example
途中、いくつかの質問を尋ねられるので、y あるいは Y を入力して完了させます。apt-get は 現在は synaptic コマンドで置き換えることが推奨されています。
インストールの確認を以下のようにして行います。
# rpm -qa | grep OpenRTM-aist-Python OpenRTM-aist-Python-example-1.0.0-RELEASE.vlXX OpenRTM-aist-Python-1.0.0-RELEASE0.vlXX
各パッケージの内容は以下の通りです
OpenRTM-aist-Python には Python モジュールとコマンド群が含まれています。
/usr/bin/rtcprof_python /usr/bin/rtcd_python
/usr/lib/python<version>/site-packages/OpenRTM_aist/examples/rtc.conf.sample
/usr/lib/python<version>/site-packages/OpenRTM_aist/*
/usr/lib/python<version>/site-packages/OpenRTM_aist/utils/rtcprof /usr/lib/python<version>/site-packages/OpenRTM_aist/utils/rtcd /usr/lib/python<version>/site-packages/OpenRTM_aist/utils/rtc-template /usr/lib/python<version>/site-packages/OpenRTM_aist/utils/rtm-naming
OpenRTM-aist-Python-example には RTC のサンプルが含まれています。
/usr/share/OpenRTM-aist/examples/python/SimpleIO/ /usr/share/OpenRTM-aist/examples/python/SimpleService/ 中略
以上、インストールが終了しましたら、動作確認へ進みましょう。
Windows 上でソースパッケージからインストールしたい場合、OpenRTM-aist-Python を自分でビルドする必要があります。
Windows 用の OpenRTM-aist (Python版) ソースパッケージは Linux 用のソースとは別に配布されています。 ソースコードの内容は全く同じですが、以下の部分が異なっています。
オリジナルは subversion リポジトリのソースコードで、そのソースコードから、Linux 上では、
の2種類を、
Windows 上では、
の1種類だけを作成する構成になっています。
ビルドに必要な環境、ライブラリは以下の通りです。
Python 2.7 が必要です。以下のサイトから最新のものを取得しインストールしてください。
インストーラを起動すると、ウィザードで幾つか選択する部分がありますが、 デフォルトのままでインストールしてかまいません。
OpenRTM-aist-Python のビルドには omniORBpy のライブリが必要です。omniORBpy は以下のリンクから、ソースコードおよびバイナリを取得できます。
ZIPファイルを展開すると、以下の様なディレクトリツリーが展開されるはずです。 それぞれのディレクトリー下のファイルを以下の指示通りに Python のディレクトリーに配置してください。 なお、omniORBpy のバージョンを x.y, Python のバージョンを X.Y として記述しています。
+ omniPRBpy-x.y + bin + x86_win32 -> exe, dllともに C:\PythonXY 直下へ + doc -> 削除してもよい + examples -> 削除してもよい + idl -> 削除してもよいが C:\PythonXY\Lib\site-packages\omniORB\idl 以下においておいてもよい + lib + python -> 以下のディレクトリとファイルを丸ごと C:\PythonXY\Lib\site-packages 直下へ + x86_win32 -> .pyd を C:\PythonXY\Lib\site-packages 直下へ
まずソースコード OpenRTM-aist-Python-X.X.X.zip をダウンロードし、適当なディレクトリーに展開します。
コマンドプロンプトを起動し、先程ソースコードを展開したフォルダーに移動後、以下のコマンドにてビルドを行います。
> OpenRTM-aist-Python-X.X.X > python setup.py build
すべてが正しくビルドできたら、以下のコマンドにてインストールを完了させます。
> python setup.py install
以上で、OpenRTM-aist のインストールは終了です。
パッケージが用意されていない UNIX 環境や、クロス開発環境、OpenRTM-aist-Python 本体のソースを変更して利用したい場合には、ソースからビルドすることができます。
OpenRTM-aist (Python版) は Python の distutils モジュール を利用したビルド環境を提供しているため、様々な環境で容易にビルドできます。
OpenRTM-aist-Python は下記の OS および Linux ディストリビューションで動作することが確認されています。
これ以外の環境でも、一般的な Linux/UNIX 環境であれば、ビルドできる可能性があります。
OpenRTM-aist-Python-1.0.0 のインストールには下記の開発環境およびライブラリが必要です。
それぞれのライブラリ等のドキュメントに従いインストールを行ってください。 これらのパッケージが、標準のディレクトリー(/usr、/usr/lib/ 等)下にインストールされていると、以降の OpenRTM-aist-Python のビルド作業を比較的簡単に行うことができます。
OpenRTM-aist-Python のソースをダウンロードします。
まずソースコード OpenRTM-aist-Python-X.X.X.tar.gz を適当なディレクトリに展開します。
$ tar xvzf OpenRTM-aist-Python-X.X.X.tar.gz $ cd OpenRTM-aist-Python-X.X.X
OpenRTM-aist-Python はパッケージのビルドに distutils モジュール を使用しています。 ビルドの仕方は、他の distutils を使用したパッケージと同様に行います。
$ python setup.py build [options]
[options]で使用可能なオプションは
$ python setup.py --help
で参照して下さい。
ビルド が正常に終了したら、Python モジュール、ユーティリティコマンド群をインストールします。
$ su # python setup.py install
以上で、ソースコードからのビルドおよびインストールは終了です。
OpenRTM-aist は開発に利用している subversion リポジトリを一般に公開しています。 リポジトリからチェックアウトしたソースコードからビルドを行うこともできます。
ソースをリポジトリからチェックアウトします。
$ svn co http://svn.openrtm.org/OpenRTM-aist-Python/trunk/OpenRTM-aist-Python A OpenRTM-aist-Python/OpenRTM_aist A OpenRTM-aist-Python/OpenRTM_aist/CorbaPort.py A OpenRTM-aist-Python/OpenRTM_aist/__init__.py A OpenRTM-aist-Python/OpenRTM_aist/Guard.py A OpenRTM-aist-Python/OpenRTM_aist/RTM_IDL A OpenRTM-aist-Python/OpenRTM_aist/RTM_IDL/RTC.idl A OpenRTM-aist-Python/OpenRTM_aist/RTM_IDL/Manager.idl 中略 A OpenRTM-aist-Python/installer/WixUI_es-es.wxl A OpenRTM-aist-Python/installer/WixUI_fr-fr.wxl A OpenRTM-aist-Python/installer/WixUI_de-de.wxl A OpenRTM-aist-Python/installer/WixUI_cs-cz.wxl A OpenRTM-aist-Python/installer/WixUI_da-dk.wxl リビジョン 349 をチェックアウトしました。
チェックアウトすると、OpenRTM-aist-Python というディレクトリーができているはずですので、そのディレクトリーに入ります。
$ ls OpenRTM-aist-Python $ cd OpenRTM-aist-Python $ ls MANIFEST.in OpenRTM-aist.pth README setup.py MANIFEST_examples.in OpenRTM_aist/ installer/
setup.py を使用してビルドします。
$ python setup.py build
python setup.py sdist を行うことで openrtm.org で配布しているようなソースのパッケージを作成することもできます。 ただし、パッケージの作成を行うには、doxygen や latex、qkc等、さらに追加のコマンドが必要となります。
$ python setup.py sdist
$ ls -l dist/ -rw-rw-r-- 1 openrtm openrtm 2721202 2月 24 16:43 OpenRTM-aist-Python-1.1.0.tar.gz -rw-rw-r-- 1 openrtm openrtm 4686452 2月 24 16:43 OpenRTM-aist-Python-1.1.0.zip
生成されたソースパッケージはそれぞれ以下の通りです。
インストールまたはビルドが正常に終了したら、付属のサンプルで動作テストをします。サンプルは、通常は以下の場所にあります。
サンプルコンポーネントセット SimpleIO を使って、OpenRTM-aist が正しくビルド・インストールされているかを確認します。
RT コンポーネント ConsoleIn、ConsoleOut からなるサンプルセットです。 ConsoleIn はコンソールから入力された数値を OutPort から出力するコンポーネント、ConsoleOut は InPort に入力された数値をコンソールに表示するコンポーネントです。 これらは、最も Simple な I/O (入出力) を例示するためのサンプルです。 ConsoleIn の OutPort から ConsoleOut の InPort へ接続を構成し、これらの2つのコンポーネントをアクティブ化 (Activate) することで動作します。
以下は、msi インストーラーで OpenRTM-aist-Python をインストールした環境で、スタートメニューから各種プログラムを起動する前提で説明します。 スタートメニューから、OpenRTM-aist を右クリックし「開く」でフォルダーを開き、各プログラムへアクセスすると便利です。
まず、コンポーネントの参照を登録するためのネームサーバーを起動します。 [OpenRTM-aist 1.1] > [Tools] にあるショートカットの [Start Python Naming Service] をクリックしネームサーバーを起動します。
起動すると、以下のようなコンソール画面が開きます。
ネームサーバーのコンソール画面が開かないケースがあります。 この場合下記のようないくつかの原因が考えられますので、原因を調査して対処してください。
openrtm.org が提供する msi インストーラーには omniORBpy が含まれていますが、カスタムインストールを選択すると、omniORBpy をインストールせずに OpenRTM-aist-Python をインストールすることもできます。
また、手動でインストールした場合には、omniORBpy が入っていない場合も考えられますので、omniORBpy がインストールされているか確認してください。
ネームサーバーを起動するファイルは、C:\Program Files (x86)\OpenRTM-aist\1.1\bin\rtm-naming.py です。(32bit 版 msi でインストールした場合)
このディレクトリーでコンソール画面を開き、python rtm-naming.py を実行するとネームサーバーは起動するが、rtm-naming.py をダブルクリックして起動できない場合はインストールしている python を確認してください。
Python の 32bit 版、64bit 版の両方をインストールしている場合、先にインストールしたものが py ファイルに関連付けられるようなので、OpenRTM-aist-Python のインストーラーと同じアーキテクチャの Python を先にインストールすると解決するかもしれません。
ホスト名やアドレスの設定の問題で、起動がうまくいかないケースがあります。 その場合、利用している PC の IP アドレスを omniNames.exe に教えてあげるとうまくいくケースがあります。 環境変数 OMNIORB_USEHOSTNAME を以下のように設定します (以下は自ホストの IPアドレスが192.168.0.11の場合の例)。
変数名(N): OMNIORB_USEHOSTNAME 変数値(V): 192.168.0.11
ネームサーバー起動後、適当なサンプルコンポーネントを起動します。 先ほど開いたスタートメニューフォルダーの、[OpenRTM-aist 1.1] > [Python] > [Components] > [Examples] を開くと、図のようにいくつかのコンポーネントがあります。
ここでは、「ConsoleIn.py」「ConsoleOut.py」をそれぞれダブルクリックして2つのコンポーネントを起動します。 起動すると、下図のような2つのコンソール画面が開きます。
コンポーネントが起動しない場合、いくつかの原因が考えられます。
rtc.conf の設定に問題があり、起動できないケースがあります。 サンプルコンポーネントのインストールフォルダー(インストール時に何も指定しなかった場合 C:\Program Files\OpenRTM-aist\1.0\examples\Python\SimpleIO) の「rtc.conf」を開いて設定を確認してください。 例えば、corba.endpoint/corba.endpoints などの設定が現在実行中の PC のホストアドレスとミスマッチを起こしている場合などは、CORBA が異常終了します。
以下のような最低限の rtc.conf に設定しなおして試してみてください。
corba.nameservers: localhost
スタートメニューフォルダーから、RTSystemEditor を起動します。 RTSystemEditorは [OpenRTM-aist] > [Tools] > [RTSystemEditorRCP] にあります。
※ RTSystemEditor (RCP 版) を動作させるために、32bit 版の Java 動作環境 (JRE) または Java 開発環境 (JDK) が必要で、1.1.0-RELEASE 版では JRE が一緒にインストールされます。
RTSE が起動したらまずネームサーバーへ接続します。 左ペインの上部にある、のアイコンをクリックして接続ダイアログを開きます。 接続ダイアログのホスト名の部分に先ほど起動したネームサーバーのアドレス (この場合同一ホストですので localhost) を指定します。 ポート番号も指定できますが、通常デフォルトの2809番を使用する場合は何も指定しません。
接続すると、ネームサービスビューに localhost が表示されます。 ツリー表示の [+] をクリックすると、先ほど起動した2つのコンポーネントが登録されていることがわかります。
システムを編集するエディタを開きます。上部のエディタを開くボタン をクリックすると、中央のペインにエディタが開きます。
左側のネームサービスビューに のアイコンで表示されているコンポーネント (2つ) を中央のエディタにドラッグアンドドロップします。
ConsoleIn0 コンポーネントの右側にはデータが出力される OutPort 、ConsoleOut0 コンポーネントの左側にはデータが入力される InPort
がそれぞれついています。
これら InPort/OutPort (まとめてデータポートと呼びます) を接続します。 OutPort から InPort (または InPort から OutPort) へドラッグランドドロップすると、図のようなダイアログが表示されますので、デフォルト設定のまま [OK] ボタンをクリックします。
2つのコンポーネントの間に接続線が表示されます。次に、エディタ上部メニューの [All Activate] ボタン をクリックし、これらのコンポーネントをアクティブ化します。 アクティブ化されると、コンポーネントが緑色に変化します。
コンポーネントがアクティブ化されると ConsoleIn コンポーネント側では
Please input number:
というプロンプト表示に変わりますので、適当な数値 (short int の範囲内:32767以下) を入力し Enter キーを押します。 すると、ConsoleOut 側では、入力した数値が表示され、ConsoleIn コンポーネントから ConsoleOut コンポーネントへデータが転送されたことがわかります。
以上で、コンポーネントの基本動作の確認は終了です。
インストーラーには、このほかにもいくつかのサンプルコンポーネントが付属しています。 これらのコンポーネントも同様に起動し、RTSystemEditor でポート同士を接続し、アクティブ化することで試すことができます。
付属しているコンポーネントのリストと簡単な説明を以下に示します。
ConsoleIn.py | コンソールから入力された数値を OutPort から出力する。ConsoleOut.py に接続して使用する。 |
ConsoleOut.py | InPort に入力された数値をコンソールに表示するコンポーネント。ConsoleIn.py に接続して使用する。 |
SeqIn.py | ランダムな数値(Short、Long、Float、Double とそのシーケンス型)を出力するコンポーネント。SeqOut.py に接続して使用する。 |
SeqOut.py | InPort に入力される数値(Short、Long、Float、Doubleとそのシーケンス型)を表示。SeqIn.py に接続して使用する。 |
MyServiceProvider.py | MyService 型のサービスを提供するコンポーネント。MyServiceConsumer.py に接続して使用する。 |
MyServiceConsumer.py | MyService 型のサービスを利用するコンポーネント。MyServiceProvider.py に接続して使用する。 |
ConfigSample.py | Configuration のサンプル。RTSystemEditor から Configuration を変更して Configuration の挙動を理解するためのサンプル。 |
TkMobileRobotSimulator.py | モバイルロボットの簡易シミュレーター。ロボットの速度を InPort で受け、移動後の位置を OutPort から出力する。 |
NXTRTC.py | LEGO MINDSTORM にて作成したモバイルロボットを制御するためのサンプル。InPort にて速度を受け、赤外線センサーと現在位置をそれぞれ OutPort から出力する。 |
AutoControl.py | モバイルロボット用の速度を出力する。測位センサーのデータを InPort で受け、ロボットの速度を計算して OutPort から出力する。 |
Composite.py | Composite 用のサンプル。Motor、Controller、Sensorを包含するコンポーネント。Composite の使用方法を理解するためのサンプル。 |
Motor.py | Composite コンポーネント用のサンプル。Composite の子要素として使用。 |
Controller.py | Composite コンポーネント用のサンプル。Composite の子要素として使用。 |
Sensor.py | Composite コンポーネント用のサンプル。Composite の子要素として使用。 |
Slider.py | Tk を用いた GUI コンポーネントのサンプル。Slider で指定した値を OutPort から出力する。 |
TkMotorComp.py | Tk を用いた GUI コンポーネントのサンプル。InPort で受け取った値を GUI で表示する。 |
TkLRFViewer.py | Tk を用いた GUI コンポーネントのサンプル。レーザーレンジセンサーなどから出力されるデータを表示する。 |
TkJoystickComp.py | Tk を用いた GUI コンポーネントのサンプル。簡易ジョイスティックコンポーネント。 |
インストールが正常に終了したら、付属のサンプルで動作テストをします。サンプルは、通常は以下の場所にあります。
ソースからビルドした場合は、ソースディレクトリー以下の
にもあります。
サンプルコンポーネントセット SimpleIO を使って、OpenRTM-aist が正しくビルド・インストールされているかを確認します。
RT コンポーネント ConsoleInComp、ConsoleOutComp からなるサンプルセットです。 ConsoleInComp はコンソールから入力された数値をOutPortから出力するコンポーネント、ConsoleOutComp は InPort に入力された数値をコンソールに表示するコンポーネントです。 これらは、最も Simple な I/O (入出力) を例示するためのサンプルです。ConsoleInComp の OutPort から ConsoleOutComp の InPort へ接続を構成し、これらの2つのコンポーネントをアクティブ化(Activate) することで動作します。
以降、簡単のためサンプルは /usr/share/openrtm-1.1/example/python 以下にあるものとして説明を記述します。
まず、コンポーネントの参照を登録するためのネームサーバーを起動します。 Linux などのパッケージで omniORBpy をインストールした場合、すでにシステムのサービスとしてネームサーバー (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
omniNames が起動していない場合、rtm-naming コマンドでネームサーバーを起動します。
$ rtm-naming Starting omniORB omniNames: ubuntu910:2809 Thu Dec 3 18:52:14 2009: Starting omniNames for the first time. Wrote initial log file. Read log file successfully. Root context is IOR:010000002b00000049444c3a6f6d672e6f72672f436f734e616d696e672f4e616d696e67436f6e746578744578743a312e30000001000000000000007400000001010200100000003139322e3136382e3130302e31323500942600000b0000004e616d6553657276696365000300000000000000080000000100000000545441010000001c0000000100000001000100010000000100010509010100010000000901010003545441080000004e8a174b01000fef Checkpointing Phase 1: Prepare. Checkpointing Phase 2: Commit. Checkpointing completed.
rtm-naming コマンドが見つからない場合は、rtm-naming,py を実行して下さい。(例:Fedora環境)
$ python /usr/lib/python<version>/site-packages/OpenRTM_aist/utils/rtm-naming/rtm-naming.py
テストのための RTC コンフィギュレーションファイル rtc.conf を作成し、配置します。まず、適当な作業ディレクトリーを作ります。 ここでは便利のため、ホームディレクトリー直下に RTCwork というディレクトリーを作業ディレクトリーとしておくことにします。 作業ディレクトリー RTCwork に、次のような内容のファイル rtc.conf を作成し配置します。
~/RTCWork/rtc.conf として新たに作成してください。
$ cd ~/RTCwork $ vi rtc.conf
作成するファイルの内容は以下のようになります。
corba.nameservers: localhost naming.formats: %h.host_cxt/%n.rtc logger.enable: NO example.ConsoleOut.config_file: consout.conf example.ConsoleIn.config_file: consin.conf
システムで IPv6 が設定されている場合、localhost というホスト名が正しく機能しない場合があります。 その場合、localhostの代わりに127.0.0.1に置き換えてください。
ターミナルを起動して、次のように前節で作成した rtc.conf を参照させる形で ConsoleIn.py を起動します。
$ python /usr/share/openrtm-1.1/example/python/SimpleIO/ConsoleIn.py -f ~/RTCwork/rtc.conf comp_args: ConsoleIn
自分でビルド・インストールした場合は、
$ python <source_dir>/OpenRTM_aist/examples/SimpleIO/ConsoleIn.py -f ~/RTCwork/rtc.conf
などとして ConsoleIn コンポーネント を起動します。
ターミナルを起動して、同様に先ほど作成した rtc.conf を参照する形で ConsoleOut.py を起動します。
$ python /usr/share/openrtm-1.1/example/python/SimpleIO/ConsoleOut.py -f ~/RTCwork/rtc.conf comp_args: ConsoleOut
自分でビルド・インストールした場合は、同様に
$ python <source_dir>/OpenRTM_aist/examples/SimpleIO/ConsoleOut.py -f ~/RTCwork/rtc.conf
などとして ConsoleOut コンポーネント を起動します。
RTSystemEditor を使って、RTコンポーネントの接続とアクティブ化を行います。 こちらから Eclipse 全部入りパッケージをダウンロードし解凍してください。
RTSystemEditor は Java Development Kit7 を使用します。以下のマニュアルを参考にインストールしてください。 また、Ubuntu 等では、デフォルトの Java 環境は OpenJDK が推奨されています。 そうした場合、OpenJDKでも利用することは可能です。
こちらのページを参考にRTSystemEditorを起動してください。
ネームサーバーへ接続し登録内容を確認します。 ネームサーバーへの接続は、左側の Name Service View のコンセント型アイコンのボタンをクリックし、ダイアログで
localhost または localhost:2809
と入力します。(omniNames のデフォルトのポート番号は2809です。)
ネームサーバーに登録された RTコンポーネントをシステムエディタに配置します。 左の Name Service View のConsoleOut0 および ConsoleIn0 を中央のエディタ上にドラッグアンドドロップします。 次に、コンポーネントの右端、左端に出ている突起上のアイコンを、片方からもう片方へドラッグアンドドロップします。 接続ダイアログが表示されますが、すべてデフォルトのままで結構ですので OK をクリックして接続を完了します。
メニューの下の緑色の [再生] ボタンをクリックすると、エディタ上のすべてのコンポーネントがアクティブ化されます。
ConsoleInComp と ConsoleOutComp のポートを接続したら、
Please input number:
というプロンプトが現れるので、そこに数字を入力します。入力する数字は、short int に収まる範囲の数値を入力してください。
ConsoleInComp 側のターミナルに数字を打ち込むと、ConsoleOutComp 側のターミナルに、入力した数値が現れます。 以上で、OpenRTM-aist-Python が正しくインストールされていることが確認できました。