SlideShare a Scribd company logo
1 of 54
画像処理コンポーネントの作成


  (独)産業技術総合研究所
   知能システム研究部門
      宮本晴美


                 1
この実習では…
●   デモストレーションで使用したFlipコン
    ポーネントを、インストールしたソフト
    ウェア・ツールを用いて、一から開発しま
    す。
コンポーネント作成手順
●
    動作環境・開発環境についての確認
●
    OpenCVとcvFlip関数についての確認
●
    コンポーネントの仕様を決める
●
    RTCBuilderを用いたソースコードのひな形の作成
●
    CMakeを使ったプロジェクトの作成
●
    ヘッダ、ソースの編集
●
    CMakeを使ったプロジェクトの変更
●
    コンポーネントの動作確認

                             3
コンポーネント作成手順
●
    動作環境・開発環境についての確認
●
    OpenCVとcvFlip関数についての確認
●
    コンポーネントの仕様を決める
●
    RTCBuilderを用いたソースコードのひな形の作成
●
    CMakeを使ったプロジェクトの作成
●
    ヘッダ、ソースの編集
●
    CMakeを使ったプロジェクトの変更
●
    コンポーネントの動作確認

                             4
コンポーネント作成手順
●
    動作環境・開発環境についての確認
●
    OpenCVとcvFlip関数についての確認
●
    コンポーネントの仕様を決める
●
    RTCBuilderを用いたソースコードのひな形の作成
●
    CMakeを使ったプロジェクトの作成
●
    ヘッダ、ソースの編集
●
    CMakeを使ったプロジェクトの変更
●
    コンポーネントの動作確認

                             5
コンポーネント作成手順
●
    動作環境・開発環境についての確認
●
    OpenCVとcvFlip関数についての確認
●
    コンポーネントの仕様を決める
●
    RTCBuilderを用いたソースコードのひな形の作成
●
    CMakeを使ったプロジェクトの作成
●
    ヘッダ、ソースの編集
●
    CMakeを使ったプロジェクトの変更
●
    コンポーネントの動作確認

                             6
コンポーネント作成手順
●
    動作環境・開発環境についての確認
●
    OpenCVとcvFlip関数についての確認
●
    コンポーネントの仕様を決める
●
    RTCBuilderを用いたソースコードのひな形の作成
●
    CMakeを使ったプロジェクトの作成
●
    ヘッダ、ソースの編集
●
    CMakeを使ったプロジェクトの変更
●
    コンポーネントの動作確認

                             7
コンポーネント作成手順
●
    動作環境・開発環境についての確認
●
    OpenCVとcvFlip関数についての確認
●
    コンポーネントの仕様を決める
●
    RTCBuilderを用いたソースコードのひな形の作成
●
    CMakeを使ったプロジェクトの作成
●
    ヘッダ、ソースの編集
●
    CMakeを使ったプロジェクトの変更
●
    コンポーネントの動作確認

                             8
コンポーネント作成手順
●
    動作環境・開発環境についての確認
●
    OpenCVとcvFlip関数についての確認
●
    コンポーネントの仕様を決める
●
    RTCBuilderを用いたソースコードのひな形の作成
●
    CMakeを使ったプロジェクトの作成
●
    ヘッダ、ソースの編集
●
    CMakeを使ったプロジェクトの変更
●
    コンポーネントの動作確認

                             9
コンポーネント作成手順
●
    動作環境・開発環境についての確認
●
    OpenCVとcvFlip関数についての確認
●
    コンポーネントの仕様を決める
●
    RTCBuilderを用いたソースコードのひな形の作成
●
    CMakeを使ったプロジェクトの作成
●
    ヘッダ、ソースの編集
●
    CMakeを使ったプロジェクトの変更
●
    コンポーネントの動作確認

                             10
コンポーネント作成手順
●
    動作環境・開発環境についての確認
●
    OpenCVとcvFlip関数についての確認
●
    コンポーネントの仕様を決める
●
    RTCBuilderを用いたソースコードのひな形の作成
●
    CMakeを使ったプロジェクトの作成
●
    ヘッダ、ソースの編集
●
    CMakeを使ったプロジェクトの変更
●
    コンポーネントの動作確認

                             11
コンポーネント作成手順
●
    動作環境・開発環境についての確認
●
    OpenCVとcvFlip関数についての確認
●
    コンポーネントの仕様を決める
●
    RTCBuilderを用いたソースコードのひな形の作成
●
    CMakeを使ったプロジェクトの作成
●
    ヘッダ、ソースの編集
●
    CMakeを使ったプロジェクトの変更
●
    コンポーネントの動作確認

                             12
動作環境・開発環境についての確認
●   OS: Windows XP SP3 (Vista, 7でも可能)
●   コンパイラ: Visual C++ 2010 Express Edition 日本語版
●   OpenRTM-aist-1.1.0-RELEASE (C++版), Win32 VC2010
●   OpenRTP 1.1.0-RC4
    –   RTSystemEditor 1.1
    –   RTCBuilder 1.1
●   Eclipse 3.8.1 (OpenRTP 1.1.0-RC4) Windows用全部入り
●   Doxygen ドキュメント生成に必要
●   CMake
コンポーネント作成手順
●
    動作環境・開発環境についての確認
●
    OpenCVとcvFlip関数についての確認
●
    コンポーネントの仕様を決める
●
    RTCBuilderを用いたソースコードのひな形の作成
●
    CMakeを使ったプロジェクトの作成
●
    ヘッダ、ソースの編集
●
    CMakeを使ったプロジェクトの変更
●
    コンポーネントの動作確認

                             14
OpenCVとcvFlip関数についての確認
    void cvFlip(IplImage* src,
               IplImage* dst=NULL,
               int flipMode=0);
●   src     入力配列
●   dst 出力配列。もしdst=NULLであれば、srcが上書き
    されます。
●   flipMode 配列の反転方法の指定内容:
     –    flipMode = 0: X軸周りでの反転(上下反転)
     –    flipMode > 0: Y軸周りでの反転(左右反転)
     –    flipMode < 0: 両軸周りでの反転(上下左右反転)
コンポーネント作成手順
●
    動作環境・開発環境についての確認
●
    OpenCVとcvFlip関数についての確認
●
    コンポーネントの仕様を決める
●
    RTCBuilderを用いたソースコードのひな形の作成
●
    CMakeを使ったプロジェクトの作成
●
    ヘッダ、ソースの編集
●
    CMakeを使ったプロジェクトの変更
●
    コンポーネントの動作確認

                             17
データポートの仕様



●   OpenRTM-aistには OpenCVを使用したビジョ
    ン関連のコンポーネントがサンプルとして付属
    しています。これらのコンポーネントのデータ
    ポートは画像の入出力に以下のような
    CameraImage 型を使用しています。
    詳細はwebページを確認してください。
struct CameraImage {

       /// Time stamp.

       Time tm;

       /// Image pixel width.

       unsigned short width;

       /// Image pixel height.

       unsigned short height;

       /// Bits per pixel.

       unsigned short bpp;

       /// Image format (e.g. bitmap, jpeg, etc.).

       string format;

       /// Scale factor for images, such as disparity maps,

       /// where the integer pixel value should be divided

       /// by this factor to get the real pixel value.

       double fDiv;

       /// Raw pixel data.

       sequence<octet> pixels;

  };
コンフィギュレーションの仕様
    void cvFlip(IplImage* src,
               IplImage* dst=NULL,
               int flipMode=0);
●   src     入力配列
●   dst 出力配列。もしdst=NULLであれば、srcが上書き
    されます。
●   flipMode 配列の反転方法の指定内容:
     –    flipMode = 0: X軸周りでの反転(上下反転)
     –    flipMode > 0: Y軸周りでの反転(左右反転)
     –    flipMode < 0: 両軸周りでの反転(上下左右反転)
コンフィギュレーションの仕様




●   ひとつのコンポーネントで3つの変換がで
    きると、ユーザーも便利だし、管理する
    ほうも楽チンですよね。
仕様まとめ



●   InPort
    –   ポート名・・・・・    originalImage
    –   型 ・・・・・    CameraImage
    –   意味 ・・・・・  入力画像
仕様まとめ



●   OutPort
    –   ポート名・・・・・    flippedImage
    –   型 ・・・・・    CameraImage
    –   意味 ・・・・・  反転された画像
仕様まとめ



●   Configuration
    –   パラメータ名 flipMode
    –   型 int
    –   意味 反転モード
        ●   上下反転: 0
        ●   左右反転: 1
        ●   上下左右反転: -1
アクティビティ処理の実装
アクティビティ処理の実装
コンポーネント作成手順
●
    動作環境・開発環境についての確認
●
    OpenCVとcvFlip関数についての確認
●
    コンポーネントの仕様を決める
●
    RTCBuilderを用いたソースコードのひな形の作成
●
    CMakeを使ったプロジェクトの作成
●
    ヘッダ、ソースの編集
●
    CMakeを使ったプロジェクトの変更
●
    コンポーネントの動作確認

                             27
RTCBuilderを用いた
    ソースコードのひな形の作成・手順

●   eclipseを起動し、RTCBuilderを表示する
●   新規プロジェクトの作成
●   コンポーネント情報を入力し生成する
    –   XMLをインポートする、または、情報を入力
        する。
     ※この章の実習は、初めてEclipseを起動した場合、
    または新しいワークスペースを使用した場合を想定し
    ております。一緒に実習をする方は、新しいワークス
    ペースを使用してください。
入力に必要なコンポーネントの詳細情報は
   Webページをご覧ください。
最後に生成されたファイルを確認します。
コンポーネント作成手順
●
    動作環境・開発環境についての確認
●
    OpenCVとcvFlip関数についての確認
●
    コンポーネントの仕様を決める
●
    RTCBuilderを用いたソースコードのひな形の作成
●
    CMakeを使ったプロジェクトの作成
●
    ヘッダ、ソースの編集
●
    CMakeを使ったプロジェクトの変更
●
    コンポーネントの動作確認

                             30
CMakeを使ったプロジェクトの作成
●   CMakeを起動し、ディレクトリを設定する
●   Configureボタンを押下し、コンフィギュアす
    る。
●   Generate ボタンを押下し、プロジェクトを生成
    する。


    ※この章の実習も、初めてCMakeを起動した場合、
     を想定しております。
最後に生成されたプロジェクトを
VC++でビルドして確認します。
コンポーネント作成手順
●
    動作環境・開発環境についての確認
●
    OpenCVとcvFlip関数についての確認
●
    コンポーネントの仕様を決める
●
    RTCBuilderを用いたソースコードのひな形の作成
●
    CMakeを使ったプロジェクトの作成
●
    ヘッダ、ソースの編集
●
    CMakeを使ったプロジェクトの変更
●
    コンポーネントの動作確認

                             33
ヘッダ、ソースの編集
ヘッダ、ソースの編集
ヘッダの編集
●   OpenCVのインクルード文を追加する。
●   イメージ用メモリ変数を宣言する。
    –   m_imageBuff
    –   m_flipImageBuff


    入力に必要なコンポーネントの詳細情報
             は
      Webページをご覧ください。
ソースの編集
●   onActivated()
    –   イメージ用メモリの初期化と、outportの画
        面サイズの初期化を行います。
●   onDeactivated()
    –   イメージ用メモリを開放します。
●   onExecute()
    –インポートの確認・読み込み、vcFlip関数の
     処理、アウトポートのデータ送信などを行い
    入力に必要なコンポーネントの詳細情報
     ます。
                は
         Webページをご覧ください。
コンポーネント作成手順
●
    動作環境・開発環境についての確認
●
    OpenCVとcvFlip関数についての確認
●
    コンポーネントの仕様を決める
●
    RTCBuilderを用いたソースコードのひな形の作成
●
    CMakeを使ったプロジェクトの作成
●
    ヘッダ、ソースの編集
●
    CMakeを使ったプロジェクトの変更
●
    コンポーネントの動作確認

                             38
CMakeを使ったプロジェクトの変更
●   OpenCVを使う為に、インクルード文のほかに次
    の設定が必要です。
    –   インクルードパス
    –   ライブラリ
    –   ライブラリパス
●   CMakeLists.txtを修正して、OpenCVの設定が
    入ったCMakeを実行しプロジェクトを再生成し
    ます。
●   完了したらVC++でビルドします。
修正内容はWebページをご覧ください。


   ではCMakeを修正します。
コンポーネント作成手順
●
    動作環境・開発環境についての確認
●
    OpenCVとcvFlip関数についての確認
●
    コンポーネントの仕様を決める
●
    RTCBuilderを用いたソースコードのひな形の作成
●
    CMakeを使ったプロジェクトの作成
●
    ヘッダ、ソースの編集
●
    CMakeを使ったプロジェクトの変更
●
    コンポーネントの動作確認

                             41
コンポーネントの動作確認
●   NameServiceの起動
●   Flipコンポーネントの起動
●   その他のコンポーネントの起動
    –   OpenCVCameraComp, またはDirectShowCamComp
    –   CameraViewerComp
●   RTSystemEditerでコンポーネントを確認・接続する
●   コンポーネントをActivateし、動作確認を行う
隣の人のコンポーネントと通信する




            43
隣の人のコンポーネントと通信す
       る
●
    操作手順
    –   rtc.confを作成する
    –   ネームサービス、RTコンポーネント、を起
        動する
    –   RTSystemEditerを起動する
    –   ネームサービスビューに、隣の人のネーム
        サービスを登録する
    –   システムダイアログに表示し、データポート
        をリンクする
                              44
隣の人のコンポーネントと通信する
●   操作手順
    –   ネットワークを確認し、rtc.confを作成する
    –   RTコンポーネントを再起動する
    –   RTSystemEditerを起動する
    –   ネームサービスビューに、隣の人のネーム
        サービスを登録する
    –   システムダイアログに表示し、データポート
        をリンクする
隣の人のコンポーネントと通信する
●   ネットワークの確認
    –   無線LANは通信量が増えると通信速度が遅く
        なることがあるため、有線LANを使います。
隣の人のコンポーネントと通信する
●   rtc.confの準備
    –   有線LANと無線LANを使用すると、ネット
        ワークインタフェースが二つになりま
        す。rtc.confを作成し、コルバエンドポインツ
        を設定します。
    –   rtc.conf
        ●   corba.nameservers: localhost
        ●   naming.formats: %n.rtc
        ●   corba.endpoints: localhost,192.168.XXX.XXX:
IPアドレスの確認方法
●   コマンドプロンプトで確認する
    –   「スタートボタン」の「プログラムとファイルの
        検索」に「cmd.exe」と入力し「Enter」を押下
        し、コマンドプロンプトを表示します。
    –   コマンドプロンプトに「ipconfig」と入力しIPア
        ドレスを確認します。
IPアドレスの確認方法
●   コマンドプロンプトで確認する(続き)
    –   「192.168.XXX.XXX」を使用します。有線LANで
        接続したルータのDHCP機能で配布されたアドレ
        スです。
    –   ちなみに「150.29.97.XXX」は産総研の無線LAN
        で配布されたアドレスでインターネットに接続で
        きます。
    –   rtc.conf
        ●   corba.nameservers: localhost
        ●   naming.formats: %n.rtc
        ●   corba.endpoints: localhost,192.168.XXX.XXX:
隣の人のコンポーネントと通信する
●   操作手順
    –   ネットワークを確認し、rtc.confを作成する
    –   RTコンポーネントを再起動する
    –   RTSystemEditerを起動する
    –   ネームサービスビューに、隣の人のネーム
        サービスを登録する
    –   システムダイアグラムに表示し、データポー
        トをリンクする
隣の人のコンポーネントと通信する
●   操作手順
    –   ネットワークを確認し、rtc.confを作成する
    –   RTコンポーネントを再起動する
    –   RTSystemEditerを起動する
    –   ネームサービスビューに、隣の人のネーム
        サービスを登録する
    –   システムダイアグラムに表示し、データポー
        トをリンクする
隣の人のコンポーネントと通信する
●   操作手順
    –   ネットワークを確認し、rtc.confを作成する
    –   RTコンポーネントを再起動する
    –   RTSystemEditerを起動する
    –   ネームサービスビューに、隣の人のネーム
        サービスを登録する
    –   システムダイアグラムに表示し、データポー
        トをリンクする
隣の人のコンポーネントと通信する
●   操作手順
    –   ネットワークを確認し、rtc.confを作成する
    –   RTコンポーネントを再起動する
    –   RTSystemEditerを起動する
    –   ネームサービスビューに、隣の人のネーム
        サービスを登録する
    –   システムダイアグラムに表示し、データポー
        トをリンクする
☆お疲れ様でした☆

More Related Content

What's hot

node-gypを使ったネイティブモジュールの作成
node-gypを使ったネイティブモジュールの作成node-gypを使ったネイティブモジュールの作成
node-gypを使ったネイティブモジュールの作成shigeki_ohtsu
 
How to Make Own Framework built on OWIN
How to Make Own Framework built on OWINHow to Make Own Framework built on OWIN
How to Make Own Framework built on OWINYoshifumi Kawai
 
基礎からのCode Contracts
基礎からのCode Contracts基礎からのCode Contracts
基礎からのCode ContractsYoshifumi Kawai
 
Gradle a new Generation Build Tool
Gradle a new Generation Build ToolGradle a new Generation Build Tool
Gradle a new Generation Build ToolShinya Mochida
 
20210515 cae linux_install_vb
20210515 cae linux_install_vb20210515 cae linux_install_vb
20210515 cae linux_install_vbYohichiShiina
 
Pub/Sub model, msm, and asio
Pub/Sub model, msm, and asioPub/Sub model, msm, and asio
Pub/Sub model, msm, and asioTakatoshi Kondo
 
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例Yoshifumi Kawai
 
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリームC# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム信之 岩永
 
Javaで簡単にgpgpu aparapi
Javaで簡単にgpgpu aparapiJavaで簡単にgpgpu aparapi
Javaで簡単にgpgpu aparapiKen'ichi Sakiyama
 
JJUG CCC 2012 Real World Groovy/Grails
JJUG CCC 2012 Real World Groovy/GrailsJJUG CCC 2012 Real World Groovy/Grails
JJUG CCC 2012 Real World Groovy/GrailsUehara Junji
 
async/await のしくみ
async/await のしくみasync/await のしくみ
async/await のしくみ信之 岩永
 
Qt5 の Input Method
Qt5 の Input MethodQt5 の Input Method
Qt5 の Input MethodTakumi Asaki
 
Unit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFXUnit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFXShinya Mochida
 

What's hot (13)

node-gypを使ったネイティブモジュールの作成
node-gypを使ったネイティブモジュールの作成node-gypを使ったネイティブモジュールの作成
node-gypを使ったネイティブモジュールの作成
 
How to Make Own Framework built on OWIN
How to Make Own Framework built on OWINHow to Make Own Framework built on OWIN
How to Make Own Framework built on OWIN
 
基礎からのCode Contracts
基礎からのCode Contracts基礎からのCode Contracts
基礎からのCode Contracts
 
Gradle a new Generation Build Tool
Gradle a new Generation Build ToolGradle a new Generation Build Tool
Gradle a new Generation Build Tool
 
20210515 cae linux_install_vb
20210515 cae linux_install_vb20210515 cae linux_install_vb
20210515 cae linux_install_vb
 
Pub/Sub model, msm, and asio
Pub/Sub model, msm, and asioPub/Sub model, msm, and asio
Pub/Sub model, msm, and asio
 
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
 
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリームC# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム
 
Javaで簡単にgpgpu aparapi
Javaで簡単にgpgpu aparapiJavaで簡単にgpgpu aparapi
Javaで簡単にgpgpu aparapi
 
JJUG CCC 2012 Real World Groovy/Grails
JJUG CCC 2012 Real World Groovy/GrailsJJUG CCC 2012 Real World Groovy/Grails
JJUG CCC 2012 Real World Groovy/Grails
 
async/await のしくみ
async/await のしくみasync/await のしくみ
async/await のしくみ
 
Qt5 の Input Method
Qt5 の Input MethodQt5 の Input Method
Qt5 の Input Method
 
Unit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFXUnit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFX
 

Viewers also liked

130329 01
130329 01130329 01
130329 01openrtm
 
20130329 rtm3
20130329 rtm320130329 rtm3
20130329 rtm3openrtm
 
20130329 rtm2
20130329 rtm220130329 rtm2
20130329 rtm2openrtm
 
160608 02
160608 02160608 02
160608 02openrtm
 
160608 01
160608 01160608 01
160608 01openrtm
 
130710 01
130710 01130710 01
130710 01openrtm
 
Robomec2014 rtm講習会第3部
Robomec2014 rtm講習会第3部Robomec2014 rtm講習会第3部
Robomec2014 rtm講習会第3部openrtm
 
Robomec2014 rtm講習会第1部(その2)
Robomec2014 rtm講習会第1部(その2)Robomec2014 rtm講習会第1部(その2)
Robomec2014 rtm講習会第1部(その2)openrtm
 
Robomec2014 rtm講習会第2部
Robomec2014 rtm講習会第2部Robomec2014 rtm講習会第2部
Robomec2014 rtm講習会第2部openrtm
 
130522 01
130522 01130522 01
130522 01openrtm
 
130522 rt講習会(説明用)
130522 rt講習会(説明用)130522 rt講習会(説明用)
130522 rt講習会(説明用)openrtm
 
130522 00
130522 00130522 00
130522 00openrtm
 
Robomec2014 rtm講習会第1部(その1)
Robomec2014 rtm講習会第1部(その1)Robomec2014 rtm講習会第1部(その1)
Robomec2014 rtm講習会第1部(その1)openrtm
 
自動アングル機能を有したロボットカメラSi
自動アングル機能を有したロボットカメラSi自動アングル機能を有したロボットカメラSi
自動アングル機能を有したロボットカメラSiShogo Namatame
 
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしようYasuhiro Yoshimura
 
Japan Robot Week 2016 RTM講習会 第1部
Japan Robot Week 2016 RTM講習会 第1部Japan Robot Week 2016 RTM講習会 第1部
Japan Robot Week 2016 RTM講習会 第1部Noriaki Ando
 
Japan Robot Week 2016 RTM講習会 第2部
Japan Robot Week 2016 RTM講習会 第2部Japan Robot Week 2016 RTM講習会 第2部
Japan Robot Week 2016 RTM講習会 第2部openrtm
 
Japan Robot Week 2016 RTM講習会 第3部
Japan Robot Week 2016 RTM講習会 第3部Japan Robot Week 2016 RTM講習会 第3部
Japan Robot Week 2016 RTM講習会 第3部openrtm
 

Viewers also liked (18)

130329 01
130329 01130329 01
130329 01
 
20130329 rtm3
20130329 rtm320130329 rtm3
20130329 rtm3
 
20130329 rtm2
20130329 rtm220130329 rtm2
20130329 rtm2
 
160608 02
160608 02160608 02
160608 02
 
160608 01
160608 01160608 01
160608 01
 
130710 01
130710 01130710 01
130710 01
 
Robomec2014 rtm講習会第3部
Robomec2014 rtm講習会第3部Robomec2014 rtm講習会第3部
Robomec2014 rtm講習会第3部
 
Robomec2014 rtm講習会第1部(その2)
Robomec2014 rtm講習会第1部(その2)Robomec2014 rtm講習会第1部(その2)
Robomec2014 rtm講習会第1部(その2)
 
Robomec2014 rtm講習会第2部
Robomec2014 rtm講習会第2部Robomec2014 rtm講習会第2部
Robomec2014 rtm講習会第2部
 
130522 01
130522 01130522 01
130522 01
 
130522 rt講習会(説明用)
130522 rt講習会(説明用)130522 rt講習会(説明用)
130522 rt講習会(説明用)
 
130522 00
130522 00130522 00
130522 00
 
Robomec2014 rtm講習会第1部(その1)
Robomec2014 rtm講習会第1部(その1)Robomec2014 rtm講習会第1部(その1)
Robomec2014 rtm講習会第1部(その1)
 
自動アングル機能を有したロボットカメラSi
自動アングル機能を有したロボットカメラSi自動アングル機能を有したロボットカメラSi
自動アングル機能を有したロボットカメラSi
 
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
 
Japan Robot Week 2016 RTM講習会 第1部
Japan Robot Week 2016 RTM講習会 第1部Japan Robot Week 2016 RTM講習会 第1部
Japan Robot Week 2016 RTM講習会 第1部
 
Japan Robot Week 2016 RTM講習会 第2部
Japan Robot Week 2016 RTM講習会 第2部Japan Robot Week 2016 RTM講習会 第2部
Japan Robot Week 2016 RTM講習会 第2部
 
Japan Robot Week 2016 RTM講習会 第3部
Japan Robot Week 2016 RTM講習会 第3部Japan Robot Week 2016 RTM講習会 第3部
Japan Robot Week 2016 RTM講習会 第3部
 

Similar to 130329 04

170622 02
170622 02170622 02
170622 02openrtm
 
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜Masaya Aoyama
 
160705-w03 RTミドルウエア講習会・早稲田大
160705-w03 RTミドルウエア講習会・早稲田大160705-w03 RTミドルウエア講習会・早稲田大
160705-w03 RTミドルウエア講習会・早稲田大openrtm
 
3.RTCプログラミング演習
3.RTCプログラミング演習3.RTCプログラミング演習
3.RTCプログラミング演習openrtm
 
Operator reading and writing ( Operator SDK 編 )
Operator reading and writing ( Operator SDK 編 )Operator reading and writing ( Operator SDK 編 )
Operator reading and writing ( Operator SDK 編 )ロフト くん
 
Rtミドルウェア講習会@名城大学 20140624 2
Rtミドルウェア講習会@名城大学 20140624 2Rtミドルウェア講習会@名城大学 20140624 2
Rtミドルウェア講習会@名城大学 20140624 2openrtm
 
Container Storage Interface のすべて
Container Storage Interface のすべてContainer Storage Interface のすべて
Container Storage Interface のすべて祐司 伊藤
 
密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -
密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -
密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -Yukihiko SAWANOBORI
 
OpenShiftでJBoss EAP構築
OpenShiftでJBoss EAP構築OpenShiftでJBoss EAP構築
OpenShiftでJBoss EAP構築Daein Park
 
201110 03
201110 03201110 03
201110 03openrtm
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入Yu Nobuoka
 
4.総合演習(1)
4.総合演習(1)4.総合演習(1)
4.総合演習(1)openrtm
 
SICE 2020 Rtm tutorial 2_online_en
SICE 2020 Rtm tutorial 2_online_enSICE 2020 Rtm tutorial 2_online_en
SICE 2020 Rtm tutorial 2_online_enopenrtm
 
Klocwork C/C++解析チューニング 概要
Klocwork C/C++解析チューニング 概要Klocwork C/C++解析チューニング 概要
Klocwork C/C++解析チューニング 概要Masaru Horioka
 
Kubernetes Operator for vSphere VM
Kubernetes Operator for vSphere VMKubernetes Operator for vSphere VM
Kubernetes Operator for vSphere VMMasanori Nara
 
Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーEc cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーAyumu Kawaguchi
 

Similar to 130329 04 (20)

170622 02
170622 02170622 02
170622 02
 
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
 
160705-w03 RTミドルウエア講習会・早稲田大
160705-w03 RTミドルウエア講習会・早稲田大160705-w03 RTミドルウエア講習会・早稲田大
160705-w03 RTミドルウエア講習会・早稲田大
 
3.RTCプログラミング演習
3.RTCプログラミング演習3.RTCプログラミング演習
3.RTCプログラミング演習
 
Operator reading and writing ( Operator SDK 編 )
Operator reading and writing ( Operator SDK 編 )Operator reading and writing ( Operator SDK 編 )
Operator reading and writing ( Operator SDK 編 )
 
Rtミドルウェア講習会@名城大学 20140624 2
Rtミドルウェア講習会@名城大学 20140624 2Rtミドルウェア講習会@名城大学 20140624 2
Rtミドルウェア講習会@名城大学 20140624 2
 
Container Storage Interface のすべて
Container Storage Interface のすべてContainer Storage Interface のすべて
Container Storage Interface のすべて
 
密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -
密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -
密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -
 
OpenShiftでJBoss EAP構築
OpenShiftでJBoss EAP構築OpenShiftでJBoss EAP構築
OpenShiftでJBoss EAP構築
 
Spring3.1概要x di
Spring3.1概要x diSpring3.1概要x di
Spring3.1概要x di
 
201110 03
201110 03201110 03
201110 03
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
 
4.総合演習(1)
4.総合演習(1)4.総合演習(1)
4.総合演習(1)
 
WebRTC on Native App
WebRTC on Native AppWebRTC on Native App
WebRTC on Native App
 
SICE 2020 Rtm tutorial 2_online_en
SICE 2020 Rtm tutorial 2_online_enSICE 2020 Rtm tutorial 2_online_en
SICE 2020 Rtm tutorial 2_online_en
 
Klocwork C/C++解析チューニング 概要
Klocwork C/C++解析チューニング 概要Klocwork C/C++解析チューニング 概要
Klocwork C/C++解析チューニング 概要
 
PCL
PCLPCL
PCL
 
Kubernetes Operator for vSphere VM
Kubernetes Operator for vSphere VMKubernetes Operator for vSphere VM
Kubernetes Operator for vSphere VM
 
Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーEc cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナー
 
G0042 h
G0042 hG0042 h
G0042 h
 

More from openrtm

ROBOMECH2023 RTミドルウェア講習会 第1部
ROBOMECH2023 RTミドルウェア講習会 第1部ROBOMECH2023 RTミドルウェア講習会 第1部
ROBOMECH2023 RTミドルウェア講習会 第1部openrtm
 
ピッキングシステム
ピッキングシステムピッキングシステム
ピッキングシステムopenrtm
 
GNGを使った未知環境における経路計画
GNGを使った未知環境における経路計画GNGを使った未知環境における経路計画
GNGを使った未知環境における経路計画openrtm
 
まねっこロボット
まねっこロボットまねっこロボット
まねっこロボットopenrtm
 
商品自動補充ロボットシステム
商品自動補充ロボットシステム商品自動補充ロボットシステム
商品自動補充ロボットシステムopenrtm
 
RTサマーキャンプ2022最終発表_都立大.pptx
RTサマーキャンプ2022最終発表_都立大.pptxRTサマーキャンプ2022最終発表_都立大.pptx
RTサマーキャンプ2022最終発表_都立大.pptxopenrtm
 
SysML実習20220822SC_GA.pdf
SysML実習20220822SC_GA.pdfSysML実習20220822SC_GA.pdf
SysML実習20220822SC_GA.pdfopenrtm
 
RTミドルウェアサマーキャンプ資料2022.pdf
RTミドルウェアサマーキャンプ資料2022.pdfRTミドルウェアサマーキャンプ資料2022.pdf
RTミドルウェアサマーキャンプ資料2022.pdfopenrtm
 
NEDO講座 MoveIt! チュートリアル 第1部
NEDO講座 MoveIt! チュートリアル 第1部NEDO講座 MoveIt! チュートリアル 第1部
NEDO講座 MoveIt! チュートリアル 第1部openrtm
 
5.総合演習(2)
5.総合演習(2)5.総合演習(2)
5.総合演習(2)openrtm
 
2.プログラミングの基礎
2.プログラミングの基礎2.プログラミングの基礎
2.プログラミングの基礎openrtm
 
1.コース概要
1.コース概要1.コース概要
1.コース概要openrtm
 
OpenRTM概要
OpenRTM概要OpenRTM概要
OpenRTM概要openrtm
 
Slam実習
Slam実習Slam実習
Slam実習openrtm
 
Rtshell入門
Rtshell入門Rtshell入門
Rtshell入門openrtm
 
Rtコンポーネント作成入門
Rtコンポーネント作成入門Rtコンポーネント作成入門
Rtコンポーネント作成入門openrtm
 
Rtミドルウェアサマーキャンプ2021_宮本信彦
Rtミドルウェアサマーキャンプ2021_宮本信彦Rtミドルウェアサマーキャンプ2021_宮本信彦
Rtミドルウェアサマーキャンプ2021_宮本信彦openrtm
 
RTミドルウェアサマーキャンプ2021_坂本武志_1
RTミドルウェアサマーキャンプ2021_坂本武志_1RTミドルウェアサマーキャンプ2021_坂本武志_1
RTミドルウェアサマーキャンプ2021_坂本武志_1openrtm
 
Rtミドルウェアサマーキャンプ資料2021_坂本武志_2
Rtミドルウェアサマーキャンプ資料2021_坂本武志_2Rtミドルウェアサマーキャンプ資料2021_坂本武志_2
Rtミドルウェアサマーキャンプ資料2021_坂本武志_2openrtm
 
Rtミドルウェアサマーキャンプ資料2021_菅佑樹
Rtミドルウェアサマーキャンプ資料2021_菅佑樹Rtミドルウェアサマーキャンプ資料2021_菅佑樹
Rtミドルウェアサマーキャンプ資料2021_菅佑樹openrtm
 

More from openrtm (20)

ROBOMECH2023 RTミドルウェア講習会 第1部
ROBOMECH2023 RTミドルウェア講習会 第1部ROBOMECH2023 RTミドルウェア講習会 第1部
ROBOMECH2023 RTミドルウェア講習会 第1部
 
ピッキングシステム
ピッキングシステムピッキングシステム
ピッキングシステム
 
GNGを使った未知環境における経路計画
GNGを使った未知環境における経路計画GNGを使った未知環境における経路計画
GNGを使った未知環境における経路計画
 
まねっこロボット
まねっこロボットまねっこロボット
まねっこロボット
 
商品自動補充ロボットシステム
商品自動補充ロボットシステム商品自動補充ロボットシステム
商品自動補充ロボットシステム
 
RTサマーキャンプ2022最終発表_都立大.pptx
RTサマーキャンプ2022最終発表_都立大.pptxRTサマーキャンプ2022最終発表_都立大.pptx
RTサマーキャンプ2022最終発表_都立大.pptx
 
SysML実習20220822SC_GA.pdf
SysML実習20220822SC_GA.pdfSysML実習20220822SC_GA.pdf
SysML実習20220822SC_GA.pdf
 
RTミドルウェアサマーキャンプ資料2022.pdf
RTミドルウェアサマーキャンプ資料2022.pdfRTミドルウェアサマーキャンプ資料2022.pdf
RTミドルウェアサマーキャンプ資料2022.pdf
 
NEDO講座 MoveIt! チュートリアル 第1部
NEDO講座 MoveIt! チュートリアル 第1部NEDO講座 MoveIt! チュートリアル 第1部
NEDO講座 MoveIt! チュートリアル 第1部
 
5.総合演習(2)
5.総合演習(2)5.総合演習(2)
5.総合演習(2)
 
2.プログラミングの基礎
2.プログラミングの基礎2.プログラミングの基礎
2.プログラミングの基礎
 
1.コース概要
1.コース概要1.コース概要
1.コース概要
 
OpenRTM概要
OpenRTM概要OpenRTM概要
OpenRTM概要
 
Slam実習
Slam実習Slam実習
Slam実習
 
Rtshell入門
Rtshell入門Rtshell入門
Rtshell入門
 
Rtコンポーネント作成入門
Rtコンポーネント作成入門Rtコンポーネント作成入門
Rtコンポーネント作成入門
 
Rtミドルウェアサマーキャンプ2021_宮本信彦
Rtミドルウェアサマーキャンプ2021_宮本信彦Rtミドルウェアサマーキャンプ2021_宮本信彦
Rtミドルウェアサマーキャンプ2021_宮本信彦
 
RTミドルウェアサマーキャンプ2021_坂本武志_1
RTミドルウェアサマーキャンプ2021_坂本武志_1RTミドルウェアサマーキャンプ2021_坂本武志_1
RTミドルウェアサマーキャンプ2021_坂本武志_1
 
Rtミドルウェアサマーキャンプ資料2021_坂本武志_2
Rtミドルウェアサマーキャンプ資料2021_坂本武志_2Rtミドルウェアサマーキャンプ資料2021_坂本武志_2
Rtミドルウェアサマーキャンプ資料2021_坂本武志_2
 
Rtミドルウェアサマーキャンプ資料2021_菅佑樹
Rtミドルウェアサマーキャンプ資料2021_菅佑樹Rtミドルウェアサマーキャンプ資料2021_菅佑樹
Rtミドルウェアサマーキャンプ資料2021_菅佑樹
 

130329 04

  • 2. この実習では… ● デモストレーションで使用したFlipコン ポーネントを、インストールしたソフト ウェア・ツールを用いて、一から開発しま す。
  • 3. コンポーネント作成手順 ● 動作環境・開発環境についての確認 ● OpenCVとcvFlip関数についての確認 ● コンポーネントの仕様を決める ● RTCBuilderを用いたソースコードのひな形の作成 ● CMakeを使ったプロジェクトの作成 ● ヘッダ、ソースの編集 ● CMakeを使ったプロジェクトの変更 ● コンポーネントの動作確認 3
  • 4. コンポーネント作成手順 ● 動作環境・開発環境についての確認 ● OpenCVとcvFlip関数についての確認 ● コンポーネントの仕様を決める ● RTCBuilderを用いたソースコードのひな形の作成 ● CMakeを使ったプロジェクトの作成 ● ヘッダ、ソースの編集 ● CMakeを使ったプロジェクトの変更 ● コンポーネントの動作確認 4
  • 5. コンポーネント作成手順 ● 動作環境・開発環境についての確認 ● OpenCVとcvFlip関数についての確認 ● コンポーネントの仕様を決める ● RTCBuilderを用いたソースコードのひな形の作成 ● CMakeを使ったプロジェクトの作成 ● ヘッダ、ソースの編集 ● CMakeを使ったプロジェクトの変更 ● コンポーネントの動作確認 5
  • 6. コンポーネント作成手順 ● 動作環境・開発環境についての確認 ● OpenCVとcvFlip関数についての確認 ● コンポーネントの仕様を決める ● RTCBuilderを用いたソースコードのひな形の作成 ● CMakeを使ったプロジェクトの作成 ● ヘッダ、ソースの編集 ● CMakeを使ったプロジェクトの変更 ● コンポーネントの動作確認 6
  • 7. コンポーネント作成手順 ● 動作環境・開発環境についての確認 ● OpenCVとcvFlip関数についての確認 ● コンポーネントの仕様を決める ● RTCBuilderを用いたソースコードのひな形の作成 ● CMakeを使ったプロジェクトの作成 ● ヘッダ、ソースの編集 ● CMakeを使ったプロジェクトの変更 ● コンポーネントの動作確認 7
  • 8. コンポーネント作成手順 ● 動作環境・開発環境についての確認 ● OpenCVとcvFlip関数についての確認 ● コンポーネントの仕様を決める ● RTCBuilderを用いたソースコードのひな形の作成 ● CMakeを使ったプロジェクトの作成 ● ヘッダ、ソースの編集 ● CMakeを使ったプロジェクトの変更 ● コンポーネントの動作確認 8
  • 9. コンポーネント作成手順 ● 動作環境・開発環境についての確認 ● OpenCVとcvFlip関数についての確認 ● コンポーネントの仕様を決める ● RTCBuilderを用いたソースコードのひな形の作成 ● CMakeを使ったプロジェクトの作成 ● ヘッダ、ソースの編集 ● CMakeを使ったプロジェクトの変更 ● コンポーネントの動作確認 9
  • 10. コンポーネント作成手順 ● 動作環境・開発環境についての確認 ● OpenCVとcvFlip関数についての確認 ● コンポーネントの仕様を決める ● RTCBuilderを用いたソースコードのひな形の作成 ● CMakeを使ったプロジェクトの作成 ● ヘッダ、ソースの編集 ● CMakeを使ったプロジェクトの変更 ● コンポーネントの動作確認 10
  • 11. コンポーネント作成手順 ● 動作環境・開発環境についての確認 ● OpenCVとcvFlip関数についての確認 ● コンポーネントの仕様を決める ● RTCBuilderを用いたソースコードのひな形の作成 ● CMakeを使ったプロジェクトの作成 ● ヘッダ、ソースの編集 ● CMakeを使ったプロジェクトの変更 ● コンポーネントの動作確認 11
  • 12. コンポーネント作成手順 ● 動作環境・開発環境についての確認 ● OpenCVとcvFlip関数についての確認 ● コンポーネントの仕様を決める ● RTCBuilderを用いたソースコードのひな形の作成 ● CMakeを使ったプロジェクトの作成 ● ヘッダ、ソースの編集 ● CMakeを使ったプロジェクトの変更 ● コンポーネントの動作確認 12
  • 13. 動作環境・開発環境についての確認 ● OS: Windows XP SP3 (Vista, 7でも可能) ● コンパイラ: Visual C++ 2010 Express Edition 日本語版 ● OpenRTM-aist-1.1.0-RELEASE (C++版), Win32 VC2010 ● OpenRTP 1.1.0-RC4 – RTSystemEditor 1.1 – RTCBuilder 1.1 ● Eclipse 3.8.1 (OpenRTP 1.1.0-RC4) Windows用全部入り ● Doxygen ドキュメント生成に必要 ● CMake
  • 14. コンポーネント作成手順 ● 動作環境・開発環境についての確認 ● OpenCVとcvFlip関数についての確認 ● コンポーネントの仕様を決める ● RTCBuilderを用いたソースコードのひな形の作成 ● CMakeを使ったプロジェクトの作成 ● ヘッダ、ソースの編集 ● CMakeを使ったプロジェクトの変更 ● コンポーネントの動作確認 14
  • 15. OpenCVとcvFlip関数についての確認 void cvFlip(IplImage* src,   IplImage* dst=NULL,   int flipMode=0); ● src 入力配列 ● dst 出力配列。もしdst=NULLであれば、srcが上書き されます。 ● flipMode 配列の反転方法の指定内容: – flipMode = 0: X軸周りでの反転(上下反転) – flipMode > 0: Y軸周りでの反転(左右反転) – flipMode < 0: 両軸周りでの反転(上下左右反転)
  • 16.
  • 17. コンポーネント作成手順 ● 動作環境・開発環境についての確認 ● OpenCVとcvFlip関数についての確認 ● コンポーネントの仕様を決める ● RTCBuilderを用いたソースコードのひな形の作成 ● CMakeを使ったプロジェクトの作成 ● ヘッダ、ソースの編集 ● CMakeを使ったプロジェクトの変更 ● コンポーネントの動作確認 17
  • 18. データポートの仕様 ● OpenRTM-aistには OpenCVを使用したビジョ ン関連のコンポーネントがサンプルとして付属 しています。これらのコンポーネントのデータ ポートは画像の入出力に以下のような CameraImage 型を使用しています。 詳細はwebページを確認してください。
  • 19. struct CameraImage { /// Time stamp. Time tm; /// Image pixel width. unsigned short width; /// Image pixel height. unsigned short height; /// Bits per pixel. unsigned short bpp; /// Image format (e.g. bitmap, jpeg, etc.). string format; /// Scale factor for images, such as disparity maps, /// where the integer pixel value should be divided /// by this factor to get the real pixel value. double fDiv; /// Raw pixel data. sequence<octet> pixels; };
  • 20. コンフィギュレーションの仕様 void cvFlip(IplImage* src,   IplImage* dst=NULL,   int flipMode=0); ● src 入力配列 ● dst 出力配列。もしdst=NULLであれば、srcが上書き されます。 ● flipMode 配列の反転方法の指定内容: – flipMode = 0: X軸周りでの反転(上下反転) – flipMode > 0: Y軸周りでの反転(左右反転) – flipMode < 0: 両軸周りでの反転(上下左右反転)
  • 21. コンフィギュレーションの仕様 ● ひとつのコンポーネントで3つの変換がで きると、ユーザーも便利だし、管理する ほうも楽チンですよね。
  • 22. 仕様まとめ ● InPort – ポート名・・・・・ originalImage – 型 ・・・・・    CameraImage – 意味 ・・・・・  入力画像
  • 23. 仕様まとめ ● OutPort – ポート名・・・・・ flippedImage – 型 ・・・・・    CameraImage – 意味 ・・・・・  反転された画像
  • 24. 仕様まとめ ● Configuration – パラメータ名 flipMode – 型 int – 意味 反転モード ● 上下反転: 0 ● 左右反転: 1 ● 上下左右反転: -1
  • 27. コンポーネント作成手順 ● 動作環境・開発環境についての確認 ● OpenCVとcvFlip関数についての確認 ● コンポーネントの仕様を決める ● RTCBuilderを用いたソースコードのひな形の作成 ● CMakeを使ったプロジェクトの作成 ● ヘッダ、ソースの編集 ● CMakeを使ったプロジェクトの変更 ● コンポーネントの動作確認 27
  • 28. RTCBuilderを用いた ソースコードのひな形の作成・手順 ● eclipseを起動し、RTCBuilderを表示する ● 新規プロジェクトの作成 ● コンポーネント情報を入力し生成する – XMLをインポートする、または、情報を入力 する。 ※この章の実習は、初めてEclipseを起動した場合、 または新しいワークスペースを使用した場合を想定し ております。一緒に実習をする方は、新しいワークス ペースを使用してください。
  • 29. 入力に必要なコンポーネントの詳細情報は Webページをご覧ください。 最後に生成されたファイルを確認します。
  • 30. コンポーネント作成手順 ● 動作環境・開発環境についての確認 ● OpenCVとcvFlip関数についての確認 ● コンポーネントの仕様を決める ● RTCBuilderを用いたソースコードのひな形の作成 ● CMakeを使ったプロジェクトの作成 ● ヘッダ、ソースの編集 ● CMakeを使ったプロジェクトの変更 ● コンポーネントの動作確認 30
  • 31. CMakeを使ったプロジェクトの作成 ● CMakeを起動し、ディレクトリを設定する ● Configureボタンを押下し、コンフィギュアす る。 ● Generate ボタンを押下し、プロジェクトを生成 する。 ※この章の実習も、初めてCMakeを起動した場合、  を想定しております。
  • 33. コンポーネント作成手順 ● 動作環境・開発環境についての確認 ● OpenCVとcvFlip関数についての確認 ● コンポーネントの仕様を決める ● RTCBuilderを用いたソースコードのひな形の作成 ● CMakeを使ったプロジェクトの作成 ● ヘッダ、ソースの編集 ● CMakeを使ったプロジェクトの変更 ● コンポーネントの動作確認 33
  • 36. ヘッダの編集 ● OpenCVのインクルード文を追加する。 ● イメージ用メモリ変数を宣言する。 – m_imageBuff – m_flipImageBuff 入力に必要なコンポーネントの詳細情報 は Webページをご覧ください。
  • 37. ソースの編集 ● onActivated() – イメージ用メモリの初期化と、outportの画 面サイズの初期化を行います。 ● onDeactivated() – イメージ用メモリを開放します。 ● onExecute() –インポートの確認・読み込み、vcFlip関数の 処理、アウトポートのデータ送信などを行い 入力に必要なコンポーネントの詳細情報 ます。 は Webページをご覧ください。
  • 38. コンポーネント作成手順 ● 動作環境・開発環境についての確認 ● OpenCVとcvFlip関数についての確認 ● コンポーネントの仕様を決める ● RTCBuilderを用いたソースコードのひな形の作成 ● CMakeを使ったプロジェクトの作成 ● ヘッダ、ソースの編集 ● CMakeを使ったプロジェクトの変更 ● コンポーネントの動作確認 38
  • 39. CMakeを使ったプロジェクトの変更 ● OpenCVを使う為に、インクルード文のほかに次 の設定が必要です。 – インクルードパス – ライブラリ – ライブラリパス ● CMakeLists.txtを修正して、OpenCVの設定が 入ったCMakeを実行しプロジェクトを再生成し ます。 ● 完了したらVC++でビルドします。
  • 40. 修正内容はWebページをご覧ください。 ではCMakeを修正します。
  • 41. コンポーネント作成手順 ● 動作環境・開発環境についての確認 ● OpenCVとcvFlip関数についての確認 ● コンポーネントの仕様を決める ● RTCBuilderを用いたソースコードのひな形の作成 ● CMakeを使ったプロジェクトの作成 ● ヘッダ、ソースの編集 ● CMakeを使ったプロジェクトの変更 ● コンポーネントの動作確認 41
  • 42. コンポーネントの動作確認 ● NameServiceの起動 ● Flipコンポーネントの起動 ● その他のコンポーネントの起動 – OpenCVCameraComp, またはDirectShowCamComp – CameraViewerComp ● RTSystemEditerでコンポーネントを確認・接続する ● コンポーネントをActivateし、動作確認を行う
  • 44. 隣の人のコンポーネントと通信す る ● 操作手順 – rtc.confを作成する – ネームサービス、RTコンポーネント、を起 動する – RTSystemEditerを起動する – ネームサービスビューに、隣の人のネーム サービスを登録する – システムダイアログに表示し、データポート をリンクする 44
  • 45. 隣の人のコンポーネントと通信する ● 操作手順 – ネットワークを確認し、rtc.confを作成する – RTコンポーネントを再起動する – RTSystemEditerを起動する – ネームサービスビューに、隣の人のネーム サービスを登録する – システムダイアログに表示し、データポート をリンクする
  • 46. 隣の人のコンポーネントと通信する ● ネットワークの確認 – 無線LANは通信量が増えると通信速度が遅く なることがあるため、有線LANを使います。
  • 47. 隣の人のコンポーネントと通信する ● rtc.confの準備 – 有線LANと無線LANを使用すると、ネット ワークインタフェースが二つになりま す。rtc.confを作成し、コルバエンドポインツ を設定します。 – rtc.conf ● corba.nameservers: localhost ● naming.formats: %n.rtc ● corba.endpoints: localhost,192.168.XXX.XXX:
  • 48. IPアドレスの確認方法 ● コマンドプロンプトで確認する – 「スタートボタン」の「プログラムとファイルの 検索」に「cmd.exe」と入力し「Enter」を押下 し、コマンドプロンプトを表示します。 – コマンドプロンプトに「ipconfig」と入力しIPア ドレスを確認します。
  • 49. IPアドレスの確認方法 ● コマンドプロンプトで確認する(続き) – 「192.168.XXX.XXX」を使用します。有線LANで 接続したルータのDHCP機能で配布されたアドレ スです。 – ちなみに「150.29.97.XXX」は産総研の無線LAN で配布されたアドレスでインターネットに接続で きます。 – rtc.conf ● corba.nameservers: localhost ● naming.formats: %n.rtc ● corba.endpoints: localhost,192.168.XXX.XXX:
  • 50. 隣の人のコンポーネントと通信する ● 操作手順 – ネットワークを確認し、rtc.confを作成する – RTコンポーネントを再起動する – RTSystemEditerを起動する – ネームサービスビューに、隣の人のネーム サービスを登録する – システムダイアグラムに表示し、データポー トをリンクする
  • 51. 隣の人のコンポーネントと通信する ● 操作手順 – ネットワークを確認し、rtc.confを作成する – RTコンポーネントを再起動する – RTSystemEditerを起動する – ネームサービスビューに、隣の人のネーム サービスを登録する – システムダイアグラムに表示し、データポー トをリンクする
  • 52. 隣の人のコンポーネントと通信する ● 操作手順 – ネットワークを確認し、rtc.confを作成する – RTコンポーネントを再起動する – RTSystemEditerを起動する – ネームサービスビューに、隣の人のネーム サービスを登録する – システムダイアグラムに表示し、データポー トをリンクする
  • 53. 隣の人のコンポーネントと通信する ● 操作手順 – ネットワークを確認し、rtc.confを作成する – RTコンポーネントを再起動する – RTSystemEditerを起動する – ネームサービスビューに、隣の人のネーム サービスを登録する – システムダイアグラムに表示し、データポー トをリンクする