Windowsへのインストール

インストール

windows10-logo.png

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

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

Visual Studio

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

現在動作確認できているVisual Studioの最新バージョンは2022です。 
C++の開発環境を入れ忘れることがよくあります。以下の説明を一読することをお勧めします。

Python

PythonはPython言語版のRTCの開発だけでなく、OpenRTM-aistの様々なツールでも使用していますので必ずインストールする必要があります。 OpenRTM-aistがサポートしているPythonは 3.7, 3.8, 3.9, 3.10, 3.11 です。 最新版をインストールすることをお勧めします。

インストールする際以下の点に注意してください。

CMake

CMakeはWindowsやLinux等様々な環境でビルドに必要なファイル(Visual Studioのプロジェクトファイル、Linux上のMakefile等)を自動生成するために必要です。
できるだけ最新版をインストールしてください。

Doxygen & Graphviz

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

JDK8

Javaで開発される場合に必要となります。下記ページの解説をご覧ください。

OpenRTM-aistのインストール

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

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

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

OpenRTM-aist-2.0.1-RELEASE_x86_64.msi MD5:057354e97e6dd531801a9ae435ed2abe 771MB
Microsoft Edge をお使いでダウンロードできない場合は、下記ページの解説をご覧ください。

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

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

インストール

インストール過程の詳細は、下記ページをご覧ください。 正しくインストールされているかどうかの確認として、サンプルコンポーネントを実行してみてください。 インストーラが設定するシステム環境変数、インストールするファイル等の詳細は、下記ページをご覧ください。

Visual Studioのバージョン指定

インストールされている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++_Examples」「C++_OpenCV-Examples」「Python_Examples」「Java_Examples」の各フォルダ下にbatファイルがあります。 詳細は、10分で始めようページの解説をご覧ください。


サンプルコンポーネントのインストール先は以下です。

 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

サンプルコンポーネント一覧

付属しているサンプルコンポーネントの簡単な説明と、使い方を解説しているページへのリンクを以下に示します。

C++版、Python版、Java版に付属

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

Python版のみに付属

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

Python版、Java版に付属

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

Java版のみに付属

batファイル名 サンプルコンポーネントの簡単な説明 使い方解説ページ
GUIIn.bat スライダーの位置をOutportから出力するGUIのサンプルを起動します。ConsoleOutComp.classと接続することもできます。 GUIIn

OpenCV C++版

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次元移動処理をします。

ソースからのビルド(C++版)

OpenRTM-aist本体に改修を加えてWindows上で利用したい場合は、OpenRTM-aistのソースコードを取得してビルドできます。 2.0系からはCMakeに対応しましたので、1.2系までの手順とは異なっています。

必要なソフトウエア・ライブラリ

以下のソフトウエアが必要です。詳細は OpenRTM-aist 2.0系のWindowsへのインストール をご覧ください。

  • Visual Studio
  • Python
  • CMake
  • Doxygen & Graphviz(ドキュメントビルドも行いたい場合)
また、omniORBライブラリも必要です。
  • omniORB 4.2.5 (2022/06現在)

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

CMakeオプションで以下を指定して実行します。
  • -DORB_ROOT : ダウンロード・展開したomniORBのパス
  • -G : Visual Studio のバージョン(「Visual Studio 17 2022」「Visual Studio 16 2019」など)
  • -DCMAKE_INSTALL_PREFIX : ソースからのインストール先パス

 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

cxx_src_build.bat

 @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

参考:msi生成用ビルドスクリプト

msiに組み込むmsm(vc2019, 2022向け) 作成用ビルドスクリプトです。以下を利用しています。
  • Boostライブラリ 1.78.0
  • OpenSSL 3.0.1
  • Fluent Bit v1.8.9 をソースからビルド

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

OpenRTM-aistインストーラ作業内容


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

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

  • インストールディレクトリ(C:\Program Files)下に各種ファイルをコピー
  • スタートメニュー以下にOpenRTM-aistフォルダーを作成し各種ショートカットを設定
  • 環境変数の設定(OpenRTM-aist 2.0.0版をデフォルト設定でインストールした場合)
     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\
  • PATHへの追加設定(OpenRTM-aist 2.0.0版をデフォルト設定でインストールした場合)
     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のバージョンを指定するツール