2.コンポーネントの雛型の生成

コンポーネントの雛型の生成のためにRTCBuilderを起動してください。

RTCBuilderとはコンポーネントの雛型を生成するためのツールです。コンポーネントの基本情報などを設定できます。

スタートメニューの「OpenRTM-aist 1.2.2 x86_64」の下のOpenRTPから起動します。
この時ワークスペースは[C:\rtcws\]を指定してください。

2.1 新規プロジェクト

新規プロジェクトを作成します。左上の「Open New RTCBuilder Editor」のアイコン(RTの文字とカナヅチのマーク)をクリックして作成を開始します。プロジェクト名は[RaspWEBCamera]とします。

2.2 プロファイル情報の入力とコードの生成
2.2.1 基本

一番左の「基本」タブを選択し、基本情報を設定します。コンポーネントの名前や概要などを記入します。ラベルが赤文字の項目は必須項目です。その他はデフォルトのままで大丈夫です。

モジュール名: RaspWEBCamera
モジュール概要: get imageData in WEBCamera
バージョン:1.0.0
ベンダ名:Aizu
モジュールカテゴリ: Camera
コンポーネント型:STATIC
アクティビティ型:PERIODIC
コンポーネント種類:DataFlowComponent
最大インスタンス数:1
実行型:PeriodicExecutionContext
実行周期:1000.0

図 2-1 OpenRTP: 基本タブ

図 2-1 OpenRTP: 基本タブ

2.2.2 アクティビティ

次に、「アクティビティ」タブを選択し、使用するアクションコールバックを指定します。
WEBカメラコンポーネントでは、onActivated(), onDeactivated(), onExecute()コールバックを使用します。
画面のonAtivatedの文字をクリックし文字を赤くします。その後画面下部のラジオボタンにて"on"を選択します。onDeactivated, onExecuteについても同様の操作を行います。
画面は以下ののようになります。

図 2-2 OpenRTPアクティビティタブ

図 2-2 OpenRTPアクティビティタブ

2.2.3 データポート

「データポート」タブを選択し、データポートの情報を入力します。 先ほど決めた仕様を基に以下のように入力します。

・OutPort
ポート名: WebCameraImageOut
データ型: RTC::CameraImage
変数名: WebCameraImage
表示位置: right

図 2-3 OpenRTP: データポートタブ

図 2-3 OpenRTP: データポートタブ

2.2.4 コンフィギュレーション

「コンフィギュレーション」タブを選択し、先ほど決めた仕様を元に、コンフィギュレーションの情報を入力します。制約条件およびWidgetとは、RTSystemEditorでコンポーネントのコンフィギュレーションパラメータを表示する際にGUIで値の変更を行うための形式を表すものです。
ここでは、カメラのサイズをコンフィギュレーションで操作できるようにするので、[height]と[width]を設定します。

名称: height
データ型: int
デフォルト値: 240
変数名: height
単位: なし
制約条件: なし
Widget: text
名称: width
データ型: int
デフォルト値: 320
変数名: width
単位: なし
制約条件: なし
Widget: text


図 2-4 OpenRTP: コンフィグレーションタブ

図 2-4 OpenRTP: コンフィグレーションタブ

2.2.4 言語・環境

「言語・環境」タブを選択し、プログラミング言語を選択します。 ここでは、C++(言語)を選択します。言語・環境はデフォルトでは設定されていないので、指定し忘れるとコード生成時にエラーになりますので、 必ず言語の指定を行うようにしてください。

図 2-5 OpenRTP: 言語・環境タブ

図 2-5 OpenRTP: 言語・環境タブ

全ての設定が完了したら、「基本」タブに戻りコード生成ボタンをクリックします。問題がなければコンポーネントの雛型が生成されます。

図 2-6 OpenRTP: コード生成

図 2-6 OpenRTP: コード生成

2.3 CMake

ここまでの作業でWEBカメラコンポーネントの雛型が生成されました。
次の作業としてCMakeを利用してビルド環境のConfigureを行います。
スタートメニューなどからCMake (cmake-gui)を起動します。

画面上部に以下のテキストボックスがあります。
・Where is the source code
・Where to build the binaries
「Where is the source code」にCMakeLists.txtがある場所、「Where to build the binaries」にビルドディレクトリを指定します。
CMakeLists.txtはデフォルトでは、<ワークス ペースディレクトリ>/ RaspWEBCameraに存在します。
ビルドディレクトリとは、ビルドするためのプロジェクトファイルやオブジェクトファイル、バイナリを格納する場所のことです。場所は任意ですが、この場合<ワークスペースディレクトリ>/RaspWEBCamera/buildのように分かりやすい名前をつけたRaspWEBCameraのサブディレクトリを指定することをお勧めします。
ディレクトリは自動で作成されるので指定前に作成する必要はありません。
今回は以下のようになります。

Where is the source code C:\rtcws\RaspWEBCamera
Where to build the binaries C:\rtcws\RaspWEBCamera\build


図 2-7 CMake

図 2-7 CMake

指定したら、下のConfigureボタンを押します。すると以下のようなダイアログが表示されますので、生成したいプロジェクトの種類を指定します。

図2-8 CMake:プロジェクト選択画面

図2-8 CMake:プロジェクト選択画面

・Specifty the generator for project

Visual Studioバージョン 生成したいプロジェクトの種類
Visual Studio 2013 Visual Studio 12 2013
Visual Studio 2015 Visual Studio 14 2015
Visual Studio 2017 Visual Studio 15 2017
Visual Studio 2019 Visual Studio 16 2019
・Optional platform for generator

オペレーション 選択
32 bit win32
64 bit x64

※空欄のまま実行すると64bitで実行されます。
ダイアログでFinishを押すとConfigureが始まります。問題がなければ下部のログウインドウにConfiguring doneと出力されますので、続けてGenerateボタンを押します。Generating doneと表示されればプロジェクトファイル・ソリューションファイル等の出力が完了します。