>gen.bat
rtc-template.py -bcxx
--module-name=MRCConvertor
--module-desc="Convertor component for MobileRobot component"
--module-version=1.0.0 --module-vendor=AIST
--module-category=Category
--module-comp-type=DataFlowComponent --module-act-type=PERIODIC
--module-max-inst=1
--inport=velFromInput:TimedFloatSeq --outport=velToWheel:TimedFloatSeq
File "MRCConvertor.h" was generated.
File "MRCConvertor.cpp" was generated.
File "MRCConvertorComp.cpp" was generated.
File "Makefile.MRCConvertor" was generated.
File "MRCConvertorComp_vc8.vcproj" was generated.
File "MRCConvertor_vc8.vcproj" was generated.
File "MRCConvertorComp_vc9.vcproj" was generated.
File "MRCConvertor_vc9.vcproj" was generated.
File "MRCConvertor_vc8.sln" was generated.
File "MRCConvertor_vc9.sln" was generated.
File "copyprops.bat" was generated.
File "user_config.vsprops" was generated.
File "README.MRCConvertor" was generated.
File "MRCConvertor.yaml" was generated.
Eclipse版 RtcTemplate 編
Eclipse版 RtcTemplate での対応は下記のようになります。
Programing language selection: C++
Module definition
Module name: MRCConvertor
Module decription: Convertor component for MobileRobot component
データポートのあるコンポーネント
ここでは、データポートを2つ持つコンポーネント (MRCConvertor) を VC8 にて作成します。
コンポーネントの概要
入力デバイスからのデータを車輪2つの速度に変換し、OutPort から出力するコンポーネント。
Joystick等の入力デバイスにて移動ロボット(前輪2、後輪1、前輪だけが駆動)を操作する際に、使用することができる。
作成する RTC の仕様は以下のとおりです。
MRCConvertor の雛型を生成
RtcTemplate にて雛型を生成します。
作業用フォルダーの作成
適当な場所に作業用フォルダーを作成します。
今回は、フォルダー名をコンポーネント名 (MRCConvertor) と同じにします。
CUI版 rtc-template 編 (gen.bat)
rtc-template の実行を簡単にするために、下記のようなバッチファイルを先ほど作成した作業用フォルダーに作成します。
rtc-template (gen.bat) の実行
下記のように gen.bat ファイルを実行します。
Eclipse版 RtcTemplate 編
Eclipse版 RtcTemplate での対応は下記のようになります。
copyprops.bat の実行
RtcTemplate 実行により、copyprops.bat ファイルが作業用フォルダーに生成されます。
この copyprops.bat ファイルを用い、コンポーネントのビルドに必要な rtm_config.vsprops を作業フォルダーにコピーします。
copyprops.bat ファイルをダブルクリックしてください。
MRCConvertor の実装
Visual Studio の起動
MRCConvertorComp_vc8.vcproj をダブルクリックし、Visual Studio を起動します。
ヘッダファイルの編集
Visual Studio のソリューションエクスプローラーにて、MRCConvertorComp > Header Files の順にクリックし、 MRCConvertor.h をダブルクリックします。
今回は、std::vector と math ライブラリを使用しますので、2つのヘッダファイルをインクルードします。
今回は、MobileRobot (前輪2、後輪1、前輪だけが駆動) の移動ベクトルを車輪速度に変換するためのメソッド convert()、変換に必要な係数 m_k を宣言します。
ソースファイルの編集
Visual Studio のソリューションエクスプローラーにて、MRCConvertorComp > Source Files の順にクリックし、 MRCConvertor.cpp をダブルクリックします。
onExecute() のコメントをはずし、以下のように実装します。
ここで行われていることは、
ビルド
Visual Studio のメニューから [ビルド] > [ソリューションのビルド] をクリックしコンポーネントのビルドを行います。
rtc.conf の作成
エディタにて以下の内容を記述し、rtc.conf というファイル名で Debug あるいは Release フォルダーに保存します。
実行
ビルドにてエラーが無かった場合、Debug あるいは Release フォルダーに rtc.conf を作成し、MRCConvertorComp.exe を実行します。
MRCConvertorComp.exe を実行する前に NamingService を起動してください。ネームサーバーの起動
<OpenRTM-aist インストールフォルダー>\bin\rtm-naming.batをダブルクリックしCORBAネームサーバーを起動します。
MRCConvertorComp.exe の実行
Debug あるいは Release フォルダーに移動し、MRCConvertorComp.exe を実行します。