第2部:Flipコンポーネント作成 - rtc-fukushima.jp ·...
Transcript of 第2部:Flipコンポーネント作成 - rtc-fukushima.jp ·...
![Page 2: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/2.jpg)
Flipコンポーネントについて
•入力した画像を反転して出力するコンポーネント
• OpenCVのcvFlip関数を利用して作成します。
Flipコンポーネント
InPort OutPort
University of Aizu 2
![Page 3: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/3.jpg)
RTCBuilderについて
University of Aizu 3
![Page 4: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/4.jpg)
RTCBuilder概要
• RTCBuilderとは?
• コンポーネントの情報を入力し雛形を生成するためのツール。• コンポーネントの仕様部分を設定
• 各言語向けRTCの雛型を作成• C++
• JAVA
• Python
University of Aizu 4
![Page 5: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/5.jpg)
RTCBuilder起動• Windowsスタートメニューから 「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動
• Linuxコマンド [openrtp]で起動
起動後はワークスペースの選択を行います。
ここでは[C:¥rtcws]と記入します。※パスに日本語が入らないようにしてください。
University of Aizu 5
![Page 6: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/6.jpg)
•初回起動時のみ
①初回起動時に出てくるようこその画面を×ボタンを押し、消します。
②画面右上の[パースペクティブを開く]を選択し、[その他]を選択
③一覧から[RTCBuilder]を選択してください。
University of Aizu 6
![Page 7: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/7.jpg)
②プロジェクト名を記入
新規プロジェクトの作成
①ツールバー内の[RTとカナヅチ]のアイコンをクリック
プロジェクト名:Flip
University of Aizu 7
![Page 8: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/8.jpg)
基本プロファイル
• コンポーネントの基本情報の設定
モジュール名: Flipモジュール概要: 任意(Flip component)バージョン: 1.0.0ベンダ名: 任意(Aizu)モジュールカテゴリ: 任意(Category)コンポーネント型: STATICアクティビティ型: PERIODICコンポーネントの種類: DataFlow最大インスタンス数: 1実行型: PeriodicExecutionContext実行周期: 1000.0
University of Aizu 8
![Page 9: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/9.jpg)
アクティビティ・プロファイル• コンポーネントで使用予定のアクショコールバックを設定
①使用するアクティビティを選択する※マウスで選択すると文字が赤くなり
アクティビティ名のところに表示されます。
②On/OFFを選択する。※選択するとアクティビティの背景が青くなります。
選択アクティビティ• onActivated• onDeactivated• onExecute
University of Aizu 9
![Page 10: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/10.jpg)
データポート・プロファイル• RTコンポーネントのデータポートを設定
①追加したいポートの[Add]ボタンを押しポートを追加します。その後直接名称を変更します。
②ポートのデータ型と変数名を入力します。
・InPortポート名: originalImageデータ型: RTC::CameraImage変数名: originalImage表示位置: left
・OutPortポート名: flippedImageデータ型: RTC::CameraImage変数名: flippedImage表示位置: right
University of Aizu 10
![Page 11: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/11.jpg)
サービスポート・プロファイル
• RTコンポーネントのサービスポートを設定
• 今回は使用しません。
University of Aizu 11
![Page 12: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/12.jpg)
コンフィギレーション・プロファイル• RTコンポーネントのコンフィギレーションを設定
①[Add]ボタンを押し追加します。その後直接名称を変更します。
②詳細画面でデータ型、デフォルト値などを記入します。
名称: flipModeデータ型: intデフォルト値: 1変数名: flipMode制約条件: (-1, 0, 1)Widget: radio
University of Aizu 12
![Page 13: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/13.jpg)
言語・環境・プロファイル• RTコンポーネントの実装する言語,動作環境に関する情報を設定
• C++選択
University of Aizu 13
![Page 14: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/14.jpg)
コード生成•設定内容を確認
•全ての設定が終わりましたらコード生成を行います。①コード生成のボタンを押します。
・基本情報モジュール名: Flipモジュール概要: 任意(Flip component)バージョン: 1.0.0ベンダ名: 任意(Aizu)モジュールカテゴリ: 任意(Category)コンポーネント型: STATICアクティビティ型: PERIODICコンポーネントの種類: DataFlow最大インスタンス数: 1実行型: PeriodicExecutionContext実行周期: 1000.0
・選択アクティビティ• onActivated• onDeactivated• onExecute
・InPortポート名: originalImageデータ型: RTC::CameraImage変数名: originalImage表示位置: left
・OutPortポート名: flippedImageデータ型: RTC::CameraImage変数名: flippedImage表示位置: right
・コンフィギレーション名称: flipModeデータ型: intデフォルト値: 1変数名: flipMode制約条件: (-1, 0, 1)Widget: radio
University of Aizu
・言語C++
14
![Page 15: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/15.jpg)
コンパイルの仕方
University of Aizu 15
![Page 16: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/16.jpg)
• cmakeを使い自分のビルド環境に変更(Windows版)
cmake
①cmake起動後,source,binaryのディレクトリを指定SourceはFlipディレクトリ、binaryはFlip/buildディレクトリを指定。
②[Configure]ボタンを押し、使用するプラットフォームを選択してください。
University of Aizu 16
![Page 17: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/17.jpg)
③[Configure Done]と出た後[Generate]ボタンを押す ④[Generate Done]と出た後、binaryに指定したディレクトリにソリューションファイルが出来てたら完了
University of Aizu
• Linux版下記コマンドを打ち込む
$ cd rtcws/Flip $ mkdir build $ cd build $ cmake ..
17
![Page 18: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/18.jpg)
ヘッダ、ソースの編集
①Cmakeで作成したバイナリーフォルダ内のソリューションファイルを開きます。
②ソリューションを開き、[Flip.h]と[Flip.cpp]を開き、編集をしてください。
University of Aizu
• Linux版下記ファイルを編集する/rtcws/Flip/include/Flip/Flip.h/rtcws/Flip/src/Flip.cpp
18
![Page 19: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/19.jpg)
CMakeLists.txt
OpneCVを使用するためにCMakeList.txtを編集します。
University of Aizu
①Flip/src内のCMakeList.txtを編集します。
19
![Page 20: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/20.jpg)
ビルドの実行
University of Aizu
①右クリックでメニューを開きビルドをしてください。エラーが出なければ完了です。
• Linux版下記コマンドを打ち込む
$ cd rtcws/Flip/build $ make
20
![Page 21: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/21.jpg)
RTSystemEditorについて
University of Aizu 21
![Page 22: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/22.jpg)
RTSystemEditor概要• RTコンポーネントを接続してRTシステムを構築するためのツール
University of Aizu 22
![Page 23: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/23.jpg)
RTSystemEditor起動
•パースペクティブの切り替え
①画面右上の「パースペクティブを開く」を選択し、さらに[その他]を選択
②一覧の中から[RT System editor]を選択
University of Aizu 23
![Page 24: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/24.jpg)
カメラ関連コンポーネント起動
• Naming Serviceの起動[スタート]メニューから[プログラム]→[OpenRTM-aist x.y]→ [tools]→[Start Naming Service]• CameraViewerCompの起動[スタート]メニューから起動[プログラム]→[OpenRTM-aist x.y]→[C++]→[Components]→[OpenCV-Examples]→ [CameraViewerComp.exe]• OpenCVCameraCompの起動[スタート]メニューから起動[プログラム]→[OpenRTM-aist x.y]→[C++]→[Components]→[OpenCV-Examples]→ [OpenCVCameraComp.exe]
University of Aizu 24
![Page 25: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/25.jpg)
ネームサービスへ接続
•接続方法
①Name Service View のコンセントのアイコンをクリック
②ネームサーバのアドレスを聞かれるので、ホスト名かIPアドレスを記入
③Name Service Viewに記入したものが記載されれば完了
University of Aizu 25
![Page 26: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/26.jpg)
コンポーネント配置
• コンポーネントの配置
①対象コンポーネントをドラックアンドドロップでコンポーネントを配置
※System Diagramが開いてない場合は[ON]のボタンをクリックしてください。
University of Aizu 26
![Page 27: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/27.jpg)
データポート接続
• データポートを接続
①接続元のポートから接続先のポートまでドラックアンドドロップ
②接続プロファイルを記入してOKをクリック
③接続しているポートが緑になれば完了
University of Aizu 27
![Page 28: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/28.jpg)
コンポーネントアクティブ• コンポーネントの起動方法
①画面の緑の矢印をクリックか、右クリックから[All Activate]を選択。
コンポーネントが全て緑になれば完了です。
University of Aizu 28
![Page 29: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/29.jpg)
コンポーネント動作確認
•確認方法
University of Aizu
flipModeの値を変更して画
像が反転することを確認してください。
29
![Page 30: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/30.jpg)
RTSystemEditor補足説明
University of Aizu 30
![Page 31: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/31.jpg)
RTC-Library-FUKUSHIMA
• RTC-Library-FUKUSHIMA
OpenRTM-aistを利用した、ロボット・テクノロジー・コンポーネント(RTC)ライブラリサイト
• 機能• イベント情報
• コンポーネントの登録・検索・ダウンロード
University of Aizu 31
![Page 32: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/32.jpg)
RTC-Library-FUKUSHIMAへのアップロードの仕方1) RTC-Library-FUKUSHIMAへアクセスhttps://rtc-fukushima.jp/
今回の講習会では本番の環境を使わずに
ローカルの環境を使用します。
2)ログイン
University of Aizu 32
![Page 33: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/33.jpg)
3)コンポーネント登録画面TOPページの画面上部の「ライブラリー」をクリック。
その後ライブラリ画面の「コンポーネント登録/パッケージ登録」タブをクリック。
「コンポーネント登録」をクリックします。
University of Aizu 33
![Page 34: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/34.jpg)
登録手順
1) RTC.xmlファイル読み込み本日作成したFlipコンポーネント内のRTC.xmlを指定します。
RTCBuilderで入力した内容が登録されます。
2) コンポーネント登録情報入力コンポーネントの登録情報を入力します。
RTC.xmlファイルを読み込んだ場合、概要、問い合わせ先には
RTCBuilderの内容が挿入されます。
3) 登録内容確認「確認する」ボタンを押し、登録内容を確認しください。
University of Aizu 34
・コンポーネントの登録情報・コンポーネント名:Flip・概要: Flip component・カテゴリ:カメラ・タグ:
C++、OpenCV、画像処理・ファイルアップロード:
Flipの中のbuild以下を削除または退避させzipで圧縮。参照でzipを指定。・同意する:チェック・私はロボットではありません:チェック※ローカル環境ではなし
![Page 35: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/35.jpg)
ネットワーク上の他のRTCとの接続
• IPアドレスの確認
1)スタートメニュー中の「全てのプログラム」-「アクセサリ」-「コマンドプロンプト」
2)コマンド「ipconfig」を実行
• 他PC上で動作するRTCとの接続
1)隣の方のIPアドレスを聞く
2)RTSystemEditorの「ネームサーバを追加」をクリックして,上記のIPアドレスを入力する
University of Aizu 35
![Page 36: 第2部:Flipコンポーネント作成 - rtc-fukushima.jp · スタートメニューから「OpenRTM-aist x.y」→「tools」の下の[OpenRTP ]から起動 •Linux コマンド[openrtp]で起動](https://reader034.fdocument.pub/reader034/viewer/2022052021/60366fd45cfbec16ef0586d0/html5/thumbnails/36.jpg)
引用元
このスライドは下記文献を参考に作成しています。
• RTコンポーネントの作成入門http://www.openrtm.org/openrtm/sites/default/files/5820/150624-02.pdf
(2016/01/07アクセス)
University of Aizu 36