第2部
RTコンポーネント作成入門
宮本 信彦
国立研究開発法人産業技術総合研究所
ロボットイノベーション研究センター
ロボットソフトウェアプラットフォーム研究チーム

資料(USBメモリで配布)• ppt– 第2部、第3部のスライド• WEBページ(手順を記載したページ)––––第2部(Windows)
第2部(Ubuntu)
第3部
第4部• OpenRTM-aist_1.2.0版 (Windows用インストーラ)– OpenRTM-aistのインストールに問題があった場合に使用してください• インストールスクリプト(Ubuntu用)– この講習で使うシミュレータのインストールスクリプト• EXE– RaspberryPiMouseSimulatorComp.exe(シミュレータ)– EV3SimulatorComp.exe(シミュレータ)• sample– RobotController(本実習で作成するコンポーネントの見本)• ポータブル版LibreOffice– 第4部で使用するOpenOffice用RTC付属のLibreOffice2資料• USBメモリが挿せない場合は以下からダウンロード– http://openrtm.org/ROBOMECH2019– メールでお知らせしたwebページ

3インストールの確認(Windows)• OpenRTM-aist––

OpenRTM-aist-1.2.0-RELEASE_x86_64.msi
インストール後に再起動する(2回再起動を必要とする環境もある)• Python––python-2.7.16.amd64.msi
OpenRTM-aistの64bit版をインストールする場合はPythonも64bit版をインストールする。

• CMake–cmake-3.14.1-win64-x64.msi• Doxygen–doxygen-1.8.14-setup.exe• Visual Studio–

Visual Studio 2017 Community Edition

4インストールの確認(Ubuntu)•OpenRTM-aist––––––––––•$ sudo apt-get install cmake cmake-gui

Doxygen–•$ sudo apt-get install libomniorb4-dev omniidl omniorb-nameserver$ sudo apt-get install python-omniorb-omg omniidl-python

CMake–•$ wget https://github.com/OpenRTM/OpenRTP-aist/releases/download/v1.2.0/OpenRTPaist_1.2.0_ubuntu18.04_amd64_package.tar.gz$ tar xf OpenRTP-aist_1.2.0_ubuntu18.04_amd64_package.tar.gz$ cd OpenRTP-aist_1.2.0_ubuntu18.04_amd64_package$ sudo sh install-openrtm-deb-packages.sh$ cd ..

omniORB––•$ wget https://github.com/OpenRTM/OpenRTM-aist/releases/download/v1.2.0/OpenRTMaist_1.2.0_ubuntu18.04_amd64_package.tar.gz$ tar xf OpenRTM-aist_1.2.0_ubuntu18.04_amd64_package.tar.gz$ cd OpenRTM-aist_1.2.0_ubuntu18.04_amd64_package$ sudo sh install-openrtm-deb-packages.sh$ cd ..

$ sudo apt-get install doxygenJava– $ sudo apt-get install openjdk-8-jdk•

Code::Blocks(任意)– $ sudo apt-get install codeblocks
5

実習内容• シミュレータ上の車輪型移動ロボット(Raspberry Piマウス)の操作を行うコンポーネントの作成– GUIにより目標速度入力– センサ値が一定以上の場合に停止

6

Raspberry Piマウス概要• Raspberry Piマウスはアールティが販売している独立二輪駆動型の移動ロボット

7

全体の手順• RTC Builderによるソースコード等のひな型の作成• ソースコードの編集、ビルド– ビルドに必要な各種ファイルを生成• CMakeにより各種ファイル生成– ソースコードの編集• RobotController.h、 RobotController.cppの編集– ビルド• Visual Studio、Code::Blocks• RTシステムエディタによるRTシステム作成、動作確認– RTシステム作成• データポート接続、コンフィギュレーションパラメータ設定

8

コンポーネント開発ツール
RTC Builderについて

9

RTC Builder• コンポーネントのプロファイル情報を入力し，ソースコード等のひな型を生成するツール– C++、Python、Javaのソースコードを出力10

RTC Builderの起動• 起動する手順– Windows(OpenRTM-aist 1.2)
• デスクトップのショートカットをダブルクリック– デスクトップのショートカットがない場合• Windows 7– 「スタート」→「すべてのプログラム」→「OpenRTM-aist 1.2.0」→「Tools」→「OpenRTP」• Windows 8.1– 「スタート」→「アプリビュー(右下矢印)」→「OpenRTM-aist 1.2.0」→「OpenRTP」– ※同じフォルダに「RTSystemEditorRCP」がありますが、これはRTC Builderが使えないので今回は「OpenRTP」を起動してください。

• Windows 10– 左下の「ここに入力して検索」にOpenRTPと入力して、表示されたOpenRTPを起動– Ubuntu• 以下のコマンドを入力• $ openrtp

11

RTC Builderの起動• Windows 8.1
デスクトップスタート画面

アプリビュー

12

RTC Builderの起動• Windows 10

左下の「ここに入力して検索」に「OpenRTP」と入力
13

RTC Builderの起動

14

RTC Builderの起動

15

プロジェクト作成• RobotControllerコンポーネントのスケルトンコードを作成する。
–

車輪型移動ロボット操作コンポーネント••

GUIでロボットを操作
センサ値が一定以上の場合に停止

16資料• USBメモリで配布– 「WEBページ」フォルダのHTMLファイルを開く• チュートリアル(RTM講習会、Windows、第2部) _ OpenRTM-aist.html• チュートリアル(RTM講習会、Ubuntu、第2部) _ OpenRTM-aist.html• もしくはRTミドルウェア講習会のページからリンクをクリック– チュートリアル(第2部、Windows)– チュートリアル(第2部、Ubuntu)

17プロジェクト作成•

Eclipse起動時にワークスペースに指定したディレクトリに「RobotController」というフォルダが作成される–•

この時点では「RTC.xml」と「.project」のみが生成されている

以下の項目が設定する
–
–
–
–
–
–
–
–

基本プロファイル
アクティビティ・プロファイル
データポート・プロファイル
サービスポート・プロファイル
コンフィギュレーション
ドキュメント
言語環境
RTC.xml18

基本プロファイルの入力••

RTコンポーネントのプロファイル情報など，コンポーネントの基本情報を設定．
コード生成，インポート/エクスポート，パッケージング処理を実行

19

基本プロファイルの入力••••••••••••

モジュール名– RobotController
モジュール概要– 任意(Robot Controller Component)バージョン– 任意(1.0.0)
ベンダ名
– 任意
モジュールカテゴリ– 任意(Controller)
コンポーネント型– STATIC
アクティビティ型– PERIODIC
コンポーネントの種類– DataFlow
最大インスタンス数– 1
実行型– PeriodicExecutionContext
実行周期– 1000.0
概要– 任意20アクティビティの設定•

使用するアクティビティを設定する•

指定アクティビティを有効にする手順

アクティビティの設定
コールバック関数

処理

onInitialize

初期化処理

onActivated

アクティブ化されるとき1度だけ呼ばれる

onExecute

アクティブ状態時に周期的に呼ばれる

onDeactivated

非アクティブ化されるとき1度だけ呼ばれる

onAborting

ERROR状態に入る前に1度だけ呼ばれる

onResetresetされる時に1度だけ呼ばれるonError

ERROR状態のときに周期的に呼ばれる

onFinalize

終了時に1度だけ呼ばれる

onStateUpdate

onExecuteの後毎回呼ばれる

onRateChanged

ExecutionContextのrateが変更されたとき1度だ
け呼ばれる

onStartup

ExecutionContextが実行を開始するとき1度だ
け呼ばれる

onShutdown

ExecutionContextが実行を停止するとき1度だ
け呼ばれる
22

アクティビティの設定•

以下のアクティビティを有効にする
–
–
–
–

•

onInitialize
onActivatedonDeactivatedonExecute

今回は練習のため、Documentationは空白でも大丈夫です23データポートの設定•

InPort、OutPortの追加、設定を行う•

データポートを追加する手順

データポートの設定• 以下のOutPortを設定する– out• データ型：
RTC::TimedVelocity2D• 他の項目は任意• ※TimedVelocity3D型、TimedVector2Dと間違えないよ
うにしてください• 以下のInPortを設定する– in• データ型：
RTC::TimedShortSeq• 他の項目は任意• ※TimedShort型と間違えないようにしてください。

データポートについて• 連続したデータを通信するためのポート• 以下の例はデータフロー型がpush、サブスクリプション型がflush、インターフェース型がcorba_cdrの場合

RTC::TimedVelocity2D型について• ExtendedDataTypes.idlで定義されている移動ロボットの速度を表現するためのデータ型– vx: X軸方向の速度– vy: Y軸方向の速度(車輪が横滑りしないと仮定すると0)– va: Z軸周りの角速度

vxで直進速度、vaで回転速度を設定

コンフィギュレーションの設定•

コンフィギュレーションパラメータの追加、設定を行う•

コンフィギュレーションパラメータを追加する手順

コンフィギュレーションの設定• 以下のコンフィギュレーション
パラメータを設定する– speed_x••••••

データ型：double
デフォルト値： 0.0
制約条件：-1.5<x<1.5
Widget：slider
Step: 0.01
他の項目は任意– speed_r
•
•
•
••
•

データ型：double
デフォルト値： 0.0
制約条件：-2.0<x<2.0
Widget：slider
Step: 0.01
他の項目は任意GUI(スライダー)による移動ロボットの操作ができるようにするコンフィギュレーションパラメータの制約、
Widgetの設定• RT System Editorでコンフィギュレーションパラメータを編集する際にGUIを表示する• Widget：text• 制約条件：0<=x<=100• Widget：spin• Step：10• 制約条件：0<=x<=100• Widget：slider• Step：10

コンフィギュレーションパラメータの制約、
Widgetの設定• 制約条件：(0,1,2,3)• Widget：radio• 制約条件：(0,1,2,3)• Widget：checkbox• 制約条件：(0,1,2,3)• Widget：ordered_list

コンフィギュレーションの設定• 以下のコンフィギュレーション
パラメータを追加– stop_d• データ型：int• デフォルト値： 30• 他の項目は任意

センサ値がこの値以上の場合に停止Raspberry Piマウスの距離センサ• Raspberry Piマウス実機には距離センサが搭載されている– 計測した値は物体までの距離が近いほど大きな値となる• シミュレータでもこのデータに近い値を計算して出力しているドキュメントの設定• 各種ドキュメント情報を設定• 今回は適当に設定しておいてください。
– 空白でも大丈夫です言語の設定• 実装する言語，動作環境に関する情報を設定スケルトンコードの生成• 基本タブからコード生成ボタンを押すことでスケルトンコードが生成される– Workspace¥RobotController以下に生成• ソースコード– C++ソースファイル(.cpp)– ヘッダーファイル(.h)» このソースコードにロボットを操作する処理を記述する• CMakeの設定ファイル(CMakeLists.txt)• rtc.conf、RobotController.conf• 以下略• 生成したファイルの確認– 作成したプロジェクトを右クリックして、「表示方法」→「システムエクスプローラー」を選択する– エクスプローラーでワークスペースのフォルダが開くため、上記のファイルが存在するかを確認する

手順• ビルドに必要な各種ファイルを生成–

CMakeにより各種ファイル生成• ソースコードの編集––

RobotController.hの編集
RobotController.cppの編集• ビルド– Windows： Visual Studio– Ubuntu： Code::Blocks37

ソースコードの編集、RTCのビルド

38

CMake• ビルドに必要な各種ファイルを生成– CMakeLists.txtに設定を記述•RTC Builderでスケルトンコードを作成した時にCMakeLists.txtも生成されている

39

ビルドに必要なファイルの生成• CMakeを使用する– Windows 7• 「スタート」→「すべてのプログラム」→「CMake」→「CMake (cmake-gui)」– Windows 8.1• 「スタート」→「アプリビュー(右下矢印)」→「CMake」→「CMake (cmake-gui)」– Windows 10• 左下の「ここに入力して検索」にCMakeと入力して表示されたCMake(cmake-gui)を起動– Ubuntu• コマンドで「cmake-gui」を入力

40

cmake-guiの起動• Windows 8.1
デスクトップ

スタート画面

アプリビュー

41

RTC Builderの起動• Windows 10

42

cmake-guiの起動• Windows 10

左下の「ここに入力して検索」に「cmake」と入力
43

ビルドに必要なファイルの生成• CMakeLists.txtをcmake-guiにドラックアンドドロップ– CMakeLists.txtはRTC Builderで生成したプロジェクトのフォルダ(例： C:¥workspace¥RobotController)44ビルドに必要なファイルの生成

45

ビルドに必要なファイルの生成

46

CMake 3.14以降の場合ビルド環境の設定
Visual Studio 2017 → Visual Studio 15 2017
Visual Studio 2013 → Visual Studio 12 2013

インストールしたOpenRTM-aistが64bitの場合はx64、32bitの場合はWin32を選択

設定後、Finishボタンを押す47

CMake 3.13以前の場合

48

ビルドに必要なファイルの生成49

ビルドに必要なファイルの生成

50ソースコードの編集51ソースコードの編集• CMake-guiのバージョンが古い場合は「Open Project」ボタンがないため、ファイルをダブルクリックして開く– Windows• buildフォルダの「RobotController.sln」をダブルクリックして開く– Ubuntu• buildフォルダの「RobotController.cbp」をダブルクリックして開く52ソースコードの編集• Windows– Visual Studioが起動• Ubuntu– Code::Blocksが起動

53

ソースコードの編集•

RobotController.hの編集
Visual Studio

Code::Blocks

54ソースコードの編集•RobotController.hの編集

55

ソースコードの編集•

RobotController.cppの編集–

詳細はUSBメモリの資料を参考にしてください

Visual Studio

Code::Blocks

56ソースコードの編集•

RobotController.cppの編集

57

ソースコードの編集•

RobotController.cppの編集

58

ソースコードの編集•

データを読み込む手順

59ソースコードの編集•

データを書き込む手順

60

ソースコードのコンパイル
Visual Studio•

Code::Blocks

成功した場合、実行ファイルが生成される• Windows• build¥srcフォルダのRelease(もしくはDebug)フォルダ内にRobotControllerComp.exeが生成される• Ubuntu• build/srcフォルダにRobotControllerCompが生成される

61

システム構築支援ツール
RT System Editorについて

62

RT System Editor• RTCをGUIで操作するためのツール––––

データポート、サービスポートの接続
アクティブ化、非アクティブ化、リセット、終了
コンフィギュレーションパラメータの操作
実行コンテキストの操作••

実行周期変更実行コンテキストの関連付け– 複合化– マネージャからRTCを起動– 作成したRTシステムの保存、復元

63

RT System Editorの起動

64

RT System Editorの画面構成

65

RobotControllerコンポーネントの動作確認• シミュレータコンポーネントと接続してシミュレータ上のロボットを操作するRTシステムを作成する– ネームサーバーを起動する– RaspberryPiMouseSimulatorコンポーネントを起動する• Windows– 配布USBメモリのEXEフォルダ内「 RaspberryPiMouseSimulatorComp.exe 」をダブルクリック• Ubuntu– 配布USBメモリ内のスクリプトでインストール» $ sh install_raspimouse_simulator_offline.sh– RasPiMouseSimulatorRTCに移動して以下のコマンドを実行» $ build/src/RaspberryPiMouseSimulatorComp– RobotControllerコンポーネント起動– RaspberryPiMouseSimulatorコンポーネントとRobotControllerコンポーネントを接続して「All Activate」を行う

66

ネームサーバーの起動• オブジェクトを名前で管理するサービス– RTCを一意の名前で登録する• RT System Editor等のツールはネームサーバーから名前でRTCの参照を取得する• 起動する手順67

ネームサーバーの起動• OpenRTM-aist 1.1.2以前の手順– Windows 7• 「スタート」→「すべてのプログラム」→「OpenRTM-aist 1.2.0」→「Tools」→「Start Naming Service」– Windows 8.1• 「スタート」→「アプリビュー(右下矢印)」→「OpenRTM-aist 1.2.0」→「StartNaming Service」– Windows 10• 左下の「ここに入力して検索」にStart Naming Serviceと入力して起動– Ubuntu• $ rtm-naming

68

RobotControllerコンポーネントの動作確認• シミュレータコンポーネントと接続してシミュレータ上のロボットを操作する
RTシステムを作成する– ネームサーバーを起動する– RaspberryPiMouseSimulatorコンポーネントを起動する• Windows– 配布USBメモリのEXEフォルダ内「 RaspberryPiMouseSimulatorComp.exe 」をダブルクリック• Ubuntu– 配布USBメモリ内のスクリプトでインストール» $sudo sh install_raspimouse_simulator.sh– RasPiMouseSimulatorRTCに移動して以下のコマンドを実行» build/src/RaspberryPiMouseSimulatorComp– RobotControllerコンポーネント起動• Windows– build¥srcフォルダのRelease(もしくはDebug)フォルダ内にRobotControllerComp.exeが生成されているためこれを起動する• Ubuntu– build/srcフォルダにRobotControllerCompが生成されているためこれを起動する– RobotControllerコンポーネント、RasPiMouseSimulatorコンポーネントを接続して「AllActivate」を行う

69

データポートの接続データポートの接続データポートの接続アクティブ化

コンフィギュレーションパラメータの操作• コンフィギュレーションパラメータをRT System Editorから操作する• 以下の動作ができるか確認– シミュレータ上のロボットがスライダーで操作できるか？
– ロボットが障害物に近づくと停止するか？
74

RTコンポーネントの状態遷移• RTCには以下の状態が存在する– Created• 生成状態• 実行コンテキストを生成し、start()が呼ばれて実行コンテキストのスレッドが実行中(Runnning)状態になる• 自動的にInactive状態に遷移する– Inactive• 非活性状態• activate_componentメソッドを呼び出すと活性状態に遷移する• RT System Editor上での表示は青– Active• 活性状態• onExecuteコールバックが実行コンテキストにより実行される• リターンコードがRTC_OK以外の場合はエラー状態に遷移する• RT System Editor上での表示は緑– Error• エラー状態• onErrorコールバックが実行コンテキストにより実行される• reset_componentメソッドを呼び出すと非活性状態に遷移する• RT System Editor上での表示は赤– 終了状態RTコンポーネントの状態遷移(生成直後)

RTコンポーネントの状態遷移(アクティブ化)

システムの保存

システムの復元• 以下の内容を復元– ポート間の接続– コンフィギュレーション– 「Open and Create Restore」を選択した場合はマネージャからコンポーネント起動

非アクティブ化、終了• 非アクティブ化• 終了

RTコンポーネントの状態遷移(非アクティブ化)

Raspberry Piマウス実機との接続• Raspberry PiとノートPCを無線LANで接続– Raspberry Piが無線LANアクセスポイントになる• 注意事項– ノートPCに複数のネットワークインターフェースが存在する場合にRTCの通信ができなくなる可能性があります。
• 問題が発生した場合は個別に対応します。
– Raspberry Piアクセスポイント接続後はインターネットに接続できなくなります。
– Raspberry Piアクセスポイント接続後に、起動済みのネームサーバーとRTCは再起動してください。
– Raspberry Piはシャットダウンしてから電源スイッチをオフにするようにしてください– モーター電源スイッチはこまめに切るようにしてくださいRaspberry Piとの接続• 電源投入–内側のスイッチをオンにする• 電源を切る場合––3つ並んだスイッチの中央のボタンを1秒以上押す
10秒ほどでシャットダウンするため、その後に電源スイッチをオフにするRaspberry Piとの接続• 無線LANアクセスポイントとの接続– SSID、パスワードはRaspberry Piマウス上のシールに記載– 接続手順(Windows)• 画面右下のネットワークアイコンをクリック• raspberrypi_xxに接続後、パスワードを入力

ネームサーバーとの接続起動済みのRTC、ネームサーバー再起動• ネームサーバーを再起動する– OpenRTM-aist 1.2の場合はネームサーバー起動ボタンで再起動– OpenRTM-aist 1.1.2の場合はネームサーバーのプロセス終了後、「Start Naming
Service」を再度実行• RTC再起動– RTCをexitするか、RTC起動時に表示したウインドウの×ボタンを押して終了する– 実行ファイルを再度実行

ポートの接続、アクティブ化• RobotController0とRapberryPiMouseRTC0を接続する• RTCをアクティブ化して動作確認

RTC Builder
補足88

リセット
• RTCがエラー状態に遷移した場合にエディタ上には赤く表示される。

• 以下の操作で非アクティブ状態に戻す

RTコンポーネントの状態遷移(エラー)RTコンポーネントの状態遷移(リセット)

サービスポートの設定• サービスポートの追加、インターフェースの追加、設定を行う

サービスポートの設定• インターフェースを追加する

サービスポートの設定• インターフェースの設定を行う• コード生成後、Pythonの場合はidlcompile.bat(idlcompile.sh)を起動する

サービスポートの設定• IDLファイルについて– プログラミング言語に非依存のインターフェース定義言語• コンシュマー側でプロバイダ側のecho、get_valueなどのオペレーションを呼び出す

RTC Builderに関する設定

RTC Builderに関する設定

独自のデータ型の利用• 独自のデータ型でデータポートの通信を行う手順– IDLファイルを作成する• MyDataType.idlを任意のフォルダ(ここではC:¥UserDefType)作成• 別のIDLファイルをインクルードしている場合は同じフォルダにコピーする

独自のデータ型の利用• 独自のデータ型でデータポートの通信を行う手順– RTC Builderの設定でIDLファイルの存在するディレクトリを追加

独自のデータ型の利用• 独自のデータ型でデータポートの通信を行う手順

RT System Editor
補足101

コネクタプロファイルの設定
項目

設定内容

Name

接続の名称

DataTypeポート間で送受信するデータの型．
ex)TimedOctet,TimedShortなど

InterfaceType

データを送信方法．ex)corba_cdrなど

DataFlowType

データの送信手順．ex)push, pullなど

SubscriptionType

データ送信タイミング．送信方法がPushの場
合有効．New, Periodic, Flushから選択

Push Rate

データ送信周期(単位：Hz)．
SubscriptionTypeがPeriodicの場合のみ有効

Push Policy

データ送信ポリシー．SubscriptionTypeがNew，Periodicの場合のみ有効． all，fifo，skip，newから選択

Skip Count

送信データスキップ数．Push PolicyがSkipの場合のみ有効•

コネクタプロファイルの設定

InterfaceTye–––

データの送信方法
1.1.2ではcorba_cdr(CORBAによる通信)のみ選択可能
1.2.0では以下の通信方法も選択可能になる予定•••

direct(同一プロセスで起動したRTC間でデータを直接変数に渡す)
shared_memory(共有メモリによる通信)

DataFlowType–

データの送信手順
•Push

•

Pull

–
–

•

InPortがOutPortに問い合わせてデータを受け取る

SubscriptionType–

データ送信タイミング(DataFlowTypeがPush型のみ有効)•flush(同期)–

バッファを介さず即座に同期的に送信•

new(非同期)•

periodic(非同期)––•

OutPortがInPortにデータを送る

バッファ内に新規データが格納されたタイミングで送信
一定周期で定期的にデータを送信

Push Policy(SubscriptionTypeがnew、periodicのみ有効)–

データ送信ポリシー
•all•

fifo

•

skip

–

バッファ内のデータを一括送信–

バッファ内のデータをFIFOで１個ずつ送信–•

バッファ内のデータを間引いて送信

new–

バッファ内のデータの最新値を送信(古い値は捨てられる)コネクタプロファイルの設定• DataFlowType– Push– Pullコネクタプロファイルの設定• SubscriptionType– flush(同期)– new、 periodic(非同期)コネクタプロファイルの設定
項目

設定内容

Buffer length

バッファの大きさ

Buffer full policy

データ書き込み時に，バッファフルだった場合の処理．
overwrite，do_nothing，blockから選択

Buffer write timeout

データ書き込み時に，タイムアウトイベントを発生させるまでの時間(単位:秒)

Buffer empty policy

データ読み出し時に，バッファが空だった場合の処理．readback，
do_nothing，blockから選択

Buffer read timeout

データ読み出し時に，タイムアウトイベントを発生させるまでの時間(単位:秒)サービスポートについて• コマンドレベルのやり取りを行うための仕組み– 任意のタイミングで操作を行いたい時などに使用•

例えばロボットアームのサーボを停止させる、ハンドを閉じる等• コンシューマ側がプロバイダ側が提供する関数群(オペレーション、メソッド)を呼び出す• インターフェースはIDLファイルで定義する。

サービスポートの接続コンフィギュレーションパラメータについて• パラメータを外部から操作する仕組み– コンポーネント作成後に変更が必要なパラメータを設定する•

例えばデバイスが接続されているCOMポート番号の設定等

コンフィギュレーションパラメータの設定

コンフィギュレーションパラメータの設定
•

方法1

•

方法2

マネージャの操作• CameraViewerComp.exe、OpenCVCameraComp.exeのプロセス
ではマネージャが起動している– マネージャがコンポーネントを起動する

マネージャの操作

マネージャの操作• マスターマネージャの起動、RT System Editorからの操作によるRTCの生成までの手順を説明する– rtc.confの設定• 「manager.is_master」を「YES」に設定して起動するマネージャをマスターに設定する– manager.is_master: YES• モジュール探索パスの設定– manager.modules.load_path: ., C:¥¥Program Files (x86)¥¥OpenRTMaist¥¥1.1.2¥¥Components¥¥C++¥¥Examples¥¥vc12– 作成したrtc.confを設定ファイルの指定してrtcd.exeを起動する• rtcdはコマンドプロンプトからrtcd.exeを入力するか、OpenRTM-aistをインストールしたフォルダからコピーして使用する• rtcdはマネージャの起動のみを行う– ～Comp.exeは起動時に特定のコンポーネントの起動も行う• RT Syetem Editorのネームサービスビューにマネージャが表示される

マネージャの操作• モジュールのロードマネージャの操作• モジュールのロードマネージャの操作• RTCの生成

実行コンテキストの操作

実行コンテキストの操作• 実行周期の設定

実行コンテキストの操作• 実行コンテキストの関連付け––

RTC起動時に生成した実行コンテキスト以外の実行コンテキストと関連付け• 関連付けた実行コンテキストでRTCを駆動させる
他のRTCとの実行を同期させる

実行コンテキストの操作• 実行コンテキストの関連付け

複合コンポーネントの操作• 複合コンポーネントの生成

複合コンポーネントの操作• 複合コンポーネントの生成• Type– 以下の3種類から選択可能• PeriodicECShared– 実行コンテキストの共有• PeriodicStateShared– 実行コンテキスト、状態の共有• Grouping– グループ化のみ

複合コンポーネントの操作

複合コンポーネントの操作

ゾンビの削除• RTCのプロセスが異常終了する等してネームサーバーにゾンビが残った場合、以下の手順で削除する

RT System Editorに関する設定