RTCの起動について
Simple Wiki Based Contents Management System
ソフトウェア関連 >> OpenRTM-aist のRTC開発システム(Yarbs) >> RTCの起動について

RTCの起動について

C++のRTCの起動

Yabrdsでは、インストールしたC++のRTCの実行には、rtcrun.batを使用しています。
このバッチファイルは、RTC_PKG_PATHで指定したディレクトリまたはRTM_ROOT\Componentsの下を検索し、RTCの起動を補助します。(RTC_PKG_PATHは、rtc_make.batでビルドした時に、CMAKE_INSTALL_PREFEXになります)
RTCの実行ファイルがあるディレクトリに、setup.batがあれば事前読み込みを行いますので、setup.batが適切に設定されていれば、RTCを起動することができます。(動作中の環境と異なるVC++でビルドしたRTCの場合など)
ただし、rtcrun.batは、ネームサービスの自動起動はしませんので、RTCの起動の前にrtcmdを起動して、startコマンドやsystemコマンドを利用した方が便利だと思います。
C++のRTCの実装の時に、動作確認にはこのバッチファイルを使っています。

PythonのRTCの起動

Yarbsでは、PythonでRTCを実装した場合には、インストールディレクトリを特に指定していません。実装したディレクトリにRTCと同名の実行ファイル(.exe)がありますので、それをコマンドラインから起動すればよいと思います。
Yarbsで使用しているPythonのRTC用の実行ファイルについては、Githubに公開しています。このプログラムは、setuptoolsに付属のもの(launcher.c)を改変したものです。このプロフラムは、下記のように動作します。
  1. 実行ファイルがRtcName.exeの場合、./RtcName, ./RtcName-script.py, ./RtcName.pyz, ./RtcName.py, ./scripts/RtcName, ./scripts/RtcName-script.py, ./scripts/RtcName.pyz, ./scripts/RtcName.py の順番で実行するPythonスクリプトを検索します。
  2. Pythonスクリプトが見つかれば、そのファイルを読み込みShebangが設定されていないか、"#!/usr/bin/env python", "#! /usr/bin/env python" であった場合には、python.exeを ./bin/python.exe, 環境変数 PYTHON_EXEで指定したファイル, ../python.exeの順に検索し、python.exeの引数として上記のPythonスクリプトを実行します。
  3. Shebangが設定されていればそのファイルをコマンドとし、上記のPythonスクリプトを引数として実行します。
PythonのRTCの実装の時に、動作確認では rtcmdのプロンプトからstartコマンドを使って起動させています。