C++言語版のOpenRTM-aistは、インストールパッケージやインストーラーが用意されており、多くのOSやディストリビューションで手軽にインストールできます。また、ソースをダウンロードして、自分の環境に合わせてビルドできます。 ここでは、C++言語版OpenRTM-aistのそれぞれの環境でのインストール方法や動作確認方法などについて説明します。
現状、ほとんどのWindowsは64bit版が利用されていますので、基本的には以下は 64bit を前提として説明します。 インストールしているWindowsが32bit版の場合は、OpenRTM-aistやその他のソフトウェアは32bit版をインストールする必要があります。
NOTE: 基本的にすべて64bit版のソフトウェアを使用してください。
OpenRTM-aistを利用するには、Python、CMake、Doxygen、Visual Studio等のソフトウェアのインストールが必要です。
C++版の開発だけでなく、Python版、Java版のRTCを作成した際に、インストーラをビルドするのにも必要です。 以下のCommunity版(無料)をインストールするか、別途Visual Studio 2010/2012/2013/2015/2017/2019を入手してインストールしてください。
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はWindowsやLinux等様々な環境でビルドに必要なファイル(Visual Studioのプロジェクトファイル、Linux上のMakefile等)を自動生成するために必要です。
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のWindows版のインストーラ(msi形式)を以下のページからダウンロードします。
このインストーラには、以下の内容が含まれています。
したがって、ファイルサイズが1GB近くあり、ダウンロードに多少時間がかかります。ご注意ください。
msiファイルが正しくダウンロードされたら、ファイルをダブルクリックしてインストールを開始してください。 以下のようなインストーラが起動しますので 「次へ」 をクリックして進みます。
使用許諾契約書が表示されますので、ソフトウェアライセンス条項に同意します にチェックを入れます。 なお、OpenRTM-aist は LGPLv3、OpenRTPはEPL v1.0 ライセンスです。
ユーザアカウントごとにインストールするか、すべてのユーザが使えるようにインストールするか選択します。 現在インストールを行っているアカウントが管理者権限があれば、「すべてのユーザにインストール」 を推奨します。
使用しているVisual Studioのバージョンを選択します。
セットアップの種類を選択します。「標準」と「完全」は同じで、すべての項目をインストールします。通常か 「標準」 を選択します。
「カスタム」 をクリックすると、インストールする項目を選択できます。特定の言語のみインストールしたい場合などはこちらを選択します。
インストールを開始すると、以下のようなダイアログが出ます。「はい」 をクリックして先へ進んでください。
すべてインストールが完了すると以下の画面となります。「完了」 を押してウインドウを閉じてください。 以上でインストールは完了です。正しくインストールされているかどうかは、「OpenRTMを10分で始めよう・サンプルコンポーネント」 などを見ながらサンプルコンポーネントを実行するなどして確認してください。
インストーラーは以下の作業内容に従ってファイルのコピー、システム設定を行います。 インストール、アンインストールが正しく行われているかの確認する際の参考のために以下に記しておきます。
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\
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\
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\
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 Community 2022のインストーラーを入手してください
[Community]とラベルされた下の[無料ダウンロード]ボタンをクリックするとインストーラーのダウンロードが始まります。
ダウンロードが終了したら、ダウンロードしたファイルを開いて実行してください。指示にしたがってクリックしていくと以下の画面が表示されるので、[C++によるデスクトップ開発]にチェックを入れて[インストール]ボタンをクリックしてください。
インストールが完了するとサインインを求める画面が表示されるため、Microsoftアカウントでサインインしてください。サインインしなくても30日間は使用できます。 Microsoftアカウントの手順は以下を参考にしてください。
C++によるデスクトップ開発機能がインストールされているかを必ず確認してください。
Visual C++のプロジェクトを作成できれば問題ありません。 まず、[新しいプロジェクトの作成]をクリックしてください。
この時、
[空のプロジェクト
Windows用にC++で最初から始めます。開始ファイルは提供しません]
などが選択肢にあればインストールに問題ありません。
インストールされていない場合は、
[探しているものが見つからない場合
さらにツールと機能をインストールする]
をクリックするとインストーラーが起動するので、[’’C++によるデスクトップ開発機能’’]をインストールしてください。
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
でインストールできます。
一般的な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をインストールできます。
インストールを確認します。
$ 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 にはランタイムライブラリとコマンド群が含まれています。
/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
/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
/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には、開発に必要なコマンド群とヘッダが含まれています。
/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
/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
/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 にはスタンドアロン 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
/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 には、日本語と英語のクラスリファレンス、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
/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
/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
/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では大量のファイルがインストールされるため、ここではリストしません。必要に応じて
$ dpkg -L openrtp
C++版OpenRTM-aistはRaspberry Pi用Raspbianl用debパッケージが提供されています。 Raspbianへの対応およびそのバージョンは、予告なしに変更または停止されることがありますので、あらかじめご了承ください。
現在パッケージが用意されているRaspbianのバージョンは
です。
SDカードへの書き込み方法については RPi Easy SD Card Setup を参照してください。
このリンクではいくつかの方法が説明されています。そのうちのいくつかの概要を示すと:
Windowsを用いる方法の方がLinuxやMac OSを用いるより簡単なので、初心者にはWindowsを用いる方法を推奨します。
$ sudo dd of=/dev/<SDカードのデバイスファイル> if=<ダウンロード・解凍したイメージファイル> bs=4M status=progress $ sudo sync
上記コマンドによるSDカードへの書き込みはかなり長い時間を必要とします。(数分から10数分)。また、SDカードのデバイスファイル名を見つけるには
$ df -h
$ umount /dev/sdf5 $ umount /dev/sdf6 $ umount /dev/sdf7
その後、上記のddコマンドを実行しますが、この例でのデバイスファイル名は/dev/sdfになります。
OpenRTM-aist (C++)のインストールの方法には大きく分けて以下の2種類のインストール方法があります。
好みの方法でインストールしてください。
openrtm.orgが提供するインストールスクリプトpkg_install_raspbian.shをダウンロードページからダウンロードし、root権限で実行します。このスクリプトは、必要なパッケージを順次apt-getでインストールしていきます。
OpenRTM-aistを開発・実行するために必要なパッケージをもれなくインストールしてくれるので大変便利です。初めてOpenRTM-aistをインストールしてみる方に推奨します。
一括インストール・スクリプトをダウンロードした後、ダウンロードしたディレクトリに移動して
$ sudo sh pkg_install_raspbian.sh -l c++ --yes
でインストールできます。
一括インストールスクリプトのダウンロードや詳しいインストール方法、指定可能なオプションの種類につきましては、「一括インストールスクリプト」のページをご確認ください。
openrtm.orgではapt-getから利用可能なパッケージリポジトリを提供しています。ただし、デフォルトのパッケージリポジトリには含まれていませんので、apt-getの設定を変更する必要があります。そのためには/etc/apt/sources.listを編集して以下の行を追加します。
deb http://www.openrtm.org/pub/Linux/raspbian/ buster main
次の手順でインストールを行います。途中、いくつかの応答を求められるので、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は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にはランタイムライブラリとコマンド群が含まれています。
/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には、開発に必要なコマンド群とヘッダが含まれています。
/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
/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
/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にはスタンドアロン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
/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
/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には、日本語と英語のクラスリファレンス、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
/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
/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
現在、1.2系のOpenRTM-aistはFedoraの対応が不完全です。よって、本ページの情報はあくまでも参考情報として使用してください。
C++版OpenRTM-aistはFedora Linuxで利用可能なRPMパッケージが提供されています。 対応しているFedora Linuxのバージョンは、ダウンロードページから確認できます。 Fedora Linuxへの対応およびそのバージョンは、予告なしに変更または停止されることがありますので、あらかじめご了承ください。
Fedora Linuxへのインストールの方法には大きく分けて以下の二種類のインストール方法があります。openrtm.orgが提供するインストール・スクリプトpkg_install_fedora.shをダウンロードページからダウンロードし、root権限で実行します。このスクリプトは、必要なパッケージを順次yumを用いてインストールしていきます。
OpenRTM-aistを開発・実行するために必要なパッケージをもれなくインストールしてくれるので大変便利です。オプションを指定することで、目的に合わせたパッケージをインストールできるので、初めてOpenRTM-aistをインストールしてみる方にもソースをコンパイルしてみる方にも推奨します。
一括インストールスクリプトは、ダウンロードした後、ダウンロード先ディレクトリに移動し、
$ sudo sh pkg_install_fedora.sh -l c++ --yes
一括インストールスクリプトのダウンロードや詳しいインストール方法、指定可能なオプションの種類につきましては、一括インストールスクリプトのページをご確認ください。//英語版は/node/6990
一般的なFedora環境での開発にはRTC BuilderやRTSystem Editorを使用しますが、その場合にはOpenRTPが必要ですので、一括インストールスクリプトを用いてOpenRTPをインストールしてください。Fedoraではpkg_install_fedora.shが置いてあるディレクトリで
$ sudo sh pkg_install_fedora.sh -l openrtp --yes
openrtm.orgではyumから利用可能なパッケージリポジトリを提供しています。 ただし、デフォルトのパッケージリポジトリには含まれていませんので、yumの設定を変更する必要があります。
以下のような設定を記録したファイル/etc/yum.repos.d/openrtm.repoを作成しておきます。作成には通常root権限が必要です。
[openrtm] name=Fedora $releasever - $basearch failovermethod=priority baseurl=http://openrtm.org/pub/Linux/Fedora/releases/$releasever/Fedora/$basearch/os/Packages enabled=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEY
openrtm.repoを作成したら、次の手順でインストールを行います。 途中、いくつかの応答を求められるので、yを入力しながら完了させます。
$ 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にはランタイムライブラリとコマンド群が含まれています。
/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-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
/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には、日本語と英語のクラスリファレンス、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
/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
/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にはスタンドアロン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
/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では大量のファイルがインストールされるため、ここではリストしません。必要に応じて
$ rpm -ql OpenRTP
インストールまたはビルドが正常に終了したら、付属のサンプルで動作テストをします。 サンプルは、64bit版の場合、通常は以下の場所にあります。
以下の手順で、サンプルコンポーネントセットSimpleIOを使用して、OpenRTM-aistが正しくビルド/インストールされているかを確認します。
RTコンポーネントConsoleIn、ConsoleOutからなるサンプルセットです。 ConsoleInはコンソールから入力された数値をOutPort から出力するコンポーネント、ConsoleOutはInPortに入力された数値をコンソールに表示するコンポーネントです。これらは簡単なI/O(入出力)を例示するためのサンプルです。 ConsoleInのOutPortからConsoleOutのInPortへ接続し、これらの2つのコンポーネントをアクティブ化(Activate)することで動作します。
以下は、MSIインストーラーでOpenRTM-aistをインストールした環境で、スタートメニューから各種プログラムを起動する前提で説明します。
以下の手順に従ってRTSystemEditor、ネームサーバーを起動してください。
ネームサーバー起動後、適当なサンプルコンポーネントを起動します。
Windows 10の場合は右下の[ここに入力して検索]にC++_Examplesと入力して、サンプルのディレクトリを開きます。
「ConsoleIn.bat」「ConsoleOut.bat」をそれぞれダブルクリックして2つのコンポーネントを起動します。
サンプルコンポーネントを起動しようとすると、Windows Defenderのファイアウォールにより[Windows セキュリティの重要な警告]ダイアログが表示されることがあります。[プライベート ネットワーク(ホームネットワークや社内ネットワークなど)(R)]にチェックを入れ[パブリックネットワーク(空港、喫茶店など)(非推奨)(U)]のチェックをはずしてアクセスを許可する(A)]をクリックしてください。このダイアログはWindows 10(build 1903)以外だと別のダイアログが表示されることがありますし、設定によっては表示されないこともあります。表示された場合は同様の設定をしてダイアログを閉じてください。
起動後数秒で下図のような2つのコンソール画面が開きます。
コンポーネントが起動しない場合、いくつかの原因が考えられます。
環境変数RTM_VC_VERSION、OMNI_ROOT、RTM_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
RTSystemEditorのツリー表示内の[localhost]‘の横の[>]をクリックし、そしてアイコンの横の[>]をクリックすると、先ほど起動した2つのコンポーネントが登録されていることがわかります。
システムを編集するエディタ(System Diagram)を開きます。上部の[Open New System Editor]ボタン をクリックすると、中央のペインにエディタ(System Diagram)画面が開きます。
左側のネームサービスビューからのアイコンで表示されているコンポーネント(2つ)を中央のエディタ・エリアにドラッグアンドドロップします。
ConsoleIn0コンポーネントの右側にはデータが出力されるOutPort が、ConsoleOut0コンポーネントの左側にはデータが入力されるInPort が、それぞれ配置されています。
これら InPort/OutPort(まとめてデータポートと呼びます)を接続します。OutPortからInPort(またはInPortからOutPort)へドラッグランドドロップすると、図のようなダイアログが現れますので、デフォルト設定のまま[OK]ボタンをクリックします。
2つのコンポーネントの間に接続線が現れます。次に、エディタ上部メニューの[All Activate]ボタン をクリックし、これらのコンポーネントをアクティブ化します。アクティブ化されると、コンポーネントが緑色に変化します。
コンポーネントがアクティブ化されるとConsoleInコンポーネント側のコンソール上の表示が
Please input number:
というプロンプト表示に変わりますので、適当な数値(short int の範囲内:32767以下)を入力しEnterキーを押してください。 すると、ConsoleOut側のコンソール画面にも入力した数値が表示され、ConsoleInコンポーネントからConsoleOutコンポーネントへデータが転送されたことがわかります。
以上で、コンポーネントの基本動作の確認は終了です。
インストーラーには、このほかにもいくつかのサンプルコンポーネントが付属しています。これらのコンポーネントも同様に、ダブルクリックで起動、そしてRTSystemEditorを用いてポート間を接続し、アクティブ化することで試すことができます。
付属しているコンポーネント起動用バッチファイルのリストと簡単な説明を以下に示します。
ConsoleIn.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などのコンポーネント接続して使ってみると良いでしょう。 |
インストールが正常に終了したら、付属のサンプルで動作テストをします。サンプルは、通常は以下の場所にあります。
ソースからビルドした場合は、ソースディレクトリ以下の
サンプルコンポーネントセットSimpleIO(ソースからビルドした場合は、このコンポネントセット名のディレクトリ下にコンポーネントが実行可能なものと存在していますが、一括インストールスクリプトでインストールした場合は、上記のexamplesディレクトリ上に他のサンプルコンポーネント一と一緒に置かれていて特にSimpleIOというセット名に沿って別ディレクトリなどにまとめられてはいませんので、そのケースではコンポーネントセットとはConsoleInCompとConsoleOutCompの2つコンポーネントのセットだと理解してください)を使って、OpenRTM-aistが正しくインストール/ビルドされているかを確認します。
RTコンポーネントConsoleInComp、ConsoleOutCompからなるサンプルセットです。 ConsoleInCompはコンソールから入力された数値をOutPortから出力するコンポーネント、ConsoleOutCompはInPortに入力された数値をコンソールに表示するコンポーネントです。 これらは、基本的なI/O(入出力)を例示するためのサンプルです。 ConsoleInCompのOutPortからConsoleOutCompのInPortへ接続を構成し、これらの2つのコンポーネントをアクティブ化(Activate)することで動作します。
以降、簡単のためサンプルは/usr/share/openrtm-1.2/components/c++/examples以下にあるものとして説明を記述します。
以下の手順に従ってRTSystemEditor、ネームサーバーを起動してください。
ターミナルを起動してConsoleInCompを起動します。
$ /usr/share/openrtm-1.2/components/c++/examples/ConsoleInComp
自分でビルド・インストールした場合は、
$ <source_dir>/OpenRTM-aist/examples/SimpleIO/ConsoleInComp
などとしてConsoleInCompを起動します。
別のターミナルを起動してConsoleOutCompを起動します。
$ /usr/share/openrtm-1.2/components/c++/examples/ConsoleOutComp
自分でビルド/インストールした場合は、同様に
$ <source_dir>/OpenRTM-aist/examples/SimpleIO/ConsoleOutComp
などとしてConsoleOutCompを起動します。
RTSystemEditorのツリー表示の[localhost]の横の[>]をクリックし、そしてアイコンの横の[>]をクリックすると、先ほど起動した2つのコンポーネントが登録されていることがわかります
システムを編集するエディタを開きます。上部の[Open New System Editor]ボタン をクリックすると、中央のペインにエディタ画面が表示されます。
左側のネームサービスビューに のアイコンで表示されているコンポーネント(2つ)を中央のエディタ画面にドラッグアンドドロップします。
ConsoleIn0コンポーネントの右側にはデータが出力されるOutPort 、ConsoleOut0コンポーネントの左側にはデータが入力されるInPort がそれぞれ配置されています。
これらInPort/OutPort(まとめてデータポートと呼びます)を接続します。
OutPortからInPort(またはInPortからOutPort)へドラッグランドドロップすると、図のようなダイアログが現れますので、デフォルト設定のまま[OK]ボタンをクリックします。
2つのコンポーネントの間に接続線が現れます。次に、エディタ上部メニューの[All Activate]ボタン をクリックし、これらのコンポーネントをアクティブ化します。 アクティブ化されると、コンポーネントが緑色に変化します。
コンポーネントがアクティブ化されるとConsoleInコンポーネント側では
Please input number:
というプロンプト表示に変わりますので、適当な数値(short intの範囲内:32767以下)を入力しEnterキーを押します。 すると、ConsoleOut側では、入力した数値が表示され、ConsoleInコンポーネントからConsoleOutコンポーネントへデータが転送されたことがわかります。
以上で、コンポーネントの基本動作の確認は終了です。
OpenRTM-aist本体に改修を加えてWindows上利用したい場合は、OpenRTM-aist本体のWindows用ソースパッケージを自分でビルドできます。 ここでは、ダウンロードページやリポジトリからソースコードを取得しWindows環境でOpenRTM-aistをビルドする方法を説明します。
Windows環境でのOpenRTM-aistのビルドにおいては、ビルド環境の構築やインストーラの作成など、Windows環境上でのソフトウエア開発についてのさまざまな知識が必要です。 以下の説明では、Windows環境上のプログラム開発やバッチファイル作成などの基本的な知識があることを前提にしています。
Windows用のOpenRTM-aist(C++版)ソースパッケージはLinux 用のソースパッケージとは別個に配布されています。 ソースコードの基本的内容は同じですが、ビルド環境に依存するファイルは異なっています(例えばWindows環境におけるVisual StudioのプロジェクトファイルはWindows用ソースパッケージの中にしか存在しません)。
Windows用ソースコードのパッケージは 下記に示すリンクより入手できますが、最新の開発中のソースコードを入手する場合はGitHubのOpenRTM/OpenRTM-aist projectより入手する必要があり、図に示すようにLinux上で、
を作るようになっています。
ビルドに必要な環境、ライブラリは以下の通りです。
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"を選択してインストールをおこなってください。
OpenRTM-aistのビルドにはomniORB 4.2.3(2019/05/17現在)のライブラリが必要です。 openrtm.org が提供するビルド済みバイナリパッケージを下記リンク先に用意してあります。 環境に合わせて適切なものをダウンロードし、適当な場所(以下の説明ではC:\workspace\omniORBとしています)に展開してください。
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
OpenRTM-aistのビルドにはOpenSSL 1.1.0(2019/05/17現在)のライブラリが必要です。 openrtm.orgが提供するビルド済みバイナリパッケージを下記リンク先に用意してあります。 環境に合わせて適切なものをダウンロードし、適当な場所 (以下の説明ではC:\workspace\OpenSSLとしています)に展開してください。
SSL_ROOT に設定したディレクトリ以下は以下のような構造になっている必要があります。
<SSL_ROOT> + bin | + scripts | + x86_win32 + lib | + engines-1_1 + include | + openssl
ビルドの途中でいくつかのPythonスクリプトを利用するので Python 2.7か3.6、または3.7 が必要です。(現状2.7が必要で、3.7ではエラーが起きます) 以下のサイトから最新のバージョンを取得しインストールしてください。
インストーラーを起動すると、そのインストール過程で選択項目がでてきますが、デフォルトの項目を選択してインストールしてください。(デフォルト以外の選択も可能ですが、その場合は十分な理解の元で選択してください。)
まずソースコード OpenRTM-aist-1.2.X-win32.zip をダウンロードし、適当なディレクトリに展開します。
build.batを実行するとビルドが始まりますが、その前にバッチファイルの環境変数"OMNI_ROOT、SSL_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を実行すれば自動でビルドが始まります。
すべてが正しくビルドできたら次のことを行い、インストールを完了させます。
以上で、OpenRTM-aistのインストールは終了です。
パッケージが用意されていないUNIX系の環境や、クロス開発環境などで、OpenRTM-aist本体のソースを変更したり再ビルドて、OpenRTM-aistを利用したい場合には、ソースからビルド可能です。ここでは、ダウンロードページやリポジトリからソースを取得しLinux上でOpenRTM-aist をビルドする方法を説明します。
OpenRTM-aist(C++版)はautotoolsを利用したビルド環境を提供しているため、さまざまな環境でビルドできます。
OpenRTM-aistは下記のLinuxディストリビューションでビルドできることが確認されています。
これ以外の環境でも、一般的Linux/UNIX環境であれば、ビルドできる可能性があります。
OpenRTM-aist-1.2.xをソースからビルドするには下記の開発用ツールおよびライブラリが必要です。
それぞれのライブラリなどのドキュメントに従いインストールを行ってください。これらが標準のディレクトリ(/usr、/usr/localなど)下にインストールされていると、以降のOpenRTM-aistのコンパイル作業を比較的簡単に行うことができます。
UbuntuやFedoraなどの特定のディストリビューション向けには、一括インストール・スクリプト ''pkg_install_OS名.sh’’という依存ライブラリやOpenRTMのパッケージをインストールするスクリプトが用意されていて、それにより必要なツールをインストールすることができます。下記のリンクに入手方法やコマンドラインオプションなどが説明されています。
このスクリプトを-cオプションを用いて実行することにより、コア(OpenRTM-aist自体の)開発用のツールをインストールすることができます。それを実行するか、別個に必要なツールをインストールしておいてください。
まずソースコード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
で参照してください。
configureが正常に終了したことを確認してください。正常に終了したらmake します。
$ make
ビルドが正常に終了したら、ヘッダファイル、ライブラリ、ユーティリティコマンド群をインストールします。
$ sudo make install
以上で、ソースコードからのビルドおよびインストールは終了です。
OpenRTM-aistは開発に利用しているgithubリポジトリを一般に公開しています。リポジトリからクローンしたソースコードを用いてもビルド可能です。
リポジトリからチェックアウトしたソースはconfigureスクリプトやMakefile.inが含まれていません。これらを生成するには、
などのツールが必要ですのであらかじめインストールしておきます。これらの必要なツールやOmniORBなどのライブラリをインストールするのにあたって、Ubuntuなどでは上記で説明した一括インストール・スクリプトを利用可能です。このスクリプトをあらかじめ実行しておくことを推奨します。
Ubuntuでは上記で推奨した一括インストールスクリプトpkg_install_ubuntu.shを以下のように実行することで、OpenRTM-aist本体の開発(ここで行うソースからのビルドも含みます)のためのツール(automakeなどを含む)などをまとめてインストール可能です。
# sudo sh pkg_install_ubuntu.sh -l c++ -c
ソースをリポジトリからクローンします。
$ 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.
クローンすると、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 $
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を行うことで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(Python)のインストール方法を説明します。
MSIインストーラーによるOpenRTM-aistのインストール手順については下記のページに記載。
RTCの開発にはCMake、Doxygen、Visual Studioのインストールが必要です。
インストーラーは以下の作業を行います。
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\
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\
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\
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
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
# sh pkg_install_debian.sh -l python --yes
一般的な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をインストールできます。
制御コンピュータが小規模のシステムの場合など、CUIでRTCを制御したい場合にはOpenRTPのRTSystemEditor相当の機能をCUIから実行できるようなツールとしてrtshellと呼ばれるツールが提供されています。rtshellのインストールは一括インストールスクリプトを用いて、一括インストールスクリプト・ファイルが置かれているディレクトリで
Ubuntuの場合は
$ sudo sh pkg_install_ubuntu.sh -l rtshell --yes $ sudo rtshell_post_install
# sh pkg_install_debian.sh -l rtshell --yes # rtshell_post_install
でインストールできます。
インストールを確認します。(下記は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
インストールを確認します。(下記は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 にはランタイムライブラリとコマンド群が含まれています。
/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/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
/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には、開発に必要なコマンド群とヘッダが含まれています。
/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/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
/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 1.2.2 からメインPythonバージョンが2系から3系へ変更されました。
/usr/bin/rtcd_python3 /usr/bin/rtcprof_python3
usr/lib/python3/dist-packages/OpenRTM-aist/*
/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/*
/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/*
/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では大量のファイルがインストールされるため、ここではリストしません。必要に応じて
$ dpkg -L openrtp
/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.8/dist-packages/rtctree/* /usr/local/lib/python3.8/dist-packages/rtshell/* /usr/local/lib/python3.8/dist-packages/rtsprofile/*
/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/*
Python版OpenRTM-aistはRaspberry Pi用Raspbianl用debパッケージが提供されています。 Raspbianへの対応およびそのバージョンは、予告なしに変更または停止されることがありますので、あらかじめご了承ください。
現在パッケージが用意されているRaspbianのバージョンは
です。
SDカードへの書き込み方法については RPi Easy SD Card Setup を参照してください。
このリンクではいくつかの方法が説明されています。そのうちのいくつかの概要を示すと:
Windowsを用いる方法の方がLinuxやMac OSを用いるより簡単なので、初心者にはWindowsを用いる方法を推奨します。
$ sudo dd of=/dev/<SDカードのデバイスファイル> if=<ダウンロード・解凍したイメージファイル> bs=4M status=progress $ sudo sync
上記コマンドによるSDカードへの書き込みはかなり長い時間を必要とします。(数分から10数分)。また、SDカードのデバイスファイル名を見つけるには
$ df -h
$ umount /dev/sdf5 $ umount /dev/sdf6 $ umount /dev/sdf7
その後、上記の’’dd’’コマンドを実行しますが、この例でのデバイスファイル名は/dev/sdfになります。
openrtm.orgが提供するインストール・スクリプトpkg_install_raspbian.shを指定のURLからダウンロードし、root 権限で実行します。このスクリプトでは必要なパッケージを順次apt-getを用いてインストールしていきます。
オプションを指定することで、目的に合わせたパッケージをインストールすることが可能です。一括インストール・スクリプトをダウンロードして
$ sudo sh pkg_install_raspbian.sh -l python --yes
一括インストールスクリプトのダウンロードや詳しいインストール方法、指定可能なオプションの種類につきましては、「一括インストールスクリプト」のページをご確認ください。
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
各パッケージの内容は以下の通りです。
/usr/bin/rtcd_python /usr/bin/rtcprof_python
usr/lib/python2.7/dist-packages/OpenRTM-aist/*
/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/*
/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/*
/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
/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/*
現在、1.2系のOpenRTM-aistはFedoraの対応が不完全です。よって、本ページの情報はあくまでも参考情報として使用してください。
Python版OpenRTM-aistはFedora Linuxで利用可能なRPMパッケージが提供されています。 対応しているFedora Linuxのバージョンは、ダウンロードページから確認できます。 Fedora Linuxへの対応およびそのバージョンは、予告なしに変更または停止されることがありますので、あらかじめご了承ください。
Fedora Linuxへのインストールの方法には大きく分けて以下の二種類のインストール方法があります。openrtm.orgが提供するインストール・スクリプトpkg_install_fedora.shをダウンロードページからダウンロードし、root権限で実行します。 このスクリプトは、必要なパッケージを順次yumを用いてインストールしていきます。
OpenRTM-aistを開発・実行するために必要なパッケージをもれなくインストールしてくれるので大変便利です。
オプションを指定することで、目的に合わせたパッケージをインストールすることが可能です。一括インストール・スクリプトをダウンロードして
sudo sh pkg_install_fedora.sh -l python --yes
一般的なUbuntu/Debian環境での開発にはRTC BuilderやRTSystem Editorを使用しますが、その場合にはOpenRTPが必要ですので、一括インストールスクリプトを用いてOpenRTPをインストールしてください。Ubuntuではpkg_install_ubuntu.shが置いてあるディレクトリで
$ sudo sh ./pkg_install_fedora.sh -l openrtp --yes
現状Fedora用一括インストールスクリプトでは-l pythonでPython用の環境をインストールした後に、-l openrtpをインストールした場合OpenRTPの実行に必要なファイルが一部インストールされないという問題がありますので上記実行後
$ sudo yam install OpenRTM-aist
制御用コンピューター・システムが小規模の場合など、CUIでRTCを制御したい場合にはOpenRTPのRTSystemEditor相当の機能をCUIから実行できるようなツールとしてrtshellと呼ばれるツールが提供されています。rtshellのインストールはターミナル上で一括インストールスクリプトを用いて、一括インストールスクリプト・ファイルが置かれているディレクトリで以下のように入力します。
$ sudo sh pkg_install_fedora.sh -l rtshell --yes
openrtm.orgではyumから利用可能なパッケージリポジトリを提供しています。 ただし、デフォルトのパッケージリポジトリには含まれていませんので、yumの設定を変更する必要があります。
以下のような設定を記録したファイル/etc/yum.repos.d/openrtm.repoを作成しておきます。作成には通常root権限が必要です。
[openrtm] name=Fedora $releasever - $basearch failovermethod=priority baseurl=http://openrtm.org/pub/Linux/Fedora/releases/$releasever/Fedora/$basearch/os/Packages enabled=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEY
openrtm.repoを作成したら、次の手順でインストールを行います。 途中、いくつかの応答を求められるので、yを入力しながら完了させます。
$ 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
$ sudo yum install OpenRTP $ sudo yum install OpenRTM-aist
$ sudo pip3 install rtshell-aist
以下のコマンドでインストールの確認ができます。
$ 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
$ 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
$ 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の場合)
/usr/bin/rtcd_python /usr/bin/rtcprof_python
usr/lib/python3.7/site-packages/OpenRTM-aist/*
/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/*
/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/*
/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にはランタイムライブラリとコマンド群が含まれています。
/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-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
/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では大量のファイルがインストールされるため、ここではリストしません。必要に応じて
$ rpm -ql OpenRTP
/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/*
インストールまたはビルドが正常に終了したら、付属のサンプルで動作テストをします。サンプルは、通常は以下の場所にあります。
サンプルコンポーネントセットSimpleIOを使って、OpenRTM-aistが正しくビルド・インストールされているかを確認します。
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、ネームサーバーを起動してください。
ネームサーバー起動後、適当なサンプルコンポーネントを起動します。
Windows 10の場合は右下の[ここに入力して検索]にPython_Examplesと入力してサンプルのディレクトリを開きます。
ここでは、「ConsoleIn.bat」「ConsoleOut.bat」をそれぞれダブルクリックして2つのコンポーネントを起動します。起動すると、下図のような2つのコンソール画面が開きます。
コンポーネントが起動しない場合、いくつかの原因が考えられます。
rtc.confの設定に問題があり、起動できないケースがあります。上記検索から開かれるディレクトリの[rtc.conf for examples]を開いて設定を確認してください。例えば、corba.endpoint/corba.endpointsなどの設定が現在実行中のPCのホストアドレスとミスマッチを起こしている場合などは、CORBAが異常終了します。
以下のような最低限のrtc.confに設定しなおして試してみてください。
corba.nameservers: localhost
openrtm.orgが提供するMSIインストーラーにはomniORBpyが含まれていますが、カスタムインストールを選択すると、omniORBpyをインストールせずにOpenRTM-aist-Pythonをインストールできます。また、手動でインストールした場合には、omniORBpyが入っていない場合も考えられますので、omniORBpyがインストールされているか確認してください。
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のツリー表示の[>]をクリックすると、先ほど起動した2つのコンポーネントが登録されていることがわかります。
システムを編集するエディタ(System Diagram)を開きます。上部の[Open New System Editor]ボタン をクリックすると、中央のペインにエディタ(System Diagram)が開きます。左側のネームサービスビューに のアイコンで表示されているコンポーネント(2つ)を中央のエディタ・エリアにドラッグアンドドロップします。
ConsoleIn0コンポーネント・アイコンの右側にはデータが出力されるOutPort が 、ConsoleOut0コンポーネント・アイコンの左側にはデータが入力されるInPort がそれぞれ配置されています。
これらInPort/OutPort(まとめてデータポートと呼びます)を接続します。OutPortからInPort(またはInPortからOutPort)へドラッグランドドロップすると、図のようなダイアログが現れますので、デフォルト設定のまま[OK]ボタンをクリックします。
2つのコンポーネントの間に接続線が現れます。次に、エディタ上部メニューの[All Activate]ボタン をクリックし、これらのコンポーネントをアクティブ化します。アクティブ化されると、コンポーネントが緑色に変化します。
コンポーネントがアクティブ化されるとConsoleInコンポーネント側のコンソールには
Please input number:
というプロンプト表示に変わりますので、適当な数値(short intの範囲内:32767以下)を入力しEnterキーを押してください。すると、ConsoleOut側のコンソールにも入力した数値が表示され、ConsoleInコンポーネントからConsoleOutコンポーネントへデータが転送されたことがわかります。
以上で、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コンポーネントのサンプル。簡易ジョイスティックコンポーネント。 |
サンプルコンポーネントセットSimpleIOを使って、OpenRTM-aistが正しくビルド・インストールされているかを確認します。
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(OpenRTP)を使った動作確認を説明します。RaspbianのケースのようにOpenRTPを使用しない環境での動作確認についてはrtshellのインスト―ルの動作確認(Linux編)>を参照ください。
以下の手順に従ってRTSystemEditor、ネームサーバーを起動してください。
$ python /usr/share/openrtm-1.2/components/python/SimpleIO/ConsoleIn.py
$ python <source_dir>/OpenRTM_aist/examples/SimpleIO/ConsoleIn.py
$ /usr/share/openrtm-1.2/components/python/SimpleIO/ConsoleOut
$ python <source_dir>/OpenRTM_aist/examples/SimpleIO/ConsoleOut.py
Please input number:
以上で、RTSystemEditorを用いたコンポーネントの基本動作の確認は終了です。
Windows上でソースパッケージからインストールしたい場合、OpenRTM-aist-Pythonを自分でビルドする必要があります。
が必要です。以下に入手方法を説明しますのでインストールしてください。
Python 2.7(もしくは3.6、3.7)が必要です。以下のサイトから最新のものを取得しインストールしてください。
以降の説明では、Pythonのインストールに際して以下の設定が必要です。(その他はインストーラのデフォルト設定です。)
OpenRTM-aist-PythonのビルドにはomniORBpyのライブリが必要です。omniORBpyは以下のリンクから、必要なファイルを入手できます。
また、公式サイトからはソースが入手できます。openrtm.orgのサイトのファイルは、特別な理由がない限りは最新版(現時点では4.2.3)を使用することを推奨します。また、複数のファイルがあり、そのファイル名の意味は以下になります。説明にあわせて使用するファイルを選択してください。
ファイル名の書式は、以下のフォーマットになっています。
omniORB-x.y.z-{win32|x64}-{vc100|vc110|vc120|vc140}-{py27|py36|py37}.zip
ここで、omniORB 4.2.3を64bitのPython 3.7の環境で使用する場合、omniORB-4.2.3-x64-vc140-py37.zipをダウンロードします。
ダウンロードした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直下へ
のWebページからWindows版のバイナリ実行形式ファイルをダウンロードして実行してインストールしてください。
まず下記リンクよりソースコードファイルOpenRTM-aist-Python-1.2.x.zipをダウンロードし、適当なディレクトリに展開します。
コマンドプロンプトを起動し、先程ソースコードを展開したフォルダーに移動後、以下のコマンドにてビルドを行います。
> python setup.py build
すべてが正しくビルドできたら、以下のコマンドにてインストールを完了させます。
> python setup.py install
以上で、OpenRTM-aist-pythonのインストールは終了です。
Linux上でソースパッケージからインストールしたい場合、OpenRTM-aist-Pythonを自分でビルドする必要があります。以下にUbuntu 18.04でのビルド作業の手順を説明します。
上記以外の環境でも一般的なLinux/UNIX環境であれば、ビルドできる可能性があります。
それぞれのソフトウエアのドキュメントに従いインストールを行ってください。これらのパッケージが、標準のディレクトリ(/usr、/usr/lib/ など)下にインストールされていると、以降のOpenRTM-aist-Pythonのビルド作業を比較的簡単に行うことができます。
Ubuntu, DebianではomniORB関連のものは以下のコマンドでインストールできます。
sudo apt-get install python-omniorb-omg omniidl-python omniorb-nameserver
まずソースコードパッケージ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)のインストール方法を説明します。
コマンドプロンプトを開き、
C:\>java -version
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)
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\
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\
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\
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
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
# sh pkg_install_debian.sh -l java --yes
一括インストールスクリプトのダウンロードや詳しいインストール方法、指定可能なオプションの種類につきましては、「一括インストールスクリプト」のページをご確認ください。
一般的な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をインストールできます。
インストールを確認します。
$ 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にはランタイムライブラリとコマンド群が含まれています。
/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/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
/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には、開発に必要なコマンド群とヘッダが含まれています。
/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/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
/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
/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
/usr/bin/rtcd_java /usr/bin/rtcprof_java
/etc/profile.d/openrtm-aist-java.sh
/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
/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
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 には、日本語と英語のクラスリファレンスが含まれています。
/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では大量のファイルがインストールされるため、ここではリストしません。必要に応じて
$ dpkg -L openrtp
Java版のOpenRTM-aistは、Raspbianで利用可能なdebパッケージが提供されています。 対応しているディストリビューションのバージョンは、ダウンロードページで確認できます。 Raspbianへのサポートバージョンや対応の有無は、予告なしに変更されることがありますので、あらかじめご了承ください。
openrtm.orgが提供するインストール・スクリプトpkg_install_raspbian.shを指定のURLからダウンロードし、root権限で実行します。このスクリプトでは必要なパッケージを順次apt-getを用いてインストールしていきます。
オプションを指定することで、目的に合わせたパッケージをインストールすることが可能です。
一括インストールスクリプトを用いると、ダウンロードした後、ダウンロード先ディレクトリに移動し、
$ sudo sh pkg_install_raspbian.sh -l java --yes
一括インストールスクリプトのダウンロードや詳しいインストール方法、指定可能なオプションの種類につきましては、「一括インストールスクリプト」のページをご確認ください。
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にはランタイムライブラリとコマンド群が含まれています。
/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には、開発に必要なコマンド群とヘッダが含まれています。
/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
/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
/usr/bin/rtcd_java /usr/bin/rtcprof_java
/etc/profile.d/openrtm-aist-java.sh
/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
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 には、日本語と英語のクラスリファレンスが含まれています。
/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/*
/usr/bin/rtcd_python /usr/bin/rtcprof_python
usr/lib/python2.7/dist-packages/OpenRTM-aist/*
/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/*
/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/*
/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
/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/*
Java版OpenRTM-aistはFedora Linuxで利用可能なRPMパッケージが提供されています。 対応しているFedora Linuxのバージョンは、ダウンロードページから確認できます。 Fedora Linuxへの対応およびそのバージョンは、予告なしに変更または停止されることがありますので、あらかじめ了承ください。
Fedora Linuxへのインストールの方法には大きく分けて以下の二種類のインストール方法があります。openrtm.orgが提供するインストール・スクリプトpkg_install_fedora.shをダウンロードページからダウンロードし、root権限で実行します。 このスクリプトは、必要なパッケージを順次yumを用いてインストールしていきます。
OpenRTM-aistを開発・実行するために必要なパッケージをもれなくインストールしてくれるので大変便利です。 オプションを指定することで、目的に合わせたパッケージをインストールできるようになったので、 初めてOpenRTM-aistをインストールしてみる方にもソースをコンパイルしてみる方にも推奨します。
一括インストールスクリプトのダウンロードや詳しいインストール方法、指定可能なオプションの種類につきましては、「一括インストールスクリプト」のページをご確認ください。
現状一括インストールスクリプトを-l javaオプションで使った場合、必要なOpenRTM-aistパッケージがインストールされないという問題が報告されています。以下の手順によりインストールしてください。
sudo yum install OpenRTM-aist OpenRTM-aist-devel
一般的なUbuntu/Debian環境での開発にはRTC BuilderやRTSystem Editorを使用しますが、その場合にはOpenRTPが必要ですので、一括インストールスクリプトを用いてOpenRTPをインストールしてください。pkg_install_fedora.shが置いてあるディレクトリで
$ sudo sh ./pkg_install_fedora.sh -l openrtp --yes
openrtm.orgではyumから利用可能なパッケージリポジトリを提供しています。 ただし、デフォルトのパッケージリポジトリには含まれていませんので、yumの設定を変更する必要があります。
以下のような設定を記録したファイル/etc/yum.repos.d/openrtm.repoを作成しておきます。作成には通常root権限が必要です。
[openrtm] name=Fedora $releasever - $basearch failovermethod=priority baseurl=http://openrtm.org/pub/Linux/Fedora/releases/$releasever/Fedora/$basearch/os/Packages enabled=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEY
openrtm.repoを作成したら、次の手順でインストールを行います。 途中、いくつかの応答を求められるので、yを入力しながら完了させます。
$ 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
export RTM_JAVA_ROOT=/usr/lib64/openrtm-1.2
最後に以下のコマンドでインストールの確認をします。
# rpm -q OpenRTM-aist OpenRTM-aist-1.2.0-0.fcXX.x86_64
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-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
/usr/bin/rtcd_java /usr/bin/rtcprof_java
/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
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 には、日本語と英語のクラスリファレンスが含まれています。
/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では大量のファイルがインストールされるため、ここではリストしません。必要に応じて
$ rpm -ql OpenRTP
インストールまたはビルドが正常に終了したら、付属のサンプルで動作テストをします。 サンプルは、通常は以下の場所にあります。
サンプルコンポーネントセットSimpleIOを使って、OpenRTM-aistが正しくビルド・インストールされているかを確認します。
RTコンポーネントConsoleIn、ConsoleOutからなるサンプルセットです。 ConsoleInはコンソールから入力された数値をOutPortから出力するコンポーネント、ConsoleOutはInPortに入力された数値をコンソールに表示するコンポーネントです。 これらは、最も簡単な(Simpleな)I/O(入出力)を例示するためのサンプルです。 ConsoleInのOutPortからConsoleOutのInPortへ接続を構成し、これらの2つのコンポーネントをアクティブ化(Activate)することで動作します。
以下は、msiインストーラーでOpenRTM-aistをインストールした環境で、スタートメニューから各種プログラムを起動する前提での説明です。
以下の手順に従ってRTSystemEditor、ネームサーバーを起動してください。
ネームサーバー起動後、適当なサンプルコンポーネントを起動します。
Windows 10の場合は右下の[ここに入力して検索]にJava_Examplesと入力してサンプルのフォルダーを開きます。
ここでは、「ConsoleIn.bat」「ConsoleOut.bat」をそれぞれダブルクリックして2つのコンポーネントを起動します。 起動すると、下図のような2つのコンソール画面が開きます。
コンポーネントが起動しない場合、いくつかの原因が考えられます。
環境変数RTM_ROOT、RTM_JAVA_ROOTが正しく設定されていない場合に問題が発生する可能性があります。 msiインストーラーでインストールした場合はOSを再起動すると解決する場合があります。
また、rtc.confの設定に問題があり、起動できないケースがあります。上記スタートメニューフォルダーの[rtc.conf for examples]を開いて設定を確認してください。 例えば、corba.endpoint/corba.endpointsなどの設定が現在実行中のPCのホストアドレスとミスマッチを起こしている場合などは、CORBAが異常終了します。
以下のような最低限のrtc.confに設定しなおして試してみてください。
corba.nameservers: localhost
RTSystemEditorのツリー表示の[>]をクリックすると、先ほど起動した2つのコンポーネントが登録されていることがわかります。
システムを編集するエディタを開きます。上部のエディタを[Open New System Editor]ボタン をクリックすると、中央のペインにエディタが開きます。
左側のネームサービスビューに のアイコンで表示されているコンポーネント(2つ)を中央のエディタにドラッグアンドドロップします。
ConsoleIn0コンポーネントの右側にはデータが出力されるOutPort 、ConsoleOut0コンポーネントの左側にはデータが入力されるInPort がそれぞれついています。
これらInPort/OutPort(まとめてデータポートと呼びます)を接続します。 OutPortからInPort(またはInPortからOutPort)へドラッグランドドロップすると、図のようなダイアログが現れますので、デフォルト設定のまま[OK]ボタンをクリックします。
2つのコンポーネントの間に接続線が現れます。次に、エディタ上部メニューの[Activate Systems]ボタン をクリックし、これらのコンポーネントをアクティブ化します。 アクティブ化されると、コンポーネントが緑色に変化します。
コンポーネントがアクティブ化されると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つのコンポーネントを内包した複合コンポーネントが起動されます。| |
にあります。
サンプルコンポーネントセットSimpleIOを使って、OpenRTM-aistが正しくビルド・インストールされているかを確認します。
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を起動します。
$ 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を起動します。
$ sh /usr/share/openrtm-1.2/components/java/ConsoleOut.sh
自分でビルド・インストールした場合は以下のコマンドで実行します。
$ java RTMExamples.SimpleIO.ConsoleOutComp
などとしてConsoleOutを起動します。
RTSystemEditorのツリー表示の[>]をクリックすると、先ほど起動した2つのコンポーネントが登録されていることがわかります。
システムを編集するエディタを開きます。上部のエディタを[Open New System Editor]ボタン をクリックすると、中央のペインにエディタが開きます。
左側のネームサービスビューに のアイコンで表示されているコンポーネント(2つ)を中央のエディタにドラッグアンドドロップします。
ConsoleIn0コンポーネントの右側にはデータが出力されるOutPort 、ConsoleOut0コンポーネントの左側にはデータが入力される InPort がそれぞれついています。
これらInPort/OutPort(まとめてデータポートと呼びます)を接続します。 OutPortからInPort(またはInPortからOutPort)へドラッグランドドロップすると、図のようなダイアログが現れますので、デフォルト設定のまま[OK]ボタンをクリックします。
2つのコンポーネントの間に接続線が現れます。次に、エディタ上部メニューの[Activate Systems]ボタン をクリックし、これらのコンポーネントをアクティブ化します。 アクティブ化されると、コンポーネントが緑色に変化します。
コンポーネントがアクティブ化されるとConsoleInコンポーネント側では
Please input number:
というプロンプト表示に変わりますので、適当な数値(short intの範囲内:32767以下)を入力しEnterキーを押します。 すると、ConsoleOut側では、入力した数値が表示され、ConsoleInコンポーネントからConsoleOutコンポーネントへデータが転送されたことがわかります。
以上で、コンポーネントの基本動作の確認は終了です。
OpenRTM-aist-Java本体のソースを変更して利用したい場合には、ソースからコンパイルできます。
OpenRTM-aist(Java版)はEclipseを利用したビルド環境を提供しています。
OpenRTM-aistのビルドには下記の開発環境およびライブラリが必要です。
それぞれのライブラリなどのドキュメントに従いインストールを行ってください。
OpenRTM-aist-Javaのソースをダウンロードします。
$ tar xvzf OpenRTM-aist-Java-X.X.X.tar.gz
ビルド方法を説明します。(図はWindows版のEclipse3.4.2です。) Eclipseを起動し、プロジェクトをワークスペースへインポートします。 [ファイル]>[インポート]を選択します。
インポートの[選択]ウィンドウが開きます。ここで、[一般]>[既存プロジェクトをワークスペースへ]を選択して[次へ]ボタンをクリックします。
[プロジェクトのインポート]ウィンドウが開きます。[ルート・ディレクトリの選択]へ展開したディレクトリを指定して[完了]ボタンをクリックします。
これで、プロジェクトをワークスペースへインポートできます。
ビルドに使用するJDKの設定を行います。 まず[ウィンドウ]>[設定]で設定画面を開きます。
左側のツリーから[Java]>[インストール済みのJRE]を選択して追加ボタンを押します。
[標準VM]を選択して次へ進みます。
JREホームにJDKインストールフォルダー以下のjreフォルダーのパスを指定して完了する。
インストール済みJREで設定したJDKのチェックボックスをオンにすれば完了です。
パッケージ・エクスプローラーから「build.xml」を右クリックして[実行]>[2 Antビルド...]を選択します。
構成編集のウィンドウが表示さます。ここで、jar、idlCompile、idlCompileEtc、clean、compile_winを選択して[実行]ボタンをクリックします。
ビルドが始まります。
コンソールウィンドウにBUILD SUCCESSFULやビルド成功の表示がでれば完了です。
日本語が文字化けしている場合は、メニューの[実行]→[外部ツール]→[外部ツールの構成]で共通タブを開き、文字コードをMS932に変更([その他]の入力ボックスで手動入力)します。
RT Systemの開発を支援するために、RTCBuilderとRTSystemEditorを提供しております。この二つのツールをまとめてOpenRTPと呼びます。 RTCBuilderとRTSystemEditorは、Eclipse統合開発環境のプラグインとして作成された開発ツールです。そのため、RTCBuilderとRTSystemEditorを使用するには、EclipseとJavaの開発環境をインストールする必要があります。一括インストールスクリプトやMSIファイルを利用することにより簡単にインストールできます。また、ここでは、OpenRTP自体の開発を行うために必要な情報も説明していますが、OpenRTM-aistをユーザとして使用する場合は、下記のインストーラによるインストールを参照するだけで必要な情報は得られるはずです。
ここでは、RTSystemEditorとRPCBuilder(OpenRTP)をインストーラを用いてインストールする方法を述べます。
$ sudo sh pkg_install_xxxx.sh -l openrtp --yes
とすることによってインストールができます。(”sudo ”は環境によっては、別途suコマンドを使うことによって指定する必要がない場合があります。) またOpenRTP自体は開発ツールであり実際の使用においては言語対応の開発環境がインストールされていることが必要です。よって、一括インストールでは-lオプションでc++、python、javaのどれかを指定して開発対象に合わせたOpenRTM-aistをインストールする必要がありますのでご注意ください。
また、OpenRTPのEclipse環境の実行に使われるJDKはOpenRTP GUI (Eclipse GUI)の中で別途設定する必要があります。OpenRTPを起動後、[Window]>[設定]と選択し、開いたダイアログより、[Java]の横の[>]をクリックし[インストール済みのJRE]クリックして設定してください。
本ページはOpenRTP自体を開発デバッグする人のためのページで、OpenRTPをユーザーとして使用する場合には、この情報は特に必要ありません。OpenRTPをインストールして使用するための情報はインストーラによるインストールを参照してしてください。
また本ページの情報は最新のEclipseには適合しない場合があります。
EclipseはEclipse Foundationが開発するオープンソースのJava言語およびその他の言語のための統合開発環境を構築するためのフレームワークです。 Eclipseの基本部分はplug-inを実行するためのプラットフォームで、いろいろな開発環境は多くのplug-inの集合体として構築されます。 デフォルトで付属するJavaの開発環境自体もplug-inとして実現され、plug-inを追加することでいろいろな言語の開発環境として容易に拡張できます。
Eclipseの特徴として、
などが挙げられます。 こうしたEclipseの特徴が、ロボット用統合開発環境を構築する上で有用であると判断し、EclipseをRTミドルウエアのツールのためのプラットフォームとして選択しました。
RTCBuilderとRTSystemEditorを利用するにはEclipseをインストールする必要があります。
OpenRTM-aistのインストーラーでインストールするか、もしくはPleiades All in One Eclipseをインストールしてください。
以下のプラグイン導入済みのeclipseパッケージをダウンロードして適当な場所に展開してください。
Pleiades All in One Ultimate、Full Editionのパッケージを入手してください。
Pleiades All in One EclipseにはLinux版はないため、eclipse.orgからeclipseのインストーラーを入手してインストール、日本語化、プラグインの導入を行ってください。
RTCBuilderとRTSystemEditorは下記のEclipseプラグインを使用しています。Pleiades All in Oneを使用する場合は導入済みです。
以下の手順で、これらのプラグインをインストールしてください。
インストール後Eclipseをいったん終了します。
本ページはRTCBuilderのプラグインを個別に開発・デバッグをする目的で、Eclipse環境にインストールする方法を説明しています。
単にRTCBuilderを使用する場合は、インストーラによるインストールを参照してOpenRTP(RTCBUilder、RTSystemEditorを含む)をインストールして使用してください。
提供される機能の一覧は以下のとおりです。
№ | 画面要素名 | 説明 |
1 | RTCプロファイルエディタ | RTコンポーネントの仕様であるプロファイル、データポート定義、サービスポート定義、コンフィギュレーション定義、その他拡張プロファイルを編集します。 |
2 | ビルドビュー | 編集中のRTコンポーネントおよびデータポート、サービスポート、サービスインターフェースをアイコンでグラフィカルに表示します。 |
3 | リポジトリビュー | 選択したRTリポジトリの情報を表示します。 |
RTCBuilderの動作に必要な環境は以下のとおりです。
№ | 環境 | 備考 |
1 | Java Runtime Environment 8 | ; |
2 | Eclipse 3.4.2以上 http://www.eclipse.org/downloads/index.php http://archive.eclipse.org/eclipse/downloads/index.php |
Eclipse本体 |
3 | Eclipse EMF 2.2以上(SDO,XSD含む) | RTCBuilderが依存するEclipseプラグイン ※ご使用になられるEclipseのバージョンに合ったものをご使用ください。 |
4 | Eclipse GEF 3.2以上(Draw2D含む) | RTCBuilderが依存するEclipseプラグイン ※ご使用になられるEclipseのバージョンに合ったものをご使用ください。 |
5 | Eclipse Java development tools(JDT) | ※ご使用になられるEclipseのバージョンに合ったものをご使用ください。 |
また以下の開発を行う言語によっては以下の環境をインストールしておくと便利です。
№ | 環境 | 備考 |
1 | Eclipse CDT | C++用の開発環境 |
2 | Pydev for Eclipse | python用の開発環境 |
Eclipseを直接導入した場合はRTCBuilderのビルドが必要です。 以下のページの手順でプラグインの生成、導入を行ってください。
Eclipseを起動し、メニューから[ウインドウ]>[パースペクティブを開く]>[その他]を選択すると、次のようなパースペクティブ選択画面が表示されます。
パースペクティブ一覧にある[RTC Builder]を選択すると、次のような画面が表示されてRTCBuilderが起動されます。
~ツールバーの[Open New RTC Builder Editor]ボタンをクリックするか、メニューバーの[ファイル]>[Open New Builder Editor]を選択することで、Builderエディタが起動します。
本ページはOpenRTP自体を開発デバッグする人が、RTSystemのプラグインをEclipse環境にインストールするのためのページです。基本知識としてEclipseにおけるPluginの開発に関する知識が別途必要になります。
RTCBuilderとRTSystemEditorをOpenRTPとしてインストールしてをOpenRTM-aist自体の開発を行わずにユーザーとして使用する場合には、このページの情報は特に必要ありません。OpenRTPをインストールして使用するための情報はインストーラによるインストールを参照してしてください。
RTSystemEditorは、OpenRTM-aistに含まれる開発ツールの1つであり、RTCをリアルタイムにグラフィカル操作する機能を持っています。また、Eclipse統合開発環境のプラグインとして作成されており、Eclipse上にて既存のプラグインとシームレスに操作を行うことができます。
RTSystemEditorは、RTCをリアルタイムにグラフィカル操作する機能を持っています。提供される機能の一覧は以下のとおりです。
№ | 機能名称 | 機能概要 |
1 | コンポーネントコンフィグレーション表示/編集機能 | 選択したコンポーネントのコンフィギュレーションプロファイル情報をコンフィグレーションビューに表示し編集する。 |
2 | コンポーネント動作変更機能 | 選択したコンポーネントの動作を変更する。 |
3 | コンポーネント組み立て機能 | システムエディタ上でシステムの組み立てやリポジトリおよびファイルシステムのコンポーネント仕様の編集を行う。 |
4 | システムセーブ/オープン機能 | システムエディタの内容をセーブ/オープンする。 |
5 | システム復元機能 | 保存したシステムエディタの内容をシステムに復元する。 |
RTSystemEditorの動作に必要な環境は以下のとおりです。
№ | 環境 | 備考 |
1 | Java Runtime Environment 8 | ; |
2 | Eclipse 3.4.2以上 http://www.eclipse.org/downloads/index.php http://archive.eclipse.org/eclipse/downloads/index.php |
Eclipse本体 |
3 | Eclipse EMF 2.2.4 EMF+SDO RuntimeおよびXSD Runtime | RTSystemEditorが依存するEclipseプラグイン |
4 | Eclipse GEF 3.2.2 | RTSystemEditorが依存するEclipseプラグイン |
5 | Eclipse Java development tools(JDT) | ※使用するEclipseのバージョンに合ったものをご使用ください。 |
Eclipseを直接導入した場合はRTSystemEditorのビルドが必要です。 以下のページの手順でプラグインの生成、導入を行ってください。
RTSystemEditorの起動が確認できましたら、いったん、Eclipseを終了してください。再度、同じワークスペースを指定してEclipseを起動すると、RTSystemEditorが起動された状態から始まります。
参考:本ページはRTCBuilder/RTSystemEditorの開発・デバッグに関する情報を記したページです。EclipseにおけるPlugin開発の知識が必要になります。
RTCBuilderとRTSystemEditorを利用するのみであれば、このページの情報は不要です。 OpenRTP (RTCBuilder、RTSystemEditor)をインストールして使用するための情報はインストーラによるインストールを参照してしてください。
RTSystemEditor、RTCBuilderはeclipseのプラグインとして動作します。 以下のサイトからから、eclipseをダウンロードしてください。 その際にパッケージはUltimateのFull Edisionを選択してください。 Standard Editionだとプラグイン開発環境を手動でインストールする必要があります。
以下のリポジトリからOpenRTPのソースコードを入手してください。
eclipse.exeを実行してください。
使用するJREを設定します。
[ウィンドウ]→[設定]→[Java]→[インストール済みのJRE]で、[追加]→[標準 VM]を選択後にJREのパス(例:C:\Program Files (x86)\Java\jdk1.8.0_131\jre)を追加後にチェックを入れる
初期の状態でコンパイラー準拠レベルが1.6に設定されている場合があるようなので、[ウィンドウ]→[設定]→[Java]→[コンパイラー]でコンパイラー準拠レベルを1.8に設定してください。
RTSystemEditor、RTCBuilderを開発環境のeclipseにインポートします。 [ファイル]→[インポート]→[プラグイン開発]→[プラグインおよびフラグメント]を選択後、[次へ]をクリックしてください。
[インポート先]の[ディレクトリ]をオンにして、rtmtoolsをチェックアウトしたディレクトリを設定して次へ進んでください。
全て追加を選択して、完了ボタンを押してください。
IDLファイルのコンパイルを行います。 パッケージエクスプローラーでjp.go.aist.rtm.toolscommonプロジェクトの「buildForCliant」を右クリックして[実行]→[Antビルド]を選択すれば開始します。
Antビルドで文字化けする場合は、[実行]→[外部ツール]→[外部ツールの構成]→[Antビルド]をダブルクリックして、[共通]タブ→[エンコード]でその他[MS932]に設定してください。
環境によってはクラスパスが正しく設定されない場合があります。 その場合はデバッグ時にClassNotFoundExceptionの例外が発生するため、rtmtoolsに存在するplugin.xml全てを修正してください。 パッケージエクスプローラーでplugin.xmlをダブルクリックして、[ランタイム]タブから[クラスパス]に「.」を追加してください。([MANIFEST.MF]の[Bundle-ClassPath]に追加しても可)
これで準備完了です。
上部の虫のマークのボタンから、[デバッグ]→[Eclipse アプリケーション]でデバッグが開始します。
RTCの操作、RTシステムの構築を行うためのツールRTSystemEditorを起動します。 RTSystemEditorはOpenRTPというツールの中に含まれているため、まずはOpenRTPを起動する必要があります。 デスクトップのショートカットをダブルクリックするか、Windows 10の場合は左下の[ここに入力して検索]にOpenRTPと入力して検索結果に表示される[OpenRTP]をクリックして起動してください。
OpenRTPの最初の起動時にはワークスペースとして使用するディレクトリの場所を聞いてきます。それを設定して、今後同じ設定で使い、再度聞かれる必要がない場合は、[この設定をデフォルトとして使用し、今後この質問を表示しない(U)]のチェックボックスをクリックし、チェックの後、[起動]ボタンをクリックしてください。また最初の起動時に[eclipseへようこそ]の画面が開く場合があります。その場合は、左上部の[ようこそ]タブにある[X]ボタンをクリックして閉じてください。
OpenRTPの[パースペクティブを開く]ボタンをクリックしてください。
パースペクティブを開くウィンドウから[RTSystemEditor]を選択して[開く]ボタンをクリックしてください。
まず、コンポーネントの参照を登録するためのネームサーバーを起動します。
ネームサーバーを起動しようとすると、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]と表示されます。
openrtm.orgが提供するMSIインストーラーにはomniORBが含まれていますが、手動でインストールした場合には、omniORBが入っていない場合も考えられますので、omniORBがインストールされているか確認してください。
「Start Naming Service」は%RTM_ROOT%\bin\rtm-naming.batにあるバッチファイルからネームサーバー(omniNames.exe)を起動します。 この際、omniNames.exeを参照するために環境変数OMNI_NAMESを利用しています。 通常インストーラーでOpenRTM-aistをインストールした場合には、OMNI_ROOT環境変数が自動で設定されますが、何らかの理由で環境変数が無効になっていたり、手動でインストールした場合などは、環境変数が設定されていないことがあります。
システム環境変数OMNI_ROOTが設定されていることを確認してください。 システム環境変数は以下の手順で参照編集することができます。ユーザー名が2バイト文字の場合、ログを出力するフォルダーを適切に設定できずにomniNames.exeの起動に失敗する場合があります。 その場合、環境変数TEMPを2バイト文字を含まない場所に設定することで改善する場合があります。 適当なテンポラリディレクトリ(以下のケースではC:\temp)を作り、そこを環境変数TEMPが指すように設定してネームサーバーを起動します。
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
RTCの操作、RTシステムの構築を行うためのツールRTSystemEditorを起動します。 RTSystemEditorはOpenRTPというツールの中に含まれているため、まずはOpenRTPを起動する必要があります。
$ openrtp
Raspbianのような小さな構成のシステムの場合、openrtp自体がサポートされていないことがあります。その場合は、他のホストで動いているOpenRTPから、Raspbian上のネームサービースをリモート接続するか、他のOpenRTPが動作しているホスト上にあるネームサービスにRaspbian上で動作しているRTCを登録する必要があります。以下にその手順を示します。
$ rtm-naming
と入力し、ネームサービスを起動し、動作させたいRTCを起動します。
$ openrtp
sudo gedit rtc.conf
と入力し、rtc.confの編集を開始します。
corba.nameservers: localhost
の行を
corba.nameservers: <OpenRTPが動作しているホストのアドレス>
と書き換えます
これにより、ネームサービスにリモートで動作しているRTCが登録され、そのネームサービスを表示しているOpenRTPのName Service Viewに表示されます。