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

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

Windowsへのインストール

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

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

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

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

インストーラーの起動

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

インストールの詳細

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

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

  • インストールディレクトリー (デフォルトは C:\Python<version>) 以下に各種ファイルをコピー
  • インストールディレクトリー (デフォルトは 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 への追加設定
    • 32 bit 用 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 コマンドによる 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:

以上、インストールが終了しましたら、動作確認 へ進みましょう。

Ubuntu/Debianへのインストール

ubuntu_logo2.png

Python 版 OpenRTM-aist は Ubuntu や Debian GNU Linuxで利用可能な deb パッケージが提供されています。 対応しているディストリビューションのバージョンは、ダウンロードページから確認できます。 Ubuntu/Debian GNU Linux への対応およびそのバージョンは、予告なしに変更または停止されることがありますので、予めご了承ください。

インストールの方法には大きく分けて以下の二種類のインストール方法があります。

  • openrtm.org が提供する一括インストールスクリプトを使用
  • apt-get や synaptic パッケージマネージャを使用

好みの方法でインストールしてください。

一括インストール・スクリプトを使う方法

openrtm.org が提供するインストール・スクリプト pkg_install_ubuntu.sh または pkg_install_debian.sh をダウンロードページからダウンロードし、root 権限で実行します。 このスクリプトは、必要なパッケージを順次 apt-get でインストールしていきます。

OpenRTM-aist を開発・実行するために必要なパッケージをもれなくインストールしてくれるので大変便利です。 オプションを指定することで、目的に合わせたパッケージをインストールできるようになったので、 初めて OpenRTM-aist をインストールしてみる方にもソースをコンパイルしてみる方にもお勧めします。

ただし、OpenRTM-aist 関係のすべてのパッケージをインストールするので、必要ないものもインストールされる可能性があります。 詳しく理解している人は、手動でインストールした方がよいでしょう。

詳しいインストール方法や、オプション・パッケージの種類につきましては、一括インストール・スクリプト をご確認ください。

apt-get を使う方法

source.list の編集

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

apt-get によるインストール

次の手順でインストールを行います。途中、いくつかの応答を求められるので、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

openrtm-aist-python には Python モジュールとコマンド群が含まれています。

  • コマンド
     /usr/bin/rtcprof_python
     /usr/bin/rtcd_python
  • 設定ファイルサンプル
     /usr/etc/rtc.conf.sample
  • OpenRTM-aist 本体の Python モジュール
     /usr/lib/python<version>/dist-packages/OpenRTM_aist/*
  • 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

openrtm-aist-python-exampleには RTC のサンプルが含まれています。

  • サンプル
     /usr/share/openrtm-1.1/example/python/SimpleIO/
     /usr/share/openrtm-1.1/example/python/SimpleService/
     中略

以上、インストールが終了しましたら、動作確認へ進みましょう。

Fedoraへのインストール

Python 版 OpenRTM-aist は Fedora Linux で利用可能な RPM パッケージが提供されています。 対応している Fedora Linux のバージョンは、ダウンロードページから確認できます。 Fedora Linux への対応およびそのバージョンは、予告なしに変更または停止されることがありますので、予めご了承ください。

Fedora Linuxへのインストールの方法には大きく分けて以下の二種類のインストール方法があります。

  • openrtm.org が提供する一括インストールスクリプトを使用
  • yum パッケージマネージャを使用

一括インストール・スクリプト

openrtm.org が提供するインストール・スクリプト pkg_install_fedora.sh をダウンロードページからダウンロードし、root 権限で実行します。このスクリプトは、必要なパッケージを順次 yum でインストールしていきます。

OpenRTM-aist を開発・実行するために必要なパッケージをもれなくインストールしてくれるので大変便利です。 オプションを指定することで、目的に合わせたパッケージをインストールできるようになったので、 初めて OpenRTM-aist をインストールしてみる方にもソースをコンパイルしてみる方にもお勧めします。

ただし、OpenRTM-aist 関係のすべてのパッケージをインストールするので、必要ないものもインストールされる可能性があります。 詳しく理解している人は、手動でインストールした方がよいでしょう。

詳しいオプションやパッケージの種類につきましては、こちらをご確認ください。

yum を使う方法

/etc/yum.repos.d/openrtm.repo の作成

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
/etc/yum.repos.d/openrtm.repo

yum によるインストール

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

OpenRTM-aist-Python には Python モジュールとコマンド群が含まれています。

  • コマンド
     /usr/bin/rtcprof_python
     /usr/bin/rtcd_python
  • OpenRTM-aist 本体の Python モジュール
     /usr/lib/python<version>/site-packages/OpenRTM_aist/*
  • 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

OpenRTM-aist-Python-example には RTC のサンプルが含まれています。

  • サンプル
     /usr/share/openrtm-1.1/example/python/SimpleIO/
     /usr/share/openrtm-1.1/example/python/SimpleService/
     中略

以上、インストールが終了しましたら、動作確認へ進みましょう。

Vine Linuxへのインストール

Python 版 OpenRTM-aist は Vine Linux で利用可能な RPM パッケージが提供されています。 対応している Vine Linux のバージョンは、ダウンロードページから確認できます。 Vine Linux への対応およびそのバージョンは、予告なしに変更または停止されることがありますので、予めご了承ください。

Vine Linux へのインストールの方法には大きく分けて以下の二種類のインストール方法があります。

  • openrtm.org が提供する一括インストールスクリプトを使用
  • apt-get や synaptic パッケージマネージャを使用

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'' を入力しながら完了させる。

apt-get を使う方法

sources.list の修正

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.x5.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

OpenRTM-aist-Python には Python モジュールとコマンド群が含まれています。

  • コマンド
     /usr/bin/rtcprof_python
     /usr/bin/rtcd_python
  • サンプル設定ファイル
     /usr/lib/python<version>/site-packages/OpenRTM_aist/examples/rtc.conf.sample
  • OpenRTM-aist 本体の Python モジュール
     /usr/lib/python<version>/site-packages/OpenRTM_aist/*
  • 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

OpenRTM-aist-Python-example には RTC のサンプルが含まれています。

  • サンプル
     /usr/share/OpenRTM-aist/examples/python/SimpleIO/
     /usr/share/OpenRTM-aist/examples/python/SimpleService/
     中略

以上、インストールが終了しましたら、動作確認へ進みましょう。

ソースからのビルド (Windows編)

Windows 上でソースパッケージからインストールしたい場合、OpenRTM-aist-Python を自分でビルドする必要があります。

Windows 用ソースコード

Windows 用の OpenRTM-aist (Python版) ソースパッケージは Linux 用のソースとは別に配布されています。 ソースコードの内容は全く同じですが、以下の部分が異なっています。

  • 文字コード (Windows: Shift-JIS、Linux: EUC)

ソースコードの構成

オリジナルは subversion リポジトリのソースコードで、そのソースコードから、Linux 上では、

  • Linux/Unix 用ソースコード配布パッケージ
  • Windows 用ソースコード配布パッケージ

の2種類を、

Windows 上では、

  • Windows 用ソースコード配布パッケージ

の1種類だけを作成する構成になっています。

ビルド環境

ビルドに必要な環境、ライブラリは以下の通りです。

  • Python
  • omniORBpy

Python

Python 2.7 が必要です。以下のサイトから最新のものを取得しインストールしてください。

インストーラを起動すると、ウィザードで幾つか選択する部分がありますが、 デフォルトのままでインストールしてかまいません。

omniORBpy

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 のインストールは終了です。

ソースからのビルド (Linux編)

パッケージが用意されていない UNIX 環境や、クロス開発環境、OpenRTM-aist-Python 本体のソースを変更して利用したい場合には、ソースからビルドすることができます。

配布ソースのビルド

OpenRTM-aist (Python版) は Python の distutils モジュール を利用したビルド環境を提供しているため、様々な環境で容易にビルドできます。

対応 OS およびディストリビューション

OpenRTM-aist-Python は下記の OS および Linux ディストリビューションで動作することが確認されています。

  • FreeBSD
  • Vine Linux
  • Fedora
  • Debian
  • Ubuntu

これ以外の環境でも、一般的な Linux/UNIX 環境であれば、ビルドできる可能性があります。

依存ライブラリ

OpenRTM-aist-Python-1.0.0 のインストールには下記の開発環境およびライブラリが必要です。

  • python: ビルドツールを利用するために必要
  • omniORBpy: OpenRTM-aist のビルド (IDL コンパイル) に必要

それぞれのライブラリ等のドキュメントに従いインストールを行ってください。 これらのパッケージが、標準のディレクトリー(/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

生成されたソースパッケージはそれぞれ以下の通りです。

  • OpenRTM-aist-Python-1.1.0.tar.gz: 汎用ソース (gzip 圧縮)
  • OpenRTM-aist-Python-1.1.0.zip: Windows 用ソース

動作確認 (Windows編)

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

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

  • スタートメニュー: [スタート] > [OpenRTM-aist 1.1] > [Python] > [Components] > [Examples]
  • C:\Program Files\OpenRTM-aist\1.1\examples\Python
  • OpenRTM_aist/examples (ソースからビルドした場合)

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

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

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

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

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

ネームサーバーの起動

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

win_start_tool_python_ja.png
ネームサーバーへのショートカット

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

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

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

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

omniORBpy がインストールされていない。

openrtm.org が提供する msi インストーラーには omniORBpy が含まれていますが、カスタムインストールを選択すると、omniORBpy をインストールせずに OpenRTM-aist-Python をインストールすることもできます。

また、手動でインストールした場合には、omniORBpy が入っていない場合も考えられますので、omniORBpy がインストールされているか確認してください。

py ファイルの関連付けが違っている

ネームサーバーを起動するファイルは、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] を開くと、図のようにいくつかのコンポーネントがあります。

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

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

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

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

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

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

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 (RTSE) の起動

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

rtse_start_ja.png
RTSystemEditor の起動

※ RTSystemEditor (RCP 版) を動作させるために、32bit 版の Java 動作環境 (JRE) または Java 開発環境 (JDK) が必要で、1.1.0-RELEASE 版では JRE が一緒にインストールされます。

ネームサーバーへの接続

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

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

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

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

エディタへの配置

システムを編集するエディタを開きます。上部のエディタを開くボタン rtse_open_editor_icon.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_activate_icon.png をクリックし、これらのコンポーネントをアクティブ化します。 アクティブ化されると、コンポーネントが緑色に変化します。

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

コンポーネントがアクティブ化されると 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 コンポーネントのサンプル。簡易ジョイスティックコンポーネント。

動作確認 (Linux編)

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

  • /usr/share/openrtm-1.1/example/python
  • /usr/local/share/OpenRTM-aist/examples/python

ソースからビルドした場合は、ソースディレクトリー以下の

  • OpenRTM_aist/examples/<サンプルコンポーネントセット名>

にもあります。

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

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

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.conf の作成

テストのための 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
rtc.conf

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

ConsoleIn コンポーネントの起動

ターミナルを起動して、次のように前節で作成した 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 コンポーネント を起動します。

ConsoleOut コンポーネントの起動

ターミナルを起動して、同様に先ほど作成した 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 の起動

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

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

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

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

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

 localhost
 または
 localhost:2809

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

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

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

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

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

数値入力と出力の確認

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

 Please input number: 

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

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