Composite

このサンプルは、OpenRTM-aistのC++版、Python版、Java版に付属されています。

概要

複合コンポーネントCompositeの使用方法を示したサンプルです。 複合コンポーネントをActivateする前に、複合コンポーネントを構成している子のコンポーネント間を接続する必要があります。

  • Compositeコンポーネントは、Sensor、Controller、Motorの3つのコンポーネントを子に持っています。
  • Compositeコンポーネントの動作は、ConsoleIn/ConsoleOutコンポーネントと接続して確認できます。

起動画面

  • Compositeコンポーネントを実行すると、Name Service Viewに4つのコンポーネント名が表示されます。
  • Controller、Motor、Sensorの3つを複合化したコンポーネントがPeriodicECShareCompositeですので、これをSystem Editorにドラッグ&ドロップします。
    composite_001.jpg
    Composite実行例(複合コンポーネントをドラッグ&ドロップ)


複合コンポーネント内を表示させるため、PeriodicECShareCompositeをダブルクリックすると、別のエディタに表示されますので、コンポーネント間を接続します。

composite_002.jpg
Composite実行例(複合コンポーネントの子コンポーネント間を接続する)


ここではConsoleIn/ConsoleOutコンポーネントと接続した場合の動作例を示します。

composite_003.jpg
Composite実行例(RTSystemEditor接続画面)


ConsoleInで「111」と入力した場合、ConsoleOutで「888」と表示されれば正しい動作です。 複合コンポーネントを構成している子コンポーネントは、入力値(コンソール画面に表示されている値)を2倍して出力しています。

composite_004.jpg composite_005.jpg
Composite実行例(左:複合コンポーネント画面、右:ConsoleOut画面)

使い方

Compositeのサンプルは、入力データポートから受け取った値を、3つの子コンポーネントがそれぞれ2倍の値にして出力しているので、最終的にCompositeの出力データポートから8倍の値が出力されるサンプルです。

  • 手順
    • RTSystemEditorを起動し、新規SystemEditorを開きます。RTSystemEditorの使用方法の詳細についてはRTSystemEditorを参照
    • Compositeコンポーネントを起動します。コンポーネントの起動はOSやOpenRTM-aistの言語によって異なりますので、以下の表を参考に起動します。
Windowsの場合 Linuxの場合
C++版 Composite.bat Composite
Python版 Composite.bat Composite.py
Java版 Composite.bat Composite.sh
    • RTSystemEditorのName Service ViewにPeriodicECShareCompositeが現れるので、それらをSystemEditor上にドラッグします。
    • PeriodicECShareCompositeをダブルクリックし、子コンポーネント間のポートを結びます
    • ConsoleInとConsoleOutの両コンポーネントを起動し、PeriodicECShareCompositeと対応ポートを接続します。(上図Composite実行例を参照)
    • どちらかのコンポーネントを右クリックし、[Activate Systems]を選択します。