ソフトウェア関連 >> 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コマンド''を利用した方が便利だと思います。
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)を改変したものです。このプロフラムは、下記のように動作します。
- 実行ファイルがRtcName.exeの場合、''./RtcName'', ''./RtcName-script.py'', ''./RtcName.pyz'', ''./RtcName.py'', ''./scripts/RtcName'', ''./scripts/RtcName-script.py'', ''./scripts/RtcName.pyz'', ''./scripts/RtcName.py'' の順番で実行するPythonスクリプトを検索します。
- Pythonスクリプトが見つかれば、そのファイルを読み込みShebangが設定されていないか、"#!/usr/bin/env python", "#! /usr/bin/env python" であった場合には、python.exeを ''./bin/python.exe'', ''環境変数 PYTHON_EXEで指定したファイル'', ''../python.exe''の順に検索し、python.exeの引数として上記のPythonスクリプトを実行します。
- Shebangが設定されていればそのファイルをコマンドとし、上記のPythonスクリプトを引数として実行します。
PythonのRTCの実装の時に、動作確認では rtcmdのプロンプトからstartコマンドを使って起動させています。