OpenRTM-aist 1.1系のインストール

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

C++言語版の OpenRTM-aist は、パッケージやインストーラーが用意されており、多くの OS やディストリビューションで手軽にインストールすることができます。また、ソースをダウンロードして、自分の環境に合わせてビルドすることもできます。 ここでは、C++言語版 OpenRTM-aist のそれぞれの方法でのインストールの仕方について説明します。

Windowsへのインストール

windows_logo.png

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

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

openrtm.org のダウンロードサイトから、msi パッケージをダウンロードします。Python、PyYAML、CMake、Doxygen も必要ですのでインストールしてください。
コンポーネントの開発を行う場合は、Visual Studio が必要です。こちらのページ から無償版をダウンロードできます。

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

インストーラーの起動

手順については、1.1.2 版用の OpenRTM-aistを10分で始めよう! のページをご覧ください。
1.1.1 版をご利用の場合は、OpenRTM-aistを10分で始めよう!(OpenRTM-aist 1.1.1) のページをご覧ください。
1.0.0 版をご利用の場合は、OpenRTM-aistを10分で始めよう!(OpenRTM-aist 1.0.0) のページをご覧ください。

インストールの詳細

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

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

  • インストールディレクトリー (デフォルトは 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:
         + jre: OpenJDK JRE
         + omniORB
         + OpenCV
         + rtm: OpenRTM-aist ヘッダファイル
            + idl: OpenRTM-aist IDLファイル
         + util
            + OpenRTP:
            + RTSystemEditor:
            + rtc-template:

Ubuntu/Debianへのインストール

ubuntu_logo2.png

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

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

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

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

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

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

オプションを指定することで、目的に合わせたパッケージをインストールできるようになったので、 初めて 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 LTS trusty
Ubuntu 16.04 LTS xenial
Ubuntu 16.10 yakkety
Ubuntu 17.04 zesty

Ubuntun の過去・現在のバージョン/コードネームは、https://wiki.ubuntu.com/Releases から確認できます。

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

次の手順でインストールを行います。途中、いくつかの応答を求められるので、 y を入力しながら完了させてください。

 # apt-get update
 # apt-get install gcc g++ make uuid-dev
 # apt-get install libomniorb4-dev omniidl
 # apt-get install openrtm-aist openrtm-aist-doc openrtm-aist-dev openrtm-aist-example

なお、インストール済みの OpenRTM-aist を特定バージョンのまま保持したい場合には、/etc/apt/preferencesを編集して以下の行を追加します。(この例では1.0系列にバージョンを固定します。)

 Package: OpenRTM-aist
 Pin: version 1.0.*

詳しくは http://www.debian.org/doc/manuals/apt-howto/ch-apt-get.ja.html#s-pin を参照してください。

Launchpad/PPA のパッケージ

Launchpad_logo.png

Launchpad は Canonical Ltd. により開発・管理されている、オープンソースソフトウエア開発のためのウェブアプリケーション及びウェブサイト( https://launchpad.net/ )です。 Launchpad サイト内には有志による Ubuntu のパッケージリポジトリ: PPA (Private Package Archive)があり、誰でも自分のソフトウエアのパッケージを公開することができます。

OpenRTM-aist も PPA で Ubuntu 用のパッケージを公開しており、自由に利用することができます。 PPA 上の OpenRTM-aist パッケージを利用する利点は、自分が作成した RTC を PPA 上で公開する場合、依存関係に PPA上の OpenRTM-aist のパッケージを含めることができ、また第3者がその RTC をインストールする際には PPA 上でパッケージの依存関係を完結させることができる点です。

以下、PPA上 の OpenRTM-aist のパッケージをインストールする手順を説明します。

PPA パッケージのインストール

PPA のパッケージインストールする方法は非常に簡単です。

まず、パッケージリポジトリに OpenRTM-aist の PPA のを追加します。OpenRTM-aist の PPAリポジトリ名は openrtm/stable です。

 $ sudo add-apt-repository ppa:openrtm/stable

パッケージデータベースをアップデート。

 $ sudo aptitude update

パッケージのインストールを行います。パッケージは、openrtm-aist(ランタイム)、openrtm-aist-dev(開発用ヘッダ)、openrtm-aist-doc(ドキュメント)、openrtm-aist-example(サンプル) の4種類の中から必要なものを選択しインストールします。

 $ sudo aptitude install openrtm-aist1.1 openrtm-aist1.1-dev openrtm-aist1.1-example

以上です。

OpenRTM-aist の PPAリポジトリ構成

OpenRTM-aist の PPAリポジトリは以下の3種類から構成されています。

リポジトリ名 概要
ppa:openrtm/stable 基本リポジトリ。通常インストールするパッケージ。命名規則は
openrtm-aist[-]{dev,doc,example}: 最新版パッケージ
openrtm-aistX.Y[-]{dev,doc,example}: マイナーバージョン別パッケージ
ppa:openrtm/archives アーカイブリポジトリ。過去のすべてのバージョンのパッケージ。命名規則は
openrtm-aistX.Y.Z[-]{dev,doc,example}: リビジョン別パッケージ
ppa:openrtm/unstable 不安定版リポジトリ。RC 版、ベータ版等のパッケージ。 命名規則は
openrtm-aistX.Y.ZrcW[-]{dev,doc,example}: リビジョン・RC番号別パッケージ

インストールの確認

インストールを確認します。

 $ dpkg -l 'openrtm*'
 Desired=Unknown/Install/Remove/Purge/Hold
 | Status=Not/Installed/Config-f/Unpacked/Failed-cfg/Half-inst/t-aWait/T-pend
 |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
 ||/ Name           Version        Description
 +++-==============-==============-============================================
 ii  openrtm-aist   1.0.0-0        OpenRTM-aist runtime libraries and configura
 ii  openrtm-aist-d 1.0.0-0        Header files for OpenRTM-aist development
 pn  openrtm-aist-d <none>         (no description available)
 ii  openrtm-aist-e 1.0.0-0        OpenRTM-aist examples

パッケージの詳細

各パッケージの内容は以下の通りです。

openrtm-aist

openrtm-aist にはランタイムライブラリとコマンド群が含まれています。

  • コマンド
     /usr/bin/rtcd
     /usr/bin/rtm-naming
  • ライセンス等
     /usr/share/doc/openrtm-aist/changelog.gz
     /usr/share/doc/openrtm-aist/README.Debian
     /usr/share/doc/openrtm-aist/README
     /usr/share/doc/openrtm-aist/README.jp
     /usr/share/doc/openrtm-aist/NEWS.gz
     /usr/share/doc/openrtm-aist/copyright
     /usr/share/doc/openrtm-aist/changelog.Debian.gz
  • 設定ファイルサンプル
     /usr/etc/rtc.conf.sample
  • ライブラリ
     /usr/lib/libRTC-X.X.X.so.X.X.X
     /usr/lib/libRTC.a
     /usr/lib/libRTC.la
     /usr/lib/libRTC.so
     /usr/lib/libRTC-X.X.X.so.X
    • 1.1.1版では、Debian は7.0以降、Ubuntu は12.04以降において、32/64bit のパスはそれぞれ以下のようになっています。
       ***** 32bit
       /usr/lib/i386-linux-gnu/libRTC-X.X.X.so.X.X.X
       /usr/lib/i386-linux-gnu/libRTC.a
       /usr/lib/i386-linux-gnu/libRTC.la
       ***** 64bit
       /usr/lib/x86_64-linux-gnu/libRTC-X.X.X.so.X.X.X
       /usr/lib/x86_64-linux-gnu/libRTC.a
       /usr/lib/x86_64-linux-gnu/libRTC.la

openrtm-aist-dev

openrtm-aist-devには、開発に必要なコマンド群とヘッダが含まれています。

  • コマンド
     /usr/bin/rtc-template
     /usr/bin/rtm-config
     /usr/bin/rtm-skelwrapper
  • ライセンス等
     /usr/share/doc/openrtm-aist-dev/changelog.gz
     /usr/share/doc/openrtm-aist-dev/copyright
     /usr/share/doc/openrtm-aist-dev/changelog.Debian.gz
  • ヘッダ
     /usr/include/rtm/DefaultPeriodicTask.h
     /usr/include/rtm/OutPortPullConnector.h
     中略
     /usr/include/rtm/ExecutionContextBase.h
     /usr/include/rtm/Manager.h
     /usr/include/coil/OS.h
     /usr/include/coil/UUID.h
     中略
     /usr/include/coil/Properties.h
  • ライブラリ・その他
     /usr/lib/openrtm-1.1/py_helper/cxx_svc_impl.py
     /usr/lib/openrtm-1.1/py_helper/profile_gen.py
     中略
     /usr/lib/openrtm-1.1/py_helper/gen_base.py
     /usr/lib/openrtm-1.1/py_helper/yat.py
     /usr/lib/pkgconfig/libcoil.pc
    • 1.1.1版 では、Debian は 7.0以降、Ubuntu は 12.04以降において、32/64bit のパスはそれぞれ以下のようになっています。
       ***** 32bit
       /usr/lib/i386-linux-gnu/openrtm-1.1/py_helper/cxx_svc_impl.py
       /usr/lib/i386-linux-gnu/pkgconfig/libcoil.pc
       ***** 64bit
       /usr/lib/x86_64-linux-gnu/openrtm-1.1/py_helper/cxx_svc_impl.py
       /usr/lib/x86_64-linux-gnu/pkgconfig/libcoil.pc

openrtm-aist-example

openrtm-aist-example にはスタンドアロン RTC、ローダブル RTC それぞれのサンプルと、サンプル RTC のソースが含まれています。

  • サンプル(スタンドアロンRTC)
     /usr/share/openrtm-1.1/examples/ConsoleOutComp
     /usr/share/openrtm-1.1/examples/ConsoleInComp
     中略
  • サンプル(ソース)
     /usr/share/openrtm-1.1/examples/src/Composite/README.Motor
     /usr/share/openrtm-1.1/examples/src/Composite/Makefile.Sensor
     /usr/share/openrtm-1.1/examples/src/Composite/Motor.cpp
     中略
     /usr/share/openrtm-1.1/examples/src/SimpleService/Makefile.MyServiceProvider
     /usr/share/openrtm-1.1/examples/src/SimpleService/rtc.conf
  • サンプル(ローダブルRTC)
     /usr/share/openrtm-1.1/examples/rtc/MyServiceConsumer.so.0.0.0
     /usr/share/openrtm-1.1/examples/rtc/SeqIn.so.0.0.0
     中略
     /usr/share/openrtm-1.1/examples/rtc/ConfigSample.so.0.0.0
     /usr/share/openrtm-1.1/examples/rtc/ConsoleOut.so.0.0.0
  • ライセンス等
     /usr/share/doc/openrtm-aist-example/changelog.gz
     /usr/share/doc/openrtm-aist-example/copyright
     /usr/share/doc/openrtm-aist-example/changelog.Debian.gz

openrtm-aist-doc

openrtm-aist-doc には、日本語と英語のクラスリファレンス、IDL インターフェース定義リファレンスが含まれています。

  • クラスリファレンス
     /usr/share/openrtm-1.1/doc/ClassReference/html/ConnectorBase_8h-source.html
     /usr/share/openrtm-1.1/doc/ClassReference/html/RTC_8h.html
     中略
     /usr/share/openrtm-1.1/doc/ClassReference/html/FactoryInit_8h-source.html
  • IDL リファレンス
     /usr/share/openrtm-1.1/doc/IDLReference/html/BasicDataType_8idl-source.html
     中略
     /usr/share/openrtm-1.1/doc/IDLReference/html/interfaceOpenRTM_1_1InPortCdr-members.html
  • クラスリファレンス(英語)
     /usr/share/openrtm-1.1/doc/ClassReference-en/html/ConnectorBase_8h-source.html
     /usr/share/openrtm-1.1/doc/ClassReference-en/html/RTC_8h.html
     中略
     /usr/share/openrtm-1.1/doc/ClassReference-en/html/FactoryInit_8h-source.html
  • IDL リファレンス(英語)
     /usr/share/openrtm-1.1/doc/IDLReference-en/html/BasicDataType_8idl-source.html
     /usr/share/openrtm-1.1/doc/IDLReference-en/html/structRTC_1_1FsmProfile.html
     中略
     /usr/share/openrtm-1.1/doc/IDLReference-en/html/interfaceOpenRTM_1_1InPortCdr-members.html
  • ライセンス等
     /usr/share/doc/openrtm-aist-doc/changelog.gz
     /usr/share/doc/openrtm-aist-doc/copyright
     /usr/share/doc/openrtm-aist-doc/changelog.Debian.gz

履歴

  • 2010-07-26 23:24:55 +0900: 初期バージョン
  • 2012-07-06 01:34:30 +0900: PPAを利用したインストールについて追加
  • 2015-02-20 17:00:00 +0900: 1.1.1版リリースに合わせて修正

Raspberry Pi (Rasbian) へのインストール

Raspberry_Pi_Logo.svg_.png

C++版 OpenRTM-aist は Raspberry Pi 用 Raspbian の armhf、armel用 deb パッケージが提供されています。 Raspberry Pi でセルフコンパイルを行うと約3時間くらいかかりますので、パッケージが利用できる場合はこれを利用することをお勧めします。 ただし、Raspbian への対応およびそのバージョンは、予告なしに変更または停止されることがありますので、予めご了承ください。

はじめに

対応バージョン

現在のところパッケージが用意されている Raspbian のバージョンは

  • Raspbian "wheezy" (armhf アーキテクチャ)
  • Soft-float Debian "wheezy" (armel アーキテクチャ)

です。

SDメモリーカードの準備

以下のページからイメージをダウンロードして、SDメモリーカードに書き込みます。SDメモリーカードは 4GB 以上はあったほうがよいでしょう。 SDメモリーカードへの書き込み方法については RPi SD Card Setup を参照してください。

Windowsでは、Win32DiskImager などを利用して書き込みます。 Linux や Mac OS では dd を利用して書き込みます。

 $ sudo dd if=/dev/<SDメモリーカードのデバイスファイル> of=<ダウンロード・解凍したイメージファイル> bs=1m

OpenRTM-aist のインストール

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

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

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

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

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

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://www.openrtm.org/pub/Linux/raspbian/ (code name) main

の1行を追加。"(code name)" の部分には以下の raspbian のバージョンに対応したコードネームを指定します。

バージョン code name
Debian GNU Linux
Debian 7.0 wheezy

Raspbianの過去・現在のバージョン/コードネームは、http://www.raspberrypi.org/downloads から確認できます。

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

次の手順でインストールを行います。途中、いくつかの応答を求められるので、y を入力しながら完了させてください。

 # apt-get update
 # apt-get install gcc g++ make uuid-dev
 # apt-get install libomniorb4-1 libomniorb4-dev omniidl omniorb-nameserver
 # apt-get install openrtm-aist openrtm-aist-doc openrtm-aist-dev openrtm-aist-example

なお、インストール済みの OpenRTM-aist を特定バージョンのまま保持したい場合には、/etc/apt/preferencesを編集して以下の行を追加します。(この例では1.1系列にバージョンを固定します。)

 Package: OpenRTM-aist
 Pin: version 1.1.*

詳しくは http://www.debian.org/doc/manuals/apt-howto/ch-apt-get.ja.html#s-pin を参照してください。

インストールの確認

インストールを確認します。

 pi@raspberrypi ~ $ dpkg -l 'openrtm*'
 要望=(U)不明/(I)インストール/(R)削除/(P)完全削除/(H)保持
 | 状態=(N)無/(I)インストール済/(C)設定/(U)展開/(F)設定失敗/(H)半インストール/(W)トリガ待ち/(T)トリガ保留
 |/ エラー?=(空欄)無/(R)要再インストール (状態,エラーの大文字=異常)
 ||/ 名前                  バージョン      アーキテクチャ  説明
 +++-=====================-===============-===============-===============================================
 ii  openrtm-aist          1.1.0-0         armhf           OpenRTM-aist, RT-Middleware distributed by AIST
 ii  openrtm-aist-dev      1.1.0-0         armhf           OpenRTM-aist headers for development
 ii  openrtm-aist-doc      1.1.0-0         all             Documentation for openrtm-aist
 ii  openrtm-aist-example  1.1.0-0         armhf           OpenRTM-aist examples

パッケージの詳細

各パッケージの内容は以下の通りです。

openrtm-aist

openrtm-aist にはランタイムライブラリとコマンド群が含まれています。

  • コマンド
     /usr/bin/rtcd
     /usr/bin/rtm-naming
  • ライセンス等
     /usr/share/doc/openrtm-aist/changelog.gz
     /usr/share/doc/openrtm-aist/README.Debian
     /usr/share/doc/openrtm-aist/README
     /usr/share/doc/openrtm-aist/README.jp
     /usr/share/doc/openrtm-aist/NEWS.gz
     /usr/share/doc/openrtm-aist/copyright
     /usr/share/doc/openrtm-aist/changelog.Debian.gz
  • 設定ファイルサンプル
     /usr/etc/rtc.conf.sample
  • ライブラリ
     /usr/lib/libRTC.la
     /usr/lib/libRTC.so
     /usr/lib/libRTC-X.X.X.so.X
     /usr/lib/libRTC-X.X.X.so

openrtm-aist-dev

openrtm-aist-dev には、開発に必要なコマンド群とヘッダが含まれています。

  • コマンド
     /usr/bin/rtc-template
     /usr/bin/rtm-config
     /usr/bin/rtm-skelwrapper
  • ライセンス等
     /usr/share/doc/openrtm-aist-dev/changelog.gz
     /usr/share/doc/openrtm-aist-dev/copyright
     /usr/share/doc/openrtm-aist-dev/changelog.Debian.gz
  • ヘッダ
     /usr/include/openrtm-1.1/rtm/DefaultPeriodicTask.h
     /usr/include/openrtm-1.1/rtm/OutPortPullConnector.h
     中略
     /usr/include/openrtm-1.1/rtm/ExecutionContextBase.h
     /usr/include/openrtm-1.1/rtm/Manager.h
     /usr/include/coil-1.1/coil/OS.h
     /usr/include/coil-1.1/coil/UUID.h
     中略
     /usr/include/coil-1.1/coil/Properties.h
  • ライブラリ・その他
     /usr/lib/openrtm-1.1/py_helper/cxx_svc_impl.py
     /usr/lib/openrtm-1.1/py_helper/profile_gen.py
     中略
     /usr/lib/openrtm-1.1/py_helper/gen_base.py
     /usr/lib/openrtm-1.1/py_helper/yat.py
     /usr/lib/pkgconfig/libcoil.pc
     /usr/lib/pkgconfig/libRTM.pc

openrtm-aist-example

openrtm-aist-example にはスタンドアロンRTC、ローダブルRTC それぞれのサンプルと、サンプルRTC のソースが含まれています。

  • サンプル(スタンドアロンRTC)
     /usr/share/openrtm-1.1/examples/ConsoleOutComp
     /usr/share/openrtm-1.1/examples/ConsoleInComp
     中略
  • サンプル(ソース)
     /usr/share/openrtm-1.1/examples/src/Composite/README.Motor
     /usr/share/openrtm-1.1/examples/src/Composite/Makefile.Sensor
     /usr/share/openrtm-1.1/examples/src/Composite/Motor.cpp
     中略
     /usr/share/openrtm-1.1/examples/src/SimpleService/Makefile.MyServiceProvider
     /usr/share/openrtm-1.1/examples/src/SimpleService/rtc.conf
  • サンプル(ローダブルRTC)
     /usr/share/openrtm-1.1/example/rtc/MyServiceConsumer.so.0.0.0
     /usr/share/openrtm-1.1/example/rtc/SeqIn.so.0.0.0
     中略
     /usr/share/openrtm-1.1/example/rtc/ConfigSample.so.0.0.0
     /usr/share/openrtm-1.1/example/rtc/ConsoleOut.so.0.0.0
  • ライセンス等
     /usr/share/doc/openrtm-aist-example/changelog.gz
     /usr/share/doc/openrtm-aist-example/copyright
     /usr/share/doc/openrtm-aist-example/changelog.Debian.gz

openrtm-aist-doc

openrtm-aist-doc には、日本語と英語のクラスリファレンス、IDLインターフェース定義リファレンスが含まれています。

  • クラスリファレンス
     /usr/share/openrtm-1.1/doc/ClassReference/html/ConnectorBase_8h_source.html
     /usr/share/openrtm-1.1/doc/ClassReference/html/RTC_8h.html
     中略
     /usr/share/openrtm-1.1/doc/ClassReference/html/FactoryInit_8h_source.html
  • IDLリファレンス
     /usr/share/openrtm-1.1/doc/IDLReference/html/BasicDataType_8idl_source.html
     中略
     /usr/share/openrtm-1.1/doc/IDLReference/html/interfaceOpenRTM_1_1InPortCdr-members.html
  • クラスリファレンス(英語)
     /usr/share/openrtm-1.1/doc/ClassReference-en/html/ConnectorBase_8h_source.html
     /usr/share/openrtm-1.1/doc/ClassReference-en/html/RTC_8h.html
     中略
     /usr/share/openrtm-1.1/doc/ClassReference-en/html/FactoryInit_8h-source.html
  • IDLリファレンス(英語)
     /usr/share/openrtm-1.1/doc/IDLReference-en/html/BasicDataType_8idl_source.html
     /usr/share/openrtm-1.1/doc/IDLReference-en/html/structRTC_1_1FsmProfile.html
     中略
     /usr/share/openrtm-1.1/doc/IDLReference-en/html/interfaceOpenRTM_1_1InPortCdr-members.html
  • ライセンス等
     /usr/share/doc/openrtm-aist-doc/changelog.gz
     /usr/share/doc/openrtm-aist-doc/copyright
     /usr/share/doc/openrtm-aist-doc/changelog.Debian.gz

履歴

  • 2015-02-17 15:43:30 +0900: 「パッケージの詳細」のディレクトリーの修正
  • 2012-12-26 15:43:30 +0900: Raspberry Pi (Raspbian) へのインストール、新規作成

Fedoraへのインストール

fedora_logo.png

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

※ OpenRTM-aist 1.2.0版以降、一括インストール・スクリプト対応予定です。

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 gcc-c++ python
 # yum install omniORB omniORB-devel omniORB-doc omniORB-servers omniORB-utils
 # yum install OpenRTM-aist OpenRTM-aist-devel OpenRTM-aist-doc OpenRTM-aist-example

インストールの確認

最後に以下のコマンドでインストールの確認をします。

 # rpm -q OpenRTM-aist
 OpenRTM-aist-1.0.0-0.fcX

パッケージの詳細

各パッケージの内容は以下の通りです

OpenRTM-aist

openrtm-aist にはランタイムライブラリとコマンド群が含まれています。

  • サンプル設定ファイル
     /etc/rtc.conf.sample
  • ライブラリ
     /usr/lib/libRTC-1.0.0.so.0
     /usr/lib/libRTC-1.0.0.so.0.0.4
     /usr/lib/libRTC.a
     /usr/lib/libRTC.la
     /usr/lib/libRTC.so
     /usr/lib/libcoil.a
     /usr/lib/libcoil.la
     /usr/lib/libcoil.so
     /usr/lib/libcoil.so.0
     /usr/lib/libcoil.so.0.0.0

OpenRTM-aist-devel

openrtm-aist-dev には、開発に必要なコマンド群とヘッダが含まれています。

  • コマンド
     /usr/bin/coil-config
     /usr/bin/rtc-template
     /usr/bin/rtcd
     /usr/bin/rtcprof
     /usr/bin/rtm-config
     /usr/bin/rtm-naming
     /usr/bin/rtm-skelwrapper
  • ヘッダ
     /usr/include/coil/Allocator.h
     /usr/include/coil/Async.h
     中略
     /usr/include/coil/memory.h
     /usr/include/coil/stringutil.h
     中略
     /usr/include/rtm/BufferBase.h
     /usr/include/rtm/BufferStatus.h
     中略
     /usr/include/rtm/Typename.h
     /usr/include/rtm/config_rtc.h
  • IDL およびスタブ・スケルトン
     /usr/include/rtm/idl/BasicDataType.hh
     /usr/include/rtm/idl/BasicDataType.idl
     中略
     /usr/include/rtm/idl/device_interfaces/RFID.idl
     /usr/include/rtm/idl/device_interfaces/Ranger.idl
  • ライブラリ
     /usr/lib/openrtm-1.1/py_helper/README_gen.py
     /usr/lib/openrtm-1.1/py_helper/README_gen.pyc
     中略
     /usr/lib/openrtm-1.1/py_helper/yat.pyc
     /usr/lib/openrtm-1.1/py_helper/yat.pyo
     /usr/lib/pkgconfig/libcoil.pc
     /usr/lib/pkgconfig/openrtm-aist.pc

OpenRTM-aist-doc

openrtm-aist-doc には、日本語と英語のクラスリファレンス、IDL インターフェース定義リファレンスが含まれています。

  • クラスリファレンス
     /usr/share/openrtm-1.1/docs/ClassReference/html/ConnectorBase_8h-source.html
     /usr/share/openrtm-1.1/docs/ClassReference/html/RTC_8h.html
     中略
     /usr/share/openrtm-1.1/docs/ClassReference/html/FactoryInit_8h-source.html
  • IDL リファレンス
     /usr/share/openrtm-1.1/docs/IDLReference/html/BasicDataType_8idl-source.html
     中略
     /usr/share/openrtm-1.1/docs/IDLReference/html/interfaceOpenRTM_1_1InPortCdr-members.html
  • クラスリファレンス(英語)
     /usr/share/openrtm-1.1/docs/ClassReference-en/html/ConnectorBase_8h-source.html
     /usr/share/openrtm-1.1/docs/ClassReference-en/html/RTC_8h.html
     中略
     /usr/share/openrtm-1.1/docs/ClassReference-en/html/FactoryInit_8h-source.html
  • IDL リファレンス(英語)
     /usr/share/openrtm-1.1/docs/IDLReference-en/html/BasicDataType_8idl-source.html
     /usr/share/openrtm-1.1/docs/IDLReference-en/html/structRTC_1_1FsmProfile.html
     中略
     /usr/share/openrtm-1.1/docs/IDLReference-en/html/interfaceOpenRTM_1_1InPortCdr-members.html

OpenRTM-aist-example

openrtm-aist-example にはスタンドアロン RTC、ローダブル RTC それぞれのサンプルと、サンプル RTC のソースが含まれています。

  • サンプル(スタンドアロン RTC)
     /usr/share/openrtm-1.1/examples/ConsoleOutComp
     /usr/share/openrtm-1.1/examples/ConsoleInComp
     中略
  • サンプル(ソース)
     /usr/share/openrtm-1.1/examples/src/Composite/README.Motor
     /usr/share/openrtm-1.1/examples/src/Composite/Makefile.Sensor
     /usr/share/openrtm-1.1/examples/src/Composite/Motor.cpp
     中略
     /usr/share/openrtm-1.1/examples/src/SimpleService/Makefile.MyServiceProvider
     /usr/share/openrtm-1.1/examples/src/SimpleService/rtc.conf
  • サンプル(ローダブル RTC)
     /usr/share/openrtm-1.1/examples/rtc/MyServiceConsumer.so.0.0.0
     /usr/share/openrtm-1.1/examples/rtc/SeqIn.so.0.0.0
     中略
     /usr/share/openrtm-1.1/examples/rtc/ConfigSample.so.0.0.0
     /usr/share/openrtm-1.1/examples/rtc/ConsoleOut.so.0.0.0

Vine Linuxへのインストール

vine_logo.png

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

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

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

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

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

OpenRTM-aist を開発・実行するために必要なパッケージをもれなくインストールしてくれるので大変便利です。 初めて OpenRTM-aist をインストールしてみる方にお勧めします。 ただし、OpenRTM-aist 関係のすべてのパッケージをインストールするので、必要ないものもインストールされる可能性があります。 より詳しくわかっている人は、手動でインストールした方がよいでしょう。 以下、一括インストールスクリプトを使用したインストールの手順です。

 > wget [pkg_installXXX.sh のダウンロードURL]
 > su
 # sh pkg_install1XX_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 gcc-c++ python
 # apt-get install omniORB omniORB-devel omniORB-servers omniORB-doc
 # apt-get install e2fsprogs e2fsprogs-devel
 # apt-get install OpenRTM-aist OpenRTM-aist-devel OpenRTM-aist-doc OpenRTM-aist-example

途中、いくつかの質問を尋ねられるので、y あるいは Y を入力して完了させます。apt-get は 現在は synaptic コマンドで置き換えることが推奨されています。

インストールの確認

インストールの確認を以下のようにして行います。

 # rpm -q OpenRTM-aist
 OpenRTM-aist-1.0.0-0.vl50

パッケージの詳細

OpenRTM-aist

openrtm-aist にはランタイムライブラリとコマンド群が含まれています。

  • サンプル設定ファイル
     /etc/rtc.conf.sample
  • ライブラリ
     /usr/lib/libRTC-1.0.0.so.0
     /usr/lib/libRTC-1.0.0.so.0.0.4
     /usr/lib/libRTC.a
     /usr/lib/libRTC.la
     /usr/lib/libRTC.so
     /usr/lib/libcoil.a
     /usr/lib/libcoil.la
     /usr/lib/libcoil.so
     /usr/lib/libcoil.so.0
     /usr/lib/libcoil.so.0.0.0

OpenRTM-aist-devel

openrtm-aist-dev には、開発に必要なコマンド群とヘッダが含まれています。

  • コマンド
     /usr/bin/coil-config
     /usr/bin/rtc-template
     /usr/bin/rtcd
     /usr/bin/rtcprof
     /usr/bin/rtm-config
     /usr/bin/rtm-naming
     /usr/bin/rtm-skelwrapper
  • ヘッダ
     /usr/include/coil/Allocator.h
     /usr/include/coil/Async.h
     中略
     /usr/include/coil/memory.h
     /usr/include/coil/stringutil.h
     中略
     /usr/include/rtm/BufferBase.h
     /usr/include/rtm/BufferStatus.h
     中略
     /usr/include/rtm/Typename.h
     /usr/include/rtm/config_rtc.h
  • IDL およびスタブ・スケルトン
     /usr/include/rtm/idl/BasicDataType.hh
     /usr/include/rtm/idl/BasicDataType.idl
     中略
     /usr/include/rtm/idl/device_interfaces/RFID.idl
     /usr/include/rtm/idl/device_interfaces/Ranger.idl
  • ライブラリ
     /usr/lib/OpenRTM-aist/py_helper/README_gen.py
     /usr/lib/OpenRTM-aist/py_helper/README_gen.pyc
     中略
     /usr/lib/OpenRTM-aist/py_helper/yat.pyc
     /usr/lib/OpenRTM-aist/py_helper/yat.pyo
     /usr/lib/pkgconfig/libcoil.pc
     /usr/lib/pkgconfig/openrtm-aist.pc

OpenRTM-aist-doc

openrtm-aist-doc には、日本語と英語のクラスリファレンス、IDL インターフェース定義リファレンスが含まれています。

  • クラスリファレンス
     /usr/share/OpenRTM-aist/docs/ClassReference/html/ConnectorBase_8h-source.html
     /usr/share/OpenRTM-aist/docs/ClassReference/html/RTC_8h.html
     中略
     /usr/share/OpenRTM-aist/docs/ClassReference/html/FactoryInit_8h-source.html
  • IDL リファレンス
     /usr/share/OpenRTM-aist/docs/IDLReference/html/BasicDataType_8idl-source.html
     中略
     /usr/share/OpenRTM-aist/docs/IDLReference/html/interfaceOpenRTM_1_1InPortCdr-members.html
  • クラスリファレンス(英語)
     /usr/share/OpenRTM-aist/docs/ClassReference-en/html/ConnectorBase_8h-source.html
     /usr/share/OpenRTM-aist/docs/ClassReference-en/html/RTC_8h.html
     中略
     /usr/share/OpenRTM-aist/docs/ClassReference-en/html/FactoryInit_8h-source.html
  • IDL リファレンス(英語)
     /usr/share/OpenRTM-aist/docs/IDLReference-en/html/BasicDataType_8idl-source.html
     /usr/share/OpenRTM-aist/docs/IDLReference-en/html/structRTC_1_1FsmProfile.html
     中略
     /usr/share/OpenRTM-aist/docs/IDLReference-en/html/interfaceOpenRTM_1_1InPortCdr-members.html

OpenRTM-aist-example

openrtm-aist-example にはスタンドアロン RTC、ローダブル RTC それぞれのサンプルと、サンプル RTC のソースが含まれています。

  • サンプル(スタンドアロン RTC)
     /usr/share/OpenRTM-aist/examples/ConsoleOutComp
     /usr/share/OpenRTM-aist/examples/ConsoleInComp
     中略
  • サンプル(ソース)
     /usr/share/OpenRTM-aist/examples/src/Composite/README.Motor
     /usr/share/OpenRTM-aist/examples/src/Composite/Makefile.Sensor
     /usr/share/OpenRTM-aist/examples/src/Composite/Motor.cpp
     中略
     /usr/share/OpenRTM-aist/examples/src/SimpleService/Makefile.MyServiceProvider
     /usr/share/OpenRTM-aist/examples/src/SimpleService/rtc.conf
  • サンプル(ローダブルRTC)
     /usr/share/OpenRTM-aist/examples/rtcs/MyServiceConsumer.so.0.0.0
     /usr/share/OpenRTM-aist/examples/rtcs/SeqIn.so.0.0.0
     中略
     /usr/share/OpenRTM-aist/examples/rtcs/ConfigSample.so.0.0.0
     /usr/share/OpenRTM-aist/examples/rtcs/ConsoleOut.so.0.0.0

QNX へのインストール

qnx_logo.png

QNX

QNX(キューエヌエックス、またはキューニックス)は主に組み込みシステム向けに販売されている、商用リアルタイム OS です。 POSIX 準拠の UNIX系 OSで、組込み用 OS でありながら一般的な UNIX 同様プロセス型のオペレーティング・システムです。 カーネルはマイクロカーネルであり、様々な機能はサーバとしてモジュール化され、用途に応じて必要なサーバのみを動作させるため、コンパクトなシステムを構成することができます。 x86ファミリ、MIPS、PowerPC、SH-4、ARM、StrongARM、XScale など様々な CPU 上で動作可能であり、さらに機能安全規格 IEC61508 に準拠し認証を取得しているため、安全認証が必要な安全関連系にも利用することができます。

QNX には教育機関向けの無償ライセンスプログラムもあり、大学などでは比較的気軽に利用することができます。

pkgsrc

pkgsrc は、UNIX 用のパッケージマネジメントシステムの一つであり、FreeBSD の ports collection から派生し、現在は NetBSD のパッケージマネジメント・システムとして利用されています。 pkgsrc自体は、特定の OS に依存するものではなく、NetBSD、Solaris、Linux、Mac OS X、FreeBSD、OpenBSD、IRIX, BSD/OS、AIX、Interix、DragonFlyBSD、OSF/1、HP-UX、QNX、Haiku、MINIX 3、Illumosといった UNIX系の様々な OS上で利用できます。

pkgsrc for QNX

QNX にはパッケージ管理システムはなく、QNX のユーザーフォーラムにおいて QNX 用の pkgsrc がメンテナンスされています。

OS をインストール後、pkgsrc をリポジトリからチェックアウトするなどして、システムに配置します。(リポジトリへのアクセスには、QNX forum のアカウントが必要になります。) svnリポジトリからのチェックアウトは大変時間がかかるので、pkgsrc_HEAD650_r396.tgz をダウンロードして利用することもできますが、事前に pkgsrc の最新バージョンをチェックすることをおすすめします。

 # cd /usr/
 # svn checkout --username <username> http://community.qnx.com/svn/repos/pkgsrc/HEAD_650/pkgsrc
 # (cd pkgsrc/bootstrap && ./bootstrap)
 # (cd pkgsrc/misc/figlet && bmake install)
 # pkg_info
 または
 # cd /usr
 # tar xvzf <somewhere>/pkgsrc_HEAD650_r396.tgz
 # (cd pkgsrc/bootstrap && ./bootstrap)
 # (cd pkgsrc/misc/figlet && bmake install)
 # pkg_info

OpenRTM-aist の pkgsrc によるインストール

pkgsrc は、バイナリパッケージによるインストールと、ソースからビルドしてインストールする方法があります。 すべてのパッケージがバイナリで提供されているわけではないので、必要に応じてソースからビルドする必要があります。

OpenRTM.org の pkgsrc リポジトリ

OpenRTM-aist は、openrtm.org の以下の URL においてバイナリパッケージを提供しています。

OpenRTM-aist で必要な omniORB も上述の配布サイトにはバイナリパッケージが無いため、openrtm.org で提供されています。

インストール

インストール方法は以下のとおりです。

  • 環境変数 PKG_PATH に http://www.openrtm.org/pub/pkgsrc/packages/QNX/i386/6.5.0/All をセット
    • 6.5.0 は QNX のバージョンですので適宜読み替えてください
  • pkg_add -v OpenRTM-aist-1.1.0-RELESE で OpenRTM-aist をインストール
    • omniORB も同時にインストールされます

 # export PKG_PATH=http://www.openrtm.org/pub/pkgsrc/packages/QNX/i386/6.5.0/All
 # pkg_add -v OpenRTM-aist-1.1.0-RELESE
 1.1.0-RELESE の部分は適宜インストールするバージョンに置き換えてください。
 Running install with PRE-INSTALL for omniORB-4.1.6.
 bin/omkdepend
 bin/omnicpp
   : omniORB のインストールが始まる
 man/man1/omniidl.1
 Running install with PRE-INSTALL for omniORB-4.1.6.
 Package omniORB-4.1.6 registered in /var/db/pkg/omniORB-4.1.6
   : OpenRTM-aist のインストールが始まる
 lib/libcoil.so
 lib/libcoil.la
 lib/libcoil-1.1.0.so
  :
 share/openrtm-1.1/doc/IDLReference-en/html/unionSDOPackage_1_1Numeric.html
 etc/rtc.conf.sample
 Package OpenRTM-aist-1.1.0-RELEASE registered in /var/db/pkg/OpenRTM-aist-1.1.0-RELEASE
 #
 # pkg_info|grep OpenRTM
 OpenRTM-aist-1.1.0-RELEASE RT-Middleware and OMG RTC framework

以上でインストールは終了です。

テスト

/usr/pkg/share/openrtm-1.1/examples の下にサンプルプログラムがインストールされています。 これを利用して OpenRTM-aist の動作確認を行います。

ネームサーバーの起動

まず、ネームサーバーを起動します。

 # rtm-naming
 あるいは
 # cp /usr/pkg/share/examples/rc.d/omninames /etc/rc.d/
 # chmod 755 /etc/rc.d/omninames
 # /etc/rc.d/omninames

後者では、omninames の起動スクリプトを rc ディレクトリー (/etc/rc.d) にコピーしてからそれを起動しています。 なお、このスクリプトはネームサーバーの停止を行うこともできます。

 # /etc/rc.d/omninames stop

ConsoleOut

まず、ConsoleOut コンポーネントを起動してみます。 下の例ではホームディレクトリーに tmp ディレクトリーを作り、そこにコピーしてから実行しています。

 # cd ; mkdir tmp ; cd tmp
 # cp -r /usr/pkg/share/openrtm-1.1/example .
 # cd example
 # ./ConsoleOutComp
 succeed.
 =================================================
  Component Profile
 -------------------------------------------------
 InstanceID:     ConsoleOut0
 Implementation: ConsoleOut
 Description:    Console output component
  :
 =================================================
 Port0 (name): ConsoleOut0.in
 -------------------------------------------------
 - properties -
 port.port_type: DataInPort
 dataport.data_type: IDL:RTC/TimedLong:1.0
 dataport.subscription_type: Any
 dataport.dataflow_type: push,pull
 dataport.interface_type: corba_cdr
 -------------------------------------------------

ConsoleIn

 # cd ; cd tmp/example
 # ./ConsoleInComp
 Creating a component: "ConsoleIn"....succeed.
 =================================================
  Component Profile
 -------------------------------------------------
 InstanceID:     ConsoleIn0
 Implementation: ConsoleIn
 Description:    Console input component
  :
 =================================================
 Port0 (name): ConsoleIn0.out
 -------------------------------------------------
 - properties -
 port.port_type: DataOutPort
 dataport.data_type: IDL:RTC/TimedLong:1.0
 dataport.subscription_type: flush,new,periodic
 dataport.dataflow_type: push,pull
 dataport.interface_type: corba_cdr
 -------------------------------------------------
  :
 Please input number:

ここで、別の PC 上で RTSystemEditor を起動し、ポートを接続、アクティベートします。 ConsoleIn のプロンプトに対して数字を入力すると、ConsoleOut から出力されます。

qnx_test.png
QNX上で動作する ConsoleIn と ConsoleOut コンポーネント

QNXでのビルド手順(OpenRTM-aist 1.2)

このページではQNX 6.5でOpenRTM-aist 1.2をビルドする手順を説明します。 以下からソースコードを入手してください。

pkg_src、omniORB、libuuidのビルド手順については以下のページを参考にしてください。

OpenRTM-aistのビルドのために以下のソフトウェアをインストールします。

 /usr/pkg/sbin/pkg_add -v autoconf-2.68
 /usr/pkg/sbin/pkg_add -v automake-1.11.1nb1
 /usr/pkg/sbin/pkg_add -v libtool-2.2.6b

configure.ac、src/ext/Makefile.am、src/ext/local_service/Makefile.amを編集します。

configure.acから-lomnisslTP4を削除してください。

        #LIBS="$LIBS -lomniORB4 -lomnithread -lomniDynamic4 -lomnisslTP4" <-削除
        #LDSOLIBS="$LDSOLIBS -lomniORB4 -lomnithread -lomniDynamic4 -lomnisslTP4" <-削除
        LIBS="$LIBS -lomniORB4 -lomnithread -lomniDynamic4" <-追加
        LDSOLIBS="$LDSOLIBS -lomniORB4 -lomnithread -lomniDynamic4" <-追加

src/ext/Makefile.amは以下のようにsslを削除します。

 #SUBDIRS = local_service ec sdo <-削除
 #DIST_SUBDIRS = local_service ec sdo logger <-削除
 SUBDIRS = local_service ec sdo ssl <-追加
 DIST_SUBDIRS = local_service ec sdo logger ssl <-追加

src/ext/local_service/Makefile.amは以下のようにサブディレクトリの設定を削除します。

 #SUBDIRS = nameservice_file <-削除

以下のコマンドでビルドします。

 ./autogen.sh
 ./configure --without-doxygen
 make
 make install

Mac OS X への MacPorts によるインストール

osx_logo2.png

C++版 OpenRTM-aist は Mac OS X 用のパッケージ管理ステム MacPorts で利用可能な ports が提供されています。 MacPorts への対応およびそのバージョンは、予告なしに変更または停止されることがありますので、予めご了承ください。

MacPorts

MacPorts は Mac OS X 上で利用可能なオープンソースのパッケージ管理システムです。 MacPorts は FreeBSD の ports というパッケージ管理システムと同様に、ports と呼ばれるパッケージをビルドするためのレシピに基づき、自動でソースのダウンロード、パッチの適用、コンパイル、インストールまでを行ってくれるシステムです。 Mac OS X 用のパッケージ管理システムとしては他に Fink があります。

MacPorts のインストール

MacPorts を利用するには、Apple の Xcodeおよび、X11 環境を予めインストールする必要があります。 Xcode および X11 は Mac OS X のインストールCD からインストールすることもできます。 詳細は、上記 MacPorts の Webページを参照してください。

MacPorts 自体は dmg パッケージ形式になっており、自分の Mac の OS のバージョンに合わせた dmg パッケージをダウンロード、インストールすることで簡単にインストールすることができます。 dmg パケージは MacPorts の Webページ、または下記リンクからダウンロードできます。

OpenRTM-aist ports によるインストール

Portfile のダウンロード、展開、ビルドを一括でおこなうスクリプトが以下に用意されています。

適当なディレクトリーで、以下のようにスクリプトを実行します。実行は一般ユーザーで構いません。ただし、途中で当該ユーザーのパスワードを聞かれることがあります。

 $ sh port_install100_mac.sh
 sh port_install.sh
 file:///Users/n-ando/ports/
 Getting Portfile from:  http://www.openrtm.org/pub/MacOSX/macports//ports.tgz
 --2010-07-27 23:21:06--  http://www.openrtm.org/pub/MacOSX/macports//ports.tgz
 Resolving www.openrtm.org (www.openrtm.org)... 182.48.18.55
 Connecting to www.openrtm.org (www.openrtm.org)|182.48.18.55|:80... connected.
 HTTP request sent, awaiting response... 200 OK
 Length: 3600 (3.5K) [application/x-gzip]
 Saving to: `ports.tgz.1'
 
 100%[================================================>] 3,600       --.-K/s   in 0.002s
 
 2010-07-27 23:21:06 (2.02 MB/s) - `ports.tgz' saved [3600/3600]
 
 x ports/
 x ports/devel/
 x ports/PortIndex
 x ports/PortIndex.quick
 x ports/devel/OpenRTM-aist/
 x ports/devel/OpenRTM-aist/Portfile
 x ports/devel/OpenRTM-aist/files/
 x ports/devel/OpenRTM-aist/Portfile~
 x ports/devel/OpenRTM-aist/files/patch-src-lib-rtm-InPortConsumer.h
 x ports/devel/OpenRTM-aist/files/patch-src-lib-coil-posix-coil-UUID.cpp
 x ports/devel/OpenRTM-aist/files/patch-src-lib-coil-posix-coil-Routing.cpp
 x ports/devel/OpenRTM-aist/files/patch-examples-SimpleService-Makefile.in
 x ports/devel/OpenRTM-aist/files/patch-examples-Composite-Makefile.in
 x ports/devel/OpenRTM-aist/files/patch-examples-ConfigSample-Makefile.in
 x ports/devel/OpenRTM-aist/files/patch-examples-SeqIO-Makefile.in
 x ports/devel/OpenRTM-aist/files/patch-examples-SimpleIO-Makefile.in
 x ports/devel/OpenRTM-aist/files/patch-src-lib-rtm-idl-Makefile.in
 Creating port index in /Users/n-ando/ports
 Adding port devel/OpenRTM-aist
 
 Total number of ports parsed:   1
 Ports successfully parsed:      1
 Ports failed:                   0
 Up-to-date ports skipped:       0
  
 Adding local ports repository entry to sources.conf
 # A password may be required for sudo. Input your password.
 Password:
 Installing OpemRTM-aist...it may take several minutes.
 # A password may be required for sudo. Input your password.
 --->  Computing dependencies for OpenRTM-aist
 --->  Fetching OpenRTM-aist
 --->  Verifying checksum(s) for OpenRTM-aist
 --->  Extracting OpenRTM-aist
 --->  Applying patches to OpenRTM-aist
 --->  Configuring OpenRTM-aist
 --->  Building OpenRTM-aist
 --->  Staging OpenRTM-aist into destroot
 --->  Installing OpenRTM-aist @1.0.0_2
 --->  Activating OpenRTM-aist @1.0.0_2
 --->  Cleaning OpenRTM-aist
 Cleaning local ports repository entry in sources.conf
 # A password may be required for sudo. Input your password.
 Password:
 $

ports は、依存関係を自動的に解決し、ビルドに必要なパッケージが入っていない場合には自動でそのパッケージのビルドも行いますので、多少時間がかかる場合があります。

インストールの詳細

詳細は一括インストールシェルスクリプト port_installXXX_mac.sh に書いてあります。インストール手順は、おおよそ以下のようになっています。

  • Portfile をダウンロードする
  • Portfile を展開する
  • sources.conf に展開した Portfile の場所を追記する
  • port コマンドでビルド・インストールする

MacPorts では、port コマンドでインストールするよう指定されたパッケージを、設定ファイル sources.conf に記載されている特定の場所以下から探し出して、Porrtfile に従いソースをダウンロードしビルドを行います。

VxWorksへのインストール

VxWorks

VxWorksはウインドリバー社が開発している組込みシステム向けリアルタイムOSです。 規模の大きな商用リアルタイムOSで最も普及しているOSであり、比較的大型の機器で使用されています。 x86、PowerPC、SH-4、ARM、MIPS、SPARC等の様々なCPU上で動作可能です。 DO-178B規格とIEC61508規格に準拠しており、航空・宇宙等の幅広い分野で使われています。

Wind River Workbench

Wind River WorkbenchはVxWorksのコンパイル、デバッグ等をGUIで実行する統合開発環境です。

このページではVxWorksにOpenRTM-aist(C++版)を導入する手順を説明します。

環境構築

ホストPCはUbuntu 14.04(もしくは16.04)を想定しています。 Windowsには今後対応する予定です。

ホストPCに以下のソフトウェアをインストールしてください。

ウインドリバー社から購入してインストールしてください。

Workbenchは32bit環境で動作するため、64bitのUbuntuの場合はi386版libc6パッケージをインストールしてください。

 sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386

  • tclsh
  • cmake
  • subversion

以下のコマンドでインストールしてください。

 sudo apt-get install tclsh cmake subversion

ORBexpressを使用する場合のみ必要です。

ビルド

ビルドはコマンドラインの操作により実行します。

Workbenchから、Project Exploreを右クリックしてOpen Development Shellからコマンドラインシェルを起動してください。


command-line.png


通常のUbuntuのターミナル上でビルドする場合は、以下の手順で環境変数を設定してください。 Workbenchで起動したコマンドラインシェルを用いる場合は環境変数は設定済みのため、次の手順に進んでください。

環境変数の設定

以下の環境変数を設定してください。

変数名
WIND_HOME /home/openrtm/WindRiver
WIND_USR ${WIND_HOME}/vxworks-6.9/target/usr
WRVX_COMPBASE ${WIND_HOME}/components
WIND_BASE ${WIND_HOME}/vxworks-6.9
WIND_HOST_TYPE x86-linux2
WIND_GNU_BASE ${WIND_HOME}/gnu/4.3.3-vxworks-6.9/${WIND_HOST_TYPE}
WIND_FOUNDATION_PATH ${WIND_HOME}/workbench-3.3/foundation

WIND_HOMEはWorkbenchをインストールしたディレクトリにより適宜変更してください。

 export WIND_HOME=/home/openrtm/WindRiver
 export WIND_USR=${WIND_HOME}/vxworks-6.9/target/usr
 export WRVX_COMPBASE=${WIND_HOME}/components
 export WIND_BASE=${WIND_HOME}/vxworks-6.9
 export WIND_HOST_TYPE=x86-linux2
 export WIND_GNU_BASE=${WIND_HOME}/gnu/4.3.3-vxworks-6.9/${WIND_HOST_TYPE}
 export WIND_FOUNDATION_PATH=${WIND_HOME}/workbench-3.3/foundation

コンパイラの実行のために共有ライブラリパスの設定を行ってください。

 export LD_LIBRARY_PATH=${WIND_HOME}/lmapi-5.0/x86-linux2/lib:${WIND_FOUNDATION_PATH}/${WIND_HOST_TYPE}/lib:${LD_LIBRARY_PATH}

omniORBのビルド

omniORBを使用する場合は、omniORBのソースコードのビルドが必要になります。 omniORBを使用しない場合は、次の手順に進んでください。

ソースコード入手

以下のコマンドでomniORBのソースコードを入手してください。

 wget https://jaist.dl.sourceforge.net/project/omniorb/omniORB/omniORB-4.2.2/omniORB-4.2.2.tar.bz2
 tar xf omniORB-4.2.2.tar.bz2

修正パッチ適用

VxWorks 6.6、6.9対応の修正パッチを適用します。

 wget http://svn.openrtm.org/omniORB/trunk/vxworks/omniORB-4.2.2-vxworks.patch
 patch -p1 -d omniORB-4.2.2 < omniORB-4.2.2-vxworks.patch

IDLコンパイラなどのビルド

IDLコンパイラなどはUbuntu上で動作する必要があります。 以下の手順でUbuntu用にomniORBをビルドしてください。

 cd omniORB-4.2.2
 mkdir build
 cd build
 ../configure
 make
 cd ..

クロスコンパイル

VxWorks用にomniORBをビルドします。

 sed -i '1s/^/platform = ${VXWORKS_PLATFORM}\n/' config/config.mk
 cd src
 make export

ただし、VXWORKS_PLATFORMには動作環境に合ったものを入力するようにしてください。

VXWORKS_PLATFORM CPU VxWorksのバージョン 実装方法
powerpc_vxWorks_kernel_6.6 PowerPC 6.6 カーネルモジュール
powerpc_vxWorks_RTP_6.6 PowerPC 6.6 RTP
powerpc_vxWorks_kernel_6.9 PowerPC 6.9 カーネルモジュール
powerpc_vxWorks_RTP_6.9 PowerPC 6.9 RTP
simlinux_vxWorks_kernel_6.6 Linux上のシミュレータ 6.6 カーネルモジュール
simpentium_vxWorks_RTP_6.6 Linux上のシミュレータ 6.6 RTP
simlinux_vxWorks_kernel_6.9 Linux上のシミュレータ 6.9 カーネルモジュール
simpentium_vxWorks_RTP_6.9 Linux上のシミュレータ 6.9 RTP

※カーネルモジュールのビルドの場合にはネームサーバー等は生成しません。VxWorksでネームサーバーを起動する場合はRTPのビルドも行ってください。

OpenRTM-aistのビルド

ソースコードの入手

以下のコマンドでソースコードを入手してください。

 svn co http://svn.openrtm.org/OpenRTM-aist/trunk/OpenRTM-aist/

コンパイル

以下のコマンドでコンパイルを開始します。

 cd OpenRTM-aist/
 python convert_character_code.py ./ vxworks euc_jp
 mkdir src/lib/coil/common/coil
 cp src/lib/coil/common/*.* src/lib/coil/common/coil/
 cp build/yat.py utils/rtm-skelwrapper/
 mkdir build_vxworks
 cd build_vxworks/
 cmake -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} -DVX_VERSION=${VX_VERSION} -DORB_ROOT=${ORB_ROOT} -DOMNI_VERSION=${OMNI_VERSION} -DCORBA=${CORBA} -DVX_CPU_FAMILY=${ARCH} ..
 make

CMakeのオプションには以下を指定してください。

TOOLCHAIN_FILE VxWorks 6.6(カーネルモジュール、PowerPC)の場合は../Toolchain-vxworks6.6-Linux.cmake、それ以外の場合は../Toolchain-vxworks6.cmake
VX_VERSION vxworks-6.6vxworks-6.9
ORB_ROOT omniORBのディレクトリ(例:/home/openrtm/omniORB-4.2.2)
VX_CPU_FAMILY ppc(PowerPC)、simlinux(カーネルモジュール、シミュレータ)、simpentium(RTP、シミュレータ)
OMNI_VERSION omniORBのバージョン(40、41、42)、omniORBを使用しない場合は不要
CORBA omniORB、もしくはORBexpress

※RTPの場合はcmakeコマンドに-DRTP=ONを追加する必要があります。

動作確認

ビルドが完了したら以下の手順で動作確認を行ってください。

OpenRTM-aist動作確認(VxWorks、カーネルモジュール、シミュレータ利用の場合)

このページでは、Workbenchのシミュレータを用いてVxWorks用にビルドしたRTCのカーネルモジュールの動作確認を行う手順を説明します。

シミュレータの設定

以下の手順でシミュレータの設定を行ってください。

シミュレータの接続

WorkbenchのRemote Systemでシミュレータを選択後にconnect 'xxxxx'ボタンを押すとシミュレータと接続します。


sim5.png


カーネルモジュールのロード

WorkbenchのRemote Systemでシミュレータを右クリックして、DownloadVxWorks Kernel Taskを選択してください。


load_module.png


Download ConfigurationsウインドウのLaunch Contextタブから、ダウンロードするシステムにシミュレータを選択してください。


Launch_context.png


Downloadsタブからダウンロードするモジュールを設定します。 Addボタンをクリックしてください。


downloads.png


Addウインドウでrtcd.outのパスを設定後、OKボタンをクリックしてください。 rtcd.outはOpenRTM-aistのビルドディレクトリのutils/rtcd以下に生成されています。

  • 例:/home/openrtm/OpenRTM-aist/build_vxworks/utils/rtcd/rtcd.out


downloads2.png


Downloadボタンをクリックするとダウンロードを開始します。


download.png


起動するRTCのカーネルモジュールについても同様の手順でダウンロードしてください。

  • 例(ConsoleIn):/home/openrtm/OpenRTM-aist/build_vxworks/examples/SimpleIO/ConsoleIn.out
  • 例(ConsoleOut):/home/openrtm/OpenRTM-aist/build_vxworks/examples/SimpleIO/ConsoleOut.out

RTC実行

ネームサーバー起動

VxWorksシミュレータ上にネームサーバーを起動します。 ネームサーバーはリアルタイムプロセス(RTP)として起動するため、Remote Systemsからシミュレータを右クリックしてRunVxWorks Real Time Processをクリックしてください。


rtp.png


Run ConfigurationsウインドウのLaunch Contextタブから各種設定を行ってください。

  • 実行するシステムをシミュレータに設定
  • omniNames.outのパス設定
  • コマンドライン引数の設定

omniNames.outはomniORBのRTPのビルドディレクトリに生成されています。 カーネルモジュールのビルドディレクトリには生成されないため、omniORBはRTPについてもビルドを行ってください。 共有ライブラリのパスにlibc.so.1が無い場合はエラーとなるため、WorkbenchからomniNames.outのディレクトリにコピーしてください。

 cp $WIND_BASE/target/lib/usr/root/SIMPENTIUMgnu/bin/libc.so.1 /home/openrtm/omniORB-4.2.2/bin/simpentium_vxWorks_RTP_6.9/

RTPについてビルドできない場合は、VxWorksでネームサーバーは起動せずにUbuntu上のネームサーバーにRTCを登録するようにしてください。

  • 例:/home/openrtm/omniORB-4.2.2/bin/simpentium_vxWorks_RTP_6.9/omniNames.out

Argumentsにはネームサーバーのポート番号を指定します。

  • 例:-start 2809

設定が完了後にRunボタンをクリックするとネームサーバーが起動します。


nameserver.png


マネージャ起動

WorkbenchのRemote Systemでシミュレータを右クリックして、RunVxWorks Kernel Taskを選択してください。


run_task.png


Run Configurationsウインドウで各種設定を行います。 Entry Pointにはrtcd_mainと入力してください。 Argumentsには"-o manager.shutdown_on_nortcs:NO -o manager.shutdown_auto:NO"を設定してください。 Runボタンを押すとマネージャが起動します。

※Ubuntu側のネームサーバーを起動する場合は、Argumentsに-o corba.nameservers:192.168.200.254を追加してください。 Ubuntuのtap0インターフェースのIPアドレスは適宜確認してください。


run_task2.png


RTCの起動

マネージャの起動と同様の手順で起動します。 Entry PointにはRTCを起動する関数を指定します。

  • 例(ConsoleIn):consolein_main
  • 例(ConsoleOut):consoleout_main

Argumentsには何も入力しなくても大丈夫です。

Ubuntuで起動したRTシステムエディタでRTCが起動したかを確認してください。 VxWorksのネームサーバーにはネームサービス接続ボタンをクリック後、表示されたウインドウでIPアドレスを指定してOKをクリックすると接続します。


ns1.png



ns2.png


起動したRTCが登録されているかを確認してください。


ns3.png


RTCの接続、アクティブ化等の手順はUbuntuで動作確認する場合と同じです。

コマンドラインによる操作について

シミュレータ接続後にTarget Consoleウインドウからコマンド入力ができます。


sim6.png


以下のコマンドでRTCの動作確認ができます。 Workbench、omniORB、openRTM-aistのパスは適宜変更してください。

 cd "/home/openrtm/openrtm-build/omniORB/omniORB_69_rtp_sim/omniORB-4.2.2/bin/simpentium_vxWorks_RTP_6.9"
 cp "/home/openrtm/WindRiver/vxworks-6.9/target/lib/usr/root/SIMPENTIUMgnu/bin/libc.so.1","./"
 rtpSp "./omniNames.out -start 2809"
 
 cd "/home/openrtm/openrtm-build/OpenRTM/OpenRTM_69_kernel_sim/OpenRTM-aist/build_vxworks/utils/rtcd"
 ld<rtcd.out
 cd "/home/openrtm/openrtm-build/OpenRTM/OpenRTM_69_kernel_sim/OpenRTM-aist/build_vxworks/examples/SimpleIO"
 ld<ConsoleIn.out
 
 taskSpawn "rtcd_main",100,67108864,1000000,rtcd_main,"-o","manager.shutdown_on_nortcs:NO","-o","manager.shutdown_auto:NO"
 taskSpawn "consolein_main",100,0,1000000,consolein_main

OpenRTM-aist動作確認(VxWorks、RTP、シミュレータ利用の場合)

このページでは、Workbenchのシミュレータを用いてVxWorks用にビルドしたRTCのリアルタイムプロセス(RTP)の動作確認を行う手順を説明します。

シミュレータの設定

以下の手順でシミュレータの設定を行ってください。

シミュレータの接続

WorkbenchのRemote Systemでシミュレータを選択後にconnect 'xxxxx'ボタンを押すとシミュレータと接続します。


 /ja/node/6374


RTC実行

ネームサーバー起動

VxWorksシミュレータ上にネームサーバーを起動します。 ネームサーバーはリアルタイムプロセス(RTP)として起動するため、Remote Systemsからシミュレータを右クリックしてRunVxWorks Real Time Processをクリックしてください。


 /ja/node/6374


Run ConfigurationsウインドウのLaunch Contextタブから各種設定を行ってください。

  • 実行するシステムをシミュレータに設定
  • omniNames.outのパス設定
  • コマンドライン引数の設定

omniNames.outはomniORBのビルドディレクトリに生成されています。 共有ライブラリのパスにlibc.so.1が無い場合はエラーとなるため、WorkbenchからomniNames.outのディレクトリにコピーしてください。

 cp $WIND_BASE/target/lib/usr/root/SIMPENTIUMgnu/bin/libc.so.1 /home/openrtm/omniORB-4.2.2/bin/simpentium_vxWorks_RTP_6.9/

RTPについてビルドできない場合は、VxWorksでネームサーバーは起動せずにUbuntu上のネームサーバーにRTCを登録するようにしてください。

  • 例:/home/openrtm/omniORB-4.2.2/bin/simpentium_vxWorks_RTP_6.9/omniNames.out

Argumentsにはネームサーバーのポート番号を指定します。

  • 例:-start 2809

設定が完了後にRunボタンをクリックするとネームサーバーが起動します。


 /ja/node/6374


RTCの起動

ネームサーバーの起動と同じ手順でrtcd.vxeを実行します。 rtcd.vxeはOpenRTM-aistのビルドディレクトリのutils/rtcd以下に生成されています。

  • 例(ConsoleIn):/home/openrtm/OpenRTM-aist/build_vxworks/examples/SimpleIO/ConsoleIn.vxe
  • 例(ConsoleOut):/home/openrtm/OpenRTM-aist/build_vxworks/examples/SimpleIO/ConsoleOut.vxe

Argumentsには何も入力しなくても大丈夫ですが、Ubuntu側のネームサーバーを起動する場合は、Argumentsに-o corba.nameservers:192.168.200.254を追加してください。 Ubuntuのtap0インターフェースのIPアドレスは適宜確認してください。

Ubuntuで起動したRTシステムエディタでRTCが起動したかを確認してください。 VxWorksのネームサーバーにはネームサービス接続ボタンをクリック後、表示されたウインドウでIPアドレスを指定してOKをクリックすると接続します。


 /ja/node/6374



 /ja/node/6374


起動したRTCが登録されているかを確認してください。


 /ja/node/6374


RTCの接続、アクティブ化等の手順はUbuntuで動作確認する場合と同じです。

コマンドラインによる操作について

シミュレータ接続後にTarget Consoleウインドウからコマンド入力ができます。


 /ja/node/6374


以下のコマンドでRTCの動作確認ができます。 Workbench、omniORB、openRTM-aistのパスは適宜変更してください。

 cd "/home/openrtm/openrtm-build/omniORB/omniORB_69_rtp_sim/omniORB-4.2.2/bin/simpentium_vxWorks_RTP_6.9"
 cp "/home/openrtm/WindRiver/vxworks-6.9/target/lib/usr/root/SIMPENTIUMgnu/bin/libc.so.1","./"
 rtpSp "./omniNames.out -start 2809"
 
 cd "/home/openrtm/openrtm-build/OpenRTM/OpenRTM_69_rtp_sim/OpenRTM-aist/build_vxworks/examples/SimpleIO"
 cp "/home/openrtm/WindRiver/vxworks-6.9/target/lib/usr/root/SIMPENTIUMgnu/bin/libc.so.1","./"
 rtpSp "./ConsoleOutComp.vxe"

OpenRTM-aist動作確認(VxWorks、カーネルモジュール、PowerPC搭載ボード利用の場合)

このページでは、PowerPCボード上でVxWorks用にビルドしたRTCのカーネルモジュールの動作確認を行う手順を説明します。

WorkbenchとVxWorksとの接続

以下の手順でWorkbenchとVxWorksの接続を生成してください。

WorkbenchのRemote Systemでターゲットサーバを選択後にconnect 'xxxxx'ボタンを押すとVxWorksと接続します。


target02.png


カーネルモジュールのロード

WorkbenchのRemote Systemでターゲットサーバを右クリックして、DownloadVxWorks Kernel Taskを選択してください。


server1.png


Download ConfigurationsウインドウのLaunch Contextタブから、ダウンロードするシステムにターゲットサーバを選択してください。


server5.png


Downloadsタブからダウンロードするモジュールを設定します。 Addボタンをクリックしてください。


server6.png


Addウインドウでrtcd.outのパスを設定後、OKボタンをクリックしてください。 rtcd.outはOpenRTM-aistのビルドディレクトリのutils/rtcd以下に生成されています。

  • 例:/home/openrtm/OpenRTM-aist/build_vxworks/utils/rtcd/rtcd.out


server3.png


Downloadボタンをクリックするとダウンロードを開始します。


 /ja/node/6374


起動するRTCのカーネルモジュールについても同様の手順でダウンロードしてください。

  • 例(ConsoleIn):/home/openrtm/OpenRTM-aist/build_vxworks/examples/SimpleIO/ConsoleIn.out
  • 例(ConsoleOut):/home/openrtm/OpenRTM-aist/build_vxworks/examples/SimpleIO/ConsoleOut.out

RTC実行

マネージャ起動

WorkbenchのRemote Systemでターゲットサーバを右クリックして、RunVxWorks Kernel Taskを選択してください。


server2.png


Run Configurationsウインドウで各種設定を行います。 Entry Pointにはrtcd_mainと入力してください。 Argumentsには"-o manager.shutdown_on_nortcs:NO -o manager.shutdown_auto:NO -o corba.nameservers:172.30.1.1"を設定してください。ネームサーバーはVxWorksでは起動しないため、Ubuntu上のネームサーバーにRTCを登録します。 ※ORBexpressを使用する場合はエンドポイントの設定corba.endpoints:172.30.1.20:1234も追加してください。 Runボタンを押すとマネージャが起動します。 IPアドレスは適宜変更してください。


server4.png


RTCの起動

マネージャの起動と同様の手順で起動します。 Entry PointにはRTCを起動する関数を指定します。

  • 例(ConsoleIn):consolein_main
  • 例(ConsoleOut):consoleout_main

Argumentsには何も入力しなくても大丈夫です。

Ubuntuで起動したRTシステムエディタでRTCが起動したかを確認してください。

起動したRTCが登録されているかを確認してください。


 /ja/node/6374


RTCの接続、アクティブ化等の手順はUbuntuで動作確認する場合と同じです。

ただしORBexpressを使用した場合にはデータポートのコネクタ接続時にエンディアンをbigに設定する必要があります。

コマンドラインによる操作について

ターゲットサーバ接続後にWTX Consoleウインドウからコマンド入力ができます。


target03.png


以下のコマンドでRTCの動作確認ができます。 Workbench、omniORB、openRTM-aistのパス、UbuntuのIPアドレスは適宜変更してください。

 cd "/home/openrtm/openrtm-build/OpenRTM/OpenRTM_69_kernel_sim/OpenRTM-aist/build_vxworks/utils/rtcd"
 ld<rtcd.out
 cd "/home/openrtm/openrtm-build/OpenRTM/OpenRTM_69_kernel_sim/OpenRTM-aist/build_vxworks/examples/SimpleIO"
 ld<ConsoleIn.out
 
 taskSpawn "rtcd_main",100,67108864,1000000,rtcd_main,"-o","manager.shutdown_on_nortcs:NO","-o","manager.shutdown_auto:NO","-o","corba.nameservers:172.30.1.1"
 taskSpawn "consolein_main",100,0,1000000,consolein_main

OpenRTM-aist動作確認(VxWorks、RTP、PowerPC搭載ボード利用の場合)

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

OpenRTM-aist 本体に手を加えたうえで Windows 上で利用したい場合は、Windows 用ソースパッケージを自分でビルドするができます。 ここでは、ダウンロードページやリポジトリからソースを取得し Windows 上で OpenRTM-aist をビルドする方法を解説します。

Windows 上での OpenRTM-aist のビルドは、環境の整備やインストーラの作成など、Windows 上での様々な知識が必要となります。 本ドキュメントは、Windows 上でのプログラム開発やバッチファイル等の基本的な知識がある方を対象としています。

Windows 用ソースコード

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

  • 文字コード (Windows: Shift-JIS、Linux: EUC)
  • Visual Studio のソリューションを含む
  • Visual C++ のプロジェクトファイルを含む
  • msi インストーラ作成環境を含む

ソースコードの構成

図に示すように、オリジナルは subversion リポジトリのソースコードで、そのソースコードから、Linux上で、

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

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

openrtm_src_dist_ja.png
OpenRTM-aist のソースの構成

リポジトリから取得した最新のソースコードを Windows で利用する場合は、一旦 Linux で Windows 用のソースコードを生成する必要があります。

ビルド環境

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

  • Visual C++
    • Visual C++ Express Edition でも利用可能です
  • omniORB

Visual C++/Visual Studio

Windows 用のバイナリをビルドするためには、Visual C++ 開発環境が必要です。 現在対応している Visual C++ は Visual C++ 2008、2010、2012、2013 です。

Visual C++ Express Edition は Microsoft が無償で提供する C++ の開発環境で、MFC や ATL などは利用できませんが、Windows アプリケーション (Win32アプリケーション) を開発することができます。 OpenRTM-aist を利用したコンポーネント開発でも、MFC や ATLなどを利用しないコンポーネントは Visual C++ Express Edition のみで開発することができます。 下記リンクから ISO イメージをダウンロードしてインストールした上で、Microsoft Live ID を取得してライセンス(無料)を取得してください。

omniORB

OpenRTM-aist のビルドには omniORB 4.1.7(2015/03/31現在)のライブリが必要です。 openrtm.org が提供するビルド済みバイナリパッケージを下記リンク先に用意してあります。 環境に合わせて適切なものをダウンロードし、適当な場所 (以下では C:\distribution\omniORB を仮定) に展開してください。

環境変数: OMNI_ROOT

OMNI_ROOT に設定したディレクトリー以下は以下のような構造になっている必要があります。

 <OMNI_ROOT>
  + bin
  |  + scripts
  |  + x86_win32
  + idl
  |  + COS
  + include
  |  + COS
  |  + omniORB4
  |  |  + internal
  |  + omnithread
  |  + omniVms
  + lib
  |  + python
  |  |  + omniidl
  |  |  + omniidl_be
  |  |     + cxx
  |  |        + dynskel
  |  |        + header
  |  |        + impl
  |  |        + skel
  |  + x86_win32

WiX

1.1.1-RELEASE 版ではソースに含まれているインストーラー作成コードのメンテナンスは行っておりません。

WiX (Windows Installer XML) は Windows の msi インストーラをコマンドラインベースのツール群で作成することを目指しているオープンソースのプロジェクトです。

OpenRTM-aist は Windows 用のインストーラーを WiX を利用して作成しています。 インストーラーまで作成する場合には、WiX を予めインストールしておいてください。

Python

ビルドの途中でいくつかの Python スクリプトを利用するので Python 2.7 が必要になります。 以下のサイトから最新のものを取得しインストールしてください。

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

ソースパッケージの取得

まずソースコード OpenRTM-aist-1.1.1-win32.zip をダウンロードし、適当なディレクトリーに展開します。

バッチファイルの修正

build.bat の先頭に以下のような部分があります。これらが、それぞれ適切な値に設定されているかを確認してください。 
ARCH、VC_VERSION の設定については、このバッチファイルに記述されている説明をご覧ください。

 set RTM_ROOT=%~dp0
 set COIL_ROOT=%RTM_ROOT%\coil
 set OMNI_ROOT=C:\distribution\omniORB-4.1.7-win64-vc12
 if not DEFINED ARCH       set ARCH=x86_64
 if not DEFINED VC_VERSION set VC_VERSION=12
 if not DEFINED PYTHON_DIR set PYTHON_DIR=C:\Python27_x64

ビルド

以上の準備が完了したら、ビルドを行います。build.bat をダブルクリックし、起動すれば自動でビルドが始まります。

インストール

すべてが正しくビルドできたら次のことを行い、インストールを完了させます。

  • 環境変数 RTM_ROOT を設定: OpenRTM-aist のディレクトリーを環境変数 RTM_ROOT に設定してください。
  • DLL へのパスを通す: DLL をパスの通った場所にコピーする、あるいは、環境変数 PATHに%RTM_ROOT%\bin を追加します。
  • 環境変数 PATH の設定: 環境変数 PATHに%RTM_ROOT%\binだけでなく%RTM_ROOT%\utils\rtc-templateも登録することをお勧めします。

以上で、OpenRTM-aist のインストールは終了です。

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

パッケージが用意されていない UNIX 環境や、クロス開発環境、OpenRTM-aist 本体のソースを変更して利用したい場合には、ソースからコンパイルすることができます。 ここでは、ダウンロードページやリポジトリからソースを取得し Linux 上 で OpenRTM-aist をビルドする方法を解説します。

配布ソースのビルド

OpenRTM-aist (C++版) は autotools を利用したビルド環境を提供しているため、様々な環境で容易にビルドできます。

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

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

  • FreeBSD
  • Vine Linux
  • Fedora
  • Debian
  • Ubuntu

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

依存ライブラリ

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

  • gcc/g++ version3 以降: コンパイルに必要
  • omniORB-4.x 以上: OpenRTM-aist のビルドに必要
    • omniORB-4.0.6 にはバグがありますので利用しないでください
  • uuid ライブラリ: libuuid (Linux等デフォルトで uuid 生成関数を提供していない環境のみ)
  • python: ビルドツールを利用するために必要
    • PyYAML
  • boost: 拡張モジュールをコンパイルする際に必要になる場合がある

それぞれのライブラリ等のドキュメントに従いインストールを行ってください。 これらのパッケージが、標準のディレクトリー(/usr、/usr/local 等)下にインストールされていると、以降の OpenRTM-aist のコンパイル作業を比較的簡単に行うことができます。

UbuntuやFedora等特定のディストリビューション向けには、以下のリポジトリに ''pkg_install_OS名.sh’’という依存ライブラリやOpenRTMのパッケージをインストールするスクリプトが用意されています。

これらのインストールスクリプトの使い方については、「一括インストール・スクリプト」のページをご覧ください。

ソースのダウンロード

OpenRTM-aist のソースをダウンロードします。 ソースコードは、http://www.openrtm.org/pub/OpenRTM-aist/cxx/ の下のバージョン番号フォルダ以下からダウンロードできます。 バージョン1.1.2のソースコードは以下の場所にあります。

ソースコードの展開

まずソースコード OpenRTM-aist-X.X.X.tar.gz を適当なディレクトリーに展開します。

 $ tar xvzf OpenRTM-aist-X.X.X.tar.gz
 $ cd OpenRTM-aist-X.X.X

ビルド

OpenRTM-aist はパッケージのビルドに autoconf、automake を使用しています。 ビルドの仕方は、他の autoconf、automake を使用したパッケージと同様に行います。

 $ ./configure --prefix=/usr [options]

[options]で使用可能なオプションは

 $ ./configure --help

で参照してください。

make

configure が正常に終了したことを確認してください。正常に終了したら make します。

 $ make

ビルドが正常に終了したら、ヘッダファイル、ライブラリ、ユーティリティコマンド群をインストールします。

 $  su
 # make install

以上で、ソースコードからのビルドおよびインストールは終了です。

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

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

必要なツール

リポジトリからチェックアウトしたソースは configure スクリプトや Makefile.in が含まれていません。これらを生成するには、

  • automake
  • libtool
  • autoconf

等のツールが必要ですので予めインストールしておきます。 これらの必要なツールをインストールする際、Ubuntuなどでは上で紹介した「一括インストール・スクリプト」を利用することもできます。

Ubuntuではpkg_install_ubuntu.shを以下のように実行することで、OpenRTM-aist 本体の開発を行う開発者向けのツール(automake等含む)などもまとめてインストールすることができます。

 # pkg_install_ubuntu.sh -l c++ -c 

ソースのチェックアウト

ソースをリポジトリからチェックアウトします。

 $ svn co http://svn.openrtm.org/OpenRTM-aist/trunk/OpenRTM-aist
 A    OpenRTM-aist/include
 A    OpenRTM-aist/include/rtm
 A    OpenRTM-aist/AUTHORS
 A    OpenRTM-aist/src
 A    OpenRTM-aist/src/ext
 A    OpenRTM-aist/src/ext/artlinux
 中略
 A    OpenRTM-aist/examples/Templates/PanTilt.xml
 A    OpenRTM-aist/INSTALL.jp
  U   OpenRTM-aist
 Checked out revision 2009.

autogen.shの実行

チェックアウトすると、OpenRTM-aist というディレクトリーができているはずですので、そのディレクトリーに入ります。

 $ ls 
 OpenRTM-aist
 $ cd OpenRTM-aist
 $ ls
 AUTHORS         Makefile.am     acinclude.m4    examples/       win32/
 COPYING.LIB     NEWS            build/          include/
 COPYRIGHT*      README          configure.ac    openrtm.m4
 ChangeLog       README.jp       docs/           src/
 INSTALL.jp      TUTORIAL.jp     etc/            utils/

build ディレクトリーの下に autogen というシェルスクリプトがあることを確認し、このスクリプトを実行します。 実行には、数分程度の時間がかかることがあります。

 $ls build/autogen
 build/autogen*
 $ sh build/autogen
 
 Setting up environment to generate configure script.
 
 ------------------------------------------------------------
  Searching Autotools
 ------------------------------------------------------------
 autoconf   was found in /usr/local/bin/autoconf.
 autoheader was found in /usr/local/bin/autoheader.
 autom4te   was found in /usr/local/bin/autom4te.
 autoreconf was found in /usr/local/bin/autoreconf.
 autoupdate was found in /usr/local/bin/autoupdates.
 automake   was found in /usr/local/bin/automake-1.9.
 aclocal    was found in /usr/local/bin/aclocal-1.9.
 libtool    was found in /usr/local/bin/libtool.
 libtoolize was found in /usr/local/bin/libtoolize.
 
 
 ------------------------------------------------------------
  Searching libtool.m4
 ------------------------------------------------------------
 file was found: /usr/local/share/aclocal/libtool.m4
 
  Copying libtool.m4 from /usr/local/share/aclocal/libtool.m4
 
 ------------------------------------------------------------
  Doing autoreconf
 ------------------------------------------------------------
 autoreconf-2.62: Entering directory `.'
 autoreconf-2.62: configure.ac: not using Gettext
 autoreconf-2.62: running: /usr/local/bin/aclocal-1.9 --force
 autoreconf-2.62: configure.ac: tracing
 autoreconf-2.62: configure.ac: adding subdirectory src/lib/coil to autoreconf
 autoreconf-2.62: Entering directory `src/lib/coil'
 autoreconf-2.62: running: /usr/local/bin/libtoolize --copy --force
 You should update your `aclocal.m4' by running aclocal.
 autoreconf-2.62: running: /usr/local/bin/autoconf --force
 autoreconf-2.62: running: /usr/local/bin/autoheader --force
 autoreconf-2.62: running: /usr/local/bin/automake-1.9 --add-missing --copy --force-missing
 configure.ac: installing `./install-sh'
 configure.ac: installing `./missing'
 ace/coil/Makefile.am: installing `./depcomp'
 Makefile.am: installing `./INSTALL'
 autoreconf-2.62: Leaving directory `src/lib/coil'
 You should update your `aclocal.m4' by running aclocal.
 configure.ac: installing `./install-sh'
 configure.ac: installing `./missing'
 examples/AutoTest/Makefile.am: installing `./depcomp'
 Makefile.am: installing `./INSTALL'
 autoreconf-2.62: Leaving directory `.'
 done
 $

configure & ビルド

autogen の実行により、configure が OpenRTM-aist ディレクトリー内にできているはずですので、以降は通常のソースからのビルドと同様に、configur & make でビルドします。

 $ ls -l configure
 -rwxr-xr-x  1 n-ando  n-ando  812893 Jul  6 05:56 configure*
 $ ./configure --prefix=/usr
 $ make

make dist

make dist を行うことで openrtm.org で配布しているようなソースのパッケージを作成することもできます。 また、make dist では Windows 上でビルド可能なソースコードのパッケージも同時に作成します。 ただし、make dist を行うには、doxygen や latex、qkc等、さらに追加のコマンドが必要となります。

 $ make dist
 数分程度かかる
 $ ls -l OpenRTM-aist*
 -rw-r--r--  1 n-ando  n-ando  9266837 Apr  7 09:53 OpenRTM-aist-1.0.0-win32.zip
 -rw-r--r--  1 n-ando  n-ando  4831099 Apr  7 09:53 OpenRTM-aist-1.0.0.tar.bz2
 -rw-r--r--  1 n-ando  n-ando  7258796 Apr  7 09:53 OpenRTM-aist-1.0.0.tar.gz
 $

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

  • OpenRTM-aist-1.0.0-win32.zip: Windows 用ソース
  • OpenRTM-aist-1.0.0.tar.gz: 汎用ソース (gzip 圧縮)
  • OpenRTM-aist-1.0.0.tar.bz2: 汎用ソース (bzip 圧縮)

ソースからのビルド (Windows編、ランタイムライブラリ/MT・/MTd指定)

Visual Studio でランタイムライブラリにマルチスレッド(/MT)、マルチスレッドデバッグ(/MTd)を指定した RTC を開発する場合、/MT、/MTdの実行ファイルが他の DLL にリンクして処理を行うとヒープ破壊等で異常終了することがあります。 マルチスレッド(/MT)、マルチスレッドデバッグ(/MTd)を指定したい場合は以下の手順で OpenRTM-aist の静的ライブラリを作成してください。

※動作確認はほとんどしていないため、以下の作業は全て自己責任で行ってください。

OpenRTM-aist のビルド

OpenRTM-aist のソースコードの入手

以下より OpenRTM-aist のソースコードを入手してください。

ダウンロードしたら適当な場所に展開してください。 この例では以下の位置に配置します。

 C:\openrtm_work\OpenRTM-aist

omniORBの入手

以下より omniORB のバイナリパッケージを入手してください。 Visual Studioのバージョンにあったものを選んでください。

ダウンロードしたら、OpenRTM-aist フォルダー内に omniORB という名前のフォルダーを作成して展開してください。

 C:\openrtm_work\OpenRTM-aist\omniORB

各種ファイルの編集

/MT、/MTd でビルドするために各種ファイルの編集を行います。

build.bat

以下の build.bat というバッチファイルを編集します。

 C:\openrtm_work\OpenRTM-aist\build.bat

環境によって以下の箇所を適宜変更してください。

 set RTM_ROOT=%~dp0
 set COIL_ROOT=%RTM_ROOT%\coil
 set OMNI_ROOT=%RTM_ROOT%\omniORB
 if not DEFINED ARCH       set ARCH=x86
 if not DEFINED VC_VERSION set VC_VERSION=12
 if not DEFINED PYTHON_DIR set PYTHON_DIR=c:\python27
 if not DEFINED RTM_VERSION set RTM_VERSION=1.1.2
 if not DEFINED OMNI_VERSION  set OMNI_VERSION=4.1.7
 if not DEFINED OMNITHREAD_VERSION set OMNITHREAD_VERSION=3.4

libRTC_vc**.vcxproj、libcoil_vc**.vcxproj、libRTCSkel_vc**.vcxproj

以下のlibRTC_vc12.vcxproj、libcoil_vc12.vcxproj、libRTCSkel_vc12.vcxprojというプロジェクトファイルを編集します。 Visual Studio のバージョンに合わせて libRTC_vc11.vcxproj、libcoil_vc11.vcxproj、libRTCSkel_vc11.vcxproj 等を編集するようにしてください。

  • C:\openrtm_work\OpenRTM-aist\rtm\libRTC_vc12.vcxproj
  • C:\openrtm_work\OpenRTM-aist\rtm\libcoil_vc12.vcxproj
  • C:\openrtm_work\OpenRTM-aist\rtm\idl\libRTCSkel_vc12.vcxproj

まずはランタイムライブラリを変更します。 以下のように MultiThreadedDebugDLL と記載してある箇所を MultiThreadedDebug に変更します。 32bitか64bit かによって編集する箇所が違うのですが、両方変更しても問題ありません。

 <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
arrow.png
 <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>

同様にMultiThreadedDLLもMultiThreadedに変更します。

 <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
arrow.png
 <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

次に動的ライブラリではなく静的ライブラリを生成するように変更します。 ※libRTCSkel_vc12.vcxproj は元々静的ライブラリを生成するので変更の必要はありません。

DynamicLibraryをStaticLibrary に変更してください。

 <ConfigurationType>DynamicLibrary</ConfigurationType>
arrow.png
 <ConfigurationType>StaticLibrary</ConfigurationType>

それに合わせて出力ファイル名も変更します。

 <OutputFile>$(OutDir)\RTC$(rtm_dllver).dll</OutputFile>
arrow.png
 <OutputFile>$(OutDir)\RTC$(rtm_dllver).lib</OutputFile>

 <OutputFile>$(OutDir)\RTC$(rtm_dllver)d.dll</OutputFile>
arrow.png
 <OutputFile>$(OutDir)\RTC$(rtm_dllver)d.lib</OutputFile>

 <OutputFile>$(OutDir)\coil$(coil_dllver).dll</OutputFile>
arrow.png
 <OutputFile>$(OutDir)\coil$(coil_dllver).dll</OutputFile>

 <OutputFile>$(OutDir)\coil$(coil_dllver)d.dll</OutputFile>
arrow.png
 <OutputFile>$(OutDir)\coil$(coil_dllver)d.dll</OutputFile>

また、ファイルをコピーするコマンドも変更します。

 <Command>copy &quot;$(OutDir)\\$(TargetName).lib&quot; &quot;$(SolutionDir)bin\\RTC$(rtm_dllver)d.lib&quot;&#x0D;&#x0A;copy &quot;$(OutDir)\\RTC$(rtm_dllver)d.dll&quot; &quot;$(SolutionDir)bin\\&quot;&#x0D;&#x0A;</Command>
arrow.png
 <Command>copy &quot;$(OutDir)\\$(TargetName).lib&quot; &quot;$(SolutionDir)bin\\RTC$(rtm_dllver)d.lib&quot;&#x0D;&#x0A;</Command>

 <Command>copy &quot;$(OutDir)\\$(TargetName).lib&quot; &quot;$(SolutionDir)bin\\RTC$(rtm_dllver).lib&quot;&#x0D;&#x0A;copy &quot;$(OutDir)\\RTC$(rtm_dllver).dll&quot; &quot;$(SolutionDir)bin\\&quot;&#x0D;&#x0A;</Command>
arrow.png
 <Command>copy &quot;$(OutDir)\\$(TargetName).lib&quot; &quot;$(SolutionDir)bin\\RTC$(rtm_dllver).lib&quot;&#x0D;&#x0A;;</Command>

 <Command>copy &quot;$(OutDir)\\$(TargetName).lib&quot; &quot;$(SolutionDir)bin\\coil$(coil_dllver)d.lib&quot;&#x0D;&#x0A;copy &quot;$(OutDir)\\coil$(coil_dllver)d.dll&quot; &quot;$(SolutionDir)bin\\&quot;&#x0D;&#x0A;</Command>
arrow.png
 <Command>copy &quot;$(OutDir)\\$(TargetName).lib&quot; &quot;$(SolutionDir)bin\\coil$(coil_dllver)d.lib&quot;&#x0D;&#x0A;</Command>

 <Command>copy &quot;$(OutDir)\\$(TargetName).lib&quot; &quot;$(SolutionDir)bin\\coil$(coil_dllver).lib&quot;&#x0D;&#x0A;copy &quot;$(OutDir)\\coil$(coil_dllver).dll&quot; &quot;$(SolutionDir)bin\\&quot;&#x0D;&#x0A;</Command>
arrow.png
 <Command>copy &quot;$(OutDir)\\$(TargetName).lib&quot; &quot;$(SolutionDir)bin\\coil$(coil_dllver).lib&quot;&#x0D;&#x0A;</Command>

OpenRTM-aist-1.1.2、omniORB-4.1.7 でエラーが発生するので、libRTC_vc12.vcxproj の PreprocessorDefinitionsにRTM_OMNIORB_41 を追加してください。OpenRTM-aist-1.2.0、もしくは omniORB-4.2.1 の場合は不要です。

 <PreprocessorDefinitions>LIBRARY_EXPORTS;WIN32;_DEBUG;_WINDOWS;_USRDLL;__WIN32__;__NT__;__OSVERSION__=4;__x86__;_WIN32_WINNT=0x0400;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
arrow.png
 <PreprocessorDefinitions>LIBRARY_EXPORTS;WIN32;_DEBUG;_WINDOWS;_USRDLL;__WIN32__;__NT__;__OSVERSION__=4;__x86__;_WIN32_WINNT=0x0400;_CRT_SECURE_NO_DEPRECATE;RTM_OMNIORB_41;%(PreprocessorDefinitions)</PreprocessorDefinitions>

rtm_config.props

omniORB のリンクするライブラリを変更します。 以下の rtm_config.props というファイルを編集してください。

 C:\openrtm_work\OpenRTM-aist\rtm_config.props

以下の箇所を変更します。

 <omni_lib>omniORB$(omni_dllver)_rt.lib;omniDynamic$(omni_dllver)_rt.lib;omnithread$(omnithread_dllver)_rt.lib</omni_lib>
 <omni_libd>omniORB$(omni_dllver)_rtd.lib;omniDynamic$(omni_dllver)_rtd.lib;omnithread$(omnithread_dllver)_rtd.lib</omni_libd>
arrow.png
 <omni_lib>omniORB4.lib;omniDynamic4.lib;omnithread.lib</omni_lib>
 <omni_libd>omniORB4d.lib;omniDynamic4d.lib;omnithreadd.lib</omni_libd>

ビルド

build.bat を起動したらビルドを開始します。 終了したら、binフォルダーに以下のファイルが生成されているかを確認してください。

  • libRTCSkel.lib
  • libRTCSkeld.lib
  • coil112_vc12.lib
  • coil112_vc12d.lib
  • RTC112_vc12.lib
  • RTC112_vc12d.lib

※サンプルコンポーネントや rtcd、rtcprof のコンパイルで大量にエラーが出ますが、自分の RTC をビルドするだけならば必要ないので無視してください。

OpenRTMConfig.cmakeの編集

omniORB のリンクするライブラリ名が変わったのと、新たにリンクするライブラリを追加する必要があるため以下のファイルを編集します。

  • C:\openrtm_work\OpenRTM-aist\cmake\OpenRTMConfig.cmake

 set(OMNIORB_LIBRARIES optimized;omniORB417_rt;
                       optimized;omniDynamic417_rt;
                       optimized;omnithread34_rt;
                       debug;omniORB417_rtd;
                       debug;omniDynamic417_rtd;
                       debug;omnithread34_rtd)
arrow.png
 set(OMNIORB_LIBRARIES optimized;omniORB4;
                       optimized;omniDynamic4;
                       optimized;omnithread;
                       debug;omniORB4d;
                       debug;omniDynamic4d;
                       debug;omnithreadd)

 set(OPENRTM_LIBRARIES optimized;RTC112_vc12;
                       optimized;coil112_vc12;
                       optimized;omniORB4_rt;
                       optimized;omniDynamic4_rt;
                       optimized;omnithread4_rt;
                       optimized;advapi32;
                       optimized;ws2_32;
                       optimized;mswsock;
                       debug;RTC112_vc12d;
                       debug;coil112_vc12d;
                       debug;omniORB4_rtd;
                       debug;omniDynamic4_rtd;
                       debug;omnithread4_rtd;
                       debug;advapi32;
                       debug;ws2_32;
                       debug;mswsock)
arrow.png
 set(OPENRTM_LIBRARIES optimized;RTC112_vc12;
                       optimized;coil112_vc12;
                       optimized;omniORB4;
                       optimized;omniDynamic4;
                       optimized;omnithread;
                       optimized;advapi32;
                       optimized;ws2_32;
                       optimized;mswsock;
                       optimized;libRTCSkel;
                       optimized;rpcrt4;
                       debug;RTC112_vc12d;
                       debug;coil112_vc12d;
                       debug;omniORB4d;
                       debug;omniDynamic4d;
                       debug;omnithreadd;
                       debug;advapi32;
                       debug;ws2_32;
                       debug;mswsock;
                       debug;libRTCSkeld;
                       debug;rpcrt4)

※このファイルは再度 OpenRTM-aist をビルドすると上書きするので注意してください。

RTCのビルド

次に/MT、/MTd を設定してビルドしたいRTCのファイルを編集します。 srcフォルダーの CMakeLists.txt を編集します。 以下の記述を追加することで、ランタイムライブラリを/MT、/MTdに設定します。

 set(CMAKE_CXX_FLAGS_RELEASE "/MT")
 set(CMAKE_CXX_FLAGS_DEBUG "/MTd")

次にビルドに使用する OpenRTM-aist、omniORB を先ほどビルドしたものに設定して RTC のビルドを行います。 コマンドプロンプトより、以下のコマンドを入力して変数を設定してください。

 set RTM_ROOT=C:\openrtm_work\OpenRTM-aist
 set VC_VERSION=12
 set OMNI_ROOT=C:\openrtm_work\OpenRTM-aist\omniORB
 set OpenRTM_DIR=C:\openrtm_work\OpenRTM-aist\cmake

Visual Studio のバージョンなどによって適宜変更してください。

最後に以下のコマンドでビルドすれば完了です。

 cmake .
 cmake --build . --config Debug

エラーの原因について

/MTの実行ファイルが何らかのDLLとリンクした状態で動作すると以下のエラーメッセージが表示されることがあります。

 Expression: _pFirstBlock == pHead

実行ファイル側で確保したメモリをDLL側で開放したりすると発生します。

  • DLL側

&#10;__declspec(dllexport) void deleteData(char* v)&#10;{&#10;    delete v;&#10;}&#10;

  • 実行ファイル側

&#10;void deleteData(char* v);&#10;&#10;int main(void)&#10;{&#10;    char *v = new char[1000];&#10;    deleteData(v);&#10;}&#10;

これはランタイムライブラリに /MT、/MTd を指定した場合、ヒープ領域が実行ファイルと DLL で別に作成されるためヒープ破壊が発生することがあるようです。 ただし確実に発生するわけではなく、例えば deleteData 関数実行前に print文を入れると何故か発生しなかったりします。 この場合、後になって全然関係ない箇所で落ちたりするので原因特定が非常に難しくなります。

一方、ランタイムライブラリに /MD、/MDd を指定した場合、ヒープ領域は共有するためこのような問題は発生しません。

OpenRTM-aist、あるいは omniORB のどこで異常が発生しているのかを調べて修正するのは無理だと思うので、基本的にはランタイムライブラリには /MD、/MDd を使うようにしてください。

どうしてもランタイムライブラリに /MT、/MTd を設定したい場合は、上記の方法で静的ライブラリを作成してください。

上記の方法で /MT、/MTd 指定の RTC が一応動作できるようにはなりますが、omniORB と coil が advapi32.dll という名前のライブラリにリンクしており、advapi32.dll が /MD のランタイムライブラリ(MSVCRT)を使用しているため、ここで何が起こるかは分かりません。

動作確認 (Windows編)

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

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

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

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

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

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

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

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

ネームサーバーの起動

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

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

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

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

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

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

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

openrtm.org が提供する msi インストーラーには omniORB が含まれていますが、手動でインストールした場合には、omniORB が入っていない場合も考えられますので、omniORB がインストールされているか確認してください。

環境変数 OMNI_ROOT が設定されていない

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

環境変数 OMNI_ROOT が設定されていることを確認してください。 環境変数は、
  • [コントロールパネル] > [システム] > [詳細設定]タブ > [環境変数]
  • [マイコンピューター] を右クリック、[プロパティ] を選択、[詳細設定] タブ > [環境変数] などから参照・編集することができます。

その他

ユーザー名が2バイト文字の場合、ログを出力するフォルダーを適切に設定できずに omniNames.exe の起動に失敗する場合があります。 その場合、環境変数 TEMP を2バイト文字を含まない場所に設定することで改善する場合があります。 適当なテンポラリディレクトリー (以下のケースでは C:\temp) を作成し、そこを環境変数 TEMP が指すように、rtm-naming.bat の先頭部分で以下のように設定します。

 set cosnames="omninames"
 set orb="omniORB"
 set port=%1
 rem set OMNIORB_USEHOSTNAME=localhost
 set PATH=%PATH%;%OMNI_ROOT%\bin\x86_win32
 set TEMP=C:\temp

また、稀なケースですが、ホスト名やアドレスの設定の問題で、起動がうまくいかないケースがあります。 その場合、利用している PC の IPアドレス を omniNames.exe に教えてあげるとうまくいくケースがります。 環境変数 OMNIORB_USEHOSTNAME を以下のように設定します (以下は自ホストの IPアドレスが 192.168.0.11 の場合の例)。

 set cosnames="omninames"
 set orb="omniORB"
 set port=%1
 set OMNIORB_USEHOSTNAME=192.168.0.11
 set PATH=%PATH%;%OMNI_ROOT%\bin\x86_win32

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

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

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

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

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

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

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

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

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

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

 corba.nameservers: localhost

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

RTSystemEditorRCP (RTSE) の起動

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

rtse_start_ja.png
RTSystemEditor の起動

※ RTSystemEditor (RCP 版 ) を動作させるために、32bit 版の Java 動作環境 (JRE) または Java 開発環境 (JDK) が必要となります。
インストーラーのオプションで JRE を yes で選択していればインストールされています。

ネームサーバーへの接続

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 コンポーネントへデータが転送されたことがわかります。

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

RTSystemEditorRCP (RTSE) の起動が起動しない場合

以下のメッセージが出て RTSystemEditorRCP (RTSE) が起動しない場合は、32bit 版の Java 動作環境 (JRE) または Java 開発環境 (JDK) をインストールする必要があります。 変更インストールで JRE を選択すればインストールされます。手順は、コントロールパネルの「プログラムのアンインストールまたは変更」を開き、OpenRTM-aist の右クリックして「変更」を選択します。 インストーラー画面での JRE 選択については、OpenRTM-aistを10分で始めよう! のページをご覧ください。

Clipboard01.jpg
RTSystemEditorRCP(RTSE) の起動時のエラー

他のサンプル

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

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

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


動作確認 (Linux編)

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

  • /usr/share/openrtm-1.1/example
  • /usr/local/share/openrtm-1.1/example (ソースからビルドしてインストールした場合)
  • /opt/local/share/openrtm-1.1/examples (Mac OS X に MacPorts でインストールした場合)

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

  • 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 以下にあるものとして説明を記述します。

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

ネームサーバーを起動

まず、コンポーネントの参照を登録するためのネームサーバーを起動します。 Linux などのパッケージで omniORB をインストールした場合、すでにシステムのサービスとしてネームサーバー (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:9876
 
 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.

rtc.conf の作成

テストのための RTC コンフィギュレーションファイル rtc.conf を作成し、配置します。 まず、適当な作業ディレクトリーを作ります。ここでは便利のため、ホームディレクトリー直下に RTCwork というディレクトリーを作業ディレクトリーとしておくことにします。 作業ディレクトリー RTCwork に、次のような内容のファイル rtc.conf を作成し配置します。

/usr/share/OpenRTM-aist/examples の下にある 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に置き換えてください。

ConsoleInComp の起動

ターミナルを起動して、次のように前節で作成した rtc.conf を参照させる形で ConsoleInComp を起動します。

 $ /usr/share/openrtm-1.1/example/ConsoleInComp -f rtc.conf 
 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): out
 -------------------------------------------------
 - properties -
 port.port_type: DataOutPort
 dataport.data_type: TimedLong
 dataport.subscription_type: flush,new,periodic
 dataport.dataflow_type: push
 dataport.interface_type: corba_cdr
 -------------------------------------------------
 

自分でビルド・インストールした場合は、

 $ <source_dir>/OpenRTM-aist/examples/SimpleIO/ConsoleInComp -f ~rtc.conf

などとして ConsoleInComp を起動します。

ConsoleOutComp の起動

ターミナルを起動して、同様に先ほど作成した rtc.conf を参照する形で ConsoleOutComp を起動します。

 $ /usr/share/openrtm-1.1/example/ConsoleOutComp -f rtc.conf 
 succeed.
 =================================================
  Component Profile
 -------------------------------------------------
 InstanceID:     ConsoleOut0
 Implementation: ConsoleOut
 Description:    Console output component
 Version:        1.0
 Maker:          Noriaki Ando, AIST
 Category:       example
   Other properties   
 =================================================
 =================================================
 Port0 (name): in
 -------------------------------------------------
 - properties -
 port.port_type: DataInPort
 dataport.data_type: TimedLong
 dataport.subscription_type: Any
 dataport.dataflow_type: push,pull
 dataport.interface_type: corba_cdr
 ------------------------------------------------- 

自分でビルド・インストールした場合は、同様に

 $ <source_dir>/OpenRTM-aist/examples/SimpleIO/ConsoleOutComp -f ~rtc.conf

などとして ConsoleOutComp を起動します。

RTSystemEditor の起動

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

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

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

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

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

 localhost
 または
 localhost:2809

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

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

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

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

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

数値入力と出力の確認

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

 Please input number: 

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

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

システム環境変数設定ツールの使い方

VCVerChanger

概要

本ツールは、OpenRTM-aist 1.2.0 版以降のインストーラーに含まれており、下記のケースに対応しています。
  • OpenRTM-aist で使用する Visual Studio のバージョンを変更したい
  • OpenRTM-aist の32bit 版、64bit 版を両方インストールしているが、切り替えて使いたい。

OpenRTM-aistは、32bit 版も64bit 版も同じ名前のシステム環境を利用しています。またパスを通すために PATH にも追加しています。 このため、32bit 版、64bit 版の両方をインストールしたり、一方をアンインストールしたりすると、システム環境変数の書き換えが必要となる場合があります。

このような場合に本ツールを起動して [確認] ボタンをクリックすると、正しいシステム環境変数に修正します。

本ツールのログを、起動画面に示している先に出力しています。毎回上書きしているので直前の実行内容だけですが確認することができます。

インストールおよび起動

インストール後にスタートメニューから起動できます。VCVerChanger で検索しての起動もできます。

VCVerChanger_01.png
VCVerChanger_02.png
スタートから OpenRTM-aist xxx(1.2.0以降) VCVerChanger

Visual Studio のバージョン更新手順

本ツールを起動し、[確認] ボタンをクリックします。ここで示している画像は、OpenRTM-aist の 32bit 版だけをインストールしている環境での結果です。

VCVerChanger_03.jpg


現在のシステム環境変数の設定が表示されます。一番上の Visual Studio Version がインストールしているバージョンと一致しているか確認します。 一致していて変更する必要がない場合でも、インストール直後であれば、[更新] ボタンをクリックして下さい。 この操作により、システム環境変数の値が確実に反映されます。

VCVerChanger_04.jpg


変更する場合は、下記のようにリストから選択し、[更新] ボタンをクリックします。

VCVerChanger_05.jpg


変更後の設定が表示されますので、指定した RTM_VC_VERSION の値がパスに反映されていることを確認し、[終了] ボタンをクリックします。

VCVerChanger_06.jpg


OpenRTM-aist の 32bit、64bit パスの切替手順

32bit 版と 64bit 版を続けてインストールした場合、本ツールを起動して [確認] ボタンをクリックします。 現在のシステム環境変数の設定が表示され、PATH に両方の設定が混ざって追加されていることを確認できます。

VCVerChanger_07.jpg


32bit、64bit のどちらかを選択し、[切替] ボタンをクリックします。

VCVerChanger_08.jpg


切り替え後の設定が表示されますので、パスを確認し [終了] ボタンをクリックします。

VCVerChanger_09.jpg


OpenRTM-aist 1.1.2版用のツール OpenRTMEnvTool

ダウンロード

本ツールの実行には、mfc の dll が必要です。この dll を別途インストールせずともツールを実行するために、2種類の実行ファイルを用意しています。 ご使用の Visual Studio のバージョンに合わせてダウンロードしてください。

Visual Studio 2008,2010,2012 向け OpenRTMEnvTool_vc10.exe
Visual Studio 2013,2015 向け OpenRTMEnvTool_vc12.exe

使い方

ダウンロードした exe ファイルを実行すると以下の画面が表示されるので、[確認] ボタンをクリックします。

RTMEnvTool_01.jpg


現在のシステム環境変数の設定が表示されるので、一番上の「RTM_VC_VERSION」の設定がインストールしている Visual Studio のバージョンと一致しているか確認します。

RTMEnvTool_02.jpg


「RTM_VC_VERSION」の設定を vc14 (vc2015用)に変更する場合は、下記のように指定し、[更新] ボタンをクリックします。

RTMEnvTool_03.jpg


変更後の設定が表示されますので、指定した RTM_VC_VERSION の値がパスに反映されていることを確認し、[終了] ボタンをクリックします。

RTMEnvTool_04.jpg


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 が正しくインストールされていることが確認できました。

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)

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


OpenRTM Eclipse tools のインストール 1.1系

eclipse_logo.png

RTC の開発を支援するために、RTCBuilder と RTSystemEditor を提供しております。 RTCBuilder と RTSystemEditor は、Eclipse 統合開発環境のプラグインとして作成された開発ツールです。 そのため、RTCBuilder と RTSystemEditor を使用するには、Eclipse と Java の開発環境をインストールする必要があります。

ここでは、それらのインストール方法について説明します。

こちら に UNIX用 と Windows用 のインストールパッケージを用意しました。 RTSystemEditor と RTCBuilder を含め、全て( Eclipse4.4.2 + 日本語化 + RTSystemEditor + GEF + EMF + XSD + RTCBuilder )が入った UNIX用と Windows用のパッケージを用意しました。とても簡単にインストールできますので、とりいそぎ動かしてみたい方はぜひご利用ください。

Java Development Kit 7(JDK)が必要ですので、事前にインストールしてください。 Eclipse のアーカイブ(圧縮された状態のパッケージファイル)は100MB以上あります。 ダウンロードしたら、アーカイブをインストールしたいディレクトリーに展開してください。 Eclipse には特にインストーラーは無く、アーカイブを展開するだけでそのまま使用できます。

Eclipse について

eclipse_logo.png
Eclipse は Eclipse Foundation が開発するオープンソースのJava 言語およびその他の言語のための統合開発環境を構築するためのフレームワークです。 Eclipse の基本部分は plug-in を実行するためのプラットフォームで、 様々な開発環境は多くのplug-in の集合体として構築されます。 デフォルトで付属するJava の開発環境自体もplug-inとして実現され、 plug-in を追加することで様々な言語の開発環境として容易に拡張することができます。
Eclipse の特徴として、
  • plug-in 機構により容易に拡張可能であり、plug-in 同士の連携も可能である。
  • Rich Client Platform (RCP) と呼ばれる仕組みにより、 plug-in をスタンドアロン化することが容易にできる。
  • Java で実装されているため、多くのプラットフォームで動作する。

等が挙げられます。 こうした Eclipse の特徴が、ロボット用統合開発環境を構築する上で有用であると判断し、Eclipse を RTミドルウエアのツールのためのプラットフォームとして選択しました。

RTCBuilder と RTSystemEditor を利用するには Eclipse をインストールする必要があります。 Eclipse のインストール方法に関しては、

などが参考になります。

Java 実行環境 (JRE) のインストール

Eclipse は Java アプリケーションですので、Oracle の Java 実行環境(JRE: Java Runtime Environment) をインストールする必要があります。 すでに、JDK(Java 開発環境、ただし、1.6以上)がインストールされている環境では JRE のインストールは必要ありません。(RTCBuilder で、Java のコードを生成させる場合には JRE でなく JDK が必要となります。)

ダウンロード後はインストーラーの指示に従ってインストールしてください。


JDK インストール:
 ⇒ Java Development Kit 7


参考:  → cool! UNIX系環境で簡易に Oracle の Java(JRE) を Eclipse に適用する方法

Eclipse のインストール

Eclipse のダウンロードサイト からそれぞれのプラットフォームに対応した Eclipse のアーカイブをダウンロード、インストールしてください。 なお、RTCBuilder と RTSystemEditor の推奨環境は Eclipse3.4.2 です。


参考:

 → ''FAQ:'' Eclipse の起動方法

  • Ubuntu8.04、Ubuntu9.10 で Linux 用 Eclipse3.4.2 が動作しない不具合が報告されています。
    • Ubuntu8.04では、apt-get install xulrunner-1.9 として xulrunninerをアップデートしてください。
    • Ubuntu9.10では、以下の方法を利用するか、Eclipse3.3 もしくは 3.5 をご利用ください。
       $ su
       # vi /etc/apt/source.list
        1行追加 → deb http://jp.archive.ubuntu.com/ubuntu/ jaunty main restricted
       # apt-get update
       # apt-get install xulrunner-1.9
       # dpkg -l |grep xulrunner-1.9
       ii  xulrunner-1.9                        1.9.0.8+nobinonly-0ubuntu2                 XUL +  XPCOM application runner
       ii  xulrunner-1.9.1                      1.9.1.7+nobinonly-0ubuntu0.9.10.1          XUL + XPCOM application runner
       ii  xulrunner-1.9.1-gnome-support        1.9.1.7+nobinonly-0ubuntu0.9.10.1          Support for GNOME in xulrunner-1.9.1 applica
       一応、1.9.1と1.9 が共存
       # exit
       $ export GDK_NATIVE_WINDOWS=1
       $ ./eclipse
      また、xulrunner-1.9.1.8 で動作するという報告もあります。1.9.1.8 にアップデートして、以下のようなシェルスクリプトを用意して起動するとよいでしょう。
       #/bin/sh
       export GDK_NATIVE_WINDOWS=1
       ./eclipse -vmargs -Dorg.eclipse.swt.browser.XULRunnerPath=/usr/lib/xulrunner-1.9.1.8/xulrunner

Eclipse の日本語化

この時点では Eclipse は日本語化されていません。もし、 日本語化したい場合は以下の Eclipse の日本語化のページを参考にしてください。

簡単な手順は, 以下の通りです.

  1. Eclipse のバージョンに合ったファイルを下記サイトからダウンロードします。
    Eclipse 日本語化言語パック (サードパーティ版)
  2. 解凍してできた eclipse フォルダー内の features、 plugins をeclipse本体があるフォルダーにコピーします。
  3. eclipse を再起動します。
    参考:  → ''FAQ:'' Eclipseの起動方法

プラグインのインストール

RTCBuilder と RTSystemEditor は下記の Eclipse プラグインを使用しています。

以下の手順で、これらのプラグインをインストールしてください。

  1. Eclipse のメニューから [ヘルプ] > [ソフトウエア更新] を選択します。
  2. このような ソフトウェア更新およびアドイン ウィンドウ が表示されますので、「使用可能なソフトウェア」タブを選択します。
    eclipse_update_ja.png
  3. Genymede Update Site を展開してプラグインを選択します。
    eclipse_plugin_GEF_JDT_ja.png
    eclipse_plugin_EMF_SDO_ja.png
  4. [インストール]をクリックします。
    eclipse_plugin2_ja.png
  5. これで、これらのプラグインが自動的にダウンロードされて、インストールされます。

インストール後 Eclipse を一旦終了します。

RTCBuilder のインストール

RTCBuilder とは

RTCBuilder は RTコンポーネントのテンプレートを生成する開発ツールです。パラメーターを基に RTコンポーネントのテンプレートを生成する機能を持っています。 また、RTCBuilder は Eclipse にて動作し、直感的な操作と他の Eclipse プラグインとのシームレスな連携が可能です。

機能概要

提供される機能の一覧は以下のとおりです。

画面要素名 説明
RTC プロファイルエディタ RTコンポーネントの仕様であるプロファイル、データポート定義、サービスポート定義、コンフィギュレーション定義、その他拡張プロファイルを編集します。
ビルドビュー 編集中の RTコンポーネントおよびデータポート、サービスポート、サービスインターフェースをアイコンでグラフィカルに表示します。
リポジトリビュー 選択した RTリポジトリの情報を表示します。

動作環境

RTCBuilderの動作に必要な環境は以下のとおりです。

環境 備考
Java Development Kit 6 注意:Java1.5(5.0) では動作しません。
Eclipse 3.4.2以上
http://www.eclipse.org/downloads/index.php
http://archive.eclipse.org/eclipse/downloads/index.php
Eclipse本体
Eclipse EMF 2.2以上(SDO,XSD含む) RTCBuilderが依存するEclipseプラグイン
ご使用になられる Eclipse のバージョンに合ったものをご使用ください。
Eclipse GEF 3.2以上(Draw2D含む) RTCBuilderが依存する Eclipse プラグイン
ご使用になられる Eclipse のバージョンに合ったものをご使用ください。
Eclipse Java development tools(JDT) ご使用になられる Eclipse のバージョンに合ったものをご使用ください。

また以下の開発を行う言語によっては以下の環境をインストールしておくと便利です。

環境 備考
Eclipse CDT C++用の開発環境
Pydev for Eclipse python用の開発環境

RTCBuilder のインストール

RTCBuilder は Eclipse プラグインであるため、 Eclipse 本体をインストールする必要があります。 さらに、Eclipse は Java アプリケーションなので、Eclipse 本体をインストールする前に Java 実行環境(あるいはJDK:Java開発環境でもよい)をインストールする必要があります。

RTCBuilder のインストールと起動

バイナリ(日本語版 jar ファイル(RTSE+RTCB)) をダウンロードして、 Eclipse の plugin ディレクトリ(eclipse ディレクトリー以下の plugin というディレクトリー)にダウンロードした jar ファイルをそのままコピーします。

Eclipse を起動し、メニューから [ウインドウ] > [パースペクティブを開く] > [その他] を選択すると、 次のようなパースペクティブ選択画面が表示されます。
fig2-3PerspectiveSelection_ja.png

パースペクティブ一覧にある RTC Builder を選択すると、次のような画面が表示されて RTCBuilder が起動されます。
fig2-4RTCBuilderInit_ja.png

~ツールバーの [Open New RTC Builder Editor] ボタンをクリックするか、メニューバーの [ファイル] > [Open New Builder Editor] を選択することで、Builder エディタが起動します。
fig2-9ToolsBarOpenNewRtcBuilder_ja.png

fig2-10FileMenuOpenNewBuilder_ja.png


参考:''FAQ:'' Eclipseの起動方法

RTSystemEditor のインストール

RTSystemEditor とは

RTSystemEditor は、OpenRTM-aist に含まれる開発ツールの1つであり、RTC をリアルタイムにグラフィカル操作する機能を持っています。また、Eclipse 統合開発環境のプラグインとして作成されており、Eclipse 上にて既存のプラグインとシームレスに操作を行うことができます。

機能概要

RTSystemEditorは、RTC をリアルタイムにグラフィカル操作する機能を持っています。提供される機能の一覧は以下のとおりです。

機能名称 機能概要
コンポーネントコンフィグレーション表示/編集機能 選択したコンポーネントのコンフィギュレーションプロファイル情報をコンフィグレーションビューに表示し編集する。
コンポーネント動作変更機能 選択したコンポーネントの動作を変更する。
コンポーネント組み立て機能 システムエディタ上でシステムの組み立てやリポジトリおよびファイルシステムのコンポーネント仕様の編集を行う。
システムセーブ/オープン機能 システムエディタの内容をセーブ/オープンする。
システム復元機能 保存したシステムエディタの内容をシステムに復元する。

動作環境

RTSystemEditor の動作に必要な環境は以下のとおりです。

環境 備考
Java Development Kit 6 注意:Java1.5(5.0)では動作しません。
Eclipse 3.4.2以上
http://www.eclipse.org/downloads/index.php
http://archive.eclipse.org/eclipse/downloads/index.php
Eclipse 本体
Eclipse EMF 2.2.4 EMF+SDO Runtime および XSD Runtime RT System Editor が依存する Eclipse プラグイン
Eclipse GEF 3.2.2 RT System Editor が依存する Eclipse プラグイン
Eclipse Java development tools(JDT) ご使用になられる Eclipse のバージョンに合ったものをご使用ください。

RTSystemEditor のインストール

RTSystemEditor は Eclipse プラグインであるため、 Eclipse 本体をインストールする必要があります。さらに、 Eclipse は Java アプリケーションなので、Eclipse 本体をインストールする前に Java 実行環境(あるいは JDK:Java 開発環境でもよい)をインストールする必要があります。

RTSystemEditor のインストールと起動

バイナリ(日本語版 jar ファイル(RTSE+RTCB)) をダウンロードして、 Eclipse の plugin ディレクトリー( Eclipse のアーカイブを展開すると通常 eclipse というディレクトリーが作成されますが、 その中の plugin というディレクトリー)にダウンロードした jar ファイルをそのままコピーします。

Eclipse を起動し、 メニューから [ウインドウ] > [パースペクティブを開く] > [その他] を選択すると、 次のようなパースペクティブ選択画面が表示されます。
fig4PerspectiveSelection_ja.png

パースペクティブ一覧にある RT System Editor を選択すると、 次のような画面が表示されて RTSystemEditor が起動されます。
fig5InitialOfRTSystemEditorstarts_ja.png

もし、 パースペクティブの一覧に RT System Editor が表示されない場合は、EMF や GEF や XSD や JDT が正しくインストールできているか、 RT System Editorがplugin ディレクトリーに正しくコピーされているかを再度チェックしてください。

Eclipse の再起動

RTSystemEditor の起動が確認できましたら、一旦、Eclipse を終了してください。再度、同じワークスペースを指定して Eclipse を起動すると、RTSystemEditor が起動された状態から始まります。



参考:  → ''FAQ:'' Eclipseの起動方法

RTSystemEditor、RTCBuilder のデバッグ

このページではRTSystemEditor、RTCBuilderのデバッグの手順を説明します。

必要なソフトウェアの入手

eclipse

RTSystemEditor、RTCBuilderはeclipseのプラグインとして動作します。 以下のサイトからから、eclipseをダウンロードしてください。 その際にパッケージはUltimateのFull Edisionを選択してください。 Standard Editionだとプラグイン開発環境を手動でインストールする必要があります。

JDK

JRE 1.8以上が必要なため、以下から最新版のJDKのインストーラーを入手してインストールしてください。

RTSystemEditor、RTCBuilderのソースコード

以下からTortoiseSVN等によりチェックアウトしてください。

ビルド

eclipse.exeを実行してください。

JREの設定

使用するJREを設定します。

「ウインドウ」→「設定」→「Java」→「インストール済みのJRE」で、「追加」→「標準 VM」を選択後にJREのパス(例:C:\Program Files (x86)\Java\jdk1.8.0_131\jre)を追加後にチェックを入れる


plugin4_1.png


plugin5_1.png


plugin6.png


plugin7_1.png


plugin8_1.png


コンパイラー準拠レベルの設定

初期の状態でコンパイラー準拠レベルが1.6に設定されている場合があるようなので、「ウインドウ」→「設定」→「Java」→「コンパイラー」でコンパイラー準拠レベルを1.8に設定してください。


plugin9_1.png


RTSystemEditor、RTCBuilderプロジェクトのインポート

RT System Editor、RTC Builderを開発環境のeclipseにインポートします。 「ファイル」→「インポート」→「プラグイン開発」→「プラグインおよびフラグメント」を選択後「次へ」を押してください。


plugin12.png



plugin13.png


「インポート先」の「ディレクトリー」をオンにして、rtmtoolsをチェックアウトしたディレクトリを設定して次へ進んでください。


plugin14_1.png


全て追加を選択して、完了ボタンを押してください。


plugin15_1.png


IDLコンパイル

IDLファイルのコンパイルを行います。 パッケージエクスプローラーでjp.go.aist.rtm.toolscommonプロジェクトの「buildForCliant」を右クリックして「実行」→「Antビルド」を選択すれば開始します。


plugin2_1.png


Antビルドで文字化けする場合

Antビルドで文字化けする場合は、「実行」→「外部ツール」→「外部ツールの構成」→「Antビルド」をダブルクリックして、「共通」タブ→「エンコード」でその他「MS932」に設定してください。


plugin10.png



plugin11_1.png


クラスパスの修正

環境によってはクラスパスが正しく設定されない場合があります。 その場合はデバッグ時にClassNotFoundExceptionの例外が発生するため、rtmtoolsに存在するplugin.xml全てを修正してください。 パッケージエクスプローラーでplugin.xmlをダブルクリックして、「ランタイム」タブから「クラスパス」に「.」を追加してください。(「MANIFEST.MF」の「Bundle-ClassPath」に追加しても可)


plugin1_1.png


これで準備完了です。

デバッグ実行

上部の虫のマークのボタンから、「デバッグ」→「Eclipse アプリケーション」でデバッグが開始します。


plugin3_1.png