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

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

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

Windowsへのインストール

windows10-logo.png

インストールの準備

32bit版と64bit版

現状、ほとんどのWindowsは64bit版が利用されていますので、基本的には以下は 64bit を前提として説明します。 インストールしているWindowsが32bit版の場合は、OpenRTM-aistやその他のソフトウェアは32bit版をインストールする必要があります。

NOTE: 基本的にすべて64bit版のソフトウェアを使用してください。

必要なソフトウエアのインストール

OpenRTM-aistを利用するには、Python、CMake、Doxygen、Visual Studio等のソフトウェアのインストールが必要です。

Visual Studio

C++版の開発だけでなく、Python版、Java版のRTCを作成した際に、インストーラをビルドするのにも必要です。 以下のCommunity版(無料)をインストールするか、別途Visual Studio 2010/2012/2013/2015/2017/2019を入手してインストールしてください。

Python

NOTE: Python2.7は2020年4月にサポートが終了しました。使用は推奨されていません。 OpenRTM-aist-1.2.2でもPython2.7は一応利用することはできます。

PythonはPython言語版のRTCの開発だけでなく、OpenRTM-aistの様々なツールでも使用していますので必ずインストールする必要があります。 2020年11月現在、サポートが提供されているPythonは 3.6, 3.8, 3.7, 3.9 (2020年10月リリース) ですが、OpenRTM-aistがサポートしているのは 3.6~3.8 までです。 最新版をインストールすることをお勧めします。

CMake

CMakeはWindowsやLinux等様々な環境でビルドに必要なファイル(Visual Studioのプロジェクトファイル、Linux上のMakefile等)を自動生成するために必要です。

Doxygen & Graphviz

Doxygenは、ソースコード等のコメントからドキュメントを自動生成するツールです。 Graphvizは、Doxygenでドキュメントを生成する際に、クラス図等の図を生成するために必要とされるツールです。 OpenRTM-aistでは、RTCBuilderでRTCの設計時に様々な設計情報を記入することができ、それらはソースコードのコメントとして出力されます。 これをDoxygenで処理することで、RTCのキレイなドキュメントを生成することができます。

インストールの途中で[Install Options]としてsystem PATHをどうするかを聞かれますが、Add CMake to the system PATH for all usersを選択することを推奨します。 上記WebページからWindows版のバイナリ実行形式ファイルをダウンロードして実行してインストールしてください。

インストール後、コマンドプロンプトで dot -v を実行してプラグイン情報が表示されることを確認して下さい。

 >dot -v
 dot - graphviz version 2.44.1 (20200629.0846)
 libdir = "C:\Program Files\Graphviz 2.44.1\bin"
 Activated plugin library: gvplugin_dot_layout.dll
 Using layout: dot:dot_layout
 Activated plugin library: gvplugin_core.dll
 Using render: dot:core
 Using device: dot:dot:core
 The plugin configuration file:
        C:\Program Files\Graphviz 2.44.1\bin\config6
                was successfully loaded.
    render      :  cairo dot dot_json fig gdiplus json json0 map mp pic ps svg tk vml xdot xdot_json
    layout      :  circo dot fdp neato nop nop1 nop2 osage patchwork sfdp twopi
    textlayout  :  textlayout
    device      :  bmp canon cmap cmapx cmapx_np dot dot_json emf emfplus eps fig gif gv imap imap_np ismap jpe jpeg jpg json 
                      json0 metafile mp pdf pic plain plain-ext png ps ps2 svg tif tiff tk vml xdot xdot1.2 xdot1.4 xdot_json
    loadimage   :  (lib) bmp eps gif jpe jpeg jpg png ps svg

下記のように表示された場合、管理者でコマンドプロンプトを開き、dot -c を実行後に dot -v を実行すると上記のように表示されます。

 >dot -v
 dot - graphviz version 2.44.1 (20200629.0846)
 There is no layout engine support for "dot"
 Perhaps "dot -c" needs to be run (with installer's privileges) to register the plugins?

管理者でコマンドプロンプトを開く方法は、Windows10の検索窓に cmd と入力し、検索結果の「コマンドプロンプト」を右クリックして「管理者として実行」を選択します。

OpenRTM-aistのインストール

上記のソフトウェアのインストールが完了したら、OpenRTM-aistのインストールを行います。

インストーラのダウンロード

OpenRTM-aistのWindows版のインストーラ(msi形式)を以下のページからダウンロードします。

このインストーラには、以下の内容が含まれています。

  • C++ 用開発環境
    • C++用過去バージョンのDLL (古いRTC実行時に必要)
  • Python 用開発環境
  • Java 用開発環境
  • OpenRTP (GUIツール、RTCBUilder,RTSystemEditor)
    • JRE8環境 (OpenRTPに必要)
  • rtshell (CUIツール)

したがって、ファイルサイズが1GB近くあり、ダウンロードに多少時間がかかります。ご注意ください。

インストール

msiファイルが正しくダウンロードされたら、ファイルをダブルクリックしてインストールを開始してください。 以下のようなインストーラが起動しますので 「次へ」 をクリックして進みます。

openrtm122_inst_01.png

使用許諾契約書が表示されますので、ソフトウェアライセンス条項に同意します にチェックを入れます。 なお、OpenRTM-aist は LGPLv3、OpenRTPはEPL v1.0 ライセンスです。

openrtm122_inst_02.png

ユーザアカウントごとにインストールするか、すべてのユーザが使えるようにインストールするか選択します。 現在インストールを行っているアカウントが管理者権限があれば、「すべてのユーザにインストール」 を推奨します。

openrtm122_inst_03.png

使用しているVisual Studioのバージョンを選択します。

openrtm122_inst_04.png

セットアップの種類を選択します。「標準」「完全」は同じで、すべての項目をインストールします。通常か 「標準」 を選択します。

openrtm122_inst_05.png

「カスタム」 をクリックすると、インストールする項目を選択できます。特定の言語のみインストールしたい場合などはこちらを選択します。

openrtm122_inst_06.png

インストールを開始すると、以下のようなダイアログが出ます。「はい」 をクリックして先へ進んでください。

openrtm122_inst_08.png

すべてインストールが完了すると以下の画面となります。「完了」 を押してウインドウを閉じてください。 以上でインストールは完了です。正しくインストールされているかどうかは、「OpenRTMを10分で始めよう・サンプルコンポーネント」 などを見ながらサンプルコンポーネントを実行するなどして確認してください。


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

インストーラーは以下の作業内容に従ってファイルのコピー、システム設定を行います。 インストール、アンインストールが正しく行われているかの確認する際の参考のために以下に記しておきます。

  • インストールディレクトリ(デフォルトはC:\Program Files)下に各種ファイルをコピー
  • スタートメニュー以下にOpenRTM-aistフォルダーを作成し各種ショートカットを設定
  • 環境変数の設定
    • 64bit用MSI利用時の設定
 RTM_BASE=C:\Program Files\OpenRTM-aist\
 RTM_ROOT=C:\Program Files\OpenRTM-aist\1.2.1\
 RTM_VC_VERSION= //ここにはユーザーが指定したVisual StudioにのっとったVCのバージョンを指定するテキストが入ります
 RTM_JAVA_ROOT=C:\Program Files\OpenRTM-aist\1.2.1\
 OMNI_ROOT=C:\Program Files\OpenRTM-aist\1.2.1\omniORB\4.2.3_%RTM_VC_VERSION%\
 OpenCV_DIR=C:\Program Files\OpenRTM-aist\1.2.1\OpenCV3.4\
 OpenRTM_DIR=C:\Program Files\OpenRTM-aist\1.2.1\cmake\
      • PATHへの追加設定(64bit用MSI利用時の設定)
 C:\Program Files\OpenRTM-aist\1.2.1\bin\%RTM_VC_VERSION%\
 C:\Program Files\OpenRTM-aist\1.2.1\omniORB\4.2.1_%RTM_VC_VERSION%\bin\x86_win32\
 C:\Program Files\OpenRTM-aist\1.2.1\OpenCV3.4\%RTM_VC_VERSION%\bin\
    • 32bit用MSI利用時の設定
 RTM_BASE=C:\Program Files (x86)\OpenRTM-aist\
 RTM_ROOT=C:\Program Files (x86)\OpenRTM-aist\1.2.1\
 RTM_VC_VERSION= //ここにはユーザーが指定したVisual StudioにのっとったVCのバージョンを指定するテキストが入ります
 RTM_JAVA_ROOT=C:\Program Files (x86)\OpenRTM-aist\1.2.1\
 OMNI_ROOT=C:\Program Files\OpenRTM-aist\1.2.1\omniORB\4.2.3_%RTM_VC_VERSION%\
 OpenCV_DIR=C:\Program Files\OpenRTM-aist\1.2.1\OpenCV3.4\
 OpenRTM_DIR=C:\Program Files\OpenRTM-aist\1.2.1\cmake\
      • PATHへの追加設定
 C:\Program Files (x86)\OpenRTM-aist\1.2.1\bin\%RTM_VC_VERSION%\
 C:\Program Files(x86)\OpenRTM-aist\1.2.1\omniORB\4.2.3_%RTM_VC_VERSION%\bin\x86_win32\
 C:\Program Files(x86)\OpenRTM-aist\1.2.1\OpenCV3.4\x86\%RTM_VC_VERSION%\bin\

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

ファイルは以下のような構造でインストールされます。

 <install_dir>
   + OpenRTM-aist
      + 1.x.x  :旧バージョンのランタイム
      + 1.2.1
         + bin: dll、lib各種コマンド
         + cmake: OpenRTMConfig.cmake
         + coil: coilヘッダファイル
         + Components
            + C++
               + Examples: C++サンプルコンポーネント
               + OpenCV: OpenCVのC++サンプルコンポーネント
            + Java: Java サンプルコンポーネント
            + Python: Python サンプルコンポーネント
         + etc: rtc.confサンプル
         + jar: jarファイル
         + jre: OpenJDK JRE
         + omniORB
         + OpenCV3.4
         + rtm: OpenRTM-aistヘッダファイル
            + ext: 拡張モジュール用ファイル 
            + idl: OpenRTM-aistIDLファイル
         + util
            + ExcelControlpy: PythonベースのMicrosoft Office用RTC
            + OpenRTP: RTCBuilderとRTSystemEditorツール
            + PowerPointControlpy: Microsoft Office PowerPoint用RTC
            + python_dist: pythonベースツール共通ライブラリ
            + RTCDT: PythonベースRTCの開発を支援するツール
            + rtc-template: RTCBuilderと似た機能を提供する古いツール
            + RTSystemEditor: RTSystem Editorのみのファイル
            + VCVerChanger: 使用しているVisual Studioのバージョンを指定するツール
            + WordContrlpy: PythonベースMicrosoft Office Word用RTC

Visual Studioのインストール

Visual Studio Community 2022のインストール

インストーラーの入手

以下のページからVisual Studio Community 2022のインストーラーを入手してください

[Community]とラベルされた下の[無料ダウンロード]ボタンをクリックするとインストーラーのダウンロードが始まります。

vs2022_install1.png

インストーラーの実行

ダウンロードが終了したら、ダウンロードしたファイルを開いて実行してください。指示にしたがってクリックしていくと以下の画面が表示されるので、[C++によるデスクトップ開発]にチェックを入れて[インストール]ボタンをクリックしてください。

vs2022_install2.png

インストールの確認

vs2022_install3.png

インストールが完了するとサインインを求める画面が表示されるため、Microsoftアカウントでサインインしてください。サインインしなくても30日間は使用できます。 Microsoftアカウントの手順は以下を参考にしてください。

新しいMicrosoftアカウントを作成する方法

C++コンパイラがインストールされているかの確認

C++によるデスクトップ開発機能がインストールされているかを必ず確認してください。

Visual C++のプロジェクトを作成できれば問題ありません。 まず、[新しいプロジェクトの作成]をクリックしてください。

vs2022_install4.png

この時、
[空のプロジェクト
Windows用にC++で最初から始めます。開始ファイルは提供しません]
などが選択肢にあればインストールに問題ありません。

new_project2022.png

インストールされていない場合は、
[探しているものが見つからない場合
さらにツールと機能をインストールする]
をクリックするとインストーラーが起動するので、[’’C++によるデスクトップ開発機能’’]をインストールしてください。

vs_install5.png



Ubuntu/Debianへのインストール

ubuntu_logo2.png

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

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

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

オプションを指定することで、目的に合わせたパッケージをインストールすることが可能です。

一括インストールスクリプトのダウンロードや詳しいインストール方法、指定可能なオプションの種類につきましては、「一括インストールスクリプト」のページをご確認ください。
※最新バージョンが「1.2.2」である場合は、オプション指定で「1.2.1」のインストール、「1.2.2」から「1.2.1」へのダウングレードができます。

一括インストールスクリプトは、ダウンロードした後、ダウンロード先ディレクトリに移動し、

Ubuntuの場合は

 $ sudo sh pkg_install_ubuntu.sh -l c++ --yes

Debianの場合はsuでroot権限を得た後に

 # sh pkg_install_debian.sh -l c++ --yes

でインストールできます。

OpenRTPのインストール

一般的なUbuntu/Debian環境での開発にはRTC BuilderやRTSystem Editorを使用しますが、その場合にはOpenRTPが必要ですので、一括インストールスクリプトを用いてOpenRTPをインストールしてください。Ubuntuではpkg_install_ubuntu.shが置いてあるディレクトリで

Ubuntuは:

 $ sudo sh pkg_install_ubuntu.sh -l openrtp --yes

Debianはsuでroot権限を得た後に:

 # sh pkg_install_debian.sh -l openrtp --yes

と入力するとOpenRTPをインストールできます。

JDK8のインストール

OpenRTP(RTSystem EditorやRTC Builderなど)の実行にはJDK8相当のJava環境が必要です。(デフォルトの環境でJDK8がインストールされている場合もありますが、Ubuntu 18.04ではJDK11がインストールされているため、JDK8のインストールが必要です。) JDK8の入手やインストールについては以下を参照してください。

インストールの確認

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

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

パッケージの詳細

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

openrtm-aist

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

  • コマンド
     /usr/bin/fluent-bit
     /usr/bin/rtcd
     /usr/bin/rtcprof
     /usr/bin/rtm-config
     /usr/bin/rtm-naming
  • ライセンスなど
     /usr/share/doc/openrtm-aist/README
     /usr/share/doc/openrtm-aist/README.Debian
     /usr/share/doc/openrtm-aist/README.jp
     /usr/share/doc/openrtm-aist/changelog.Debian.gz
     /usr/share/doc/openrtm-aist/changelog.gz
     /usr/share/doc/openrtm-aist/copyright
  • 設定ファイルサンプル
     /usr/etc/fluent-bit/fluent-bit.conf
     /usr/etc/fluent-bit/parsers.conf
     /usr/etc/rtc.conf.sample
     /usr/lib/x86_64-linux-gnu/pkgconfig/openrtm-aist.pc
  • ヘッダなど
     /usr/include/fluent-bit.h
     /usr/include/fluent-bit/flb_api.h
     /usr/include/fluent-bit/flb_bits.h
     中略
     /usr/include/fluent-bit/flb_worker.h
  • ライブラリなど
     /lib/systemd/system/fluent-bit.service
     /usr/lib/libfluent-bit.so
    • 32bit
       /usr/lib/i386-linux-gnu/libRTC-1.2.1.so
       /usr/lib/i386-linux-gnu/libRTC.a
       中略
       /usr/lib/i386-linux-gnu/librtmManipulator.so.0.0.0
       /usr/lib/i386-linux-gnu/openrtm-1.2/ec/FileNameservice.la
       /usr/lib/i386-linux-gnu/openrtm-1.2/ec/FileNameservice.so
       中略
        /usr/lib/i386-linux-gnu/openrtm-1.2/ec/RTPreemptEC.so.0.0.0
       /usr/lib/i386-linux-gnu/openrtm-1.2/logger/FluentBit.la
       中略
       /usr/lib/i386-linux-gnu/openrtm-1.2/logger/FluentBit.so.0.0.0
       /usr/lib/i386-linux-gnu/openrtm-1.2/sdo/LoggerConsumer.a
       /usr/lib/i386-linux-gnu/openrtm-1.2/sdo/LoggerConsumer.la
       中略
       /usr/lib/i386-linux-gnu/openrtm-1.2/sdo/LoggerConsumer.so.0.0.0
       /usr/lib/i386-linux-gnu/libRTC-X.X.X.so
       /usr/lib/i386-linux-gnu/libRTC.a
       中略
       /usr/lib/i386-linux-gnu/librtmManipulator.so.X.X.X
  • 64 bit
     /usr/lib/x86_64-linux-gnu/libRTC-1.2.1.so
     /usr/lib/x86_64-linux-gnu/libRTC.a
     中略
     /usr/lib/x86_64-linux-gnu/librtmManipulator.so.0.0.0
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/ec/FileNameservice.la
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/ec/FileNameservice.so
     中略
      /usr/lib/x86_64-linux-gnu/openrtm-1.2/ec/RTPreemptEC.so.0.0.0
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/logger/FluentBit.la
     中略
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/logger/FluentBit.so.0.0.0
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/sdo/LoggerConsumer.a
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/sdo/LoggerConsumer.la
     中略
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/sdo/LoggerConsumer.so.0.0.0
     /usr/lib/x86_64-linux-gnu/libRTC-X.X.X.so
     /usr/lib/x86_64-linux-gnu/libRTC.a
     中略
     /usr/lib/x86_64-linux-gnu/librtmManipulator.so.X.X.X

openrtm-aist-dev

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

  • コマンド
     /usr/bin/coil-config
     /usr/bin/rtc-template
     /usr/bin/rtm-skelwrapper
  • ライセンスなど
     /usr/share/doc/openrtm-aist-dev/changelog.Debian.gz
     /usr/share/doc/openrtm-aist-dev/changelog.gz
     /usr/share/doc/openrtm-aist-dev/copyright
  • ヘッダなど
     /usr/include/coil-1.2/coil/Affinity.h
     /usr/include/coil-1.2/coil/Allocator.h
     中略
     /usr/include/coil-1.2/coil/stringutil.h
     /usr/include/openrtm-1.2/rtm/BufferBase.h
     /usr/include/openrtm-1.2/rtm/BufferStatus.h
     中略
     /usr/include/openrtm-1.2/rtm/config_rtc.h
     /usr/include/openrtm-1.2/rtm/ext/CameraCommonInterface.hh
     /usr/include/openrtm-1.2/rtm/ext/CameraCommonInterfaceDynSK.cc
     中略
     /usr/include/openrtm-1.2/rtm/ext/ManipulatorCommonInterface_MiddleStub.h
     /usr/include/openrtm-1.2/rtm/ext/ec/artlinux/ArtExecutionContext.h
     /usr/include/openrtm-1.2/rtm/ext/ec/artlinux/rtc.conf.sample
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredEC.h
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredEC.idl
     中略
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredECStub.h
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredEC.hh
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredEC.idl
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredECDynSK.cc
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredECSK.cc
     /usr/include/openrtm-1.2/rtm/ext/ec/rtpreempt/RTPreemptEC.h
     /usr/include/openrtm-1.2/rtm/ext/ec/rtpreempt/rtc.conf.sample
     /usr/include/openrtm-1.2/rtm/ext/local_service/nameservice_file/FileNameservice.h
     /usr/include/openrtm-1.2/rtm/ext/logger/fluentbit_stream/FluentBit.h
     /usr/include/openrtm-1.2/rtm/ext/logger/fluentbit_stream/fluentbit.conf
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/Logger.hh
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/Logger.idl
     中略
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/LoggerStub.h
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserver.idl
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserverConsumer.h
     中略
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserverStub.h
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserver.hh
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserver.idl
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserverDynSK.cc
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserverSK.cc
     /usr/include/openrtm-1.2/rtm/idl/BasicDataType.hh
     /usr/include/openrtm-1.2/rtm/idl/BasicDataTypeDynSK.cc
     中略
     /usr/include/openrtm-1.2/rtm/idl/SharedMemoryStub.h
     /usr/include/openrtm-1.2/rtm/version.h
     /usr/include/openrtm-1.2/rtm/version.txt
     /usr/include/coil-1.2/coil/Affinity.h
     /usr/include/coil-1.2/coil/Allocator.h
     中略
     /usr/include/coil-1.2/coil/stringutil.h
     /usr/include/openrtm-1.2/rtm/BufferBase.h
     /usr/include/openrtm-1.2/rtm/BufferStatus.h
     中略
     /usr/include/openrtm-1.2/rtm/config_rtc.h
     /usr/include/openrtm-1.2/rtm/ext/CameraCommonInterface.hh
     /usr/include/openrtm-1.2/rtm/ext/CameraCommonInterface.idl
     中略
     /usr/include/openrtm-1.2/rtm/ext/ManipulatorCommonInterface_MiddleStub.h
     /usr/include/openrtm-1.2/rtm/ext/ec/artlinux/ArtExecutionContext.h
     /usr/include/openrtm-1.2/rtm/ext/ec/artlinux/rtc.conf.sample
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredEC.h
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredEC.idl
     中略
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredECStub.h
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredEC.hh
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredEC.idl
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredECDynSK.cc
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredECSK.cc
     /usr/include/openrtm-1.2/rtm/ext/ec/rtpreempt
     /usr/include/openrtm-1.2/rtm/ext/ec/rtpreempt/RTPreemptEC.h
     /usr/include/openrtm-1.2/rtm/ext/ec/rtpreempt/rtc.conf.sample
     /usr/include/openrtm-1.2/rtm/ext/local_service/nameservice_file/FileNameservice.h
     /usr/include/openrtm-1.2/rtm/ext/logger/fluentbit_stream/FluentBit.h
     /usr/include/openrtm-1.2/rtm/ext/logger/fluentbit_stream/fluentbit.conf
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/Logger.hh
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/Logger.idl
     中略
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/LoggerStub.h
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserver.idl
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserverConsumer.h
     中略
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserverStub.h
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserver.hh
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserver.idl
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserverDynSK.cc
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserverSK.cc
     /usr/include/openrtm-1.2/rtm/idl/BasicDataType.hh
     /usr/include/openrtm-1.2/rtm/idl/BasicDataType.idl
     中略
     /usr/include/openrtm-1.2/rtm/idl/device_interfaces/Ranger.idl
     /usr/include/openrtm-1.2/rtm/version.h
     /usr/include/openrtm-1.2/rtm/version.txt
  • ライブラリ・その他
    • 32bit
       /usr/lib/i386-linux-gnu/openrtm-1.2/cmake/OpenRTMConfig.cmake
       /usr/lib/i386-linux-gnu/openrtm-1.2/py_helper/README_gen.py
       /usr/lib/i386-linux-gnu/openrtm-1.2/py_helpver/cxx_gen.py
       中略
       /usr/lib/i386-linux-gnu/openrtm-1.2/py_helpver/yat.py
       /usr/lib/i386-linux-gnu/pkgconfig/libcoil.pc
       
    • 64bit
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/cmake/OpenRTMConfig.cmake
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/py_helper/README_gen.py
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/py_helper/cxx_gen.py
       中略
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/py_helper/yat.py
       /usr/lib/x86_64-linux-gnu/pkgconfig/libcoil.pc

openrtm-aist-example

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

  • サンプル(スタンドアロンRTC)
     /usr/share/openrtm-1.2/components/c++/examples/Composite
     /usr/share/openrtm-1.2/components/c++/examples/ConfigSampleComp
     中略
     /usr/share/openrtm-1.2/components/c++/examples/rtc.conf
  • サンプル(ローダブルRTC)
     /usr/share/openrtm-1.2/Components/C++/examples/rtc/ConfigSample.a
     /usr/share/openrtm-1.2/Components/C++/examples/rtc/ConfigSample.la
     中略
     /usr/share/openrtm-1.2/Components/C++/examples/rtc/Throughput.so.X.X.X
  • サンプル(ソース)
     /usr/share/openrtm-1.2/components/c++/examples/src/Composite/Composite.cpp
     /usr/share/openrtm-1.2/components/c++/examples/src/Composite/Controller.cpp
     中略
     /usr/share/openrtm-1.2/components/c++/examples/src/Composite/rtc.conf
     /usr/share/openrtm-1.2/components/c++/examples/src/ConfigSample/ConfigSample.cpp
     /usr/share/openrtm-1.2/components/c++/examples/src/ConfigSample/ConfigSample.h
     中略
     /usr/share/openrtm-1.2/components/c++/examples/src/ConfigSample/rtc.conf
     /usr/share/openrtm-1.2/components/c++/examples/src/ExtTrigger/ConnectorComp.cpp
     /usr/share/openrtm-1.2/components/c++/examples/src/ExtTrigger/ConsoleIn.cpp
     中略
     /usr/share/openrtm-1.2/components/c++/examples/src/ExtTrigger/run.sh
     /usr/share/openrtm-1.2/components/c++/examples/src/SeqIO/Makefile.SeqIn
     /usr/share/openrtm-1.2/components/c++/examples/src/SeqIO/Makefile.SeqOut
     中略
     /usr/share/openrtm-1.2/components/c++/examples/src/SeqIO/rtc.conf
     /usr/share/openrtm-1.2/components/c++/examples/src/SimpleIO/ConnectorComp.cpp
     /usr/share/openrtm-1.2/components/c++/examples/src/SimpleIO/ConsoleIn.cpp
     中略
     /usr/share/openrtm-1.2/components/c++/examples/src/SimpleIO/run.sh
     /usr/share/openrtm-1.2/components/c++/examples/src/SimpleService/Makefile.MyServiceConsumer
     /usr/share/openrtm-1.2/components/c++/examples/src/SimpleService/Makefile.MyServiceProvider 
     中略
     /usr/share/openrtm-1.2/components/c++/examples/src/SimpleService/rtc.conf
     /usr/share/openrtm-1.2/components/c++/examples/src/Throughput/CMakeLists.txt
     /usr/share/openrtm-1.2/components/c++/examples/src/Throughput/Throughput.cpp
     中略
     /usr/share/openrtm-1.2/components/c++/examples/src/Throughput/run.sh
     /usr/share/openrtm-1.2/components/c++/examples/templates/AIO.xml
     /usr/share/openrtm-1.2/components/c++/examples/templates/ActArray.xml
     中略 
     /usr/share/openrtm-1.2/components/c++/examples/templates/VelocityControl3D.xml
  • ライセンスなど
     /usr/share/doc/openrtm-aist-example/changelog.Debian.gz
     /usr/share/doc/openrtm-aist-example/changelog.gz
     /usr/share/doc/openrtm-aist-example/copyright

openrtm-aist-doc

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

  • クラスリファレンス
     /usr/share/openrtm-1.2/doc/C++/ClassReference/html/Affinity_8h.html
     /usr/share/openrtm-1.2/doc/C++/ClassReference/html/Affinity_8h_dep_incl.map
     中略
     /usr/share/openrtm-1.2/doc/C++/ClassReference/html/version_8h_source.html
  • IDL リファレンス
     /usr/share/openrtm-1.2/doc/idl/IDLReference/html/BasicDataType_8idl.html
     /usr/share/openrtm-1.2/doc/idl/IDLReference/html/BasicDataType_8idl_dep_incl.map
     中略
     /usr/share/openrtm-1.2/doc/idl/IDLReference/html/unionSDOPackage_1_1Numeric.html
  • クラスリファレンス(英語)
     /usr/share/openrtm-1.2/doc/C++/ClassReference-en/html/Affinity_8h.html
     /usr/share/openrtm-1.2/doc/C++/ClassReference-en/html/Affinity_8h_dep_incl.map
     中略
     /usr/share/openrtm-1.2/doc/C++/ClassReference-en/html/version_8h_source.html
  • IDL リファレンス(英語)
     /usr/share/openrtm-1.2/doc/idl/IDLReference-en/html/BasicDataType_8idl.html
     /usr/share/openrtm-1.2/doc/idl/IDLReference-en/html/BasicDataType_8idl_dep_incl.map
     中略
     /usr/share/openrtm-1.2/doc/idl/IDLReference-en/html/unionSDOPackage_1_1Numeric.html
  • ライセンスなど
     /usr/share/doc/openrtm-aist-doc/changelog.Debian.gz
     /usr/share/doc/openrtm-aist-doc/changelog.gz
     /usr/share/doc/openrtm-aist-doc/copyright

openrtm-aist-idl

  • idlファイルなど
     /etc/profile.d/openrtm-aist-idl.sh
     /usr/include/openrtm-1.2/rtm/idl/BasicDataType.idl
     /usr/include/openrtm-1.2/rtm/idl/CameraCommonInterface.idl
     中略
     /usr/include/openrtm-1.2/rtm/idl/SharedMemory.idl
     /usr/share/openrtm-1.2/idl/BasicDataType.idl
     /usr/share/openrtm-1.2/idl/CameraCommonInterface.idl
     中略
     /usr/share/openrtm-1.2/idl/SharedMemory.idl
  • ライセンスなど
     /usr/share/doc/openrtm-aist-idl/changelog.Debian.gz
     /usr/share/doc/openrtm-aist-idl/changelog.gz
     /usr/share/doc/openrtm-aist-idl/copyright

openrtp

openrtpでは大量のファイルがインストールされるため、ここではリストしません。必要に応じて

 $ dpkg -L openrtp
と入力して各自での確認をしてください。

Raspbianへのインストール

Raspberry_Pi_Logo.svg_.png

C++版OpenRTM-aistはRaspberry Pi用Raspbianl用debパッケージが提供されています。 Raspbianへの対応およびそのバージョンは、予告なしに変更または停止されることがありますので、あらかじめご了承ください。

対応バージョン

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

  • Buster

です。

SDカードの準備

OSイメージのダウンロード

以下のリンクからRasbianのイメージ(「Raspbian Buster with desktop and recommended software」のイメージを推奨しますが、必要に応じて他のイメージを選択してもかまいません)をダウンロードし、解凍し、SDカードに書き込みます。SDカードの容量は4GB以上はあったほうがよいでしょう。

SDカードへの書き込み

SDカードへの書き込み方法については RPi Easy SD Card Setup を参照してください。

このリンクではいくつかの方法が説明されています。そのうちのいくつかの概要を示すと:

Windowsの場合

Windowsを用いる方法の方がLinuxやMac OSを用いるより簡単なので、初心者にはWindowsを用いる方法を推奨します。

LinuxやMac OSの場合

  • ddコマンドを以下のように利用して書き込みます。

 $ sudo dd of=/dev/<SDカードのデバイスファイル> if=<ダウンロード・解凍したイメージファイル> bs=4M status=progress
 $ sudo sync

上記コマンドによるSDカードへの書き込みはかなり長い時間を必要とします。(数分から10数分)。また、SDカードのデバイスファイル名を見つけるには

 $ df -h
と入力し、表示されるデバイスのサイズからどのデバイスがSDカードかを見つけます。例えば、現在Rasbianがインストールされている16GBのSDカードを用いている場合、あるデバイスが14GBのデバイスとして表示され、そのデバイスが/dev/sdf7と表示されます。他にも/dev/sdf5、/dev/sdf6などの後尾の数字だけが違うデバイスが表示されます。これらがSDカードで使われているデバイス名です。これらのデバイス全て以下のようにumountしてください。
 $ umount /dev/sdf5
 $ umount /dev/sdf6
 $ umount /dev/sdf7

その後、上記のddコマンドを実行しますが、この例でのデバイスファイル名は/dev/sdfになります。

OpenRTM-aist (C++)インストール

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

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

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

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

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

OpenRTM-aistを開発・実行するために必要なパッケージをもれなくインストールしてくれるので大変便利です。初めてOpenRTM-aistをインストールしてみる方に推奨します。

一括インストール・スクリプトをダウンロードした後、ダウンロードしたディレクトリに移動して

  $ sudo sh pkg_install_raspbian.sh -l c++ --yes

でインストールできます。

一括インストールスクリプトのダウンロードや詳しいインストール方法、指定可能なオプションの種類につきましては、「一括インストールスクリプト」のページをご確認ください。

apt-getを使う方法

source.listの編集

openrtm.orgではapt-getから利用可能なパッケージリポジトリを提供しています。ただし、デフォルトのパッケージリポジトリには含まれていませんので、apt-getの設定を変更する必要があります。そのためには/etc/apt/sources.listを編集して以下の行を追加します。

  deb http://www.openrtm.org/pub/Linux/raspbian/ buster main

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 を参照してください。

rtshellのインストール

rtshellはPythonのプログラムのため、OpenRTM-Pythonのインストールが必要です。OpenRTM-aist(Python版)のインストールでのRaspbianへのインストールのページの手順を実行してください。

インストールの確認

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

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

パッケージの詳細

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

openrtm-aist

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

  • コマンド
     /usr/bin/rtcd
     /usr/bin/rtcprof
     /usr/bin/rtm-config
     /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/copyright
     /usr/share/doc/openrtm-aist/changelog.Debian.gz
  • 設定ファイルサンプル
     /usr/etc/rtc.conf.sample
     /usr/lib/arm-linux-gnueabihf/pkgconfig/openrtm-aist.pc
     /usr/etc/fluent-bit/fluent-bit.conf
     /usr/etc/fluent-bit/parsers.conf
  • ライブラリ
     /usr/lib/arm-linux-gnueabihf/libRTC-1.2.1.so
     /usr/lib/arm-linux-gnueabihf/libRTC.a
     中略
     /usr/lib/arm-linux-gnueabihf/librtmManipulator.so.0.0.0
     /usr/lib/arm-linux-gnueabihf/openrtm-1.2/ec/FileNameservice.la
     /usr/lib/arm-linux-gnueabihf/openrtm-1.2/ec/FileNameservice.so
     中略
     /usr/lib/arm-linux-gnueabihf/openrtm-1.2/ec/RTPreemptEC.so.0.0.0
     /usr/lib/arm-linux-gnueabihf/openrtm-1.2/logger/FluentBit.la
     /usr/lib/arm-linux-gnueabihf/openrtm-1.2/logger/FluentBit.so
     /usr/lib/arm-linux-gnueabihf/openrtm-1.2/logger/FluentBit.so.0
     /usr/lib/arm-linux-gnueabihf/openrtm-1.2/logger/FluentBit.so.0.0.0
     /usr/lib/arm-linux-gnueabihf/openrtm-1.2/sdo/LoggerConsumer.a
     /usr/lib/arm-linux-gnueabihf/openrtm-1.2/sdo/LoggerConsumer.la
     中略
     /usr/lib/arm-linux-gnueabihf/openrtm-1.2/sdo/LoggerConsumer.so.0.0.0
     /usr/lib/libfluent-bit.so
  • ヘッダ
     /usr/include/fluent-bit/flb_api.h
     /usr/include/fluent-bit/flb_bits.h
     中略
     /usr/include/fluent-bit/flb_worker.h
     /usr/include/fluent-bit.h

openrtm-aist-dev

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

  • コマンド
     /usr/bin/coil-config
     /usr/bin/rtc-template
     /usr/bin/rtm-skelwrapper
  • ライセンスなど
     /usr/share/doc/README
     /usr/share/doc/README.Debian
     /usr/share/doc/README.jp
     /usr/share/doc/openrtm-aist-dev/changelog.Debian.gz
     /usr/share/doc/openrtm-aist-dev/changelog.gz
     /usr/share/doc/openrtm-aist-dev/copyright
  • ヘッダ
     /usr/include/coil-1.2/coil/Affinity.h
     /usr/include/coil-1.2/coil/Allocator.h
     中略
     /usr/include/coil-1.2/coil/stringutil.h
     /usr/include/openrtm-1.2/rtm/BufferBase.h
     /usr/include/openrtm-1.2/rtm/BufferStatus.h
     中略
     /usr/include/openrtm-1.2/rtm/config_rtc.h
     /usr/include/openrtm-1.2/rtm/ext/CameraCommonInterface.hh
     /usr/include/openrtm-1.2/rtm/ext/CameraCommonInterfaceDynSK.cc
     中略
     /usr/include/openrtm-1.2/rtm/ext/ManipulatorCommonInterface_MiddleStub.h
     /usr/include/openrtm-1.2/rtm/ext/ec/artlinux/ArtExecutionContext.h
     /usr/include/openrtm-1.2/rtm/ext/ec/artlinux/rtc.conf.sample
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredEC.h
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredEC.idl
     中略
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredECStub.h
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredEC.hh
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredEC.idl
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredECDynSK.cc
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredECSK.cc
     /usr/include/openrtm-1.2/rtm/ext/ec/rtpreempt/RTPreemptEC.h
     /usr/include/openrtm-1.2/rtm/ext/ec/rtpreempt/rtc.conf.sample
     /usr/include/openrtm-1.2/rtm/ext/local_service/nameservice_file
     /usr/include/openrtm-1.2/rtm/ext/local_service/nameservice_file/FileNameservice.h
     /usr/include/openrtm-1.2/rtm/ext/logger/fluentbit_stream/FluentBit.h
     /usr/include/openrtm-1.2/rtm/ext/logger/fluentbit_stream/fluentbit.conf
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/Logger.hh
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/Logger.idl
     中略
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/LoggerStub.h
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserver.idl
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserverConsumer.h
     中略
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserverStub.h
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserver.hh
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserver.idl
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserverDynSK.cc
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserverSK.cc
     /usr/include/openrtm-1.2/rtm/idl/BasicDataType.hh
     /usr/include/openrtm-1.2/rtm/idl/BasicDataTypeDynSK.cc
     中略
     /usr/include/openrtm-1.2/rtm/idl/SharedMemoryStub.h
     /usr/include/openrtm-1.2/rtm/version.h
     /usr/include/openrtm-1.2/rtm/version.txt
  • ライブラリ・その他
     /usr/lib/arm-linux-gnueabihf/openrtm-1.2/cmake/OpenRTMConfig.cmake
     /usr/lib/arm-linux-gnueabihf/openrtm-1.2/py_helper/README_gen.py
     /usr/lib/arm-linux-gnueabihf/openrtm-1.2/py_helpver/cxx_gen.py
     中略
     /usr/lib/arm-linux-gnueabihf/openrtm-1.2/py_helpver/yat.py
     /usr/lib/arm-linux-gnueabihf/pkgconfig/libcoil.pc

openrtm-aist-idl

  • スクリプトファイル
     /etc/profile.d/openrtm-aist-idl.sh
  • ライセンスなど
     /usr/share/doc/openrtm-aist-idl/changelog.Debian.gz
     /usr/share/doc/openrtm-aist-idl/changelog.gz
     /usr/share/doc/openrtm-aist-idl/copyright
  • idlファイル
     /usr/include/openrtm-1.2/rtm/idl/BasicDataType.idl
     /usr/include/openrtm-1.2/rtm/idl/CameraCommonInterface.idl
     中略
     /usr/include/openrtm-1.2/rtm/idl/SharedMemory.idl
     /usr/share/openrtm-1.2/idl/BasicDataType.idl
     /usr/share/openrtm-1.2/idl/CameraCommonInterface.idl
     /usr/share/openrtm-1.2/idl/DataPort.idl
     中略
     /usr/share/openrtm-1.2/idl/SharedMemory.idl

openrtm-aist-example

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

  • サンプル(スタンドアロンRTC)
     /usr/share/openrtm-1.2/components/c++/examples/ConsoleOutComp
     /usr/share/openrtm-1.2/components/c++/examples/ConsoleInComp
     中略
     /usr/share/openrtm-1.2/components/c++/examples/consout.conf
     /usr/share/openrtm-1.2/components/c++/examples/rtc.composite.linux.conf
     /usr/share/openrtm-1.2/components/c++/examples/rtc.conf
  • サンプル(ソース)
     /usr/share/openrtm-1.2/components/c++/examples/src/Composite/README.Motor
     /usr/share/openrtm-1.2/components/c++/examples/src/Composite/Makefile.Sensor
     /usr/share/openrtm-1.2/components/c++/examples/src/Composite/Motor.cpp
     中略
     /usr/share/openrtm-1.2/components/c++/examples/src/Throughput/rtc.conf
     /usr/share/openrtm-1.2/Components/c++/examples/src/Throughput/run.sh
     /usr/share/openrtm-1.2/Componnets/c++/examples/templates/AIO.xml
     /usr/share/openrtm-1.2/Components/c++/examples/templates/ActArray.xml
     中略
     /usr/share/openrtm-1.2/Components/c++/examples/templates/VelocityControl3D.xml
     
  • サンプル(ローダブルRTC)
     /usr/share/openrtm-1.2/components/c++/examples/rtc/ConfigSample.a
     /usr/share/openrtm-1.2/components/c++/examples/rtc/ConfigSample.la
     中略
     /usr/share/openrtm-1.2/components/c++/examples/rtc/Throughput.so.X.X.X
     /usr/share/openrtm-1.2/components/c++/examples/rtc/Cofig.sample.so
     /usr/share/openrtm-1.2/components/c++/examples/rtc/Cofig.sample.so.X
     中略
     /usr/share/openrtm-1.2/components/c++/examples/rtc/Troughput.so.X
  • ライセンスなど
     /usr/share/doc/openrtm-aist-example/changelog.Debian.gz
     /usr/share/doc/openrtm-aist-example/changelog.gz
     /usr/share/doc/openrtm-aist-example/copyright

openrtm-aist-idl

  • idlファイルなど
     /etc/profile.d/openrtm-aist-idl.sh
     /usr/include/openrtm-1.2/rtm/idl/BasicDataType.idl
     /usr/include/openrtm-1.2/rtm/idl/CameraCommonInterface.idl
     中略
     /usr/include/openrtm-1.2/rtm/idl/SharedMemory.idl
     /usr/share/openrtm-1.2/idl/BasicDataType.idl
     /usr/share/openrtm-1.2/idl/CameraCommonInterface.idl
     中略
     /usr/share/openrtm-1.2/idl/SharedMemory.idl
  • ライセンスなど
     /usr/share/doc/openrtm-aist-idl/changelog.Debian.gz
     /usr/share/doc/openrtm-aist-idl/changelog.gz
     /usr/share/doc/openrtm-aist-idl/copyright

openrtm-aist-doc

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

  • クラスリファレンス
     /usr/share/openrtm-1.2/doc/c++/ClassReference/html/Affinity_8h.html
     /usr/share/openrtm-1.2/doc/c++/ClassReference/html/Affinity_8h__dep__incl.dot
     中略
     /usr/share/openrtm-1.2/doc/c++/ClassReference/html/version_8h_source.html
  • IDLリファレンス
     /usr/share/openrtm-1.2/doc/idl/IDLReference/html/BasicDataType_8idl.html
     /usr/share/openrtm-1.2/doc/idl/IDLReference/html/BasicDataType_8idl__dep__incl.dot
     中略
     /usr/share/openrtm-1.2/doc/idl/IDLReference/html/unionSDOPackage_1_1Numeric.html
  • クラスリファレンス(英語)
     /usr/share/openrtm-1.2/doc/c++/ClassReference-en/html/Affinity_8h.html
     /usr/share/openrtm-1.2/doc/c++/ClassReference-en/html/Affinity_8h__dep__incl.dot
     中略
     /usr/share/openrtm-1.2/doc/c++/ClassReference-en/html/version_8h_source.html
  • IDLリファレンス(英語)
     /usr/share/openrtm-1.2/doc/idl/IDLReference-en/html/BasicDataType_8idl.html
     /usr/share/openrtm-1.2/doc/idl/IDLReference-en/html/BasicDataType_8idl__dep__incl.dot
     中略
     /usr/share/openrtm-1.2/doc/idl/IDLReference-en/html/unionSDOPackage_1_1Numeric.html
  • ライセンスなど
     /usr/share/doc/openrtm-aist-doc/changelog.Debian.gz
     /usr/share/doc/openrtm-aist-doc/changelog.gz
     /usr/share/doc/openrtm-aist-doc/copyright

Fedoraへのインストール

現在、1.2系のOpenRTM-aistはFedoraの対応が不完全です。よって、本ページの情報はあくまでも参考情報として使用してください。

C++版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をインストールしてみる方にもソースをコンパイルしてみる方にも推奨します。

一括インストールスクリプトは、ダウンロードした後、ダウンロード先ディレクトリに移動し、

 $ sudo sh pkg_install_fedora.sh -l c++ --yes
でインストールできます。

一括インストールスクリプトのダウンロードや詳しいインストール方法、指定可能なオプションの種類につきましては、一括インストールスクリプトのページをご確認ください。//英語版は/node/6990

OpenRTPのインストール

一般的なFedora環境での開発にはRTC BuilderやRTSystem Editorを使用しますが、その場合にはOpenRTPが必要ですので、一括インストールスクリプトを用いてOpenRTPをインストールしてください。Fedoraではpkg_install_fedora.shが置いてあるディレクトリで

 $ sudo sh pkg_install_fedora.sh -l openrtp --yes
と入力するとOpenRTPをインストールできます。

JDK8のインストール

OpenRTP(RTSystem EditorやRTC Builderなど)の実行にはJDK8相当のJava環境が必要です。現時点でFedoraの環境では、一括インストールスクリプトがFedoraのrpmリポジトリよりOpenJDK8をインストールします。他のJDK8をインストールしたい場合は下記のリンクを参照してください。

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

 $ sudo yum install gcc-c++ python
 $ sudo yum install omniORB omniORB-devel omniORB-doc omniORB-servers omniORB-utils
 $ sudo yum install OpenRTM-aist OpenRTM-aist-devel OpenRTM-aist-doc OpenRTM-aist-example OpenRTP

インストールの確認

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

 $ rpm -qa|grep OpenRT*
 OpenRTM-aist-1.2.0-0.fc29.x86_64
 OpenRTM-aist-devel-1.2.0-0.fc29.x86_64
 OpenRTM-aist-example-1.2.0-0.fc29.x86_64
 OpenRTM-aist-doc-1.2.0-0.fc29.x86_64
 OpenRTP-1.2.0-1.fc29.x86_64

パッケージの詳細

各パッケージの内容は以下の通りです(64bit版Fedoraの場合)

OpenRTM-aist

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

  • サンプル設定ファイル
     /etc/rtc.conf.sample
  • コマンド
     /usr/bin/rtcd
     /usr/bin/rtcprof
     /usr/bin/rtm-config
     /usr/bin/rtm-naming
  • ライブラリ
     /usr/lib64/libRTC-1.2.0.so
     /usr/lib64/libRTC.a
     /usr/lib64/libRTC.la
     中略
     /usr/lib64/librtmManipulator.so.0.0.0
     /usr/lib64/openrtm-1.2/ec/FileNameservice.la
     /usr/lib64/openrtm-1.2/ec/FileNameservice.so
     中略
     /usr/lib64/openrtm-1.2/ec/RTPreemptEC.so.0.0.0
     /usr/lib64/openrtm-1.2/sdo/LoggerConsumer.a
     /usr/lib64/openrtm-1.2/sdo/LoggerConsumer.la
     中略
     /usr/lib64/openrtm-1.2/sdo/LoggerConsumer.so.0.0.0
     /usr/lib64/openrtm-1.2/ssl/SSLTransport.la
     /usr/lib64/openrtm-1.2/ssl/SSLTransport.so
     /usr/lib64/openrtm-1.2/ssl/SSLTransport.so.0
     /usr/lib64/openrtm-1.2/ssl/SSLTransport.so.0.0.0

OpenRTM-aist-devel

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

  • コマンド
     /usr/bin/coil-config
     /usr/bin/rtc-template
     /usr/bin/rtm-skelwrapper
  • ヘッダ
     /usr/include/coil-1.2/coil/Affinity.h
     /usr/include/coil-1.2/coil/Allocator.h
     中略
     /usr/include/coil-1.2/coil/stringutil.h
     /usr/include/openrtm-1.2/rtm/BufferBase.h
     /usr/include/openrtm-1.2/rtm/BufferStatus.h
     中略
     /usr/include/openrtm-1.2/rtm/version.txt
     /usr/include/openrtm-1.2/rtm/ext/CameraCommonInterface.hh
     /usr/include/openrtm-1.2/rtm/ext/CameraCommonInterface.idl
     中略
     /usr/include/openrtm-1.2/rtm/ext/ManipulatorCommonInterface_MiddleStub.h
     /usr/include/openrtm-1.2/rtm/ext/ec/artlinux/ArtExecutionContext.h
     /usr/include/openrtm-1.2/rtm/ext/ec/artlinux/rtc.conf.sample
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredEC.h
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredEC.idl
     中略
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredECStub.h
     /usr/include/openrtm-1.2/rtm/ext/ec/rtpreempt/RTPreemptEC.h
     /usr/include/openrtm-1.2/rtm/ext/ec/rtpreempt/rtc.conf.sample
     /usr/include/openrtm-1.2/rtm/ext/local_service/nameservice_file
     /usr/include/openrtm-1.2/rtm/ext/local_service/nameservice_file/FileNameservice.h
     /usr/include/openrtm-1.2/rtm/ext/logger/fluentbit_stream/FluentBit.h
     /usr/include/openrtm-1.2/rtm/ext/logger/fluentbit_stream/fluentbit.conf
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/Logger.hh
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/Logger.idl
     中略
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/LoggerStub.h
  • IDL およびスタブ・スケルトン
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserver.idl
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserverConsumer.h
     中略
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserverStub.h
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredEC.hh
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredEC.idl
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredECDynSK.cc
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredECSK.cc
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserver.hh
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserver.idl
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserverDynSK.cc
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserverSK.cc
     /usr/include/openrtm-1.2/rtm/idl/BasicDataType.hh
     /usr/include/openrtm-1.2/rtm/idl/BasicDataType.idl
     中略
     /usr/include/openrtm-1.2/rtm/idl/SharedMemoryStub.h
     /usr/include/openrtm-1.2/rtm/idl/device_interfaces/AIO.idl
     /usr/include/openrtm-1.2/rtm/idl/device_interfaces/ActArray.idl
     中略
     /usr/include/openrtm-1.2/rtm/idl/device_interfaces/Ranger.idl
     
  • ライブラリなど
     /usr/lib64/openrtm-1.2/cmake/OpenRTMConfig.cmake
     /usr/lib64/openrtm-1.2/py_helper/README_gen.py
     /usr/lib64/openrtm-1.2/py_helper/cxx_gen.py
     中略
     /usr/lib64/openrtm-1.2/py_helper/yat.py
     /usr/lib64/pkgconfig/libcoil.pc
     /usr/lib64/pkgconfig/openrtm-aist.pc

OpenRTM-aist-doc

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

  • クラスリファレンス
     /usr/share/openrtm-1.2/doc/C++/ClassReference/html/Affinity-8h.html
     /usr/share/openrtm-1.2/doc/C++/ClassReference/html/Affinity_8h__dep__incl.map
     中略
     /usr/share/openrtm-1.2/doc/C++/ClassReference/html/version_8h_source.html
  • IDL リファレンス
     /usr/share/openrtm-1.2/doc/idl/IDLReference/html/BasicDataType_8idl.html
     /usr/share/openrtm-1.2/doc/idl/IDLReference/html/BasicDataType_8idl__dep__incl.map
     中略
     /usr/share/openrtm-1.2/doc/idl/IDLReference/html/unionSDOPackage_1_1Numeric.html
  • クラスリファレンス(英語)
     /usr/share/openrtm-1.2/doc/C++/ClassReference-en/html/Affinity-8h.html
     /usr/share/openrtm-1.2/doc/C++/ClassReference-en/html/Affinity_8h__dep__incl.map
     中略
     /usr/share/openrtm-1.2/doc/C++/ClassReference-en/html/version_8h_source.html
  • IDL リファレンス(英語)
     /usr/share/openrtm-1.2/doc/idl/IDLReference-en/html/BasicDataType_8idl.html
     /usr/share/openrtm-1.2/doc/idl/IDLReference-en/html/BasicDataType_8idl__dep__incl.map
     中略
     /usr/share/openrtm-1.2/doc/idl/IDLReference-en/html/unionSDOPackage_1_1Numeric.html

OpenRTM-aist-example

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

  • サンプル(スタンドアロンRTC)
     /usr/share/openrtm-1.2/components/c++/examples/Composite
     /usr/share/openrtm-1.2/components/c++/examples/ConfigSampleComp
     中略
     /usr/share/openrtm-1.2/components/c++/examples/ThroughputComp
     /usr/share/openrtm-1.2/components/c++/examples/component.conf
     /usr/share/openrtm-1.2/components/c++/examples/composite.conf
     中略
     /usr/share/openrtm-1.2/components/c++/examples/rtc.conf
  • サンプル(ローダブルRTC)
     /usr/share/openrtm-1.2/components/c++/examples/rtc/ConfigSample.a
     /usr/share/openrtm-1.2/components/c++/examples/rtc/ConfigSample.la
     /usr/share/openrtm-1.2/components/c++/examples/rtc/Throughput.so.0.0.0
  • ソース
     /usr/share/openrtm-1.2/components/c++/examples/src/Composite/Composite.cpp
     /usr/share/openrtm-1.2/components/c++/examples/src/Composite/Controller.cpp
     中略
     /usr/share/openrtm-1.2/components/c++/examples/src/Composite/rtc.conf
     /usr/share/openrtm-1.2/components/c++/examples/src/ConfigSample/ConfigSample.cpp
     /usr/share/openrtm-1.2/components/c++/examples/src/ConfigSample/ConfigSample.h
     中略
     /usr/share/openrtm-1.2/components/c++/examples/src/ConfigSample/rtc.conf
     /usr/share/openrtm-1.2/components/c++/examples/src/ExtTrigger/ConnectorComp.cpp
     /usr/share/openrtm-1.2/components/c++/examples/src/ExtTrigger/ConsoleIn.cpp
     中略k
     /usr/share/openrtm-1.2/components/c++/examples/src/ExtTrigger/rtc.conf
     /usr/share/openrtm-1.2/components/c++/examples/src/ExtTrigger/run.sh
     /usr/share/openrtm-1.2/components/c++/examples/src/SeqIO/Makefile.SeqIn
     /usr/share/openrtm-1.2/components/c++/examples/src/SeqIO/Makefile.SeqOut
     中略
     /usr/share/openrtm-1.2/components/c++/examples/src/SeqIO/rtc.conf
     /usr/share/openrtm-1.2/components/c++/examples/src/SimpleIO/ConnectorComp.cpp
     /usr/share/openrtm-1.2/components/c++/examples/src/SimpleIO/ConsoleIn.cpp
     中略
     /usr/share/openrtm-1.2/components/c++/examples/src/SimpleIO/run.sh
     /usr/share/openrtm-1.2/components/c++/examples/src/SimpleService/Makefile.MyServiceConsumer
     /usr/share/openrtm-1.2/components/c++/examples/src/SimpleService/Makefile.MyServiceProvider 
     中略
     /usr/share/openrtm-1.2/components/c++/examples/src/SimpleService/rtc.conf
     /usr/share/openrtm-1.2/components/c++/examples/src/Throughput/CMakeLists.txt
     /usr/share/openrtm-1.2/components/c++/examples/src/Throughput/Throughput.cpp
     中略
     /usr/share/openrtm-1.2/components/c++/examples/src/Throughput/run.sh
  • テンプレート
     /usr/share/openrtm-1.2/components/c++/examples/templates/AIO.xml
     /usr/share/openrtm-1.2/components/c++/examples/templates/ActArray.xml
     中略
     /usr/share/openrtm-1.2/components/c++/examples/templates/VelocityControl3D.xml

OpenRTP

OpenRtpでは大量のファイルがインストールされるため、ここではリストしません。必要に応じて

 $ rpm -ql  OpenRTP
と入力して各自での確認をしてください。

動作確認(Windows編)

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

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

  • C:\Program Files\OpenRTM-aist\1.2.x\Components\C++\Examples
  • OpenRTM-aist\examples (ソースからビルドした場合)

以下の手順で、サンプルコンポーネントセットSimpleIOを使用して、OpenRTM-aistが正しくビルド/インストールされているかを確認します。

サンプル (SimpleIO)を使用した確認

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

以下は、MSIインストーラーでOpenRTM-aistをインストールした環境で、スタートメニューから各種プログラムを起動する前提で説明します。

RTSystemEditor、ネームサーバーの起動

以下の手順に従ってRTSystemEditor、ネームサーバーを起動してください。

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

ネームサーバー起動後、適当なサンプルコンポーネントを起動します。

Windows 10の場合は右下の[ここに入力して検索]にC++_Examplesと入力して、サンプルのディレクトリを開きます。

rtm7.png
ネームサーバーの起動を確認

rtm8.png
サンプルコンポーネントディレクトリ

「ConsoleIn.bat」「ConsoleOut.bat」をそれぞれダブルクリックして2つのコンポーネントを起動します。

Windows Defenderからの警告

サンプルコンポーネントを起動しようとすると、Windows Defenderのファイアウォールにより[Windows セキュリティの重要な警告]ダイアログが表示されることがあります。[プライベート ネットワーク(ホームネットワークや社内ネットワークなど)(R)]にチェックを入れ[パブリックネットワーク(空港、喫茶店など)(非推奨)(U)]のチェックをはずしてアクセスを許可する(A)]をクリックしてください。このダイアログはWindows 10(build 1903)以外だと別のダイアログが表示されることがありますし、設定によっては表示されないこともあります。表示された場合は同様の設定をしてダイアログを閉じてください。

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

起動後数秒で下図のような2つのコンソール画面が開きます。

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

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

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

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

環境変数RTM_VC_VERSIONOMNI_ROOTRTM_ROOTが設定されていないとRTCの起動に失敗します。 MSIインストーラーでインストールした場合はOSを再起動すると解決する場合があります。

また、rtc.confの設定に問題があり、起動できないケースがあります。上記のC++_Exampleを用いて検索したフォルダー下のVCxx(Visual Studio 2019使用時はVC14)にある[rtc.conf]を開いて設定を確認してください。 例えば、corba.endpoint/corba.endpointsなどの設定が現在実行中のPCホストのIPアドレスとミスマッチを起こしている場合などは、CORBAが異常終了します。

以下のような内容(最低限の設定)にrtc.confを書きなおして試してみてください。

 corba.nameservers: localhost

ランタイムエラーが出て終了する
ライブラリなどが適切にインストールされていなかったり、設定されていないなどの原因でラインタイムエラーが発生する場合があります。その場合は下記の方法を試してみてください。
  • 再起動してみる
  • OpenRTM-aistをすべてアンインストールし、再度インストールすることで改善される場合があります。

RTSystemEditorでのエディタ画面への配置

RTSystemEditorのツリー表示内の[localhost]‘の横の[>]をクリックし、そしてicon_db.pngアイコンの横の[>]をクリックすると、先ほど起動した2つのコンポーネントが登録されていることがわかります。

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

システムを編集するエディタ(System Diagram)を開きます。上部の[Open New System Editor]ボタンicon_open_editor_ja.png をクリックすると、中央のペインにエディタ(System Diagram)画面が開きます。

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

rtm11.png
コンポーネントをSystem Diagramに配置

接続とアクティブ化

ConsoleIn0コンポーネントの右側にはデータが出力されるOutPort  /ja/node/794 が、ConsoleOut0コンポーネントの左側にはデータが入力されるInPort  /ja/node/794が、それぞれ配置されています。

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

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

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

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

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

コンポーネントがアクティブ化されるとConsoleInコンポーネント側のコンソール上の表示が

 Please input number: 

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

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

他のサンプル

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

付属しているコンポーネント起動用バッチファイルのリストと簡単な説明を以下に示します。

ConsoleIn.bat コンソールから入力された数値をOutPortから出力するConsoleInコンポーネント を起動します。ConsoleOutに接続して使用します。
ConsoleOut.bat InPortに入力された数値をコンソールに表示するConsoleOutコンポーネント を起動します。ConsoleInに接続して使用します。
SeqIn.bat ランダムな数値(Short、Long、Float、Doubleとそのシーケンス型)を出力するSequenceInComponentコンポーネントを起動します。SequenceOutComponentに接続して使用する。
SeqOut.bat InPortに入力される数値(Short、Long、Float、Doubleとそのシーケンス型)を表示するSequenceOutComponentを起動します。SequenceInComponentに接続して使用します。
MyServiceProviderComp.bat MyService型のサービスを提供するMyServiceProviderコンポーネント を起動します。MyServiceConsumerに接続して使用します。
MyServiceConsumerComp.bat MyService型のサービスを提供するMyServiceConsumerコンポーネント を起動します。MyServiceProviderに接続して使用します。
ConfigSample.bat Configuration機能の使用例のサンプルConfigSampleコンポーネント を起動します。RtcLinkからConfigurationを変更してConfigurationの挙動を理解するためのサンプルです。
Composite.bat 複合コンポーネント作成サンプルPeriodicECSharedComponentコンポーネント を起動します。Sensor、Controller、Motorの3つサブ・コンポネントを複合しています。 ConsoleInなどのコンポーネント接続して使ってみると良いでしょう。

動作確認(Linux編)

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

  • /usr/share/openrtm-1.2/components/c++/examples

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

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

サンプルコンポーネントセットSimpleIO(ソースからビルドした場合は、このコンポネントセット名のディレクトリ下にコンポーネントが実行可能なものと存在していますが、一括インストールスクリプトでインストールした場合は、上記のexamplesディレクトリ上に他のサンプルコンポーネント一と一緒に置かれていて特にSimpleIOというセット名に沿って別ディレクトリなどにまとめられてはいませんので、そのケースではコンポーネントセットとはConsoleInCompとConsoleOutCompの2つコンポーネントのセットだと理解してください)を使って、OpenRTM-aistが正しくインストール/ビルドされているかを確認します。

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

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

以降、簡単のためサンプルは/usr/share/openrtm-1.2/components/c++/examples以下にあるものとして説明を記述します。

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

RTSystemEditor、ネームサーバー起動

以下の手順に従ってRTSystemEditor、ネームサーバーを起動してください。

ConsoleInCompの起動

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

 $ /usr/share/openrtm-1.2/components/c++/examples/ConsoleInComp

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

 $ <source_dir>/OpenRTM-aist/examples/SimpleIO/ConsoleInComp

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

ConsoleOutCompの起動

別のターミナルを起動してConsoleOutCompを起動します。

 $ /usr/share/openrtm-1.2/components/c++/examples/ConsoleOutComp 

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

 $ <source_dir>/OpenRTM-aist/examples/SimpleIO/ConsoleOutComp

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

エディタ画面への配置

RTSystemEditorのツリー表示の[localhost]の横の[>]をクリックし、そしてicon_db.pngアイコンの横の[>]をクリックすると、先ほど起動した2つのコンポーネントが登録されていることがわかります

/ja/node/6614
ConsoleInコンポーネントとConsoleOutコンポーネント

システムを編集するエディタを開きます。上部の[Open New System Editor]ボタンicon_open_editor.png をクリックすると、中央のペインにエディタ画面が表示されます。

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

/ja/node/6614
コンポーネントをエディタに配置

接続とアクティブ化

ConsoleIn0コンポーネントの右側にはデータが出力されるOutPort /node/794 、ConsoleOut0コンポーネントの左側にはデータが入力されるInPort /node/794 がそれぞれ配置されています。

これらInPort/OutPort(まとめてデータポートと呼びます)を接続します。

/ja/node/6614
データポートの接続

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

/ja/node/6614
データポート接続ダイアログ

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

/ja/node/6614
アクティブ化されたコンポーネント

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

 Please input number: 

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

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

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

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

Windows環境でのOpenRTM-aistのビルドにおいては、ビルド環境の構築やインストーラの作成など、Windows環境上でのソフトウエア開発についてのさまざまな知識が必要です。 以下の説明では、Windows環境上のプログラム開発やバッチファイル作成などの基本的な知識があることを前提にしています。

Windows用ソースコード

Windows用のOpenRTM-aist(C++版)ソースパッケージはLinux 用のソースパッケージとは別個に配布されています。 ソースコードの基本的内容は同じですが、ビルド環境に依存するファイルは異なっています(例えばWindows環境におけるVisual StudioのプロジェクトファイルはWindows用ソースパッケージの中にしか存在しません)。

ソースパッケージの生成

Windows用ソースコードのパッケージは 下記に示すリンクより入手できますが、最新の開発中のソースコードを入手する場合はGitHubのOpenRTM/OpenRTM-aist projectより入手する必要があり、図に示すようにLinux上で、

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

を作るようになっています。

/ja/node/793
OpenRTM-aist のソースパッケージの生成

ビルド環境

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

  • Visual C++/Visual Studio
  • omniORB

Visual C++/Visual Studio

Windows 用のバイナリをビルドするためには、Visual Studio(C++)開発環境が必要です。 現在対応している Visual Studio は Visual Studio 2010、2012、2013、2015、2017、2019 です。(現状では2019のビルド対応はまだできていません。)

Visual Studio CommunityはMicrosoftが無償で提供する統合開発環境で、C++、C#、F#、Java、Pythonなどいろいろな言語を用いたソフトウエア開発に対応しています。 Community版は有償のProfessional版とほぼ同等の機能ですが、個人開発者、大学関係者、非営利団体従事者、オープンソース開発者、および、開発者5名以下の営利企業でしか使用できません。ライセンス条件の詳細についてはマイクロソフト社のドキュメントを参照してください。

以下よりVisual Studio 2019は入手できます。

なお、Visual Studio 2017をインストールする場合は"C++によるデスクトップ開発"を選択し、さらに"インストール詳細"のところで"Windows 8.1 SDK と UCRT SDK"を選択してインストールをおこなってください。

omniORB

OpenRTM-aistのビルドにはomniORB 4.2.3(2019/05/17現在)のライブラリが必要です。 openrtm.org が提供するビルド済みバイナリパッケージを下記リンク先に用意してあります。 環境に合わせて適切なものをダウンロードし、適当な場所(以下の説明ではC:\workspace\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
  + include
  |  + COS
  |  + omniORB4
  |  + omnithread
  |  + omniVms

OpenSSL

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

環境変数: SSL_ROOT

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

 <SSL_ROOT>
  + bin
  |  + scripts
  |  + x86_win32
  + lib
  |  + engines-1_1
  + include
  |  + openssl

Python

ビルドの途中でいくつかのPythonスクリプトを利用するので Python 2.7か3.6、または3.7 が必要です。(現状2.7が必要で、3.7ではエラーが起きます) 以下のサイトから最新のバージョンを取得しインストールしてください。

インストーラーを起動すると、そのインストール過程で選択項目がでてきますが、デフォルトの項目を選択してインストールしてください。(デフォルト以外の選択も可能ですが、その場合は十分な理解の元で選択してください。)

ソースパッケージの取得

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

バッチファイルの修正

build.batを実行するとビルドが始まりますが、その前にバッチファイルの環境変数"OMNI_ROOTSSL_ROOT''をする部分を環境に合わせて変更してください。

 set OMNI_ROOT=C:\workspace\omniORB-4.2.3-win64-vc141
 set SSL_ROOT=C:\workspace\OpenSSL\build

さらに、以下の環境変数も環境にあわせて設定するようにパッチファイル内に記述してください。

 set VC_VERSION=141  
 set ARCH=x86_64
 set PYTHON_DIR=C:\python27
 set OMNI_VERSION=4.2.3
 set OMNITHREAD_VERSION=4.1

上記の設定値は64ビット版OpenRTM-aistの設定用でVisual Studio 2017 とPython 2.7、OmniORB 4.2.3を使った場合の例です。 ここで、VC_VERSIONは対応するVisual C++のバージョンを指定します。(以下を参照してください。)

Visual Studio 2010 10
Visual Studio 2012 11
Visual Studio 2013 12
Visual Studio 2015 14
Visual Studio 2017 141
Visual Stuido 2019 142

ARCHには32bitバイナリを作成する場合はx86、64bitバイナリを作成する場合はx86_64を指定してください。 PYTHON_DIRにはPythonをインストールしたパスを指定してください。

OMNI_VERSION、OMNITHREAD_VERSIONには対応するomniORB、omniThreadのバージョンを設定してください。OmniThreadのバージョンはエキスプローラでomnithreadXXXX.dllのファイルを右クリックしプロパティを選び、詳細タブをクリックするとファイルバージョンとして確認できます。そのうち最初ピリオドの右側の数字は次のピリオドの前までの数字を設定してください。(例えば4.1.24.1.0と表示されたら、4.1としてください。)

またCommunity版以外のVisual Studioを使用する場合は前もってvcvarsall.batを実行する必要があります。

Visual Studio 2017で、64ビットのインテルないしはAMDプロセッサ用のコードを作成する場合は

 call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64

と実行してください。

ビルド

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

インストール

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

  • 環境変数RTM_ROOTを設定: ビルド後に作成されたOpenRTM-aistのファイルが置かれたディレクトリを環境変数RTM_ROOTに設定してください。
  • DLL へのパスを通す: DLL をパスの通った場所にコピーするか、環境変数 PATHに%RTM_ROOT%\bin を追加します。

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

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

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

配布ソースのビルド

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

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

OpenRTM-aistは下記のLinuxディストリビューションでビルドできることが確認されています。

  • Fedora(限定されたバージョンのみ)
  • Debian(限定されたバージョンのみ)
  • Ubuntu
  • Raspbian(未確認)

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

必要ツールとライブラリ

OpenRTM-aist-1.2.xをソースからビルドするには下記の開発用ツールおよびライブラリが必要です。

  • gcc/g++ version3以降: コンパイルに必要
  • omniORB-4.x以上: OpenRTM-aistのビルドに必要
  • uuidライブラリ: libuuid (Linux環境ではデフォルトでuuid生成関数を提供していないため)
  • python: ビルドツールを利用するために必要
  • boost: 拡張モジュールをコンパイルする際に必要になる場合がある
  • openssl: OpenSSLによるセキュアな通信機能を使用するために必要

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

UbuntuやFedoraなどの特定のディストリビューション向けには、一括インストール・スクリプト ''pkg_install_OS名.sh’’という依存ライブラリやOpenRTMのパッケージをインストールするスクリプトが用意されていて、それにより必要なツールをインストールすることができます。下記のリンクに入手方法やコマンドラインオプションなどが説明されています。

このスクリプトを-cオプションを用いて実行することにより、コア(OpenRTM-aist自体の)開発用のツールをインストールすることができます。それを実行するか、別個に必要なツールをインストールしておいてください。

ソースのダウンロード

OpenRTM-aistのソースをダウンロードします。 ソースコードは、https://github.com/OpenRTM/OpenRTM-aist/releases のバージョン番号のタグからダウンロードできます。バージョン1.2.1のソースコードは以下の場所にあります。

ソースコードの展開

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

 $ wget https://github.com/OpenRTM/OpenRTM-aist/releases/tag/v1.2.1/OpenRTM-aist-1.2.1.tar.gz
 $ tar xvzf OpenRTM-aist-1.2.1.tar.gz
 $ cd OpenRTM-aist-1.2.1

ビルド

OpenRTM-aistはパッケージのビルドにautoconf、automakeを使用しています。上記の方法でダウンロードできるソースコードのパッケージは、あらかじめそれらのツールを使用して構成されているものです。

 $  ./configure --prefix=/usr --enable-fluentd=no --enable-observer=yes --enable-ssl=yes [options]

基本的には[options]の指定はいりませんが、特別な設定をしたい場合の[options]で使用可能なオプションは

 $ ./configure --help

で参照してください。

make

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

 $ make

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

 $  sudo make install

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

GitHubリポジトリ上のソースを用いたビルド

OpenRTM-aistは開発に利用しているgithubリポジトリを一般に公開しています。リポジトリからクローンしたソースコードを用いてもビルド可能です。

必要なツール

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

  • automake
  • libtool
  • atoconf

などのツールが必要ですのであらかじめインストールしておきます。これらの必要なツールやOmniORBなどのライブラリをインストールするのにあたって、Ubuntuなどでは上記で説明した一括インストール・スクリプトを利用可能です。このスクリプトをあらかじめ実行しておくことを推奨します。

Ubuntuでは上記で推奨した一括インストールスクリプトpkg_install_ubuntu.shを以下のように実行することで、OpenRTM-aist本体の開発(ここで行うソースからのビルドも含みます)のためのツール(automakeなどを含む)などをまとめてインストール可能です。

 # sudo sh pkg_install_ubuntu.sh -l c++ -c 

GitHubリポジトリからのソースのクローン

ソースをリポジトリからクローンします。

 $ git clone -b svn/RELENG_1_2 https://github.com/OpenRTM/OpenRTM-aist
 Cloning into 'OpenRTM-aist'...
 remote: Enumerating objects: 24, done.
 remote: Counting objects: 100% (24/24), done.
 remote: Compressing objects: 100% (24/24), done.
 remote: Total 42092 (delta 14), reused 2 (delta 0), pack-reused 42068
 Receiving objects: 100% (42092/42092), 10.41 MiB | 8.36 MiB/s, done.
 Resolving deltas: 100% (31578/31578), done.

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ディレクトリ内にできているはずですので、以降は通常のソースからのビルドと同様に、configure & makeでビルドします。

 $ ls -l configure
 -rwxr-xr-x  1 n-ando  n-ando  812893 Jul  6 05:56 configure*
 $  ./configure --prefix=/usr --enable-fluentd=no --enable-observer=yes --enable-ssl=yes
 $ 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.2.1-win32.zip
 -rw-r--r--  1 n-ando  n-ando  4831099 Apr  7 09:53 OpenRTM-aist-1.2.1.tar.bz2
 -rw-r--r--  1 n-ando  n-ando  7258796 Apr  7 09:53 OpenRTM-aist-1.2.1.tar.gz
 $

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

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

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

ここではOpenRTM-aist(Python)のインストール方法を説明します。

Windowsへのインストール

OpenRTM-aistのインストール

MSIインストーラーによるOpenRTM-aistのインストール手順については下記のページに記載。

開発に必要なソフトウエアのインストール

RTCの開発にはCMake、Doxygen、Visual Studioのインストールが必要です。

  • CMake(3.11以上推奨) インストールの途中で[Install Options]としてsystem PATHをどうするかを聞かれますが、Add CMake to the system PATH for all usersを選択することを推奨します。(チェックはそれで行っています。)
  • Doxygen のWebページからWindows版のバイナリ実行形式ファイルをダウンロードして実行してインストールしてください。
  • Visual Studio からダウンロード版をインストールするか、別途Visual Studio 2010/2012/2013/2015/2017/2019を入手してインストールしてください。Visual StudioはPythonベースのRTC開発自体には直接必要なものではないですが、開発したRTCの配布にあたってOpenRTM-aistの環境と共にMSI配布パッケージを作りたい場合は必要となります。

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

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

  • インストールディレクトリ(デフォルトはC:\Program Files)下に各種ファイルをコピー
  • スタートメニュー以下にOpenRTM-aistフォルダーを作成し各種ショートカットを設定
    • 環境変数とPATHの設定
      • 64bit用MSI利用時の環境変数
         RTM_BASE=C:\Program Files\OpenRTM-aist\
         RTM_ROOT=C:\Program Files\OpenRTM-aist\1.2.1\
         RTM_VC_VERSION= //ここにはユーザーが指定したVisual StudioにのっとったVCのバージョンを指定するテキストが入ります
         RTM_JAVA_ROOT=C:\Program Files\OpenRTM-aist\1.2.1\
         OMNI_ROOT=C:\Program Files\OpenRTM-aist\1.2.1\omniORB\4.2.3_%RTM_VC_VERSION%\
         OpenCV_DIR=C:\Program Files\OpenRTM-aist\1.2.1\OpenCV3.4\
         OpenRTM_DIR=C:\Program Files\OpenRTM-aist\1.2.1\cmake\
      • 64bit用MSI利用時のPATHへの追加設定
         C:\Program Files\OpenRTM-aist\1.2.1\bin\%RTM_VC_VERSION%\
         C:\Program Files\OpenRTM-aist\1.2.1\omniORB\4.2.1_%RTM_VC_VERSION%\bin\x86_win32\
         C:\Program Files\OpenRTM-aist\1.2.1\OpenCV3.4\%RTM_VC_VERSION%\bin\
      • 32bit用MSI利用時の環境変数 (64bit版Windows 10での場合で、32bit版の場合は「Program Files (x86)」の部分が「Program Files」になります。)
         RTM_BASE=C:\Program Files (x86)\OpenRTM-aist\
         RTM_ROOT=C:\Program Files (x86)\OpenRTM-aist\1.2.1\
         RTM_VC_VERSION= //ここにはユーザーが指定したVisual StudioにのっとったVCのバージョンを指定するテキストが入ります
         RTM_JAVA_ROOT=C:\Program Files (x86)\OpenRTM-aist\1.2.1\
         OMNI_ROOT=C:\Program Files\OpenRTM-aist\1.2.1\omniORB\4.2.3_%RTM_VC_VERSION%\
         OpenCV_DIR=C:\Program Files\OpenRTM-aist\1.2.1\OpenCV3.4\
         OpenRTM_DIR=C:\Program Files\OpenRTM-aist\1.2.1\cmake\
      • 32bit用MSI利用時の PATHへの追加設定 (64bit版Windows 10での場合で、32bit版の場合は「Program Files (x86)」の部分が「Program Files」になります。)
         C:\Program Files(x86)\OpenRTM-aist\1.2.1\bin\%RTM_VC_VERSION%\
         C:\Program Files(x86)\OpenRTM-aist\1.2.1\omniORB\4.2.3_%RTM_VC_VERSION%\bin\x86_win32\
         C:\Program Files(x86)\OpenRTM-aist\1.2.1\OpenCV3.4\x86\%RTM_VC_VERSION%\bin\

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

ファイルは以下のような構造でインストールされます。

 <install_dir>
   + OpenRTM-aist
      + 1.x.x  :旧バージョンのランタイム
      + 1.2.1
         + bin: dll、lib各種コマンド
         + cmake: OpenRTMConfig.cmake
         + coil: coilヘッダファイル
         + Components
            + C++
               + Examples: C++サンプルコンポーネント
               + OpenCV: OpenCVのC++サンプルコンポーネント
            + Java: Java サンプルコンポーネント
            + Python: Python サンプルコンポーネント
         + etc: rtc.confサンプル
         + jar: jarファイル
         + jre: OpenJDK JRE
         + omniORB
         + OpenCV3.4
         + rtm: OpenRTM-aistヘッダファイル
            + ext: 拡張モジュール用ファイル 
            + idl: OpenRTM-aistIDLファイル
         + util
            + ExcelControlpy: PythonベースのMicrosoft Office用RTC
            + OpenRTP: RTCBuilderとRTSystemEditorツール
            + PowerPointControlpy: Microsoft Office PowerPoint用RTC
            + python_dist: pythonベースツール共通ライブラリ
            + RTCDT: PythonベースRTCの開発を支援するツール
            + rtc-template: RTCBuilderと似た機能を提供する古いツール
            + RTSystemEditor: RTSystem Editorのみのファイル
            + VCVerChanger: 使用しているVisual Studioのバージョンを指定するツール
            + WordContrlpy: PythonベースMicrosoft Office Word用RTC

Ubuntu/Debianへのインストール

/ja/node/1182

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

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

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

オプションを指定することで、目的に合わせたパッケージをインストールすることが可能です。

一括インストールスクリプトのダウンロードや詳しいインストール方法、指定可能なオプションの種類につきましては、「一括インストールスクリプト」のページをご確認ください。
※最新バージョンが「1.2.2」である場合は、オプション指定で「1.2.1」のインストール、「1.2.2」から「1.2.1」へのダウングレードができます。

一括インストールスクリプトは、ダウンロードした後、ダウンロード先ディレクトリに移動し、

Ubuntuの場合は

 $ sudo sh pkg_install_ubuntu.sh -l python --yes
Debianの場合はsuでroot権限を得た後に

 # sh pkg_install_debian.sh -l python --yes
でインストールできます。

OpenRTPのインストール

一般的なUbuntu/Debian環境での開発にはRTCBuilderやRTSystemEditorを使用しますが、その場合にはOpenRTPが必要です。一括インストールスクリプトを用いてOpenRTPをインストールしてください。Ubuntuではpkg_install_ubuntu.shが置いてあるディレクトリで

Ubuntuの場合は

 $ sudo sh ./pkg_install_ubuntu.sh -l openrtp --yes

Debianの場合はsuでroot権限を得た後に

 # sh pkg_install_debian.sh -l openrtp --yes

と入力するとOpenRTPをインストールできます。

JDK8のインストール

OpenRTP(RTSystemEditorやRTCBuilderなど)の実行にはJDK8相当のJava環境が必要です。(デフォルトの環境でJDK8がインストールされている場合もありますが、Ubuntu 18.04ではJDK11がインストールされているため、JDK8のインストールが必要です。) なお、rtshell/rtctree/rtsprofileの使用にはJDKは必要ありませんのでOpenRTPを使わない場合にはJDK8をインストールする必要はありません。JDK8の入手やインストールについては以下を参照してください。

rtshellのインストール

制御コンピュータが小規模のシステムの場合など、CUIでRTCを制御したい場合にはOpenRTPのRTSystemEditor相当の機能をCUIから実行できるようなツールとしてrtshellと呼ばれるツールが提供されています。rtshellのインストールは一括インストールスクリプトを用いて、一括インストールスクリプト・ファイルが置かれているディレクトリで

Ubuntuの場合は

 $ sudo sh pkg_install_ubuntu.sh -l rtshell --yes
 $ sudo rtshell_post_install
Debianの場合はsuでroot権限を得た後に
 # sh pkg_install_debian.sh -l rtshell --yes
 # rtshell_post_install

でインストールできます。

インストールの確認

  • openrtpをインストールした場合

インストールを確認します。(下記は1.2.1の例です。)

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

  • openrtpの代わりにrtshellをインストールした場合

インストールを確認します。(下記は1.2.1の例です。)

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

rtshellのインストールは

 $ pip show rtshell-aist
 Name: rtshell-aist
 Version: 4.2.2
 Summary: Shell commands for managing RT Components and RT Systems.
 Home-page: http://github.com/gbiggs/rtshell
 Author: Geoffrey Biggs and contributors
 Author-email: geoffrey.biggs@aist.go.jp
 License: LGPL3
 Location: /usr/local/lib/python2.7/dist-packages
 Requires: rtctree-aist, rtsprofile-aist
と確認できます。

パッケージの詳細

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

openrtm-aist

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

  • コマンド
     /usr/bin/rtcd
     /usr/bin/rtcprof
     /usr/bin/rtm-config
     /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/copyright
     /usr/share/doc/openrtm-aist/changelog.Debian.gz
  • 設定ファイルサンプル
     /usr/etc/rtc.conf.sample
  • ライブラリ
    • 32bit
       /usr/lib/i386-linux-gnu/libRTC-X.X.X.so
       /usr/lib/i386-linux-gnu/libRTC.a
       /usr/lib/i386-linux-gnu/libRTC.la
       /usr/lib/i386-linux-gnu/libcoil-X.X.X.so
       /usr/lib/i386-linux-gnu/libcoil.a
       /usr/lib/i386-linux-gnu/librtmCamera.a
       /usr/lib/i386-linux-gnu/librtmCamera.la
       /usr/lib/i386-linux-gnu/librtmCamera.so.X.X.X
       /usr/lib/i386-linux-gnu/librtmManipulator.a
       /usr/lib/i386-linux-gnu/librtmManipulator.la
       /usr/lib/i386-linux-gnu/librtmManipulator.so.X.X.X
       /usr/lib/i386-linux-gnu/openrtm-1.2/ec/FileNameservice.la
       /usr/lib/i386-linux-gnu/openrtm-1.2/ec/FileNameservice.so.X.X.X
       /usr/lib/i386-linux-gnu/openrtm-1.2/ec/LogicalTimeTriggeredEC.a
       /usr/lib/i386-linux-gnu/openrtm-1.2/ec/LogicalTimeTriggeredEC.la
       /usr/lib/i386-linux-gnu/openrtm-1.2/ec/LogicalTimeTriggeredEC.so.X.X.X
       /usr/lib/i386-linux-gnu/openrtm-1.2/sdo/LoggerConsumer.a
       /usr/lib/i386-linux-gnu/openrtm-1.2/sdo/LoggerConsumer.la
       /usr/lib/i386-linux-gnu/openrtm-1.2/sdo/LoggerConsumer.so.X.X.X
       /usr/lib/i386-linux-gnu/openrtm-1.2/ssl/SSLTransport.la
       /usr/lib/i386-linux-gnu/openrtm-1.2/ssl/SSLTransport.so.X.X.X
       /usr/lib/i386-linux-gnu/pigconfig/openrtm-aist.pc
    • 64bit
       /usr/lib/x86_64-linux-gnu/libRTC-X.X.X.so
       /usr/lib/x86_64-linux-gnu/libRTC.a
       /usr/lib/x86_64-linux-gnu/libRTC.la
       /usr/lib/x86_64-linux-gnu/libcoil-X.X.X.so
       /usr/lib/x86_64-linux-gnu/libcoil.a
       /usr/lib/x86_64-linux-gnu/librtmCamera.a
       /usr/lib/x86_64-linux-gnu/librtmCamera.la
       /usr/lib/x86_64-linux-gnu/librtmCamera.so.X.X.X
       /usr/lib/x86_64-linux-gnu/librtmManipulator.a
       /usr/lib/x86_64-linux-gnu/librtmManipulator.la
       /usr/lib/x86_64-linux-gnu/librtmManipulator.so.X.X.X
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/ec/FileNameservice.la
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/ec/FileNameservice.so.X.X.X
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/ec/LogicalTimeTriggeredEC.a
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/ec/LogicalTimeTriggeredEC.la
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/ec/LogicalTimeTriggeredEC.so.X.X.X
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/sdo/LoggerConsumer.a
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/sdo/LoggerConsumer.la
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/sdo/LoggerConsumer.so.X.X.X
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/ssl/SSLTransport.la
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/ssl/SSLTransport.so.X.X.X
       /usr/lib/x86_64-linux-gnu/pigconfig/openrtm-aist.pc

openrtm-aist-dev

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

  • コマンド
     /usr/bin/coil-config
     /usr/bin/rtc-template
     /usr/bin/rtm-skelwrapper
  • ライセンスなど
     /usr/share/doc/openrtm-aist-dev/changelog.Debian.gz
     /usr/share/doc/openrtm-aist-dev/changelog.gz
     /usr/share/doc/openrtm-aist-dev/copyright
  • ヘッダなど
     /usr/include/coil-1.2/coil/Affinity.h
     /usr/include/coil-1.2/coil/Allocator.h
     中略
     /usr/include/coil-1.2/coil/stringutil.h
     /usr/include/openrtm-1.2/rtm/BufferBase.h
     /usr/include/openrtm-1.2/rtm/BufferStatus.h
     中略
     /usr/include/openrtm-1.2/rtm/config_rtc.h
     /usr/include/openrtm-1.2/rtm/ext/CameraCommonInterface.hh
     /usr/include/openrtm-1.2/rtm/ext/CameraCommonInterface.idl
     中略
     /usr/include/openrtm-1.2/rtm/ext/ManipulatorCommonInterface_MiddleStub.h
     /usr/include/openrtm-1.2/rtm/ext/ec/artlinux/ArtExecutionContext.h
     /usr/include/openrtm-1.2/rtm/ext/ec/artlinux/rtc.conf.sample
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredEC.h
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredEC.idl
     中略
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredECStub.h
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredEC.hh
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredEC.idl
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredECDynSK.cc
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredECSK.cc
     /usr/include/openrtm-1.2/rtm/ext/ec/rtpreempt
     /usr/include/openrtm-1.2/rtm/ext/ec/rtpreempt/RTPreemptEC.h
     /usr/include/openrtm-1.2/rtm/ext/ec/rtpreempt/rtc.conf.sample
     /usr/include/openrtm-1.2/rtm/ext/local_service/nameservice_file/FileNameservice.h
     /usr/include/openrtm-1.2/rtm/ext/logger/fluentbit_stream/FluentBit.h
     /usr/include/openrtm-1.2/rtm/ext/logger/fluentbit_stream/fluentbit.conf
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/Logger.hh
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/Logger.idl
     中略
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/LoggerStub.h
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserver.idl
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserverConsumer.h
     中略
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserverStub.h
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserver.hh
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserver.idl
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserverDynSK.cc
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserverSK.cc
     /usr/include/openrtm-1.2/rtm/idl/BasicDataType.hh
     /usr/include/openrtm-1.2/rtm/idl/BasicDataType.idl
     中略
     /usr/include/openrtm-1.2/rtm/idl/device_interfaces/Ranger.idl
     /usr/include/openrtm-1.2/rtm/version.h
     /usr/include/openrtm-1.2/rtm/version.txt
  • ライブラリ・その他
    • 32bit
       /usr/lib/i386-linux-gnu/openrtm-1.2/cmake/OpenRTMConfig.cmake
       /usr/lib/i386-linux-gnu/openrtm-1.2/py_helper/README_gen.py
       /usr/lib/i386-linux-gnu/openrtm-1.2/py_helpver/cxx_gen.py
       中略
       /usr/lib/i386-linux-gnu/openrtm-1.2/py_helpver/yat.py
       /usr/lib/i386-linux-gnu/pkgconfig/libcoil.pc
       
    • 64bit
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/cmake/OpenRTMConfig.cmake
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/py_helper/README_gen.py
       /usr/lib/x86-64-linux-gnu/openrtm-1.2/py_helpver/cxx_gen.py
       中略
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/py_helpver/yat.py
       /usr/lib/x86_64-linux-gnu/pkgconfig/libcoil.pc

      openrtm-aist-python3

OpenRTM-aist 1.2.2 からメインPythonバージョンが2系から3系へ変更されました。

  • コマンド
     /usr/bin/rtcd_python3
     /usr/bin/rtcprof_python3
  • OpenRTM-aist 本体の Python モジュール
     usr/lib/python3/dist-packages/OpenRTM-aist/*
  • OpenRTM-aist用Python検索パスファイル
     /usr/lib/python3/dist-packages/OpenRTM_aist.ph
  • ユーティリティ
     /usr/lib/python3/dist-packages/OpenRTM_aist/utils/__init__.py
     /usr/lib/python3/dist-packages/OpenRTM_aist/utils/rtc-template/*
     /usr/lib/python3/dist-packages/OpenRTM_aist/utils/rtcd/*
     /usr/lib/python3/dist-packages/OpenRTM_aist/utils/rtcprof/*
     /usr/lib/python3/dist-packages/OpenRTM_aist/utils/rtm-naming/*

openrtm-aist-python3-example

 /usr/share/openrtm-1.2/components/python3/__init__.py
 /usr/share/openrtm-1.2/components/python3/rtcd.conf
 /usr/share/openrtm-1.2/components/python3/components.conf
 /usr/share/openrtm-1.2/components/python3/AutoControl/*
 /usr/share/openrtm-1.2/components/python3/AutoTest/*
 /usr/share/openrtm-1.2/components/python3/Composite/*
 /usr/share/openrtm-1.2/components/python3/ConfigSample/*
 /usr/share/openrtm-1.2/components/python3/ExtTrigger/*
 /usr/share/openrtm-1.2/components/python3/MobileRobotCanvas/*
 /usr/share/openrtm-1.2/components/python3/SeqIO/*
 /usr/share/openrtm-1.2/components/python3/SimpleIO/*
 /usr/share/openrtm-1.2/components/python3/SimpleService/*
 /usr/share/openrtm-1.2/components/python3/Slider_and_Motor/*
 /usr/share/openrtm-1.2/components/python3/Templates/*
 /usr/share/openrtm-1.2/components/python3/Throughput/*
 /usr/share/openrtm-1.2/components/python3/TkJoyStick/
 /usr/share/openrtm-1.2/components/python3/TkLRFViewer/*

openrtm-aist-python3-doc

  • クラスリファレンス(英語)
     /usr/share/openrtm-1.2/doc/python3/ClassReference-en/html/_async_8py.html
     /usr/share/openrtm-1.2/doc/python3/ClassReference-en/html/_buffer_base_8py.html
     中略
     /usr/share/openrtm-1.2/doc/python3/ClassReference-en/html/uuid_8py.html
  • クラスリファレンス(日本語)
     /usr/share/openrtm-1.2/doc/python3/ClassReference-jp/html/_async_8py.html
     /usr/share/openrtm-1.2/doc/python3/ClassReference-jp/html/_buffer_base_8py.html
     中略
     /usr/share/openrtm-1.2/doc/python3/ClassReference-jp/html/uuid_8py.html 

openrtp

openrtpでは大量のファイルがインストールされるため、ここではリストしません。必要に応じて

 $ dpkg -L openrtp
と入力して各自での確認をしてください。

rtshell

  • コマンド用スクリプト
     /usr/local/bin/rtact
     /usr/local/bin/rtcat
     /usr/local/bin/rtcheck
     /usr/local/bin/rtcomp
     /usr/local/bin/rtcon
     /usr/local/bin/rtconf
     /usr/local/bin/rtcryo
     /usr/local/bin/rtdeact
     /usr/local/bin/rtdel
     /usr/local/bin/rtdis
     /usr/local/bin/rtdoc
     /usr/local/bin/rtexit
     /usr/local/bin/rtfind
     /usr/local/bin/rtfsm
     /usr/local/bin/rtinject
     /usr/local/bin/rtlog
     /usr/local/bin/rtls
     /usr/local/bin/rtmgr
     /usr/local/bin/rtprint
     /usr/local/bin/rtpwd
     /usr/local/bin/rtreset
     /usr/local/bin/rtresurrect
     /usr/local/bin/rtshell_post_install
     /usr/local/bin/rtstart
     /usr/local/bin/rtstodot
     /usr/local/bin/rtstop
     /usr/local/bin/rtteardown
     /usr/local/bin/rtvlog
     /usr/local/bin/rtwatch
  • コマンド本体 (下記はUbuntu20.04の例です。)
     /usr/local/lib/python3.8/dist-packages/rtctree/*
     /usr/local/lib/python3.8/dist-packages/rtshell/*
     /usr/local/lib/python3.8/dist-packages/rtsprofile/*
  • パッケージ情報 (下記はUbuntu20.04の例です。)
     /usr/local/lib/python3.8/dist-packages/rtctree_aist-4.2.0.egg-info/*
     /usr/local/lib/python3.8/dist-packages/rtshell_aist-4.2.2.dist-info/*
     /usr/local/lib/python3.8/dist-packages/rtsprofile_aist-4.1.2.dist-info/*

Raspbianへのインストール

Python版OpenRTM-aistはRaspberry Pi用Raspbianl用debパッケージが提供されています。 Raspbianへの対応およびそのバージョンは、予告なしに変更または停止されることがありますので、あらかじめご了承ください。

対応バージョン

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

  • Buster

です。

SDカードの準備

OSイメージのダウンロード

以下のリンクからRasbianのイメージ(「Raspbian Buster with desktop and recommended software」のイメージを推奨しますが、必要に応じて他のイメージを選択してもかまいません)をダウンロードし、解凍し、SDカードに書き込みます。SDカードの容量は4GB以上はあったほうがよいでしょう。

SDカードへの書き込み

SDカードへの書き込み方法については RPi Easy SD Card Setup を参照してください。

このリンクではいくつかの方法が説明されています。そのうちのいくつかの概要を示すと:

Windowsの場合

Windowsを用いる方法の方がLinuxやMac OSを用いるより簡単なので、初心者にはWindowsを用いる方法を推奨します。

LinuxやMac OSの場合

  • ’’dd’’コマンドを以下のように利用して書き込みます。

 $ sudo dd of=/dev/<SDカードのデバイスファイル> if=<ダウンロード・解凍したイメージファイル> bs=4M status=progress
 $ sudo sync

上記コマンドによるSDカードへの書き込みはかなり長い時間を必要とします。(数分から10数分)。また、SDカードのデバイスファイル名を見つけるには

 $ df -h
と入力し、表示されるデバイスのサイズからどのデバイスがSDカードかを見つけます。例えば、現在Rasbianがインストールされている16GBのSDカードを用いている場合、あるデバイスが14GBのデバイスとして表示され、そのデバイスが/dev/sdf7と表示されます。他にも/dev/sdf5、/dev/sdf6などの後尾の数字だけが違うデバイスが表示されます。これらがSDカードで使われているデバイス名となります。これらのデバイス全て以下のようにumountしてください。
 $ umount /dev/sdf5
 $ umount /dev/sdf6
 $ umount /dev/sdf7

その後、上記の’’dd’’コマンドを実行しますが、この例でのデバイスファイル名は/dev/sdfになります。

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

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

オプションを指定することで、目的に合わせたパッケージをインストールすることが可能です。一括インストール・スクリプトをダウンロードして

 $ sudo sh pkg_install_raspbian.sh -l python --yes
でインストールできます。

一括インストールスクリプトのダウンロードや詳しいインストール方法、指定可能なオプションの種類につきましては、「一括インストールスクリプト」のページをご確認ください。

rtshellのインストール

RTCをRaspbianにインストールしてそのホスト上からローカルにRTCをコントロールしたい場合にはrtshellが必要です。一括インストールスクリプトを用いてrtshellをインストールしてください。Raspbianではpkg_install_raspbian.shが置いてあるディレクトリで

 $ sudo sh pkg_install_raspbian.sh -l rtshell --yes
 $ sudo rtshell_post_install

でインストールできます。

インストールの確認

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

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

rtshellのインストールも確認します。

 $ pip show rtshell-aist
 Name: rtshell-aist
 Version: 4.2.2
 Summary: Shell commands for managing RT Components and RT Systems.
 Home-page: http://github.com/gbiggs/rtshell
 Author: Geoffrey Biggs and contributors
 Author-email: geoffrey.biggs@aist.go.jp
 License: LGPL3
 Location: /usr/local/lib/python2.7/dist-packages
 Requires: rtctree-aist, rtsprofile-aist

パッケージの詳細

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

openrtm-aist-python

  • コマンド
     /usr/bin/rtcd_python
     /usr/bin/rtcprof_python
  • OpenRTM-aist 本体の Python モジュール
     usr/lib/python2.7/dist-packages/OpenRTM-aist/*
  • OpenRTM-aist用Python検索パスファイル
     /usr/lib/python2.7/dist-packages/OpenRTM_aist.ph
  • ユーティリティ
     /usr/lib/python2.7/dist-packages/OpenRTM_aist/utils/__init__.py
     /usr/lib/python2.7/dist-packages/OpenRTM_aist/utils/rtc-template/*
     /usr/lib/python2.7/dist-packages/OpenRTM_aist/utils/rtcd/*
     /usr/lib/python2.7/dist-packages/OpenRTM_aist/utils/rtcprof/*
     /usr/lib/python2.7/dist-packages/OpenRTM_aist/utils/rtm-naming/*

openrtm-aist-python-example

 /usr/share/openrtm-1.2/components/python/__init__.py
 /usr/share/openrtm-1.2/components/python/rtcd.conf
 /usr/share/openrtm-1.2/components/python/components.conf
 /usr/share/openrtm-1.2/components/python/AutoControl/*
 /usr/share/openrtm-1.2/components/python/AutoTest/*
 /usr/share/openrtm-1.2/components/python/Composite/*
 /usr/share/openrtm-1.2/components/python/ConfigSample/*
 /usr/share/openrtm-1.2/components/python/ExtTrigger/*
 /usr/share/openrtm-1.2/components/python/MobileRobotCanvas/*
 /usr/share/openrtm-1.2/components/python/SeqIO/*
 /usr/share/openrtm-1.2/components/python/SimpleIO/*
 /usr/share/openrtm-1.2/components/python/SimpleService/*
 /usr/share/openrtm-1.2/components/python/Slider_and_Motor/*
 /usr/share/openrtm-1.2/components/python/Templates/*
 /usr/share/openrtm-1.2/components/python/Throughput/*
 /usr/share/openrtm-1.2/components/python/TkJoyStick/
 /usr/share/openrtm-1.2/components/python/TkLRFViewer/*

openrtm-aist-python-doc

  • クラスリファレンス(英語)
     /usr/share/openrtm-1.2/doc/python/ClassReference-en/html/_async_8py.html
     /usr/share/openrtm-1.2/doc/python/ClassReference-en/html/_buffer_base_8py.html
     中略
     /usr/share/openrtm-1.2/doc/python/ClassReference-en/html/uuid_8py.html
  • クラスリファレンス(日本語)
     /usr/share/openrtm-1.2/doc/python/ClassReference-jp/html/_async_8py.html
     /usr/share/openrtm-1.2/doc/python/ClassReference-jp/html/_buffer_base_8py.html
     中略
     /usr/share/openrtm-1.2/doc/python/ClassReference-jp/html/uuid_8py.html 

rtshell

  • コマンド用スクリプト
     /usr/local/bin/rtact
     /usr/local/bin/rtcat
     /usr/local/bin/rtcheck
     /usr/local/bin/rtcomp
     /usr/local/bin/rtcon
     /usr/local/bin/rtconf
     /usr/local/bin/rtcryo
     /usr/local/bin/rtdeact
     /usr/local/bin/rtdel
     /usr/local/bin/rtdis
     /usr/local/bin/rtdoc
     /usr/local/bin/rtexit
     /usr/local/bin/rtfind
     /usr/local/bin/rtfsm
     /usr/local/bin/rtinject
     /usr/local/bin/rtlog
     /usr/local/bin/rtls
     /usr/local/bin/rtmgr
     /usr/local/bin/rtprint
     /usr/local/bin/rtpwd
     /usr/local/bin/rtreset
     /usr/local/bin/rtresurrect
     /usr/local/bin/rtshell_post_install
     /usr/local/bin/rtstart
     /usr/local/bin/rtstodot
     /usr/local/bin/rtstop
     /usr/local/bin/rtteardown
     /usr/local/bin/rtvlog
     /usr/local/bin/rtwatch
  • コマンド本体
     /usr/local/lib/python2.7/dist-packages/rtctree/*
     /usr/local/lib/python2.7/dist-packages/rtshell/*
     /usr/local/lib/python2.7/dist-packages/rtsprofile/*
  • パッケージ情報
     /usr/local/lib/python2.7/dist-packages/rtctree_aist-4.2.0.egg-info/*
     /usr/local/lib/python2.7/dist-packages/rtshell_aist-4.2.2.dist-info/*
     /usr/local/lib/python2.7/dist-packages/rtsprofile_aist-4.1.2.dist-info/*

Fedoraへのインストール

現在、1.2系のOpenRTM-aistは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を開発・実行するために必要なパッケージをもれなくインストールしてくれるので大変便利です。

オプションを指定することで、目的に合わせたパッケージをインストールすることが可能です。一括インストール・スクリプトをダウンロードして

 sudo sh pkg_install_fedora.sh -l python --yes
でインストールできます。 一括インストールスクリプトのダウンロードや詳しいインストール方法、指定可能なオプションの種類につきましては、「一括インストールスクリプト」のページをご確認ください。

OpenRTPのインストール

一般的なUbuntu/Debian環境での開発にはRTC BuilderやRTSystem Editorを使用しますが、その場合にはOpenRTPが必要ですので、一括インストールスクリプトを用いてOpenRTPをインストールしてください。Ubuntuではpkg_install_ubuntu.shが置いてあるディレクトリで

 $ sudo sh ./pkg_install_fedora.sh -l openrtp --yes
と入力するとOpenRTPをインストールできます。

現状Fedora用一括インストールスクリプトでは-l pythonでPython用の環境をインストールした後に、-l openrtpをインストールした場合OpenRTPの実行に必要なファイルが一部インストールされないという問題がありますので上記実行後

 $ sudo yam install OpenRTM-aist
としてOpenRTM-aistをインストールしてください。

JDK8のインストール

OpenRTP(RTSystem EditorやRTC Builderなど)の実行にはJDK8相当のJava環境が必要です。現時点でFedoraの環境では、一括インストールスクリプトがFedoraのrpmリポジトリよりOpenJDK8をインストールします。他のJDK8をインストールしたい場合は下記のリンクを参照してください。なお、rtshell/rtctree/rtsprofileの使用にはJDKは必要ありませんのでOpenRTPを使わない場合にはJDK8をインストールする必要はありません。 JDK8の入手やインストールについては以下を参照してください。

rtshellのインストール

制御用コンピューター・システムが小規模の場合など、CUIでRTCを制御したい場合にはOpenRTPのRTSystemEditor相当の機能をCUIから実行できるようなツールとしてrtshellと呼ばれるツールが提供されています。rtshellのインストールはターミナル上で一括インストールスクリプトを用いて、一括インストールスクリプト・ファイルが置かれているディレクトリで以下のように入力します。

 $ sudo sh pkg_install_fedora.sh -l rtshell --yes

yumとpipを使う方法

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

  • OpenRTM-aist-Pythonのインストール
     $ sudo yum install gcc-c++ python
     $ sudo yum install omniORB omniORB-devel omniORB-doc omniORB-servers omniORB-utils
     $ sudo yum install OpenRTM-aist-Python OpenRTM-aist-Python-doc OpenRTM-aist-Python-example
  • OpenRTPのインストール
     $ sudo yum install OpenRTP
     $ sudo yum install OpenRTM-aist
  • rtshellのインストール
     $ sudo pip3 install rtshell-aist

インストールの確認

以下のコマンドでインストールの確認ができます。

  • OpenRTPもインストールしている場合
     $ rpm -qa OpenRT*
     OpenRTM-aist-devel-1.2.0-0.fc29.x86_64
     OpenRTM-aist-Python-1.2.0-0.29.x86_64
     OpenRTM-aist-Python-example-1.2.0-0.29.x86_64
     OpenRTP-1.2.0-1.fc29.x86_64
     OpenRTM-aist-1.2.0-0.fc29.x86_64
     OpenRTM-aist-Python-doc-1.2.0-0.29.x86_64
  • OpenRTPをインストールしていない場合
     $ rpm -qa OpenRT*
     OpenRTM-aist-Python-1.2.0-0.29.x86_64
     OpenRTM-aist-Python-example-1.2.0-0.29.x86_64
     OpenRTM-aist-Python-doc-1.2.0-0.29.x86_64
  • rtshellのインストールは
     $ pip3 show rtshell-aist
     Name: rtshell-aist
     Version: 4.2.2
     Summary: Shell commands for managing RT Components and RT Systems.
     Home-page: http://github.com/gbiggs/rtshell
     Author: Geoffrey Biggs and contributors
     Author-email: geoffrey.biggs@aist.go.jp
     License: LGPL3
     Location: /usr/local/lib/python3.7/dist-packages
     Requires: rtctree-aist, rtsprofile-aist
    と確認できます。

パッケージの詳細

各パッケージの内容は以下の通りです(64bit版Fedoraの場合)

OpenRTM-aist-Python

  • コマンド
     /usr/bin/rtcd_python
     /usr/bin/rtcprof_python
  • OpenRTM-aist 本体の Python モジュール
     usr/lib/python3.7/site-packages/OpenRTM-aist/*
  • OpenRTM-aist用Python検索パスファイル
     /usr/lib/python3.7/site-packages/OpenRTM_aist.ph
  • ユーティリティ
     /usr/lib/python3.7/site-packages/OpenRTM_aist/utils/__init__.py
     /usr/lib/python3.7/site-packages/OpenRTM_aist/utils/rtc-template/*
     /usr/lib/python3.7/site-packages/OpenRTM_aist/utils/rtcd/*
     /usr/lib/python3.7/site-packages/OpenRTM_aist/utils/rtcprof/*
     /usr/lib/python3.7/site-packages/OpenRTM_aist/utils/rtm-naming/*

openrtm-aist-python-example

 /usr/share/openrtm-1.2/components/python/__init__.py
 /usr/share/openrtm-1.2/components/python/rtcd.conf
 /usr/share/openrtm-1.2/components/python/components.conf
 /usr/share/openrtm-1.2/components/python/AutoControl/*
 /usr/share/openrtm-1.2/components/python/AutoTest/*
 /usr/share/openrtm-1.2/components/python/Composite/*
 /usr/share/openrtm-1.2/components/python/ConfigSample/*
 /usr/share/openrtm-1.2/components/python/ExtTrigger/*
 /usr/share/openrtm-1.2/components/python/MobileRobotCanvas/*
 /usr/share/openrtm-1.2/components/python/SeqIO/*
 /usr/share/openrtm-1.2/components/python/SimpleIO/*
 /usr/share/openrtm-1.2/components/python/SimpleService/*
 /usr/share/openrtm-1.2/components/python/Slider_and_Motor/*
 /usr/share/openrtm-1.2/components/python/Templates/*
 /usr/share/openrtm-1.2/components/python/Throughput/*
 /usr/share/openrtm-1.2/components/python/TkJoyStick/
 /usr/share/openrtm-1.2/components/python/TkLRFViewer/*

openrtm-aist-python-doc

  • クラスリファレンス(英語)
     /usr/share/openrtm-1.2/doc/python/ClassReference-en/html/_async_8py.html
     /usr/share/openrtm-1.2/doc/python/ClassReference-en/html/_buffer_base_8py.html
     中略
     /usr/share/openrtm-1.2/doc/python/ClassReference-en/html/uuid_8py.html
  • クラスリファレンス(日本語)
     /usr/share/openrtm-1.2/doc/python/ClassReference-jp/html/_async_8py.html
     /usr/share/openrtm-1.2/doc/python/ClassReference-jp/html/_buffer_base_8py.html
     中略
     /usr/share/openrtm-1.2/doc/python/ClassReference-jp/html/uuid_8py.html 

OpenRTM-aist

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

  • サンプル設定ファイル
     /etc/rtc.conf.sample
  • コマンド
     /usr/bin/rtcd
     /usr/bin/rtcprof
     /usr/bin/rtm-config
     /usr/bin/rtm-naming
  • ライブラリ
     /usr/lib64/libRTC-1.2.0.so
     /usr/lib64/libRTC.a
     /usr/lib64/libRTC.la
     中略
     /usr/lib64/librtmManipulator.so.0.0.0
     /usr/lib64/openrtm-1.2/ec/FileNameservice.la
     /usr/lib64/openrtm-1.2/ec/FileNameservice.so
     中略
     /usr/lib64/openrtm-1.2/ssl/SSLTransport.so.0.0.0

OpenRTM-aist-devel

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

  • コマンド
     /usr/bin/coil-config
     /usr/bin/rtc-template
     /usr/bin/rtm-skelwrapper
  • ヘッダ
     /usr/include/coil-1.2/coil/Affinity.h
     /usr/include/coil-1.2/coil/Allocator.h
     中略
     /usr/include/coil-1.2/coil/stringutil.h
     /usr/include/openrtm-1.2/rtm/BufferBase.h
     /usr/include/openrtm-1.2/rtm/BufferStatus.h
     中略
     /usr/include/openrtm-1.2/rtm/version.txt
     /usr/include/openrtm-1.2/rtm/ext/CameraCommonInterface.hh
     /usr/include/openrtm-1.2/rtm/ext/CameraCommonInterface.idl
     中略
     /usr/include/openrtm-1.2/rtm/ext/ManipulatorCommonInterface_MiddleStub.h
     /usr/include/openrtm-1.2/rtm/ext/ec/artlinux/ArtExecutionContext.h
     /usr/include/openrtm-1.2/rtm/ext/ec/artlinux/rtc.conf.sample
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredEC.h
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredEC.idl
     中略
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredECStub.h
     /usr/include/openrtm-1.2/rtm/ext/ec/rtpreempt/RTPreemptEC.h
     /usr/include/openrtm-1.2/rtm/ext/ec/rtpreempt/rtc.conf.sample
     /usr/include/openrtm-1.2/rtm/ext/local_service/nameservice_file
     /usr/include/openrtm-1.2/rtm/ext/local_service/nameservice_file/FileNameservice.h
     /usr/include/openrtm-1.2/rtm/ext/logger/fluentbit_stream/FluentBit.h
     /usr/include/openrtm-1.2/rtm/ext/logger/fluentbit_stream/fluentbit.conf
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/Logger.hh
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/Logger.idl
     中略
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/LoggerStub.h
  • IDL およびスタブ・スケルトン
 /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserver.idl
 /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserverConsumer.h
 中略
 /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserverStub.h
 /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredEC.hh
 /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredEC.idl
 /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredECDynSK.cc
 /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredECSK.cc
 /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserver.hh
 /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserver.idl
 /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserverDynSK.cc
 /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserverSK.cc
 /usr/include/openrtm-1.2/rtm/idl/BasicDataType.hh
 /usr/include/openrtm-1.2/rtm/idl/BasicDataType.idl
 中略
 /usr/include/openrtm-1.2/rtm/idl/SharedMemoryStub.h
 /usr/include/openrtm-1.2/rtm/idl/device_interfaces/AIO.idl
 /usr/include/openrtm-1.2/rtm/idl/device_interfaces/ActArray.idl
 中略
 /usr/include/openrtm-1.2/rtm/idl/device_interfaces/Ranger.idl
 
  • ライブラリ
     /usr/lib64/openrtm-1.2/cmake/OpenRTMConfig.cmake
     /usr/lib64/openrtm-1.2/py_helper/README_gen.py
     /usr/lib64/openrtm-1.2/py_helper/cxx_gen.py
     中略
     /usr/lib64/openrtm-1.2/py_helper/yat.py
     /usr/lib64/pkgconfig/libcoil.pc
     /usr/lib64/pkgconfig/openrtm-aist.pc

OpenRTP

OpenRtpでは大量のファイルがインストールされるため、ここではリストしません。必要に応じて

 $ rpm -ql  OpenRTP
と入力して各自での確認をしてください。

rtshell

  • コマンド用スクリプト
     /usr/local/bin/rtact
     /usr/local/bin/rtcat
     /usr/local/bin/rtcheck
     /usr/local/bin/rtcomp
     /usr/local/bin/rtcon
     /usr/local/bin/rtconf
     /usr/local/bin/rtcryo
     /usr/local/bin/rtdeact
     /usr/local/bin/rtdel
     /usr/local/bin/rtdis
     /usr/local/bin/rtdoc
     /usr/local/bin/rtexit
     /usr/local/bin/rtfind
     /usr/local/bin/rtfsm
     /usr/local/bin/rtinject
     /usr/local/bin/rtlog
     /usr/local/bin/rtls
     /usr/local/bin/rtmgr
     /usr/local/bin/rtprint
     /usr/local/bin/rtpwd
     /usr/local/bin/rtreset
     /usr/local/bin/rtresurrect
     /usr/local/bin/rtshell_post_install
     /usr/local/bin/rtstart
     /usr/local/bin/rtstodot
     /usr/local/bin/rtstop
     /usr/local/bin/rtteardown
     /usr/local/bin/rtvlog
     /usr/local/bin/rtwatch
  • コマンド本体
     /usr/local/lib/python3.7/dist-packages/rtctree/*
     /usr/local/lib/python3.7/dist-packages/rtshell/*
     /usr/local/lib/python3.7/dist-packages/rtsprofile/*
  • パッケージ情報
     /usr/local/lib/python3.7/dist-packages/rtctree_aist-4.2.0.egg-info/*
     /usr/local/lib/python3.7/dist-packages/rtshell_aist-4.2.2.dist-info/*
     /usr/local/lib/python3.7/dist-packages/rtsprofile_aist-4.1.2.dist-info/*

動作確認(Windows編)

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

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

  • c:\Program Files\OpenRTM-aist\1.2.x\Components\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をデフォルトでインストールした環境で、スタートメニューから各種プログラムを起動する場合しOpenRTPを使う方法を説明します。OpenRTPを使わないでrtshellを使う場合は、rtshellのインストールにおける動作確認(Windows編)を参照してください。なお、ソースビルドした場合は、サンプルコンポネントは、<ソースディレクトリ>\OpenRTM-aist\examples\SimpleIOにありますので、リンク先や下記の説明でのConsoleIn/ConsoleOutコンポーネントの場所はそこに置き換えてください。

動作確認手順

RTSystemEditor、ネームサーバーの起動

以下の手順に従ってRTSystemEditor、ネームサーバーを起動してください。

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

ネームサーバー起動後、適当なサンプルコンポーネントを起動します。

Windows 10の場合は右下の[ここに入力して検索]にPython_Examplesと入力してサンプルのディレクトリを開きます。

rtm7-2.png
ネームサーバーの起動を確認

rtm8-2.png
サンプルコンポーネントディレクトリ

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

rtm9-2.png
ConsoleInコンポーネントとConsoleOutコンポーネント

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

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

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

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

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

 corba.nameservers: localhost

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

openrtm.orgが提供するMSIインストーラーにはomniORBpyが含まれていますが、カスタムインストールを選択すると、omniORBpyをインストールせずにOpenRTM-aist-Pythonをインストールできます。また、手動でインストールした場合には、omniORBpyが入っていない場合も考えられますので、omniORBpyがインストールされているか確認してください。

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

ConsoleIn、ConsoleOutを起動するファイルは、

C:\Program Files\OpenRTM-aist\1.2.x\Components\Python\Examples\SimpleIO\ConsoleIn.py
C:\Program Files\OpenRTM-aist\1.2.x\Components\Python\Examples\SimpleIO\ConsoleOut.py

です。(64bit版MSIでインストールした場合)このディレクトリでコンソール画面を開き、python ConsoleIn.pyを実行すると起動するが、ConsoleIn.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

RTSystemEditorでのエディタへの配置

RTSystemEditorのツリー表示の[>]をクリックすると、先ほど起動した2つのコンポーネントが登録されていることがわかります。

/ja/node/6614
ConsoleInコンポーネントとConsoleOutコンポーネント

システムを編集するエディタ(System Diagram)を開きます。上部の[Open New System Editor]ボタンrtse_open_editor_icon_ja.png をクリックすると、中央のペインにエディタ(System Diagram)が開きます。左側のネームサービスビューに rtse_rtc_icon_n.png のアイコンで表示されているコンポーネント(2つ)を中央のエディタ・エリアにドラッグアンドドロップします。

/ja/node/6614
コンポーネントをSystem Diagramに配置

接続とアクティブ化

ConsoleIn0コンポーネント・アイコンの右側にはデータが出力されるOutPort rtse_outport_icon_n.pngが 、ConsoleOut0コンポーネント・アイコンの左側にはデータが入力されるInPort rtse_inport_icon_n.pngがそれぞれ配置されています。

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

/ja/node/6614
データポートの接続

/ja/node/6614
データポート接続ダイアログ

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

/ja/node/6614
アクティブ化されたコンポーネント

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

 Please input number: 

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

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

他のサンプル

インストーラーには、このほかにもいくつかのサンプルコンポーネントが付属しています。これらのコンポーネントも同様に起動し、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の子要素として使用。
SliderComp.py Tcl/Tkを用いたGUIコンポーネントのサンプル。Sliderで指定した値をOutPortから出力する。
TkMotorComp.py Tcl/Tkを用いたGUIコンポーネントのサンプル。InPortで受け取った値の速度で回転する様子をGUIで表示する。
TkMotorPosComp.py Tcl/TKを用いたGUIコンポーネントのサンプル。InPortで受け取った値を回転角として動く様子をGUIで表示する。
TkLRFViewer.py Tcl/Tkを用いたGUIコンポーネントのサンプル。レーザーレンジセンサーなどから出力されるデータを表示する。
TkJoystickComp.py Tcl/Tkを用いたGUIコンポーネントのサンプル。簡易ジョイスティックコンポーネント。

動作確認(Linux編)

インストールが正常に終了したら、付属のサンプルで動作テストをします。サンプルは、通常は以下の場所にあります。
  • /usr/share/openrtm-1.2/components/python/<サンプルコンポーネントセット名>
ソースからビルドした場合は、ソースディレクトリ下の
  • OpenRTM_aist/examples/<サンプルコンポーネントセット名>

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

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

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

以降、サンプルは/usr/share/openrtm-1.2/components/python/SimpleIO下にあることを前程に説明します。また、Python本体の実行ファイルに対してはサーチパスが設定されているものとします。なお、ソースコードからビルドした場合はサンプル実行ファイルルは<source_dir>/OpenRTM_aist/examples/SimpleIO/にあるので、起動パスを置き換えて下記の説明を利用してください。

サンプルを使用した動作確認

RTSystemEditorを使った動作確認

以下の説明ではRTSystemEditor(OpenRTP)を使った動作確認を説明します。RaspbianのケースのようにOpenRTPを使用しない環境での動作確認についてはrtshellのインスト―ルの動作確認(Linux編)>を参照ください。

ネームサーバーの起動

以下の手順に従ってRTSystemEditor、ネームサーバーを起動してください。

ConsoleInの起動

  • ターミナルを起動してConsoleInを起動します。
     $ python /usr/share/openrtm-1.2/components/python/SimpleIO/ConsoleIn.py
    自分でビルド・インストールした場合は、
     $ python <source_dir>/OpenRTM_aist/examples/SimpleIO/ConsoleIn.py
    などとしてConsoleInを起動します。

ConsoleOutの起動

  • 別のターミナルを起動してConsoleOutを起動します。
     $ /usr/share/openrtm-1.2/components/python/SimpleIO/ConsoleOut
    自分でビルド・インストールした場合は、同様に
     $ python <source_dir>/OpenRTM_aist/examples/SimpleIO/ConsoleOut.py
    などとしてConsoleOutを起動します。

System Diagramへの配置

  • RTSystem Editorのツリー表示の[>]をクリックすると、先ほど起動した2つのコンポーネントが登録されていることがわかります。
    /ja/node/6614
    ConsoleInコンポーネントとConsoleOutコンポーネント
  • システムを編集するSystem Diagramを開きます。上部のエディタを[Open New System Editor]ボタンrtse_open_editor_icon_ja.pngをクリックすると、中央のペインにSystem Diagramが開きます。
  • 左側のネームサービスビューにrtse_rtc_icon_n.pngのアイコンで表示されているコンポーネント(2つ)を中央のSystem Diagramにドラッグアンドドロップします。
    /ja/node/6614
    コンポーネントをSystem Diagramに配置

接続とアクティブ化

  • ConsoleIn0コンポーネントの右側にはデータが出力されるOutPortrtse_outport_icon_n.png、ConsoleOut0コンポーネントの左側にはデータが入力されるInPortrtse_inport_icon_n.pngがそれぞれついています。
    rtm13.png
    データポートの接続
  • これらInPort/OutPort(まとめてデータポートと呼びます)を接続します。 OutPortからInPort(またはInPortからOutPort)へドラッグランドドロップすると、図のようなダイアログが現れますので、デフォルト設定のまま[OK]ボタンをクリックします。
    rtm12.png
    データポート接続ダイアログ
  • 2つのコンポーネントの間に接続線が現れます。次に、エディタ上部メニューの[All Activate]ボタンrtm14.pngをクリックし、これらのコンポーネントをアクティブ化します。
  • アクティブ化されると、コンポーネントが緑色に変化します。
    /ja/node/6614
    アクティブ化されたコンポーネント
  • コンポーネントがアクティブ化されるとConsoleInコンポーネント側では
     Please input number: 
    というプロンプト表示に変わりますので、適当な数値(short intの範囲内:32767以下)を入力しEnterキーを押します。すると、ConsoleOut側でも入力した数値が表示され、ConsoleInコンポーネントからConsoleOutコンポーネントへデータが転送されたことがわかります。

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

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

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

ビルド環境

  • Python
  • omniORBpy
  • Doxgen

が必要です。以下に入手方法を説明しますのでインストールしてください。

Python

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

以降の説明では、Pythonのインストールに際して以下の設定が必要です。(その他はインストーラのデフォルト設定です。)

  • インストール先をC:\PythonX.Yに設定。
    • X.Yは2.7か3.6か3.7、例:C:¥Python2.7など。
  • Python3.7ではインストール時に[Customize Installation]を選択。
  • コマンドサーチパス(環境変数PATHに設定されるパス)に上記ディレクトリが含まれていること。
    • 3.7ではインストール中に[Add Python to environmental variable]にチェックを入れればインストーラが設定します
    • その他の場合は手動で設定する必要があります。

omniORBpy

OpenRTM-aist-PythonのビルドにはomniORBpyのライブリが必要です。omniORBpyは以下のリンクから、必要なファイルを入手できます。

また、公式サイトからはソースが入手できます。

openrtm.orgのサイトのファイルは、特別な理由がない限りは最新版(現時点では4.2.3)を使用することを推奨します。また、複数のファイルがあり、そのファイル名の意味は以下になります。説明にあわせて使用するファイルを選択してください。

ファイル名の書式は、以下のフォーマットになっています。

omniORB-x.y.z-{win32|x64}-{vc100|vc110|vc120|vc140}-{py27|py36|py37}.zip

ここで、
x.y.z:
omniORBのバージョン、例えば4.2.3
win32
32ビット版のPythonを使う場合
x64
64ビット版のPythonを使う場合
vc100
C++環境を使う場合で、Visual Studio 2010の場合
vc110
C++環境を使う場合で、Visual Studio 2012の場合
vc120
: C++環境を使う場合で、Visual Studio 2013の場合
vc140
C++環境を使う場合で、Visual Studio 2015/2017/2019の場合
py27
Python 2.7を使う場合
py36
Python 3.6を使う場合
py37
Python 3.7を使う場合

omniORB 4.2.3を64bitのPython 3.7の環境で使用する場合、omniORB-4.2.3-x64-vc140-py37.zipをダウンロードします。

omniORBのファイルのインストールの仕方

ダウンロードしたZIPファイルを展開すると、以下の様なディレクトリツリーが展開されます。それぞれのディレクトリ下のファイルを以下の指示通りに Python のディレクトリにコピーしてください。

なお、omniORBpyのバージョンをx.y、PythonのバージョンをX.Yとして記述しています。

 + omniORBpy-x.y
  + bin
    + x86_win32 -> exe、dllともにC:\PythonX.Y直下へ
  + doc -> 削除してもよい
  + examples -> 削除してもよい
  + idl -> 削除してもよいがC:\PythonX.Y\Lib\site-packages\omniORB\idl以下においておいてもよい
  + lib
    + python -> 以下のディレクトリとファイルを丸ごとC:\PythonX.Y\Lib\site-packages直下へ
    + x86_win32 -> .pydをC:\PythonX.Y\Lib\site-packages直下へ

Doxygen

のWebページからWindows版のバイナリ実行形式ファイルをダウンロードして実行してインストールしてください。

 ソースパッケージの取得

まず下記リンクよりソースコードファイルOpenRTM-aist-Python-1.2.x.zipをダウンロードし、適当なディレクトリに展開します。

ビルド

コマンドプロンプトを起動し、先程ソースコードを展開したフォルダーに移動後、以下のコマンドにてビルドを行います。

 > python setup.py build

インストール

すべてが正しくビルドできたら、以下のコマンドにてインストールを完了させます。

 > python setup.py install

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

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

Linux上でソースパッケージからインストールしたい場合、OpenRTM-aist-Pythonを自分でビルドする必要があります。以下にUbuntu 18.04でのビルド作業の手順を説明します。

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

OpenRTM-aist-Pythonは下記のOSおよびLinuxディストリビューションで動作することが確認されています。
  • Ubuntu
  • Debian(対応するOpenRTM-aistのバージョンに制限あり)
  • Fedora(対応するOpenRTM-aistのバージョンに制限あり)

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

依存ライブラリ

OpenRTM-aist-Python-1.2.1のインストールには下記の開発環境およびライブラリが必要です。
  • python: ビルドツールを利用するために必要
  • omniORBpy: OpenRTM-aistのビルド(IDLコンパイル)に必要

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

Ubuntu, DebianではomniORB関連のものは以下のコマンドでインストールできます。

 sudo apt-get install python-omniorb-omg omniidl-python omniorb-nameserver

ソースのダウンロード

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

ソースコードの展開

まずソースコードパッケージOpenRTM-aist-Python-1.2.1.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モジュール、ユーティリティコマンド群をインストールします。

 $ sudo python setup.py install

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

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

ここではOpenRTM-aist(Java)のインストール方法を説明します。

Windowsへのインストール

OpenRTM-aistのインストール

MSIインストーラーによるOpenRTM-aistのインストール手順については下記のページに記載。
  • OpenRTM-aist1.2系のインストール(Windows、MSIインストーラー使用) より、.msiファイルをダウンロードしてください。ファイル名は、64ビット版なら"x86_64.msi"で、32bit版なら"64.msi"で終端された名前となります。ダウンロードした後は、拡張子.msiのファイルをダブルクリックすればインストールプログラムが起動されます。インストール途中で[標準]を選択するとこの.msiファイルが対応している全ての構成がインストールされます。一部の構成のみをインストールしたい場合は[カスタム]を選択してください。(一部の構成のみの検証は十分にはなされていないので、[標準]でインストールすることを推奨します。)

JDK8のインストール

OpenRTM-aist-Java-1.2.xの動作にはJDK8相当のJDK(JDK11では正常動作しません)が前もってインストールされている必要があります。JDK8の入手やインストールについては以下を参照してください。

JDKのインストール確認

コマンドプロンプトを開き、

 C:\>java -version
と入力します。インストールしたJavaのバージョンが表示されればインストールは完了です。例えば以下のように表示されます。
 openjdk version "1.8.0_232"
 OpenJDK Runtime Environment (build 1.8.0_232-b09)
 OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)

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

インストーラーは以下の作業を行います。
  • インストールディレクトリ(デフォルトはC:\Program Files)以下に各種ファイルをコピー
  • スタートメニュー以下にOpenRTM-aistフォルダーを作成し各種ショートカットを設定
  • 環境変数の設定
    • 64bit版MSIファイルの場合
       RTM_BASE=C:\Program Files\OpenRTM-aist\ RTM_IDL_DIR=C:\Program Files\OpenrRTM-aist\1.2.1\rtm\idl\ RTM_JAVA_ROOT=C:\Program Files\OpenRTM-aist\1.2.1\ RTM_ROOT=C:\Program Files\OpenRTM-aist\1.2.1\ RTM_VC_VERSION=vc14
       OMNI_ROOT=C:\Program Files\OpenRTM-aist\1.2.1\omniORB\4.2.1_%RTM_VC_VERSION%\ OpenCV_DIR=C:\Program Files\OpenRTM-aist\1.2.1\OpenCV3.4\ OpenRTM_DIR=C:\Program Files\OpenRTM-aist\1.2.1\cmake\
    • 32bit版MSIファイルの場合
       RTM_BASE=C:\Program Files (x86)\OpenRTM-aist\ RTM_IDL_DIR=C:\Program Files (x86)\OpenrRTM-aist\1.2.1\rtm\idl\ RTM_JAVA_ROOT=C:\Program Files (x86)\OpenRTM-aist\1.2.1\ RTM_ROOT=C:\Program Files (x86)\OpenRTM-aist\1.2.1\ RTM_VC_VERSION=vc14
       OMNI_ROOT=C:\Program Files\OpenRTM-aist\1.2.1\omniORB\4.2.3_%RTM_VC_VERSION%\ OpenCV_DIR=C:\Program Files\OpenRTM-aist\1.2.1\OpenCV3.4\ OpenRTM_DIR=C:\Program FilessOpenRTM-aist\1.2.1\cmake\
    • 64bit版MSIファイルの場合に追加されるパス
       C:\Program Files\OpenRTM-aist\1.2.1\bin\%RTM_VC_VERSION%\ C:\Program Files\OpenRTM-aist\1.2.1\omniORB\4.2.3_%RTM_VC_VERSION%\bin\x86_win32\ C:\Program Files\OpenRTM-aist\1.2.1\OpenCV3.4\x64\%RTM_VC_VERSION%\bin\
    • 32bit版MSIファイルの場合に追加されるパス
       C:\Program Files (x86)\OpenRTM-aist\1.2.1\bin\%RTM_VC_VERSION%\ C:\Program Files (x86)\OpenRTM-aist\1.2.1\omniORB\4.2.3_%RTM_VC_VERSION%\bin\x86_win32\ C:\Program Files (x86)\OpenRTM-aist\1.2.1\OpenCV3.4\x86\%RTM_VC_VERSION%\bin\

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

ファイルは以下のような構造でインストールされます。

 <install_dir>
   + OpenRTM-aist
      + 1.x.x: 旧バージョンのランタイム
      + 1.2.1
         + bin: dll、lib各種コマンド
         + cmake: OpenRTMConfig.cmake
         + coil: coilヘッダファイル
         + Components
            + C++
               + Examples: C++サンプルコンポーネント
               + OpenCV: OpenCVのC++サンプルコンポーネント
            + Java: Javaサンプルコンポーネント
            + Python: Pythonサンプルコンポーネント
         + etc: rtc.confサンプル
         + jar: jarファイル
         + jre: OpenJDK JRE
         + omniORB
         + OpenCV3.4
         + rtm: OpenRTM-aistヘッダファイル
            + ext: 拡張モジュール用ファイル 
            + idl: OpenRTM-aistIDLファイル
         + util
            + ExcelControlpy: PythonベースのMicrosoft Office用RTC
            + OpenRTP: RTCBuilderとRTSystemEditorツール
            + PowerPointControlpy: Microsoft Office PowerPoint用RTC
            + python_dist: pythonベースツール共通ライブラリ
            + RTCDT: PythonベースRTCの開発を支援するツール
            + rtc-template: RTCBuilderと似た機能を提供する古いツール
            + RTSystemEditor: RTSystem Editorのみのファイル
            + VCVerChanger: 使用しているVisual Studioのバージョンを指定するツール
            + WordContrlpy: PythonベースMicrosoft Office Word用RTC

Ubuntu/Debianへのインストール

ubuntu_logo2.png

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

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

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

オプションを指定することで、目的に合わせたパッケージをインストールすることが可能です。

一括インストールスクリプトは、ダウンロードした後、ダウンロード先ディレクトリに移動し、

Ubuntuの場合は

 $ sudo sh pkg_install_ubuntu.sh -l java --yes
Debianの場合はsuでroot権限を得た後に

 # sh pkg_install_debian.sh -l java --yes
でインストールできます。

一括インストールスクリプトのダウンロードや詳しいインストール方法、指定可能なオプションの種類につきましては、「一括インストールスクリプト」のページをご確認ください。

OpenRTPのインストール

一般的なUbuntu/Debian環境での開発にはRTC BuilderやRTSystem Editorを使用しますが、その場合にはOpenRTPが必要です。一括インストールスクリプトを用いてOpenRTPをインストールしてください。Ubuntuではpkg_install_ubuntu.shが置いてあるディレクトリで

Ubuntuの場合は

 $ sudo sh ./pkg_install_ubuntu.sh -l openrtp --yes

Debianの場合はsuでroot権限を得た後に

 # sh pkg_install_debian.sh -l openrtp --yes

と入力するとOpenRTPをインストールできます。

JDK8のインストール

Java版OpenRTM-aistの使用にはJDK8相当のJava環境が必要です。(デフォルトの環境でJDK8がインストールされている場合もありますが、Ubuntu 18.04ではJDK11がインストールされているため、JDK8のインストールが必要です。) JDK8の入手やインストールについては以下を参照してください。

インストールの確認

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

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

パッケージの詳細

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

openrtm-aist

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

  • コマンド
     /usr/bin/rtcd
     /usr/bin/rtcprof
     /usr/bin/rtm-config
     /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/copyright
     /usr/share/doc/openrtm-aist/changelog.Debian.gz
  • 設定ファイルサンプル
     /usr/etc/rtc.conf.sample
  • ライブラリ
    • 32bit
       /usr/lib/i386-linux-gnu/libRTC-X.X.X.so
       /usr/lib/i386-linux-gnu/libRTC.a
       /usr/lib/i386-linux-gnu/libRTC.la
       /usr/lib/i386-linux-gnu/libcoil-X.X.X.so
       /usr/lib/i386-linux-gnu/libcoil.a
       /usr/lib/i386-linux-gnu/librtmCamera.a
       /usr/lib/i386-linux-gnu/librtmCamera.la
       /usr/lib/i386-linux-gnu/librtmCamera.so.X.X.X
       /usr/lib/i386-linux-gnu/librtmManipulator.a
       /usr/lib/i386-linux-gnu/librtmManipulator.la
       /usr/lib/i386-linux-gnu/librtmManipulator.so.X.X.X
       /usr/lib/i386-linux-gnu/openrtm-1.2/ec/FileNameservice.la
       /usr/lib/i386-linux-gnu/openrtm-1.2/ec/FileNameservice.so.X.X.X
       /usr/lib/i386-linux-gnu/openrtm-1.2/ec/LogicalTimeTriggeredEC.a
       /usr/lib/i386-linux-gnu/openrtm-1.2/ec/LogicalTimeTriggeredEC.la
       /usr/lib/i386-linux-gnu/openrtm-1.2/ec/LogicalTimeTriggeredEC.so.X.X.X
       /usr/lib/i386-linux-gnu/openrtm-1.2/sdo/LoggerConsumer.a
       /usr/lib/i386-linux-gnu/openrtm-1.2/sdo/LoggerConsumer.la
       /usr/lib/i386-linux-gnu/openrtm-1.2/sdo/LoggerConsumer.so.X.X.X
       /usr/lib/i386-linux-gnu/openrtm-1.2/ssl/SSLTransport.la
       /usr/lib/i386-linux-gnu/openrtm-1.2/ssl/SSLTransport.so.X.X.X
       /usr/lib/i386-linux-gnu/pigconfig/openrtm-aist.pc
    • 64bit
       /usr/lib/x86_64-linux-gnu/libRTC-X.X.X.so
       /usr/lib/x86_64-linux-gnu/libRTC.a
       /usr/lib/x86_64-linux-gnu/libRTC.la
       /usr/lib/x86_64-linux-gnu/libcoil-X.X.X.so
       /usr/lib/x86_64-linux-gnu/libcoil.a
       /usr/lib/x86_64-linux-gnu/librtmCamera.a
       /usr/lib/x86_64-linux-gnu/librtmCamera.la
       /usr/lib/x86_64-linux-gnu/librtmCamera.so.X.X.X
       /usr/lib/x86_64-linux-gnu/librtmManipulator.a
       /usr/lib/x86_64-linux-gnu/librtmManipulator.la
       /usr/lib/x86_64-linux-gnu/librtmManipulator.so.X.X.X
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/ec/FileNameservice.la
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/ec/FileNameservice.so.X.X.X
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/ec/LogicalTimeTriggeredEC.a
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/ec/LogicalTimeTriggeredEC.la
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/ec/LogicalTimeTriggeredEC.so.X.X.X
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/sdo/LoggerConsumer.a
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/sdo/LoggerConsumer.la
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/sdo/LoggerConsumer.so.X.X.X
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/ssl/SSLTransport.la
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/ssl/SSLTransport.so.X.X.X
       /usr/lib/x86_64-linux-gnu/pigconfig/openrtm-aist.pc

openrtm-aist-dev

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

  • コマンド
     /usr/bin/coil-config
     /usr/bin/rtc-template
     /usr/bin/rtm-skelwrapper
  • ライセンスなど
     /usr/share/doc/openrtm-aist-dev/changelog.Debian.gz
     /usr/share/doc/openrtm-aist-dev/changelog.gz
     /usr/share/doc/openrtm-aist-dev/copyright
  • ヘッダなど
     /usr/include/coil-1.2/coil/Affinity.h
     /usr/include/coil-1.2/coil/Allocator.h
     中略
     /usr/include/coil-1.2/coil/stringutil.h
     /usr/include/openrtm-1.2/rtm/BufferBase.h
     /usr/include/openrtm-1.2/rtm/BufferStatus.h
     中略
     /usr/include/openrtm-1.2/rtm/config_rtc.h
     /usr/include/openrtm-1.2/rtm/ext/CameraCommonInterface.hh
     /usr/include/openrtm-1.2/rtm/ext/CameraCommonInterface.idl
     中略
     /usr/include/openrtm-1.2/rtm/ext/ManipulatorCommonInterface_MiddleStub.h
     /usr/include/openrtm-1.2/rtm/ext/ec/artlinux/ArtExecutionContext.h
     /usr/include/openrtm-1.2/rtm/ext/ec/artlinux/rtc.conf.sample
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredEC.h
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredEC.idl
     中略
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredECStub.h
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredEC.hh
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredEC.idl
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredECDynSK.cc
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredECSK.cc
     /usr/include/openrtm-1.2/rtm/ext/ec/rtpreempt
     /usr/include/openrtm-1.2/rtm/ext/ec/rtpreempt/RTPreemptEC.h
     /usr/include/openrtm-1.2/rtm/ext/ec/rtpreempt/rtc.conf.sample
     /usr/include/openrtm-1.2/rtm/ext/local_service/nameservice_file/FileNameservice.h
     /usr/include/openrtm-1.2/rtm/ext/logger/fluentbit_stream/FluentBit.h
     /usr/include/openrtm-1.2/rtm/ext/logger/fluentbit_stream/fluentbit.conf
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/Logger.hh
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/Logger.idl
     中略
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/LoggerStub.h
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserver.idl
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserverConsumer.h
     中略
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserverStub.h
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserver.hh
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserver.idl
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserverDynSK.cc
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserverSK.cc
     /usr/include/openrtm-1.2/rtm/idl/BasicDataType.hh
     /usr/include/openrtm-1.2/rtm/idl/BasicDataType.idl
     中略
     /usr/include/openrtm-1.2/rtm/idl/device_interfaces/Ranger.idl
     /usr/include/openrtm-1.2/rtm/version.h
     /usr/include/openrtm-1.2/rtm/version.txt
  • ライブラリ・その他
    • 32bit
       /usr/lib/i386-linux-gnu/openrtm-1.2/cmake/OpenRTMConfig.cmake
       /usr/lib/i386-linux-gnu/openrtm-1.2/py_helper/README_gen.py
       /usr/lib/i386-linux-gnu/openrtm-1.2/py_helpver/cxx_gen.py
       中略
       /usr/lib/i386-linux-gnu/openrtm-1.2/py_helpver/yat.py
       /usr/lib/i386-linux-gnu/pkgconfig/libcoil.pc
       
    • 64bit
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/cmake/OpenRTMConfig.cmake
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/py_helper/README_gen.py
       /usr/lib/x86-64-linux-gnu/openrtm-1.2/py_helpver/cxx_gen.py
       中略
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/py_helpver/yat.py
       /usr/lib/x86_64-linux-gnu/pkgconfig/libcoil.pc

openrtm-aist-idl

  • idlファイルなど
     /etc/profile.d/openrtm-aist-idl.sh
     /usr/include/openrtm-1.2/rtm/idl/BasicDataType.idl
     /usr/include/openrtm-1.2/rtm/idl/CameraCommonInterface.idl
     中略
     /usr/include/openrtm-1.2/rtm/idl/SharedMemory.idl
     /usr/share/openrtm-1.2/idl/BasicDataType.idl
     /usr/share/openrtm-1.2/idl/CameraCommonInterface.idl
     中略
     /usr/share/openrtm-1.2/idl/SharedMemory.idl
  • ライセンスなど
     /usr/share/doc/openrtm-aist-idl/changelog.Debian.gz
     /usr/share/doc/openrtm-aist-idl/changelog.gz
     /usr/share/doc/openrtm-aist-idl/copyright

openrtm-aist-java

  • コマンド
     /usr/bin/rtcd_java
     /usr/bin/rtcprof_java
  • 環境変数設定用スクリプト
     /etc/profile.d/openrtm-aist-java.sh
  • jarファイル
    • 64 bit
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/jar/License.txt
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/jar/LogicalTimeTriggeredEC.jar
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/jar/NameserviceFile.jar
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/jar/OpenRTM-aist-1.2.0.jar
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/jar/commons-cli-1.1.jar
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/jar/jna-4.2.2.jar
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/jar/jna-platform-4.2.2.jar
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/jar/rtcd.jar
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/jar/rtcprof.jar
    • 32 bit
       /usr/lib/i386-linux-gnu/openrtm-1.2/jar/License.txt
       /usr/lib/i386-linux-gnu/openrtm-1.2/jar/jna-platform-4.2.2.jar
       /usr/lib/i386-linux-gnu/openrtm-1.2/jar/rtcprof.jar
       /usr/lib/i386-linux-gnu/openrtm-1.2/jar/rtcd.jar
       /usr/lib/i386-linux-gnu/openrtm-1.2/jar/commons-cli-1.1.jar
       /usr/lib/i386-linux-gnu/openrtm-1.2/jar/NameserviceFile.jar
       /usr/lib/i386-linux-gnu/openrtm-1.2/jar/LogicalTimeTriggeredEC.jar
       /usr/lib/i386-linux-gnu/openrtm-1.2/jar/jna-4.2.2.jar
       /usr/lib/i386-linux-gnu/openrtm-1.2/jar/OpenRTM-aist-1.2.1.jar

openrtm-aist-java-example

Java版サンプルRTC、Classファイル、ソースファイル、起動スクリプト

 /usr/share/openrtm-1.2/components/java/* 
 /usr/share/openrtm-1.2/components/java/RTMExamples/AutoTest/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/Composite/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/ConfigSample/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/ExtTrigger/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/GUIIn/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/GUIIn/control/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/GUIIn/model/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/GUIIn/view/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/MyService.idl
 /usr/share/openrtm-1.2/components/java/RTMExamples/SeqIO/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/SeqIO/view/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/SimpleIO/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/SimpleService/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/SinCosOut/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/Throughput/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/TopicTest/*

openrtm-aist-java-doc

openrtm-aist-java-doc には、日本語と英語のクラスリファレンスが含まれています。

 /usr/share/openrtm-1.2/doc/java/JavaDoc/OpenRTM/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/OpenRTM/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/RTC/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/RTC/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/RTM/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/RTM/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/_SDOPackage/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/_SDOPackage/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/Constants.html
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/buffer/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/buffer/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/executionContext/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/executionContext/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/log/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/port/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/port/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/port/publisher/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/port/publisher/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/util/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/util/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/util/clock/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/util/clock/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/Version.html
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/class-use
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/OpenRTM/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/OpenRTM/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/RTC/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/RTC/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/RTM/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/RTM/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/_SDOPackage/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/_SDOPackage/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/index-files/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/Constants.html
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/buffer/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/buffer/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/executionContext/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/executionContext/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/log/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/log/class-use/Logbuf.html
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/port/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/port/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/port/publisher/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/port/publisher/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/util/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/util/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/util/clock/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/util/clock/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/*

openrtp

openrtpでは大量のファイルがインストールされるため、ここではリストしません。必要に応じて

 $ dpkg -L openrtp
と入力して各自での確認をしてください。

Raspbianへののインストール

Java版のOpenRTM-aistは、Raspbianで利用可能なdebパッケージが提供されています。 対応しているディストリビューションのバージョンは、ダウンロードページで確認できます。 Raspbianへのサポートバージョンや対応の有無は、予告なしに変更されることがありますので、あらかじめご了承ください。

JDK8のインストール

Java版OpenRTM-aistの使用にはJDK8相当のJava環境が必要です。以下のリンクを参照にJDK8を入手してインストールしてください。

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

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

オプションを指定することで、目的に合わせたパッケージをインストールすることが可能です。

一括インストールスクリプトを用いると、ダウンロードした後、ダウンロード先ディレクトリに移動し、

 $ sudo sh pkg_install_raspbian.sh -l java --yes
でJava版OpenRTM-aistをインストールできます。

一括インストールスクリプトのダウンロードや詳しいインストール方法、指定可能なオプションの種類につきましては、「一括インストールスクリプト」のページをご確認ください。

rtshellのインストール

Raspbianの環境では現在OpenRTPの対応がありません。よってRaspianの環境では、ローカルでGUI(RTSystemEditor)を用いたRTCの制御ができません。RTCの制御を行うための方法としては、リモートで他の対応ホスト上でRTSystemEditorを起動してそこから制御を行うという方法と、ローカルでrtshellというツールを用いて制御を行うという方法があります。rtshellのインストールについては以下のリンクを参照してください。 rtshellのインストール方法

インストールの確認

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

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

 $ pip show rtshell-aist
 Name: rtshell-aist
 Version: 4.2.2
 Summary: Shell commands for managing RT Components and RT Systems.
 Home-page: http://github.com/gbiggs/rtshell
 Author: Geoffrey Biggs and contributors
 Author-email: geoffrey.biggs@aist.go.jp
 License: LGPL3
 Location: /usr/local/lib/python2.7/dist-packages
 Requires: rtsprofile-aist, rtctree-aist
 Required-by:

パッケージの詳細

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

openrtm-aist

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

  • コマンド
     /usr/bin/rtcd
     /usr/bin/rtcprof
     /usr/bin/rtm-config
     /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/copyright
     /usr/share/doc/openrtm-aist/changelog.Debian.gz
  • 設定ファイルサンプル
     /usr/etc/rtc.conf.sample
  • ライブラリ
     /usr/lib/x86_64-linux-gnu/libRTC-X.X.X.so
     /usr/lib/x86_64-linux-gnu/libRTC.a
     /usr/lib/x86_64-linux-gnu/libRTC.la
     /usr/lib/x86_64-linux-gnu/libcoil-X.X.X.so
     /usr/lib/x86_64-linux-gnu/libcoil.a
     /usr/lib/x86_64-linux-gnu/librtmCamera.a
     /usr/lib/x86_64-linux-gnu/librtmCamera.la
     /usr/lib/x86_64-linux-gnu/librtmCamera.so.X.X.X
     /usr/lib/x86_64-linux-gnu/librtmManipulator.a
     /usr/lib/x86_64-linux-gnu/librtmManipulator.la
     /usr/lib/x86_64-linux-gnu/librtmManipulator.so.X.X.X
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/ec/FileNameservice.la
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/ec/FileNameservice.so.X.X.X
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/ec/LogicalTimeTriggeredEC.a
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/ec/LogicalTimeTriggeredEC.la
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/ec/LogicalTimeTriggeredEC.so.X.X.X
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/sdo/LoggerConsumer.a
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/sdo/LoggerConsumer.la
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/sdo/LoggerConsumer.so.X.X.X
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/ssl/SSLTransport.la
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/ssl/SSLTransport.so.X.X.X
     /usr/lib/x86_64-linux-gnu/pigconfig/openrtm-aist.pc

openrtm-aist-dev

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

  • コマンド
     /usr/bin/coil-config
     /usr/bin/rtc-template
     /usr/bin/rtm-skelwrapper
  • ライセンスなど
     /usr/share/doc/openrtm-aist-dev/changelog.Debian.gz
     /usr/share/doc/openrtm-aist-dev/changelog.gz
     /usr/share/doc/openrtm-aist-dev/copyright
  • ヘッダなど
     /usr/include/coil-1.2/coil/Affinity.h
     /usr/include/coil-1.2/coil/Allocator.h
     中略
     /usr/include/coil-1.2/coil/stringutil.h
     /usr/include/openrtm-1.2/rtm/BufferBase.h
     /usr/include/openrtm-1.2/rtm/BufferStatus.h
     中略
     /usr/include/openrtm-1.2/rtm/config_rtc.h
     /usr/include/openrtm-1.2/rtm/ext/CameraCommonInterface.hh
     /usr/include/openrtm-1.2/rtm/ext/CameraCommonInterface.idl
     中略
     /usr/include/openrtm-1.2/rtm/ext/ManipulatorCommonInterface_MiddleStub.h
     /usr/include/openrtm-1.2/rtm/ext/ec/artlinux/ArtExecutionContext.h
     /usr/include/openrtm-1.2/rtm/ext/ec/artlinux/rtc.conf.sample
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredEC.h
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredEC.idl
     中略
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredECStub.h
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredEC.hh
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredEC.idl
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredECDynSK.cc
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredECSK.cc
     /usr/include/openrtm-1.2/rtm/ext/ec/rtpreempt
     /usr/include/openrtm-1.2/rtm/ext/ec/rtpreempt/RTPreemptEC.h
     /usr/include/openrtm-1.2/rtm/ext/ec/rtpreempt/rtc.conf.sample
     /usr/include/openrtm-1.2/rtm/ext/local_service/nameservice_file/FileNameservice.h
     /usr/include/openrtm-1.2/rtm/ext/logger/fluentbit_stream/FluentBit.h
     /usr/include/openrtm-1.2/rtm/ext/logger/fluentbit_stream/fluentbit.conf
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/Logger.hh
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/Logger.idl
     中略
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/LoggerStub.h
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserver.idl
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserverConsumer.h
     中略
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserverStub.h
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserver.hh
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserver.idl
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserverDynSK.cc
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserverSK.cc
     /usr/include/openrtm-1.2/rtm/idl/BasicDataType.hh
     /usr/include/openrtm-1.2/rtm/idl/BasicDataType.idl
     中略
     /usr/include/openrtm-1.2/rtm/idl/device_interfaces/Ranger.idl
     /usr/include/openrtm-1.2/rtm/version.h
     /usr/include/openrtm-1.2/rtm/version.txt
  • ライブラリ・その他
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/cmake/OpenRTMConfig.cmake
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/py_helper/README_gen.py
     /usr/lib/x86-64-linux-gnu/openrtm-1.2/py_helpver/cxx_gen.py
     中略
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/py_helpver/yat.py
     /usr/lib/x86_64-linux-gnu/pkgconfig/libcoil.pc

openrtm-aist-idl

  • idlファイルなど
     /etc/profile.d/openrtm-aist-idl.sh
     /usr/include/openrtm-1.2/rtm/idl/BasicDataType.idl
     /usr/include/openrtm-1.2/rtm/idl/CameraCommonInterface.idl
     中略
     /usr/include/openrtm-1.2/rtm/idl/SharedMemory.idl
     /usr/share/openrtm-1.2/idl/BasicDataType.idl
     /usr/share/openrtm-1.2/idl/CameraCommonInterface.idl
     中略
     /usr/share/openrtm-1.2/idl/SharedMemory.idl
  • ライセンスなど
     /usr/share/doc/openrtm-aist-idl/changelog.Debian.gz
     /usr/share/doc/openrtm-aist-idl/changelog.gz
     /usr/share/doc/openrtm-aist-idl/copyright

openrtm-aist-java

  • コマンド
     /usr/bin/rtcd_java
     /usr/bin/rtcprof_java
  • 環境変数設定用スクリプト
     /etc/profile.d/openrtm-aist-java.sh
  • jarファイル
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/jar/License.txt
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/jar/LogicalTimeTriggeredEC.jar
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/jar/NameserviceFile.jar
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/jar/OpenRTM-aist-1.2.0.jar
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/jar/commons-cli-1.1.jar
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/jar/jna-4.2.2.jar
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/jar/jna-platform-4.2.2.jar
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/jar/rtcd.jar
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/jar/rtcprof.jar

openrtm-aist-java-example

Java版サンプルRTC、Classファイル、ソースファイル、起動スクリプト

 /usr/share/openrtm-1.2/components/java/* 
 /usr/share/openrtm-1.2/components/java/RTMExamples/AutoTest/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/Composite/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/ConfigSample/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/ExtTrigger/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/GUIIn/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/GUIIn/control/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/GUIIn/model/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/GUIIn/view/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/MyService.idl
 /usr/share/openrtm-1.2/components/java/RTMExamples/SeqIO/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/SeqIO/view/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/SimpleIO/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/SimpleService/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/SinCosOut/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/Throughput/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/TopicTest/*

openrtm-aist-java-doc

openrtm-aist-java-doc には、日本語と英語のクラスリファレンスが含まれています。

 /usr/share/openrtm-1.2/doc/java/JavaDoc/OpenRTM/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/OpenRTM/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/RTC/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/RTC/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/RTM/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/RTM/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/_SDOPackage/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/_SDOPackage/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/Constants.html
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/buffer/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/buffer/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/executionContext/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/executionContext/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/log/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/port/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/port/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/port/publisher/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/port/publisher/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/util/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/util/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/util/clock/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/util/clock/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/Version.html
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/class-use
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/OpenRTM/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/OpenRTM/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/RTC/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/RTC/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/RTM/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/RTM/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/_SDOPackage/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/_SDOPackage/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/index-files/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/Constants.html
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/buffer/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/buffer/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/executionContext/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/executionContext/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/log/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/log/class-use/Logbuf.html
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/port/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/port/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/port/publisher/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/port/publisher/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/util/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/util/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/util/clock/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/util/clock/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/*

openrtm-aist-python

  • コマンド
     /usr/bin/rtcd_python
     /usr/bin/rtcprof_python
  • OpenRTM-aist 本体の Python モジュール
     usr/lib/python2.7/dist-packages/OpenRTM-aist/*
  • OpenRTM-aist用Python検索パスファイル
     /usr/lib/python2.7/dist-packages/OpenRTM_aist.ph
  • ユーティリティ
     /usr/lib/python2.7/dist-packages/OpenRTM_aist/utils/__init__.py
     /usr/lib/python2.7/dist-packages/OpenRTM_aist/utils/rtc-template/*
     /usr/lib/python2.7/dist-packages/OpenRTM_aist/utils/rtcd/*
     /usr/lib/python2.7/dist-packages/OpenRTM_aist/utils/rtcprof/*
     /usr/lib/python2.7/dist-packages/OpenRTM_aist/utils/rtm-naming/*

openrtm-aist-python-example

 /usr/share/openrtm-1.2/components/python/__init__.py
 /usr/share/openrtm-1.2/components/python/rtcd.conf
 /usr/share/openrtm-1.2/components/python/components.conf
 /usr/share/openrtm-1.2/components/python/AutoControl/*
 /usr/share/openrtm-1.2/components/python/AutoTest/*
 /usr/share/openrtm-1.2/components/python/Composite/*
 /usr/share/openrtm-1.2/components/python/ConfigSample/*
 /usr/share/openrtm-1.2/components/python/ExtTrigger/*
 /usr/share/openrtm-1.2/components/python/MobileRobotCanvas/*
 /usr/share/openrtm-1.2/components/python/SeqIO/*
 /usr/share/openrtm-1.2/components/python/SimpleIO/*
 /usr/share/openrtm-1.2/components/python/SimpleService/*
 /usr/share/openrtm-1.2/components/python/Slider_and_Motor/*
 /usr/share/openrtm-1.2/components/python/Templates/*
 /usr/share/openrtm-1.2/components/python/Throughput/*
 /usr/share/openrtm-1.2/components/python/TkJoyStick/
 /usr/share/openrtm-1.2/components/python/TkLRFViewer/*

openrtm-aist-python-doc

  • クラスリファレンス(英語)
     /usr/share/openrtm-1.2/doc/python/ClassReference-en/html/_async_8py.html
     /usr/share/openrtm-1.2/doc/python/ClassReference-en/html/_buffer_base_8py.html
     中略
     /usr/share/openrtm-1.2/doc/python/ClassReference-en/html/uuid_8py.html
  • クラスリファレンス(日本語)
     /usr/share/openrtm-1.2/doc/python/ClassReference-jp/html/_async_8py.html
     /usr/share/openrtm-1.2/doc/python/ClassReference-jp/html/_buffer_base_8py.html
     中略
     /usr/share/openrtm-1.2/doc/python/ClassReference-jp/html/uuid_8py.html 

rtshell

  • コマンド用スクリプト
     /usr/local/bin/rtact
     /usr/local/bin/rtcat
     /usr/local/bin/rtcheck
     /usr/local/bin/rtcomp
     /usr/local/bin/rtcon
     /usr/local/bin/rtconf
     /usr/local/bin/rtcryo
     /usr/local/bin/rtdeact
     /usr/local/bin/rtdel
     /usr/local/bin/rtdis
     /usr/local/bin/rtdoc
     /usr/local/bin/rtexit
     /usr/local/bin/rtfind
     /usr/local/bin/rtfsm
     /usr/local/bin/rtinject
     /usr/local/bin/rtlog
     /usr/local/bin/rtls
     /usr/local/bin/rtmgr
     /usr/local/bin/rtprint
     /usr/local/bin/rtpwd
     /usr/local/bin/rtreset
     /usr/local/bin/rtresurrect
     /usr/local/bin/rtshell_post_install
     /usr/local/bin/rtstart
     /usr/local/bin/rtstodot
     /usr/local/bin/rtstop
     /usr/local/bin/rtteardown
     /usr/local/bin/rtvlog
     /usr/local/bin/rtwatch
  • コマンド本体
     /usr/local/lib/python2.7/dist-packages/rtctree/*
     /usr/local/lib/python2.7/dist-packages/rtshell/*
     /usr/local/lib/python2.7/dist-packages/rtsprofile/*
  • パッケージ情報
     /usr/local/lib/python2.7/dist-packages/rtctree_aist-4.2.0.egg-info/*
     /usr/local/lib/python2.7/dist-packages/rtshell_aist-4.2.2.dist-info/*
     /usr/local/lib/python2.7/dist-packages/rtsprofile_aist-4.1.2.dist-info/*

Fedoraへのインストール

Java版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をインストールしてみる方にもソースをコンパイルしてみる方にも推奨します。

一括インストールスクリプトのダウンロードや詳しいインストール方法、指定可能なオプションの種類につきましては、「一括インストールスクリプト」のページをご確認ください。

現状一括インストールスクリプトを-l javaオプションで使った場合、必要なOpenRTM-aistパッケージがインストールされないという問題が報告されています。以下の手順によりインストールしてください。

 sudo yum install OpenRTM-aist OpenRTM-aist-devel

OpenRTPのインストール

一般的なUbuntu/Debian環境での開発にはRTC BuilderやRTSystem Editorを使用しますが、その場合にはOpenRTPが必要ですので、一括インストールスクリプトを用いてOpenRTPをインストールしてください。pkg_install_fedora.shが置いてあるディレクトリで

 $ sudo sh ./pkg_install_fedora.sh -l openrtp --yes
と入力するとOpenRTPをインストールできます。

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

 $ sudo yum install gcc-c++ python
 $ sudo yum install omniORB omniORB-devel omniORB-doc omniORB-servers omniORB-utils
 $ sudo yum install OpenRTM-aist OpenRTM-aist-devel OpenRTM-aist-Java OpenRTM-aist-Java-doc OpenRTM-aist-Java-example
 $ sudo yum install OpenRTP

環境変数の設定

環境変数の設定が必要です。ホームディレクトリにある.bashrcに以下の行を付け加えてください。(64ビット版を使用する場合)
 export RTM_JAVA_ROOT=/usr/lib64/openrtm-1.2
この設定を有効にするためにはインストール作業終了後、再ログインしてください。

JDK8について

Fedora用のOpenRTM-aist-Javaパッケージのインストールは自動的にFedoraの標準リポジトリよりOpenJDK8をインストールし、それを使用するJava環境として設定しますが、ライセンス条件やサポート条件のために他のJDKを使いたい場合は、以下のリンクを参照してください。

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

 # rpm -q OpenRTM-aist
 OpenRTM-aist-1.2.0-0.fcXX.x86_64

パッケージの詳細

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

openrtm-aist

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

  • コマンド
     /usr/bin/rtcd
     /usr/bin/rtcprof
     /usr/bin/rtm-config
     /usr/bin/rtm-naming
  • 設定ファイルサンプル
     /etc/rtc.conf.sample
  • ライブラリ
     /usr/lib64/libRTC-1.2.0.so
     /usr/lib64/libRTC.a
     中略
     /usr/lib64/librtmManipulator.so.0.0.0
     /usr/lib64/openrtm-1.2/ec/FileNameservice.la
     /usr/lib64/openrtm-1.2/ec/FileNameservice.so
     中略
     /usr/lib64/openrtm-1.2/ec/RTPreemptEC.so.0.0.0
     /usr/lib64/openrtm-1.2/sdo/LoggerConsumer.a
     /usr/lib64/openrtm-1.2/sdo/LoggerConsumer.la
     /usr/lib64/openrtm-1.2/sdo/LoggerConsumer.so
     /usr/lib64/openrtm-1.2/sdo/LoggerConsumer.so.0
     /usr/lib64/openrtm-1.2/sdo/LoggerConsumer.so.0.0.0
     /usr/lib64/openrtm-1.2/ssl/SSLTransport.la
     /usr/lib64/openrtm-1.2/ssl/SSLTransport.so
     /usr/lib64/openrtm-1.2/ssl/SSLTransport.so.0
     /usr/lib64/openrtm-1.2/ssl/SSLTransport.so.0.0.0

OpenRTM-aist-devel

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

  • コマンド
     /usr/bin/coil-config
     /usr/bin/rtc-template
     /usr/bin/rtm-skelwrapper
  • ヘッダなど
      /usr/include/coil-1.2/coil/Affinity.h
      /usr/include/coil-1.2/coil/Allocator.h
      中略
      /usr/include/coil-1.2/coil/stringutil.h
      /usr/include/openrtm-1.2/rtm/BufferBase.h
      /usr/include/openrtm-1.2/rtm/BufferStatus.h
      中略
      /usr/include/openrtm-1.2/rtm/config_rtc.h
      /usr/include/openrtm-1.2/rtm/ext/CameraCommonInterface.hh
      /usr/include/openrtm-1.2/rtm/ext/CameraCommonInterface.idl
      中略
      /usr/include/openrtm-1.2/rtm/ext/ManipulatorCommonInterface_MiddleStub.h
      /usr/include/openrtm-1.2/rtm/ext/ec/artlinux/ArtExecutionContext.h
      /usr/include/openrtm-1.2/rtm/ext/ec/artlinux/rtc.conf.sample
      /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredEC.h
      /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredEC.idl
      中略
      /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredECStub.h
      /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredEC.hh
      /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredEC.idl
      /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredECDynSK.cc
      /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredECSK.cc
      /usr/include/openrtm-1.2/rtm/ext/ec/rtpreempt
      /usr/include/openrtm-1.2/rtm/ext/ec/rtpreempt/RTPreemptEC.h
      /usr/include/openrtm-1.2/rtm/ext/ec/rtpreempt/rtc.conf.sample
      /usr/include/openrtm-1.2/rtm/ext/local_service/nameservice_file/FileNameservice.h
      /usr/include/openrtm-1.2/rtm/ext/logger/fluentbit_stream/FluentBit.h
      /usr/include/openrtm-1.2/rtm/ext/logger/fluentbit_stream/fluentbit.conf
      /usr/include/openrtm-1.2/rtm/ext/sdo/logger/Logger.hh
      /usr/include/openrtm-1.2/rtm/ext/sdo/logger/Logger.idl
      中略
      /usr/include/openrtm-1.2/rtm/ext/sdo/logger/LoggerStub.h
      /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserver.idl
      /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserverConsumer.h
      中略
      /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserverStub.h
      /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserver.hh
      /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserver.idl
      /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserverDynSK.cc
      /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserverSK.cc
      /usr/include/openrtm-1.2/rtm/idl/BasicDataType.hh
      /usr/include/openrtm-1.2/rtm/idl/BasicDataType.idl
      中略
      /usr/include/openrtm-1.2/rtm/idl/device_interfaces/Ranger.idl
      /usr/include/openrtm-1.2/rtm/version.h
      /usr/include/openrtm-1.2/rtm/version.txt
  • ライブラリ・その他

  /usr/lib/x86_64-linux-gnu/openrtm-1.2/cmake/OpenRTMConfig.cmake
  /usr/lib/x86_64-linux-gnu/openrtm-1.2/py_helper/README_gen.py
  /usr/lib/x86-64-linux-gnu/openrtm-1.2/py_helpver/cxx_gen.py
  中略
  /usr/lib/x86_64-linux-gnu/openrtm-1.2/py_helpver/yat.py
  /usr/lib/x86_64-linux-gnu/pkgconfig/libcoil.pc

OpenRTM-aist-Java

  • コマンド
     /usr/bin/rtcd_java
     /usr/bin/rtcprof_java
  • jarファイル
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/jar/License.txt
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/jar/LogicalTimeTriggeredEC.jar
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/jar/NameserviceFile.jar
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/jar/OpenRTM-aist-1.2.0.jar
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/jar/commons-cli-1.1.jar
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/jar/jna-4.2.2.jar
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/jar/jna-platform-4.2.2.jar
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/jar/rtcd.jar
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/jar/rtcprof.jar

OpenRTM-aist-Java-example

Java版サンプルRTC、Classファイル、ソースファイル、起動スクリプト

 /usr/share/openrtm-1.2/components/java/* 
 /usr/share/openrtm-1.2/components/java/RTMExamples/AutoTest/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/Composite/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/ConfigSample/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/ExtTrigger/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/GUIIn/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/GUIIn/control/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/GUIIn/model/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/GUIIn/view/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/MyService.idl
 /usr/share/openrtm-1.2/components/java/RTMExamples/SeqIO/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/SeqIO/view/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/SimpleIO/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/SimpleService/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/SinCosOut/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/Throughput/*
 /usr/share/openrtm-1.2/components/java/RTMExamples/TopicTest/*

OpenRTM-aist-Java-doc

openrtm-aist-java-doc には、日本語と英語のクラスリファレンスが含まれています。

 /usr/share/openrtm-1.2/doc/java/JavaDoc/OpenRTM/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/OpenRTM/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/RTC/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/RTC/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/RTM/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/RTM/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/_SDOPackage/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/_SDOPackage/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/Constants.html
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/buffer/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/buffer/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/executionContext/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/executionContext/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/log/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/port/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/port/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/port/publisher/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/port/publisher/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/util/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/util/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/util/clock/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/RTC/util/clock/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/Version.html
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/class-use
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/jp/go/aist/rtm/*
 /usr/share/openrtm-1.2/doc/java/JavaDoc/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/OpenRTM/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/OpenRTM/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/RTC/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/RTC/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/RTM/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/RTM/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/_SDOPackage/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/_SDOPackage/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/index-files/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/Constants.html
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/buffer/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/buffer/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/executionContext/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/executionContext/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/log/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/log/class-use/Logbuf.html
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/port/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/port/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/port/publisher/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/port/publisher/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/util/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/util/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/util/clock/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/util/clock/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/jp/go/aist/rtm/class-use/*
 /usr/share/openrtm-1.2/doc/java/JavaDocEn/*

openrtp

openrtpでは大量のファイルがインストールされるため、ここではリストしません。必要に応じて

 $ rpm -ql OpenRTP
と入力して各自での確認をしてください。

動作確認(Windows編)

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

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

  • C:\Program Files\OpenRTM-aist\1.2.1\Components\Java
  • OpenRTM-aist\jp.go.aist.rtm.RTC\bin\RTMExamples(ソースからビルドした場合)

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

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

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

以下は、msiインストーラーでOpenRTM-aistをインストールした環境で、スタートメニューから各種プログラムを起動する前提での説明です。

RTSystemEditor、ネームサーバー起動

以下の手順に従ってRTSystemEditor、ネームサーバーを起動してください。

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

ネームサーバー起動後、適当なサンプルコンポーネントを起動します。

Windows 10の場合は右下の[ここに入力して検索]にJava_Examplesと入力してサンプルのフォルダーを開きます。

rtm27.png
ネームサーバーの起動を確認

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

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

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

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

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

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

環境変数RTM_ROOTRTM_JAVA_ROOTが正しく設定されていない場合に問題が発生する可能性があります。 msiインストーラーでインストールした場合はOSを再起動すると解決する場合があります。

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

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

 corba.nameservers: localhost

エディタへの配置

RTSystemEditorのツリー表示の[>]をクリックすると、先ほど起動した2つのコンポーネントが登録されていることがわかります。

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

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

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

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

接続とアクティブ化

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

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

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

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

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

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

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

 Please input number: 

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

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

他のサンプル

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

付属しているコンポーネント起動用のバッチファイルのリストとそれにより起動されるコンポーネントの簡単な説明を以下に示します。

ConsoleInComp.bat コンソールから入力された数値をOutPortから出力するコンポーネントを起動します。ConsoleOutComp.classに接続して使用します。
ConsoleOutComp.bat InPortに入力された数値をコンソールに表示するコンポーネントを起動します。ConsoleInComp.classに接続して使用します。
SeqInComp.bat ランダムな数値(Short、Long、Float、Doubleとそのシーケンス型)を出力するコンポーネントを起動します。SequenceOutComp.classに接続して使用します。
SeqOutComp.bat InPortに入力される数値(Short、Long、Float、Doubleとそのシーケンス型)を表示するコンポーネントを起動します。SequenceInComp.classに接続して使用します。
MyServiceProviderComp.bat MyService型のサービスを提供するコンポーネントを起動します。MyServiceConsumerComp.classに接続して使用します。
MyServiceConsumerComp.bat MyService型のサービスを提供するコンポーネントを起動します。MyServiceProviderComp.classに接続して使用します。
ConfigSampleComp.bat Configurationのサンプルを起動します。RtcLinkからConfigurationを変更してConfigurationの挙動を理解するためのサンプルです。
ExtConsoleIn.bat 外部からのトリガで制御されるコンソール入力された数値をOutportから出力するコンポーネントを起動します。ExtTrigger/ConsoleOutComp.classに接続して使用します。
ExtConsoleOut.bat 外部からのトリガで制御されるInportに入力された数値をコンソールに出力するコンポーネントを起動します。ExtTrigger/ConsoleInComp.classに接続して使用します。
ExtConnector.bat ExtTrigger/ConsoleInComp.classとExtTrigger/ConsoleOutComp.classへの外部トリガー送るプログラムを起動します。
GUIIn.bat スライダーの位置をOutportから出力するGUIのサンプルを起動します。ConsoleOutComp.classと接続することもできます。
Composite.bat 複合コンポーネントのサンプルを起動します。3つのコンポーネントを内包した複合コンポーネントが起動されます。|

動作確認(Linux編)

インストールが正常に終了したら、付属のサンプルで動作テストをします。サンプルは、通常は以下の場所にあります。
  • /usr/share/openrtm-1.2/components/java/
ソースからビルドした場合は、ソースディレクトリ以下の
  • OpenRTM-aist-Java/jp.go.aist.rtm.RTC/bin/RTMExamples/<サンプルコンポーネントセット名>

にあります。

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

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

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

以降、簡単のためサンプルは/usr/share/openrtm-1.2/components/java/SimpleIO以下にあるものとして説明を記述します。

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

ネームサーバー起動

以下の手順に従ってRTSystemEditor、ネームサーバーを起動してください。

ConsoleInの起動

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

 $ sh /usr/share/openrtm-1.2/components/java/ConsoleIn.sh

自分でビルド・インストールした場合は、まず環境変数CLASSPATHの設定が必要です。

 export CLASSPATH=.:${RTM_JAVA_ROOT}/jar/OpenRTM-aist-1.2.0.jar: \ 
 ${RTM_JAVA_ROOT}/jar/commons-cli-1.1.jar: \ 
 ${RTM_JAVA_ROOT}/jar/jna-4.2.2.jar:${RTM_JAVA_ROOT}/jar/jna-platform-4.2.2.jar: \ 
 ${RTM_JAVA_ROOT}/bin

 $ java RTMExamples.SimpleIO.ConsoleInComp

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

ConsoleOutの起動

別のターミナルを起動してConsoleOutを起動します。

 $ sh /usr/share/openrtm-1.2/components/java/ConsoleOut.sh

自分でビルド・インストールした場合は以下のコマンドで実行します。

 $ java RTMExamples.SimpleIO.ConsoleOutComp

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

エディタへの配置

RTSystemEditorのツリー表示の[>]をクリックすると、先ほど起動した2つのコンポーネントが登録されていることがわかります。

/ja/node/6614
ConsoleInコンポーネントとConsoleOutコンポーネント

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

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

/ja/node/6614
コンポーネントをエディタに配置

接続とアクティブ化

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

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

/ja/node/6614
データポートの接続

/ja/node/6614
データポート接続ダイアログ

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

/ja/node/6614
アクティブ化されたコンポーネント

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

 Please input number: 

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

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

ソースからのビルド

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

配布ソースのビルド

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

依存ライブラリ

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

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

ソースのダウンロード

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

ソースコードの展開

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

ビルド

プロジェクトのインポート

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

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

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

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

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

rtm18.png
[プロジェクトのインポート]ウィンドウ

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

JDEの設定

ビルドに使用するJDKの設定を行います。 まず[ウィンドウ]>[設定]で設定画面を開きます。

rtm19.png
[ウィンドウ]>[設定]を選択

左側のツリーから[Java]>[インストール済みのJRE]を選択して追加ボタンを押します。

rtm20.png
インストール済みのJRE

[標準VM]を選択して次へ進みます。

rtm21.png
JREの追加

JREホームにJDKインストールフォルダー以下のjreフォルダーのパスを指定して完了する。

rtm22.png
JREの設定

インストール済みJREで設定したJDKのチェックボックスをオンにすれば完了です。

rtm23.png
JDKの設定

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

rtm25.png
[実行]>[2 Antビルド...]を選択

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

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

ビルドが始まります。

コンソールウィンドウにBUILD SUCCESSFULビルド成功の表示がでれば完了です。
日本語が文字化けしている場合は、メニューの[実行]→[外部ツール]→[外部ツールの構成]で共通タブを開き、文字コードをMS932に変更([その他]の入力ボックスで手動入力)します。

OpenRTP 1.2系のインストール

eclipse_logo.png

RT Systemの開発を支援するために、RTCBuilderとRTSystemEditorを提供しております。この二つのツールをまとめてOpenRTPと呼びます。 RTCBuilderとRTSystemEditorは、Eclipse統合開発環境のプラグインとして作成された開発ツールです。そのため、RTCBuilderとRTSystemEditorを使用するには、EclipseとJavaの開発環境をインストールする必要があります。一括インストールスクリプトやMSIファイルを利用することにより簡単にインストールできます。また、ここでは、OpenRTP自体の開発を行うために必要な情報も説明していますが、OpenRTM-aistをユーザとして使用する場合は、下記のインストーラによるインストールを参照するだけで必要な情報は得られるはずです。

インストーラによるインストール

ここでは、RTSystemEditorとRPCBuilder(OpenRTP)をインストーラを用いてインストールする方法を述べます。

Windowsでのインストール

を用いてインストールしてください。デフォルトではこのインストーラが対応している全てのソフトウエアがインストールされます。必要に応じてインストール途中で[カスタム]を選択し、OpenRTPと開発に使用する言語に合わせたOpenRTM-aistランタイムや開発環境をインストールしてください。(なお現状ではデフォルト以外のインストールに対する検証は十分なされていないので、一部だけのインストールでは必要なものがインストールされないなどの問題が起こる可能性があります。デフォルトでインストールするか、各自検証しながら必要なものを別途追加インストールしてください。)

Linuxでのインストール

一括インストールスクリプトを使用して、 root権限で
 $ sudo sh pkg_install_xxxx.sh -l openrtp --yes
ここで
xxxx
インストール先のOSの種類を指定する文字列で、ubuntu、debian、raspbian、fedoraのどれかが指定できる。

とすることによってインストールができます。(”sudo ”は環境によっては、別途suコマンドを使うことによって指定する必要がない場合があります。) またOpenRTP自体は開発ツールであり実際の使用においては言語対応の開発環境がインストールされていることが必要です。よって、一括インストールでは-lオプションでc++、python、javaのどれかを指定して開発対象に合わせたOpenRTM-aistをインストールする必要がありますのでご注意ください。

JDK8のインストール

OpenRTPの使用にはJDK8相当のJDKが必要です。インストーラにはOpenRTPを実行するPlatformとなるEclipseの実行をするためにOpen JDK8をインストールするようになっていますが、ライセンス条件やサポート条件を満たすために別のJDKが必要な場合は下記のリンクを参照して、別途JDK8をインストールしてください。また一部のOSではJDK8でないJDKがデフォルトでインストールされるためそれをデフォルト使用からはずす必要があることがああります。そのケースでも下記のリンクを参照してください。

また、OpenRTPのEclipse環境の実行に使われるJDKはOpenRTP GUI (Eclipse GUI)の中で別途設定する必要があります。OpenRTPを起動後、[Window]>[設定]と選択し、開いたダイアログより、[Java]の横の[>]をクリックし[インストール済みのJRE]クリックして設定してください。

Eclipseについて

eclipse_logo.png

本ページはOpenRTP自体を開発デバッグする人のためのページで、OpenRTPをユーザーとして使用する場合には、この情報は特に必要ありません。OpenRTPをインストールして使用するための情報はインストーラによるインストールを参照してしてください。

また本ページの情報は最新のEclipseには適合しない場合があります。

Eclipseの概要

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のインストール

OpenRTM-aistのインストーラーでインストールするか、もしくはPleiades All in One Eclipseをインストールしてください。

Pleiades All in One Eclipseの導入

以下のプラグイン導入済みのeclipseパッケージをダウンロードして適当な場所に展開してください。

Pleiades All in One UltimateFull Editionのパッケージを入手してください。

Pleiades All in One EclipseにはLinux版はないため、eclipse.orgからeclipseのインストーラーを入手してインストール、日本語化、プラグインの導入を行ってください。

JDK(Java Development Kit)のインストール

RTC Builder、RT System Editorを使用するためにはJDK8が必要です(JDK11などの新しいバージョンでは動作しません)。下記リンクを参照してインストールしてください。

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

RTCBuilderとRTSystemEditorは下記のEclipseプラグインを使用しています。Pleiades All in Oneを使用する場合は導入済みです。

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

  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のプラグインを個別に開発・デバッグをする目的で、Eclipse環境にインストールする方法を説明しています。

単にRTCBuilderを使用する場合は、インストーラによるインストールを参照してOpenRTP(RTCBUilder、RTSystemEditorを含む)をインストールして使用してください。

RTCBuilderとは

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

機能概要

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

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

動作環境

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

環境 備考
Java Runtime Environment 8 ;
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のビルド

Eclipseを直接導入した場合はRTCBuilderのビルドが必要です。 以下のページの手順でプラグインの生成、導入を行ってください。

RTCBuilderの起動

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

/ja/node/678

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

/ja/node/678

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

/ja/node/678
/ja/node/678

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

RTSystemEditorのインストール

本ページはOpenRTP自体を開発デバッグする人が、RTSystemのプラグインをEclipse環境にインストールするのためのページです。基本知識としてEclipseにおけるPluginの開発に関する知識が別途必要になります。

RTCBuilderとRTSystemEditorをOpenRTPとしてインストールしてをOpenRTM-aist自体の開発を行わずにユーザーとして使用する場合には、このページの情報は特に必要ありません。OpenRTPをインストールして使用するための情報はインストーラによるインストールを参照してしてください。

RTSystemEditorとは

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

機能概要

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

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

動作環境

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

環境 備考
Java Runtime Environment 8 ;
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 RTSystemEditorが依存するEclipseプラグイン
Eclipse GEF 3.2.2 RTSystemEditorが依存するEclipseプラグイン
Eclipse Java development tools(JDT) 使用するEclipseのバージョンに合ったものをご使用ください。

RTSystemEditorのインストール

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

RTSystemEditorのビルド

Eclipseを直接導入した場合はRTSystemEditorのビルドが必要です。 以下のページの手順でプラグインの生成、導入を行ってください。

RTSystemEditorのインストールと起動

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

パースペクティブ一覧にあるRTSystemEditorを選択すると、次のような画面が表示されてRTSystemEditorが起動されます。
/ja/node/677

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

Eclipseの再起動

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

参考:

RTSystemEditor、RTCBuilderのデバッグ

本ページはRTCBuilder/RTSystemEditorの開発・デバッグに関する情報を記したページです。EclipseにおけるPlugin開発の知識が必要になります。

RTCBuilderとRTSystemEditorを利用するのみであれば、このページの情報は不要です。 OpenRTP (RTCBuilder、RTSystemEditor)をインストールして使用するための情報はインストーラによるインストールを参照してしてください。

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

eclipse

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

JDK

JDK8相当のJREかJDKが必要なため、以下のリンクを参照してJDK8をインストールしてください。

RTSystemEditor、RTCBuilderのソースコード

以下のリポジトリからOpenRTPのソースコードを入手してください。

ビルド

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

JREの設定

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

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

plugin4_1_ja.png
plugin6_ja.png
plugin7_1_ja.png
plugin8_1_ja.png

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

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

plugin9_1_ja.png

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

RTSystemEditor、RTCBuilderを開発環境のeclipseにインポートします。 [ファイル]→[インポート]→[プラグイン開発]→[プラグインおよびフラグメント]を選択後、[次へ]をクリックしてください。

plugin12_ja.png
plugin13_ja.png

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

plugin14_1_ja.png

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

plugin15_1_ja.png

IDLコンパイル

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

plugin2_1_ja.png

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

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

plugin10_ja.png
plugin11_1_ja.png

クラスパスの修正

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

plugin1_1_ja.png

これで準備完了です。

デバッグ実行

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

OpenRTPの起動手順(1.2系、Windows)

OpenRTPの起動

RTCの操作、RTシステムの構築を行うためのツールRTSystemEditorを起動します。 RTSystemEditorはOpenRTPというツールの中に含まれているため、まずはOpenRTPを起動する必要があります。 デスクトップのショートカットをダブルクリックするか、Windows 10の場合は左下の[ここに入力して検索]にOpenRTPと入力して検索結果に表示される[OpenRTP]をクリックして起動してください。

/ja/node/6614
デスクトップのショートカット

/ja/node/6614
ここに入力して検索

ワークスペースの選択とEclipseへようこそ

OpenRTPの最初の起動時にはワークスペースとして使用するディレクトリの場所を聞いてきます。それを設定して、今後同じ設定で使い、再度聞かれる必要がない場合は、[この設定をデフォルトとして使用し、今後この質問を表示しない(U)]のチェックボックスをクリックし、チェックの後、[起動]ボタンをクリックしてください。また最初の起動時に[eclipseへようこそ]の画面が開く場合があります。その場合は、左上部の[ようこそ]タブにある[X]ボタンをクリックして閉じてください。

RTSystemEditor(RTSE)の起動

OpenRTPの[パースペクティブを開く]ボタンをクリックしてください。

/ja/node/6614
パースペクティブを開くをクリック

パースペクティブを開くウィンドウから[RTSystemEditor]を選択して[開く]ボタンをクリックしてください。

/ja/node/6614
RTSystemEditorの起動

ネームサーバーの起動

まず、コンポーネントの参照を登録するためのネームサーバーを起動します。

/ja/node/6614
ネームサーバーの起動

Windows Defenderからの警告

ネームサーバーを起動しようとすると、Windows Defenderのファイアウォールにより[Windows セキュリティの重要な警告]ダイアログが表示されることがあります。[パス(H):]のところにOpenRTMのインストールパスのeclipse.exeのパス、例えばC:Program files\openrtm-aist\1.2.x\utils\openrtp\eclipse.exeが表示されていることを確認して[プライベート ネットワーク(ホームネットワークや社内ネットワークなど)(R)]にチェックを入れ[パブリックネットワーク(空港、喫茶店など)(非推奨)(U)]のチェックをはずして[アクセスを許可する(A)]をクリックしてください。この画面はWindows 10(build 1909以外だと別のダイアログが表示されることがありますし、設定によっては表示されないこともあります。表示された場合は同様の設定をしてダイアログを閉じてください。また、omniorbに対しても同様のダイアログが表示されることがありますので[アクセスを許可する(A)]をクリックしてアクセスを許可してください。

ネームサーバーの起動に成功するとネームサービスビューに[localhost]と表示されます。

/ja/node/6614
ネームサーバーの起動を確認

ネームサーバーが起動しない場合

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が設定されていることを確認してください。 システム環境変数は以下の手順で参照編集することができます。
  • 画面左下部の[ここに入力して検索](虫メガネアイコン)に「システム環境変数」と入力し、表示される[システム環境変数の編集]をクリックする。
  • [環境変数(N)...]ボタンをクリックする。

その他

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

 set TEMP=C:\temp
 cmd /c rtm-naming.bat

また、まれなケースですが、ホスト名やアドレスの設定の問題で、起動がうまくいかないケースがあります。 その場合、利用している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

OpenRTPの起動手順(1.2系、Linux)

OpenRTPの起動

RTCの操作、RTシステムの構築を行うためのツールRTSystemEditorを起動します。 RTSystemEditorはOpenRTPというツールの中に含まれているため、まずはOpenRTPを起動する必要があります。

  • 以下のコマンドでOpenRTPを起動してください。

 $ openrtp

RTSystemEditor(RTSE)の起動

  • OpenRTPの[パースペクティブを開く]ボタンをクリックしてください。
    /ja/node/6614
    パースペクティブを開くをクリック
  • [パースペクティブを開く]ウィンドウから[RTSystemEditor]を選択して開くボタンをクリックしてください。
    /ja/node/6614
    RTSystemEditorの起動

ネームサーバーの起動

  • コンポーネントの参照を登録するためのネームサーバーを起動します。
    /ja/node/6614
    ネームサーバーの起動
  • ネームサーバーの起動に成功するとネームサービスビューにlocalhostと表示されます。
    /ja/node/6614
    ネームサーバーの起動を確認

リーモートのRTCを使う場合

Raspbianのような小さな構成のシステムの場合、openrtp自体がサポートされていないことがあります。その場合は、他のホストで動いているOpenRTPから、Raspbian上のネームサービースをリモート接続するか、他のOpenRTPが動作しているホスト上にあるネームサービスにRaspbian上で動作しているRTCを登録する必要があります。以下にその手順を示します。

リモート環境で動いているネームサーバーサービスを登録する方法

  • まずRTCが動いているホストマシンのコマンドラインから
     $ rtm-naming

と入力し、ネームサービスを起動し、動作させたいRTCを起動します。

  • OpenRTPを動かすマシンで
     $ openrtp
    と入力し、OpenRTPを起動します。同一マシンでRTCを動かす手順と同様に、[RTSystemEditor]を選んでパースペクティブを開きます。そして[ネームサーバーを追加」ボタンをクリックします。
    rtm6-2.png
    ''ネームサーバーの追加’’
  • ネームサーバーのアドレスを聞かれますので、アドレスを指定します。デフォルト以外のポート番号を使った場合は、アドレスに<アドレス>:<ポート番号>の形でポート番号も指定してください。
    rtm6-3.png
    ネームサーバーのアドレス指定

リモートマシン上のRTCをOpenRTPが動いているネームサービスに登録する方法

  • RTCのファイルがあるディレクトリ移動し、rtc.confを編集します。例えば
     sudo gedit rtc.conf

と入力し、rtc.confの編集を開始します。

 corba.nameservers: localhost

の行を

 corba.nameservers: <OpenRTPが動作しているホストのアドレス>

と書き換えます

これにより、ネームサービスにリモートで動作しているRTCが登録され、そのネームサービスを表示しているOpenRTPのName Service Viewに表示されます。