OpenRTM-aistを利用するには、Python、CMake、Doxygen、Visual Studio等のソフトウェアのインストールが必要です。
C++版の開発だけでなく、Python版、Java版のRTCを作成した際に、インストーラをビルドするのにも必要です。 以下のCommunity版(無料)をインストールするか、別途Visual Studio 2015/2017/2019/2022を入手してインストールしてください。
現在動作確認できているVisual Studioの最新バージョンは2022です。PythonはPython言語版のRTCの開発だけでなく、OpenRTM-aistの様々なツールでも使用していますので必ずインストールする必要があります。 OpenRTM-aistがサポートしているPythonは 3.7, 3.8, 3.9, 3.10, 3.11 です。 最新版をインストールすることをお勧めします。
インストールする際以下の点に注意してください。CMakeはWindowsやLinux等様々な環境でビルドに必要なファイル(Visual Studioのプロジェクトファイル、Linux上のMakefile等)を自動生成するために必要です。
できるだけ最新版をインストールしてください。
Doxygenは、ソースコード等のコメントからドキュメントを自動生成するツールです。
Graphvizは、Doxygenでドキュメントを生成する際に、クラス図等の図を生成するために必要とされるツールです。
OpenRTM-aistでは、RTCBuilderでRTCの設計時に様々な設計情報を記入することができ、それらはソースコードのコメントとして出力されます。 これをDoxygenで処理することで、RTCのキレイなドキュメントを生成することができます。
できるだけ最新版をインストールしてください。
インストールの途中で[Install Options]としてsystem PATHをどうするかを聞かれますが、Add Graphviz to the system PATH for all usersを選択することを推奨します。 上記WebページからWindows版のバイナリ実行形式ファイルをダウンロードして実行してインストールしてください。
インストール後、コマンドプロンプトで dot -v を実行してプラグイン情報が表示されることを確認して下さい。
>dot -v dot - graphviz version 7.1.0 (20230121.1956) libdir = "C:\Program Files\Graphviz\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\bin\config6 was successfully loaded. render : cairo dot dot_json fig gdiplus json json0 map mp pic pov ps svg tk visio 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 pov ps ps2 svg tif tiff tk vdx vml xdot xdot1.2 xdot1.4 xdot_json loadimage : (lib) bmp eps gif jpe jpeg jpg png ps svg
上記のソフトウェアのインストールが完了したら、OpenRTM-aistのインストールを行います。
OpenRTM-aistのWindows版のインストーラ(msi形式)をダウンロードします。
OpenRTM-aist-2.0.1-RELEASE_x86_64.msi | MD5:057354e97e6dd531801a9ae435ed2abe | 771MB |
このインストーラには、以下の内容が含まれています。
インストールされているVisual Studioのバージョンに合わせて、システム環境変数RTM_VC_VERSIONを設定しています。 インストール後に変更する場合は、GUIツールを使って設定できます。使い方は VCVerChanger のページをご覧ください。
Visual Studioのバージョン | システム環境変数RTM_VC_VERSIONの指定値 | |
2015、2017 | vc14 | |
2019、2022 | vc16 | 初期設定 |
※インストール後、Visual Studioのバージョンを変更しない場合でも、一度 VCVerChanger でシステム環境変数の設定を確認してください。不要なパスが残っていた場合はこれを削除します。
インストールが正常に終了したら、付属のサンプルコンポーネントで動作を確認できます。 batファイルを用意していますので、それをダブルクリックすれば起動できます。
batファイルは、スタートメニューの [OpenRTM-aist 2.0.0 x86_64] からスタートメニューフォルダーを開くとアクセスしやすいです。
サンプルコンポーネントのインストール先は以下です。
C:\Program Files\OpenRTM-aist\2.0.x\Components\C++\Examples C:\Program Files\OpenRTM-aist\2.0.x\Components\Python C:\Program Files\OpenRTM-aist\2.0.x\Components\Java C:\Program Files\OpenRTM-aist\2.0.x\Components\C++\OpenCV
付属しているサンプルコンポーネントの簡単な説明と、使い方を解説しているページへのリンクを以下に示します。
batファイル名 | サンプルコンポーネントの簡単な説明 | 使い方解説ページ |
ConsoleIn.bat ConsoleOut.bat |
ConsoleIn.bat : コンソールから入力された数値をOutPortから出力するConsoleInコンポーネント を起動します。 ConsoleOut.bat : InPortに入力された数値をコンソールに表示するConsoleOutコンポーネント を起動します。 |
SimpleIO |
SeqIn.bat SeqOut.bat |
SeqIn.bat : ランダムな数値(Short、Long、Float、Doubleとそのシーケンス型)を出力するSeqInコンポーネントを起動します。 SeqOut.bat : InPortに入力される数値(Short、Long、Float、Doubleとそのシーケンス型)を表示するSeqOutを起動します。 |
SeqIO |
MyServiceProvider.bat MyServiceConsumer.bat |
MyServiceProvider.bat : MyService型のサービスを提供するMyServiceProviderコンポーネント を起動します。 MyServiceConsumer.bat : MyService型のサービスを提供するMyServiceConsumerコンポーネント を起動します。 |
SimpleService |
ConfigSample.bat | Configuration機能の使用例のサンプルConfigSampleコンポーネント を起動します。RtcLinkからConfigurationを変更してConfigurationの挙動を理解するためのサンプルです。 | ConfigSample |
Composite.bat | 複合コンポーネント作成サンプルPeriodicECSharedComponentコンポーネント を起動します。Sensor、Controller、Motorの3つサブ・コンポネントを複合しています。 ConsoleInなどのコンポーネント接続して使ってみると良いでしょう。 | Composite |
batファイル名 | サンプルコンポーネントの簡単な説明 | 使い方解説ページ |
TkJoystickComp.bat | Tcl/Tkを用いたGUIコンポーネントのサンプル。簡易ジョイスティックコンポーネント。 | TkJoyStick |
TkMobileRobotSimulator.bat | モバイルロボットの簡易シミュレーター。ロボットの速度をInPortで受け、移動後の位置をOutPortから出力する。 | TkMobileRobotSimulator |
TkMotorComp.bat | Tcl/Tkを用いたGUIコンポーネントのサンプル。InPortで受け取った値の速度で回転する様子をGUIで表示する。 | TkMotorComp |
SliderComp.bat | Tcl/Tkを用いたGUIコンポーネントのサンプル。Sliderで指定した値をOutPortから出力する。 | SliderComp |
TkMotorPosComp.bat | Tcl/TKを用いたGUIコンポーネントのサンプル。InPortで受け取った値を回転角として動く様子をGUIで表示する。 | TkMotorPosComp |
TkLRFViewer.bat | Tcl/Tkを用いたGUIコンポーネントのサンプル。レーザーレンジセンサーなどから出力されるデータを表示する。 | tkLRFViewer |
AutoControl.bat | モバイルロボット用のコンポーネントで速度を出力する。測位センサーのデータをInPortで受け、ロボットの速度を計算してOutPortから出力する。 | Autocontrol |
batファイル名 | サンプルコンポーネントの簡単な説明 | 使い方解説ページ |
ExtConsoleIn.bat ExtConsoleOut.bat ExtConnector.bat |
ExtConsoleIn.bat : 外部からのトリガで制御されるコンソール入力された数値をOutportから出力するコンポーネントを起動します。 ExtConsoleOut.bat : 外部からのトリガで制御されるInportに入力された数値をコンソールに出力するコンポーネントを起動します。 ExtConnector.bat : ExtTrigger/ConsoleInComp.class or .pyとExtTrigger/ConsoleOutComp.class or .pyへの外部トリガー送るプログラムを起動します。 |
ExtTrigger |
batファイル名 | サンプルコンポーネントの簡単な説明 | 使い方解説ページ |
GUIIn.bat | スライダーの位置をOutportから出力するGUIのサンプルを起動します。ConsoleOutComp.classと接続することもできます。 | GUIIn |
batファイル名 | サンプルコンポーネントの簡単な説明 | 使い方解説ページ |
Affine.bat | 入力画像のアフィン変換をします。 | |
BackgroundSubtractionSimple.bat | 入力画像においてKey入力があった時点の画像から変化分を出力します。 | |
Binarization.bat | 入力画像を二値化した白黒画像に変換します。 | |
CameraViewer.bat | InPort で受け取った画像を画面に表示します。 | CameraViewer |
Chromakey.bat | 画像から特定の色を除去し物体を抽出します。 | Chromakey |
DialationErosion.bat | ダイアレーション/エロージョン処理を行います。 | |
Edge.bat | X方向一次微分画像、Y方向一次微分画像、ラプラシアン画像(二次微分画像)を出力します | |
Findcontour.bat | 輪郭抽出をして、輪郭を画像中に表示します。 | |
Flip | 画像の反転を行います。 | Flip使用例 |
Histgram.bat | 白黒化した画像の明度/コントラストの変更処理をしながら、ヒストグラムの変化を表示します。 | |
Hough.bat | ハフ変換による直線抽出 | |
ImageCalibration.bat | カメラキャリブレーションを行います。 | TkCalibGUIから自動起動 |
ImageSubtraction.bat | 入力画像から背景画像を取り出し、前景画像部を判定し、それを取り出すマスク画像を、背景画像を出力します。 | ImageSubtraction |
ObjectTracking.bat | 画面上から選択したオブジェクトを追跡して、その位置を赤い楕円形で囲んで示します。 | ObjectTracking |
OpenCVCamera.bat | USBカメラのキャプチャ画像を OutPort から出力します。 | OpenCVCamera |
Perspective.bat | 画像のパースペクティブ変換(斜め下から見たように変換します。 | |
RockPaperScissors.bat | 画像でグーチョキパーを判定します。 | |
Rotate.bat | 画像を回転と縮小拡大処理をします。 | |
Scale.bat | 画像の縮小拡大処理をします。 | |
Sepia.bat | 画像のセピア化を行います。 | |
SubtractCaptureImage.bat | 入力画像から変化のない部分を背景と判断して、前景(移動物)を取り出すマスク画像を出力します。 | SubtractCaptureImage |
Template.bat | テンプレートマッチング | |
TkCalibGUI.bat | カメラキャリブレーションを行う ImageCalibrationコンポーネント用のGUIです。 | TkCalibGUI |
Translate.bat | 画像の2次元移動処理をします。 |
OpenRTM-aist本体に改修を加えてWindows上で利用したい場合は、OpenRTM-aistのソースコードを取得してビルドできます。 2.0系からはCMakeに対応しましたので、1.2系までの手順とは異なっています。
以下のソフトウエアが必要です。詳細は OpenRTM-aist 2.0系のWindowsへのインストール をご覧ください。
openrtm.org が提供するビルド済みバイナリパッケージを下記リンク先に omniORB-4.2.5-x64-vc14-pyXX.zip という名称で用意してあります。 XXをインストールするpythonのバージョンに読み替えて適切なものをダウンロードし、適当な場所(以下の説明ではC:\workspace\omniORBとしています)に展開してください。
他のライブラリを使ってのビルドについては、 RTシステム開発 (応用編)・OpenRTM-aist(C++版)のCMakeによるビルド手順 をご覧ください。
ソースコード を入手します。OpenRTM-aist2.0系の最新ソースならばmasterブランチを、2.0.0版のリリースソースでしたらv2.0.0のタグをチェックアウトしてください。
git clone https://github.com/OpenRTM/OpenRTM-aist cd OpenRTM-aist git checkout -b v200-src refs/tags/v2.0.0
mkdir build cd build cmake -DORB_ROOT=C:/workspace/omniORB-4.2.5-x64-vc14-py310 -G "Visual Studio 17 2022" -DCMAKE_INSTALL_PREFIX=C:/workspace/openrtminstall ..
次に以下のコマンドを実行します。 最後に以下のように表示したらビルドは成功です。
cmake --build . --verbose --config Release ビルドに成功しました。 0 個の警告 0 エラー
ビルドが成功したら、次のコマンドでインストールを完了させます。
cmake --build . --config Release --target install
omniORBのダウンロードからソースビルド、インストールまでを一括処理するスクリプト(cxx_src_build.bat)を紹介します。git cloneしたOpenRTM-aistディレクトリ下に置いて実行するものです。
cd OpenRTM-aist cxx_src_build.bat > 1.log
スクリプト実行時、「Visual Studioのバージョン」「Pythonのバージョン」「インストール先」の3項目だけ環境に合わせて指定してください。
set CMAKE_GENERATOR="Visual Studio 16 2019" set PY_VERSION=39 ・・・ 37, 38, 39, 310 のいずれかを指定 set INSTALL_PREFIX=C:\localRTM-test
@echo off @rem @rem ---------- 環境に合わせる ここから ------- set CMAKE_GENERATOR="Visual Studio 16 2019" set PY_VERSION=39 set INSTALL_PREFIX=C:\localRTM-test @rem ---------- 環境に合わせる ここまで ------- set OMNI_VERSION=4.2.5 set VC_VERSION=vc14 if exist %INSTALL_PREFIX% rmdir /s/q %INSTALL_PREFIX% @rem @rem パス中の "\" を "/" に変換する set current_dir=%~dp0 set RTM_ROOT=%current_dir:\=/% set INSTALL_PREFIX=%INSTALL_PREFIX:\=/% @rem @rem omniORB download set base_omni_url="https://openrtm.org/pub/omniORB/win32/omniORB-%OMNI_VERSION%/" set OMNIORB_DIR=omniORB-%OMNI_VERSION%-x64-%VC_VERSION%-py%PY_VERSION% set OMNIORB_ZIP=%OMNIORB_DIR%.zip set OMNIORB_URL=%base_omni_url%/%OMNIORB_ZIP% if not exist %OMNIORB_ZIP% ( powershell wget -O %OMNIORB_ZIP% %OMNIORB_URL% ) if exist %OMNIORB_DIR% rmdir /s/q %OMNIORB_DIR% powershell Expand-Archive .\%OMNIORB_ZIP% -DestinationPath .\ set OMNIORB_ROOT=%RTM_ROOT%/%OMNIORB_DIR% @rem @rem set cmake parameter set CMAKE_OPT=-DORB_ROOT=%OMNIORB_ROOT% ^ -DCMAKE_INSTALL_PREFIX=%INSTALL_PREFIX% ^ -G %CMAKE_GENERATOR% ^ -A x64 .. call :CMAKE_Release exit /b @rem :CMAKE_Release if exist build-release rmdir /s/q build-release mkdir build-release cd build-release cmake %CMAKE_OPT% cmake --build . --verbose --config Release cmake --install . cd .. exit /b
OpenRTM-aistは Release/Debug 両ビルドをしています。omniORBのバイナリはvc14でビルドしたバイナリを使用して問題ないが、vc16用バイナリを用意して使用しています。
@echo off @rem set CMAKE_GENERATOR="Visual Studio 16 2019" set VC_VERSION=vc16 set SSL_VC_VERSION=vc14 set PY_VERSION=39 set INSTALL_PREFIX=C:\localRTM set OMNI_VERSION=4.2.5 set SSL_VERSION=3.0.1 set BOOST_PATH=C:\local\boost_1_78_0 set FLB_ROOT=C:\localFLB @rem if exist %INSTALL_PREFIX% rmdir /s/q %INSTALL_PREFIX% @rem ------------ @rem パス中の "\" を "/" に変換する set current_dir=%~dp0 set RTM_ROOT=%current_dir:\=/% set BOOST_PATH=%BOOST_PATH:\=/% set INSTALL_PREFIX=%INSTALL_PREFIX:\=/% set FLB_ROOT=%FLB_ROOT:\=/% @rem ------------ @rem omniORB download set base_omni_url="https://openrtm.org/pub/omniORB/win32/omniORB-%OMNI_VERSION%/" set OMNIORB_DIR=omniORB-%OMNI_VERSION%-x64-%VC_VERSION%-py%PY_VERSION% set OMNIORB_ZIP=%OMNIORB_DIR%.zip set OMNIORB_URL=%base_omni_url%/%OMNIORB_ZIP% if not exist %OMNIORB_ZIP% ( powershell wget -O %OMNIORB_ZIP% %OMNIORB_URL% ) if exist %OMNIORB_DIR% rmdir /s/q %OMNIORB_DIR% powershell Expand-Archive .\%OMNIORB_ZIP% -DestinationPath .\ set OMNIORB_ROOT=%RTM_ROOT%/%OMNIORB_DIR% @rem ------------ @rem OpenSSL download set base_ssl_url="https://openrtm.org/pub/OpenSSL/%SSL_VERSION%" set OPENSSL_ZIP=openssl-%SSL_VERSION%-win64-%SSL_VC_VERSION%.zip set OPENSSL_URL=%base_ssl_url%/%OPENSSL_ZIP% if not exist %OPENSSL_ZIP% ( powershell wget -O %OPENSSL_ZIP% %OPENSSL_URL% ) if exist OpenSSL rmdir /s/q OpenSSL powershell Expand-Archive .\%OPENSSL_ZIP% -DestinationPath .\ set SSL_ROOT=%RTM_ROOT%OpenSSL/build @rem ------------ @rem set cmake parameter set CMAKE_OPT=-DRTM_VC_VER=%VC_VERSION% ^ -DORB_ROOT=%OMNIORB_ROOT% ^ -DCORBA=omniORB ^ -DSSL_ENABLE=ON ^ -DOPENSSL_ROOT=%SSL_ROOT% ^ -DCMAKE_INSTALL_PREFIX=%INSTALL_PREFIX% ^ -DWINDOWS_MSM_BUILD=ON ^ -DBOOST_ROOT=%BOOST_PATH% ^ -DFLUENTBIT_ENABLE=ON ^ -DFLUENTBIT_ROOT=%FLB_ROOT% ^ -G %CMAKE_GENERATOR% ^ -A x64 .. call :CMAKE_Debug call :CMAKE_Release exit /b @rem ------------ :CMAKE_Release if exist build-release rmdir /s/q build-release mkdir build-release cd build-release cmake %CMAKE_OPT% cmake --build . --verbose --config Release cmake --install . cd .. exit /b @rem ------------ :CMAKE_Debug if exist build-debug rmdir /s/q build-debug mkdir build-debug cd build-debug cmake %CMAKE_OPT% cmake --build . --verbose --config Debug cmake --install . --config Debug cd .. exit /b
インストーラーは以下の作業内容に従ってファイルのコピー、システム設定を行います。 インストール、アンインストールが正しく行われているかの確認する際の参考のために以下に記しておきます。
RTM_BASE=C:\Program Files\OpenRTM-aist\ RTM_ROOT=C:\Program Files\OpenRTM-aist\2.0.0\ RTM_VC_VERSION=vc16 (※インストール時Visual Studioのバージョン2015、2017を選択した場合は、vc14) RTM_JAVA_ROOT=C:\Program Files\OpenRTM-aist\2.0.0\ RTM_IDL_DIR=C:\Program Files\OpenRTM-aist\2.0.0\rtm\idl\ OMNI_ROOT=C:\Program Files\OpenRTM-aist\2.0.0\omniORB\4.2.5_vc16\ OpenCV_DIR=C:\Program Files\OpenRTM-aist\2.0.0\OpenCV4.4\ OpenRTM_DIR=C:\Program Files\OpenRTM-aist\2.0.0\cmake\
C:\Program Files\OpenRTM-aist\2.0.0\bin\vc16\ C:\Program Files\OpenRTM-aist\2.0.0\omniORB\4.2.5_vc16\bin\x86_win32\ C:\Program Files\OpenRTM-aist\2.0.0\OpenCV4.4\x64\vc16\bin\
ファイルは以下のような構造でインストールされます。
<install_dir> + OpenRTM-aist + 1.x.x :旧バージョンのランタイム + 2.0.x + bin: dll、lib各種コマンド + cmake: OpenRTMConfig.cmake + coil: coilヘッダファイル + Components + C++ + Examples: C++サンプルコンポーネント + OpenCV: OpenCVのC++サンプルコンポーネント + Java: Java サンプルコンポーネント + Python: Python サンプルコンポーネント + ext: 拡張モジュール用ファイル + hrtm: HRTMのラッパーライブラリ + jar: jarファイル + jre: AdoptOpenJDK JRE + omniORB 4.2.5 + OpenCV 4.4 + rtm: OpenRTM-aistヘッダファイル + idl: OpenRTM-aistIDLファイル + util + OpenRTP: RTCBuilderとRTSystemEditorツール + RTSystemEditor: RTSystem Editorのみのファイル + VCVerChanger: 使用しているVisual Studioのバージョンを指定するツール