第2部
RTコンポーネント作成入門
宮本 信彦
国立研究開発法人産業技術総合研究所
ロボットイノベーション研究センター
ロボットソフトウェアプラットフォーム研究チーム
22
• ppt
– 第2部、第3部のスライド
• WEBページ(手順を記載したページ)
– 第2部(Windows)
– 第2部(Ubuntu)
– 第3部
• Installer(OpenRTM-aist-1.2.1版 Windows用インストーラ)
– OpenRTM-aistのインストールに問題があった場合に使用してください
• script
– この講習で使うシミュレータのインストールスクリプト(Ubuntu用)
• EXE
– EV3SimulatorComp.exe(シミュレータ)
• sample
– RobotController(本実習で作成するコンポーネントの見本)
• ポータブル版LibreOffice
– 第3部で使用するポータブル版LibreOffice
資料(USBメモリで配布)
33
• USBメモリが挿せない場合は以下からダウンロード
– https://openrtm.org/openrtm/ja/tutorial/irex2019
資料
44
• OpenRTM-aist
– OpenRTM-aist-1.2.1-RELEASE_x86_64.msi
– インストール後に再起動する(2回再起動を必要とする環境もある)
• Python
– python-3.7.5-amd64.msi
– OpenRTM-aistの64bit版をインストールする場合はPythonも64bit版をインストー
ルする。
• CMake
– cmake-3.15.4-win64-x64.msi
• Doxygen
– doxygen-1.8.14-setup.exe
• Visual Studio
– Visual Studio 2019
インストールの確認(Windows)
55
• OpenRTM-aist
– $ wget https://raw.githubusercontent.com/OpenRTM/OpenRTM-aist/master/scripts/pkg_install_ubuntu.sh
– $ sudo sh pkg_install_ubuntu.sh -l all --yes
• CMake
– $ sudo apt-get install cmake cmake-gui
• Doxygen
– $ sudo apt-get install doxygen
• Java
– $ sudo apt-get install openjdk-8-jdk
• Code::Blocks(任意)
– $ sudo apt-get install codeblocks
• EV3SimulatorComp
– sudo apt install git premake4 freeglut3-dev
– $ wget https://raw.githubusercontent.com/OpenRTM/RTM_Tutorial_EV3/master/script/install_ev3_simulator.sh
– sh install_ev3_simulator.sh
インストールの確認(Ubuntu)
66
• シミュレータ上の車輪型移動ロボット(Educator Vehicle)の
操作を行うコンポーネントの作成
– GUIにより目標速度入力
– タッチセンサがオンの時に停止
実習内容
77
Educator Vehicle概要
• LEGO Mindstorms EV3の組み立て例の一つ
駆動車輪
タッチセンサ
EV3
88
• RTC Builderによるソースコード等のひな型の作成
• ソースコードの編集、ビルド
– ビルドに必要な各種ファイルを生成
• CMakeLists.txtの編集
• CMakeにより各種ファイル生成
– ソースコードの編集
• RobotController.h、 RobotController.cppの編集
– ビルド
• Visual Studio、Code::Blocks
• RTシステムエディタによるRTシステム作成、動作確認
– RTシステム作成
• データポート接続、コンフィギュレーションパラメータ設定
全体の手順
9
コンポーネント開発ツール
RTC Builderについて
1010
• コンポーネントのプロファイル情報を入力し,ソースコード等のひな型
を生成するツール
– C++、Python、Javaのソースコードを出力
RTC Builder
1111
RTC Builderの起動
• 起動する手順
– Windows(OpenRTM-aist 1.2)
• デスクトップのショートカットをダブルクリック
– デスクトップのショートカットがない場合
• Windows 8.1
– 「スタート」→「アプリビュー(右下矢印)」→「OpenRTM-aist 1.2.1」→「OpenRTP」
– ※同じフォルダに「RTSystemEditorRCP」がありますが、これはRTC Builderが使えないので今
回は「OpenRTP」を起動してください。
• Windows 10
– 左下の「ここに入力して検索」にOpenRTPと入力して、表示されたOpenRTPを起動
– Ubuntu
• 以下のコマンドを入力
• $ openrtp
1212
• Windows 8.1
RTC Builderの起動
デスクトップ スタート画面 アプリビュー
1313
• Windows 10
RTC Builderの起動
左下の「ここに入力して検
索」に「OpenRTP」と入力
1414
RTC Builderの起動
1515
RTC Builderの起動
1616
プロジェクト作成
• RobotControllerコンポーネントのスケルトンコードを作成する。
– 車輪型移動ロボット操作コンポーネント
• GUIでロボットを操作
• タッチセンサがオンの場合に停止
1717
資料
• USBメモリで配布
– 「WEBページ」フォルダのHTMLファイルを開く
• チュートリアル
– チュートリアル(EV3、Windows、第2部) _ OpenRTM-aist.html
– チュートリアル(EV3、Ubuntu、第2部) _ OpenRTM-aist.html
• もしくはRTミドルウェア講習会のページからリンクをクリック
– チュートリアル(第2部、Windows)
– チュートリアル(第2部、Ubuntu)
1818
プロジェクト作成
• OpenRTP起動時にワークスペースに指定したディレクトリに
「RobotController」というフォルダが作成される
– この時点では「RTC.xml」と「.project」のみが生成されている
• 以下の項目が設定する
– 基本プロファイル
– アクティビティ・プロファイル
– データポート・プロファイル
– サービスポート・プロファイル
– コンフィギュレーション
– ドキュメント
– 言語環境
– RTC.xml
1919
基本プロファイルの入力
• RTコンポーネントのプロファイル情報など,コンポーネントの基本情報を設定.
• コード生成,インポート/エクスポート,パッケージング処理を実行
2020
基本プロファイルの入力
• コンポーネント名
– RobotController
• 概要
– 任意(Robot Controller Component)
• バージョン
– 任意(1.0.0)
• ベンダ名
– 任意
• カテゴリ
– 任意(Controller)
• コンポーネント型
– STATIC
• アクティビティ型
– PERIODIC
• コンポーネントの種類
– DataFlow
• 最大インスタンス数
– 1
• 実行型
– PeriodicExecutionContext
• 実行周期
– 1000.0
• 概要
– 任意
アクティビティの設定
• 指定アクティビティを有効にする手順
• 使用するアクティビティを設定する
2222
アクティビティの設定
コールバック関数 処理
onInitialize 初期化処理
onActivated アクティブ化されるとき1度だけ呼ばれる
onExecute アクティブ状態時に周期的に呼ばれる
onDeactivated 非アクティブ化されるとき1度だけ呼ばれる
onAborting ERROR状態に入る前に1度だけ呼ばれる
onReset resetされる時に1度だけ呼ばれる
onError ERROR状態のときに周期的に呼ばれる
onFinalize 終了時に1度だけ呼ばれる
onStateUpdate onExecuteの後毎回呼ばれる
onRateChanged ExecutionContextのrateが変更されたとき1度だ
け呼ばれる
onStartup ExecutionContextが実行を開始するとき1度だ
け呼ばれる
onShutdown ExecutionContextが実行を停止するとき1度だ
け呼ばれる
2323
アクティビティの設定
• 以下のアクティビティを有効にする
– onInitialize
– onActivated
– onDeactivated
– onExecute
• Documentationは適当に書いてお
いてください
– 空白でも大丈夫です
データポートの設定
• データポートを追加する手順
• InPort、OutPortの追加、設定を行う
データポートの設定
• 以下のInPortを設定する
– in
• データ型:
RTC::TimedBooleanSeq
• 他の項目は任意
• ※TimedBooleanと間違えない
ように注意してください。
• 以下のOutPortを設定する
– out
• データ型:
RTC::TimedVelocity2D
• 他の項目は任意
• ※TimedVelocity3D型、
TimedVector2D型と間違えな
いようにしてください
データポートについて
• 連続したデータを通信するためのポート
• 以下の例はデータフロー型が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の設定
• 制約条件:0<=x<=100
• Widget:slider
• Step:10
• 制約条件:0<=x<=100
• Widget:spin
• Step:10
• Widget:text
• RT System Editorでコンフィギュレーションパラメータを編集
する際にGUIを表示する
コンフィギュレーションパラメータの制約、
Widgetの設定
• 制約条件:(0,1,2,3)
• Widget:checkbox
• 制約条件:(0,1,2,3)
• Widget:ordered_list
• 制約条件:(0,1,2,3)
• Widget:radio
EV3のタッチセンサ
• 前部の左右にタッチセンサを搭載
– TimedBooleanSeq型(bool型の配列)のデータ型で入力
• 配列の0番目が右側、1番目が左側に対応
ドキュメントの設定
• 各種ドキュメント情報を設定
• 今回は適当に設定しておいてください。
– 空白でも大丈夫です
言語の設定
• 実装する言語,動作環境に関する情報を設定
スケルトンコードの生成
• 基本タブからコード生成ボタンを
押すことでスケルトンコードが生
成される
– Workspace¥RobotController以下
に生成
• ソースコード
– C++ソースファイル(.cpp)
– ヘッダーファイル(.h)
» このソースコードにロボットを操作す
る処理を記述する
• CMakeの設定ファイル
– CMakeLists.txt
• rtc.conf、RobotController.conf
• 以下略
– ファイルが生成できているかを確
認してください
36
ソースコードの編集、RTCのビルド
3737
• ビルドに必要な各種ファイルを生成
– CMakeLists.txtの編集
– CMakeにより各種ファイル生成
• ソースコードの編集
– RobotController.hの編集
– RobotController.cppの編集
• ビルド
– Windows: Visual Studio
– Ubuntu: Code::Blocks
手順
3838
• ビルドに必要な各種ファイルを生成
– CMakeLists.txtに設定を記述
• RTC Builderでスケルトンコードを作成した時にCMakeLists.txtも生成されている
CMake
3939
• CMakeを使用する
– Windows 8.1
• 「スタート」→「アプリビュー(右下矢印)」→「CMake」→「CMake (cmake-gui)」
– Windows 10
• 左下の「ここに入力して検索」にCMakeと入力して表示されたCMake(cmake-gui)を起動
– Ubuntu
• コマンドで「cmake-gui」を入力
ビルドに必要なファイルの生成
4040
• Windows 8.1
cmake-guiの起動
デスクトップ スタート画面 アプリビュー
4141
• Windows 10
cmake-guiの起動
左下の「ここに入力して検
索」に「cmake」と入力
4242
ビルドに必要なファイルの生成
• CMakeLists.txtをcmake-guiにドラックアンドドロップ
– CMakeLists.txtはRTC Builderで生成したプロジェクトのフォルダ
(例: C:¥workspace¥RobotController)
4343
ビルドに必要なファイルの生成
4444
ビルドに必要なファイルの生成
4545
CMake 3.14以降の場合
ビルド環境の設定
Visual Studio 2019 → Visual Studio 16 2019
Visual Studio 2017 → Visual Studio 15 2017
Code::Blocks → CodeBlocks – Unix Makefiles
※貸し出したPCでは「Visual Studio 14 2015」を指定
X64を選択する。
設定後、Finishボタンを押す
4646
CMake 3.13以前の場合
4747
ビルドに必要なファイルの生成
4848
ビルドに必要なファイルの生成
4949
ソースコードの編集
5050
ソースコードの編集
• CMake-guiのバージョンが古い場合は「Open Project」ボタン
がないため、ファイルをダブルクリックして開く
– Windows
• buildフォルダの「RobotController.sln」をダブルクリックして開く
– Ubuntu
• buildフォルダの「RobotController.cbp」をダブルクリックして開く
5151
ソースコードの編集
• Windows
– Visual Studioが起動
• Ubuntu
– Code::Blocksが起動
5252
ソースコードの編集
• RobotController.hの編集
Visual Studio Code::Blocks
5353
ソースコードの編集
• RobotController.hの編集
5454
ソースコードの編集
• RobotController.cppの編集
– 詳細はUSBメモリの資料を参考にしてください
Visual Studio Code::Blocks
5555
ソースコードの編集
• RobotController.cppの編集
5656
ソースコードの編集
• RobotController.cppの編集
5757
ソースコードの編集
• データを読み込む手順
5858
ソースコードの編集
• データを書き込む手順
5959
ソースコードのコンパイル
Visual Studio Code::Blocks
• 成功した場合、実行ファイルが生成される
• Windows
• build¥srcフォルダのRelease(もしくはDebug)フォルダ内に
RobotControllerComp.exeが生成される
• Ubuntu
• build/srcフォルダにRobotControllerCompが生成される
60
システム構築支援ツール
RT System Editorについて
6161
• RTCをGUIで操作するためのツール
– データポートを接続してデータを転送できるようにする
– サービスポートの接続
– RTCをアクティブ化して処理を開始する
– 非アクティブ化、リセット、終了
– コンフィギュレーションパラメータの操作
– 実行コンテキストの操作
– 複合化
– マネージャからRTCを起動
– 作成したRTシステムの保存、復元
RT System Editor
6262
RT System Editorの起動
6363
RT System Editorの画面構成
6464
RobotControllerコンポーネントの動作確認
• シミュレータコンポーネントと接続してシミュレータ上のロボットを操作
するRTシステムを作成する
– ネームサーバーを起動する
– EV3Simulatorコンポーネントを起動する
• Windows
– 配布USBメモリのEXEフォルダ内「 EV3SimulatorComp.exe 」をダブル
クリック
• Ubuntu
– 配布USBメモリ内のスクリプトでインストール
» $ sh install_ev3_simulator_usb.sh
– EV3SimulatorRTC/buildに移動して以下のコマンドを実行
» $ src/EV3SimulatorComp
– RobotControllerコンポーネント起動
– EV3SimulatorコンポーネントとRobotControllerコンポーネントを接続して「All
Activate」を行う
6565
• オブジェクトを名前で管理するサービス
– RTCを一意の名前で登録する
• RT System Editor等のツールはネームサーバー
から名前でRTCの参照を取得する
ネームサーバーの起動
• 起動する手順
6666
• OpenRTM-aist 1.1.2以前の手順
ネームサーバーの起動
– Windows 8.1
• 「スタート」→「アプリビュー(右下矢印)」→「OpenRTM-aist 1.x.x」→「Start
Naming Service」
– Windows 10
• 左下の「ここに入力して検索」にStart Naming Serviceと入力して起動
– Ubuntu
• $ rtm-naming
6767
RobotControllerコンポーネントの動作確認
• シミュレータコンポーネントと接続してシミュレータ上のロボットを操作する
RTシステムを作成する
– ネームサーバーを起動する
– EV3Simulatorコンポーネントを起動する
• Windows
– 配布USBメモリのEXEフォルダ内「 EV3SimulatorComp.exe 」をダブルクリッ
ク
• Ubuntu
– 配布USBメモリ内のスクリプトでインストール
» $sudo sh install_ev3_simulator.sh
– EV3SimulatorRTC/buildに移動して以下のコマンドを実行
» src/EV3SimulatorComp
– RobotControllerコンポーネント起動
• Windows
– build¥srcフォルダのRelease(もしくはDebug)フォルダ内に
RobotControllerComp.exeが生成されているためこれを起動する
• Ubuntu
– build/srcフォルダにRobotControllerCompが生成されているためこれを起動
する
– RobotControllerコンポーネント、EV3Simulatorコンポーネントを接続して「All Activate」
を行う
データポートの接続
RTCが見えな
い場合は>を
クリックする
データポートの接続
データポートの接続
アクティブ化
ボタンが表示されない場合
OpenRTPを一旦終了する
• 再度OpenRTPを起動、システムダイアグラムを表示する。
デスクトップのショートカットでOpenRTPを起動
7373
コンフィギュレーションパラメータの操作
• コンフィギュレーションパラメータをRTシステムエディタから操作する
7474
動作確認
• タッチセンサがオンになった時に停止した場合
• タッチセンサがオンになっても停止しない場合
7575
失敗した場合
Deactivate Systemsボタン
でRTCを非アクティブ化
RobotController0を右クリックしてExit
を選択して終了する。
再度ビルド、実行して動作確認をする
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コンポーネントの状態遷移(非アクティブ化)
83
実機との接続
EV3実機との接続
• EV3とノートPCを無線LANで接続
– EV3が無線LANアクセスポイントになる
• 注意事項
– EV3はパーツを取り外した状態で配っているのでチュートリアルに記載した手順で組み
立ててください。
– ノートPCに複数のネットワークインターフェースが存在する場合にRTCの通信ができな
くなる可能性があります。
• 問題が発生した場合は個別に対応します。
– EV3アクセスポイント接続後はインターネットに接続できなくなります。
– EV3アクセスポイント接続後に、起動済みのネームサーバーとRTCは再起動してくださ
い。
– EV3が起動しない場合は、チュートリアルページの手順でリセットを試みてください。
8585
• Educator Vehicleの組立て
– EV3を土台に装着
– EV3とLモーターをケーブルで接続
• B → Lモーター(左)
• C → Lモーター(右)
Educator Vehicle組立て
※ケーブルに接続するデバイス、
ポート名を記載
8686
• Educator Vehicleの組立て
– 右側のタッチセンサを取り付け
– タッチセンサとEV3をケーブルで接続
Educator Vehicle組立て
右側のタッチセンサをポート3に接続
左側のタッチセンサをポート1に接続
EV3との接続
• 電源投入
– 中央のボタンを押す
• 無線LANアクセスポイントの利用
– EV3を無線LANアクセスポイント化、RTCやネームサーバーの起動を行うた
めには、手動でスクリプトファイルを実行する必要があります
• ボタン操作で「File Browser」→「scripts」→「start_ap.sh」を選択
EV3との接続
• 無線LANアクセスポイントとの接続
– SSID、パスワードはEV3のシールに記載
– 接続後にネームサーバーと起動済みのRTCは再起動する
– OpenRTPの再起動が必要な場合もある
– 接続手順(Windows)
• 画面右下のネットワークアイコンをクリック
• ev3_xxに接続後、パスワードを入力
OpenRTPの再起動
OpenRTPを一旦終了する
• 再度OpenRTPを起動、システムダイアグラムを表示する。
デスクトップのショートカットでOpenRTPを起動
ネームサーバーとの接続
起動済みのRTC、ネームサーバー再起動
• ネームサーバーを再起動する
– OpenRTM-aist 1.2の場合はネームサーバー起動ボタンで再起動
– OpenRTM-aist 1.1.2の場合はネームサーバーのプロセス終了後、「Start Naming
Service」を再度実行
• RTC再起動
– RTCをexitするか、RTC起動時に表示したウインドウの×ボタンを押して終了する
– 実行ファイル(RobotControllerComp.exe)を再度実行
ポートの接続
• RobotController0とEducatorVehicle0を接続後にRTCをアク
ティブ化して動作確認をする
※ここでEV3Simulatorは使用しません
93
RTC Builder
補足
リセット
• 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ファイルの存在するディレクトリを追加
独自のデータ型の利用
• 独自のデータ型でデータポートの通信を行う手順
106
RT System Editor
補足
コネクタプロファイルの設定
項目 設定内容
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
– OutPortがInPortにデータを送る
• Pull
– InPortがOutPortに問い合わせてデータを受け取る
• SubscriptionType
– データ送信タイミング(DataFlowTypeがPush型のみ有効)
• flush(同期)
– バッファを介さず即座に同期的に送信
• new(非同期)
– バッファ内に新規データが格納されたタイミングで送信
• periodic(非同期)
– 一定周期で定期的にデータを送信
• Push Policy(SubscriptionTypeがnew、periodicのみ有効)
– データ送信ポリシー
• all
– バッファ内のデータを一括送信
• fifo
– バッファ内のデータをFIFOで1個ずつ送信
• skip
– バッファ内のデータを間引いて送信
• 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)¥¥OpenRTM-
aist¥¥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に関する設定

More Related Content

PDF
RTミドルウェア応用実習
PDF
OpenRTM-aistおよび RTコンポーネントプログラミングの概要
PDF
ROBOMECH2021 RTMオンライン講習会 第1部
PDF
200923 01jp
PDF
SICE 2020 Rtm tutorial 2_online_ja
PDF
Rtコンポーネント作成入門
PDF
190605 04
PDF
Rtshell入門
RTミドルウェア応用実習
OpenRTM-aistおよび RTコンポーネントプログラミングの概要
ROBOMECH2021 RTMオンライン講習会 第1部
200923 01jp
SICE 2020 Rtm tutorial 2_online_ja
Rtコンポーネント作成入門
190605 04
Rtshell入門

What's hot (20)

PPT
170622 02
PDF
Japan Robot Week 2016 RTM講習会 第3部
PPTX
Japan Robot Week 2016 RTM講習会 第1部
PDF
160705-w02 RTミドルウエア講習会・早稲田大
PDF
RTミドルウェア強化月間2017 in 東京都立産業技術研究センター・RTミドルウェア講習会
PDF
160705-01 RTミドルウエア講習会・名城大
PDF
Japan Robot Week 2016 RTM講習会 第2部
PDF
Rtミドルウェア講習会 第2部資料
PPTX
Rtshell 2017
PDF
171128 01
PDF
Rtミドルウェア講習会 第1部資料
PDF
201110 01 Polytech Center 1
PDF
201110 02 Polytech center 2
PDF
Slam実習
PDF
Rtミドルウェアサマーキャンプ2021_宮本信彦
PDF
OpenRTM-aist入門
PDF
2013 summercamp 06
PDF
ROBOMECH2017 RTM講習会 第1部・その1
PDF
160705-02 RTミドルウエア講習会・名城大
PDF
2016 summercamp rtshell入門
170622 02
Japan Robot Week 2016 RTM講習会 第3部
Japan Robot Week 2016 RTM講習会 第1部
160705-w02 RTミドルウエア講習会・早稲田大
RTミドルウェア強化月間2017 in 東京都立産業技術研究センター・RTミドルウェア講習会
160705-01 RTミドルウエア講習会・名城大
Japan Robot Week 2016 RTM講習会 第2部
Rtミドルウェア講習会 第2部資料
Rtshell 2017
171128 01
Rtミドルウェア講習会 第1部資料
201110 01 Polytech Center 1
201110 02 Polytech center 2
Slam実習
Rtミドルウェアサマーキャンプ2021_宮本信彦
OpenRTM-aist入門
2013 summercamp 06
ROBOMECH2017 RTM講習会 第1部・その1
160705-02 RTミドルウエア講習会・名城大
2016 summercamp rtshell入門
Ad

Similar to RTコンポーネント作成入門 (20)

PDF
RTM講習会 2部
PDF
RTコンポーネント作成入門
PDF
人工知能学会RTM講習会 第3部:プログラミング実習
PDF
130522 rt講習会(説明用)
PDF
181107 05
PDF
130711 02
PDF
SICE 2020 Rtm tutorial 2_online_en
PDF
201111 04
PDF
RTミドルウェアによるロボットプログラミング技術 3. RTMによるプログラミング
PDF
プログラミング実習
PDF
181106 03
PDF
4.総合演習(1)
PDF
200527 ur
PDF
RTミドルウエア講習会2015
PDF
Rtミドルウェア講習会@名城大学 20140624 2
PDF
130710 01
PDF
20130329 rtm2
PDF
2.プログラミングの基礎
PDF
Portable RT-Middleware environment on a USB memory for the robot programing ...
PDF
2016 summercamp RTコンポーネント開発のためのシステムモデリング講習会
RTM講習会 2部
RTコンポーネント作成入門
人工知能学会RTM講習会 第3部:プログラミング実習
130522 rt講習会(説明用)
181107 05
130711 02
SICE 2020 Rtm tutorial 2_online_en
201111 04
RTミドルウェアによるロボットプログラミング技術 3. RTMによるプログラミング
プログラミング実習
181106 03
4.総合演習(1)
200527 ur
RTミドルウエア講習会2015
Rtミドルウェア講習会@名城大学 20140624 2
130710 01
20130329 rtm2
2.プログラミングの基礎
Portable RT-Middleware environment on a USB memory for the robot programing ...
2016 summercamp RTコンポーネント開発のためのシステムモデリング講習会
Ad

More from openrtm (19)

PDF
ROBOMECH2023 RTミドルウェア講習会 第1部
PPTX
ピッキングシステム
PPTX
GNGを使った未知環境における経路計画
PPTX
まねっこロボット
PDF
商品自動補充ロボットシステム
PPTX
RTサマーキャンプ2022最終発表_都立大.pptx
PDF
SysML実習20220822SC_GA.pdf
PDF
RTミドルウェアサマーキャンプ資料2022.pdf
PDF
NEDO講座 MoveIt! チュートリアル 第1部
PDF
5.総合演習(2)
PDF
3.RTCプログラミング演習
PDF
1.コース概要
PDF
OpenRTM概要
PDF
RTミドルウェアサマーキャンプ2021_坂本武志_1
PPTX
Rtミドルウェアサマーキャンプ資料2021_坂本武志_2
PDF
Rtミドルウェアサマーキャンプ資料2021_菅佑樹
PDF
ROBOMECH2021 RTM講習会 第1部
PDF
201111 05
PDF
201110 03
ROBOMECH2023 RTミドルウェア講習会 第1部
ピッキングシステム
GNGを使った未知環境における経路計画
まねっこロボット
商品自動補充ロボットシステム
RTサマーキャンプ2022最終発表_都立大.pptx
SysML実習20220822SC_GA.pdf
RTミドルウェアサマーキャンプ資料2022.pdf
NEDO講座 MoveIt! チュートリアル 第1部
5.総合演習(2)
3.RTCプログラミング演習
1.コース概要
OpenRTM概要
RTミドルウェアサマーキャンプ2021_坂本武志_1
Rtミドルウェアサマーキャンプ資料2021_坂本武志_2
Rtミドルウェアサマーキャンプ資料2021_菅佑樹
ROBOMECH2021 RTM講習会 第1部
201111 05
201110 03

Recently uploaded (7)

PDF
AIシステムのセキュリティ:脅威となりつつあるAIの現状と課題 [English] Security of AI Systems: The Current...
PPTX
生成AIとモデルベース開発:実はとても相性が良いことを説明します。まあそうだろうなと思われる方はご覧ください。
PDF
Working as an OSS Developer at Ruby Association Activity Report 2025
PDF
ココロ分解帳|感情をやさしく分解し自分と他者を理解するためのモバイルノートアプリ
PDF
翔泳社 「C++ ゼロからはじめるプログラミング」対応 C++学習教材(三谷純)
PDF
20250826_Devinで切り拓く沖縄ITの未来_AI駆動開発勉強会 沖縄支部 第2回
AIシステムのセキュリティ:脅威となりつつあるAIの現状と課題 [English] Security of AI Systems: The Current...
生成AIとモデルベース開発:実はとても相性が良いことを説明します。まあそうだろうなと思われる方はご覧ください。
Working as an OSS Developer at Ruby Association Activity Report 2025
ココロ分解帳|感情をやさしく分解し自分と他者を理解するためのモバイルノートアプリ
翔泳社 「C++ ゼロからはじめるプログラミング」対応 C++学習教材(三谷純)
20250826_Devinで切り拓く沖縄ITの未来_AI駆動開発勉強会 沖縄支部 第2回

RTコンポーネント作成入門