[openrtm-users 02265] System Editor のコンポーネントを画像にしたい

3 posts / 0 new
Last post
Shunji Satoh
Offline
Last seen: Never ago
Joined: 2011-10-12 22:20
[openrtm-users 02265] System Editor のコンポーネントを画像にしたい

電気通信大学の佐藤と申します.いつもお世話になっております.

System Editor では各コンポーネントが均一色(状態に応じて青や赤など)の長
方形で表示されていますが,この長方形をどうにかして画像にしたいと考えてい
ます.具体的には OpenCV との組み合わせを考えおり,画像処理結果をコンポー
ネント内に直接描画したいと思っています.が,調査が思うように進みません.
解決策を教示いただければ幸いです.

たとえば,
http://openrtm.org/openrtm/ja/content/cvflip%E9%96%A2%E6%95%B0%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6-0
では,画像を左右反転させる cvFlip 関数のモジュール化が紹介されています.
モジュール Flip によって左右反転した結果は,「別途」,表示用コンポーネン
トに接続することで確認することができます.

私がやりたいことは,flip による反転結果の画像を,System Editor 内に直接
表示することです.現在は緑色の四角形で,各コンポーネントが表示されていま
すが,緑の四角形ではなくコンポーネントの状態(flip した結果の画像)を
System Editor 内で直接可視化できれば,とても便利だと思っています.

プログラムソースを追いかけて,refreshVisuals() あたりを書き換えれば可能
だと想像していますが,そもそもこの考え自体が適切かどうかもわかりません.
アイディアや関連ドキュメントなどありましたら教えていただければと思います.

----
四角形の描画は Draw2D を用いている.
コンポーネントの状態に応じて色を変更する関数は,refreshVisuals()
おそらくは,setForegroundColor() の周辺を修正すれば所望の機能が達成でき
ると考えていますが,どうすれば画像を表示できるのか見当がついていません.
----

以上よろしくお願いします.

_______________________________________________
openrtm-users mailing list
openrtm-users@openrtm.org
http://www.openrtm.org/mailman/listinfo/openrtm-users

Undefined
root
Offline
Last seen: 14 hours 35 min ago
Joined: 2009-06-23 14:31
[openrtm-users 02285] System Editor のコンポーネントを画像にしたい

佐藤先生

産総研 安藤です

EclipseおよびJavaについてはあまり詳しくないので、
そちらに詳しい方にぜひともアドバイスを頂きたいのですが、
基本的な考え方として、処理結果をRTSystemEditor (RTSE) 側で
受け取らなければならないので、RTSEにもInPortまたは
それに相当するものを持たせる必要があります。

考えられる方法はいくつかあります。
1.コンポーネントを1個持たせる。RTCには例えばCameraImage
方のデータポートが幾つかあり、画像を取得したいと思う
コンポーネントのOutPortに接続して画像を取得する。

2.RTSEにデータポートだけ持たせる。画像を取得するのに
RTCそのものは必要なくデータポートだけあればいい。
したがって、InPortオブジェクトだけを
持たせてこれを画像取得したRTCのOutPortに取得しデータを貰う。

3.InPortCdrインターフェースだけ持たせる。データだけをもらうのであれば
InPortのインターフェースであるInPortCdrだけでも画像は取得できる。
これを対象とするOutPortの接続する際のConnectorProfileに代入して
OutPort::connect() 関数を呼んでやれば画像が送られてくる。
※もしかすると、こちら側がProvided Serviceなので、RTCのポートの
※構造上でいないかもしれません。逆だと問題なくできるのですが。。。

以上の方法のいずれかで画像が取得できるようになったら、
それをRTSEのエディタ上のコンポーネントアイコン内に
描画すればご希望のことが出来るかと思います。

2011年10月12日15:09 Shunji Satoh :
> 電気通信大学の佐藤と申します.いつもお世話になっております.
>
> System Editor では各コンポーネントが均一色(状態に応じて青や赤など)の長
> 方形で表示されていますが,この長方形をどうにかして画像にしたいと考えてい
> ます.具体的には OpenCV との組み合わせを考えおり,画像処理結果をコンポー
> ネント内に直接描画したいと思っています.が,調査が思うように進みません.
> 解決策を教示いただければ幸いです.
>
> たとえば,
> http://openrtm.org/openrtm/ja/content/cvflip%E9%96%A2%E6%95%B0%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6-0
> では,画像を左右反転させる cvFlip 関数のモジュール化が紹介されています.
> モジュール Flip によって左右反転した結果は,「別途」,表示用コンポーネン
> トに接続することで確認することができます.
>
> 私がやりたいことは,flip による反転結果の画像を,System Editor 内に直接
> 表示することです.現在は緑色の四角形で,各コンポーネントが表示されていま
> すが,緑の四角形ではなくコンポーネントの状態(flip した結果の画像)を
> System Editor 内で直接可視化できれば,とても便利だと思っています.
>
> プログラムソースを追いかけて,refreshVisuals() あたりを書き換えれば可能
> だと想像していますが,そもそもこの考え自体が適切かどうかもわかりません.
> アイディアや関連ドキュメントなどありましたら教えていただければと思います.
>
> ----
> 四角形の描画は Draw2D を用いている.
> コンポーネントの状態に応じて色を変更する関数は,refreshVisuals()
> おそらくは,setForegroundColor() の周辺を修正すれば所望の機能が達成でき
> ると考えていますが,どうすれば画像を表示できるのか見当がついていません.
> ----
>
> 以上よろしくお願いします.
>
>
>
> _______________________________________________
> openrtm-users mailing list
> openrtm-users@openrtm.org
> http://www.openrtm.org/mailman/listinfo/openrtm-users
>

Shunji Satoh
Offline
Last seen: Never ago
Joined: 2011-10-12 22:20
[openrtm-users 02313] System Editor のコンポーネントを画像にしたい

安藤様

電通大院・佐藤俊治です.
お世話になっております.

3案もご紹介いただきありがとうございました.またお礼をお伝えするのが遅れ
まして失礼しました.安藤さんから返信いただいた直後から開発に取り掛かって
いたのですが,System Editor のビルド自体に四苦八苦してしまい,先ほどよう
やくビルドとエクスポートに成功しました.

要するに,現段階では元の System Editor のビルドができただけで,コンポー
ネントの画像化はこれからです.まだ勉強段階なので,(一番簡単だと思われ
る)第1案を試してみます.

取り急ぎ御礼まで.

> 佐藤先生
>
> 産総研 安藤です
>
> EclipseおよびJavaについてはあまり詳しくないので、
> そちらに詳しい方にぜひともアドバイスを頂きたいのですが、
> 基本的な考え方として、処理結果をRTSystemEditor (RTSE) 側で
> 受け取らなければならないので、RTSEにもInPortまたは
> それに相当するものを持たせる必要があります。
>
> 考えられる方法はいくつかあります。
> 1.コンポーネントを1個持たせる。RTCには例えばCameraImage
> 方のデータポートが幾つかあり、画像を取得したいと思う
> コンポーネントのOutPortに接続して画像を取得する。
>
> 2.RTSEにデータポートだけ持たせる。画像を取得するのに
> RTCそのものは必要なくデータポートだけあればいい。
> したがって、InPortオブジェクトだけを
> 持たせてこれを画像取得したRTCのOutPortに取得しデータを貰う。
>
> 3.InPortCdrインターフェースだけ持たせる。データだけをもらうのであれば
> InPortのインターフェースであるInPortCdrだけでも画像は取得できる。
> これを対象とするOutPortの接続する際のConnectorProfileに代入して
> OutPort::connect() 関数を呼んでやれば画像が送られてくる。
> ※もしかすると、こちら側がProvided Serviceなので、RTCのポートの
> ※構造上でいないかもしれません。逆だと問題なくできるのですが。。。
>
> 以上の方法のいずれかで画像が取得できるようになったら、
> それをRTSEのエディタ上のコンポーネントアイコン内に
> 描画すればご希望のことが出来るかと思います。
>
>
> 2011年10月12日15:09 Shunji Satoh:
>> 電気通信大学の佐藤と申します.いつもお世話になっております.
>>
>> System Editor では各コンポーネントが均一色(状態に応じて青や赤など)の長
>> 方形で表示されていますが,この長方形をどうにかして画像にしたいと考えてい
>> ます.具体的には OpenCV との組み合わせを考えおり,画像処理結果をコンポー
>> ネント内に直接描画したいと思っています.が,調査が思うように進みません.
>> 解決策を教示いただければ幸いです.
>>
>> たとえば,
>>
http://openrtm.org/openrtm/ja/content/cvflip%E9%96%A2%E6%95%B0%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6-0
>> では,画像を左右反転させる cvFlip 関数のモジュール化が紹介されています.
>> モジュール Flip によって左右反転した結果は,「別途」,表示用コンポーネン
>> トに接続することで確認することができます.
>>
>> 私がやりたいことは,flip による反転結果の画像を,System Editor 内に直接
>> 表示することです.現在は緑色の四角形で,各コンポーネントが表示されていま
>> すが,緑の四角形ではなくコンポーネントの状態(flip した結果の画像)を
>> System Editor 内で直接可視化できれば,とても便利だと思っています.
>>
>> プログラムソースを追いかけて,refreshVisuals() あたりを書き換えれば可能
>> だと想像していますが,そもそもこの考え自体が適切かどうかもわかりません.
>> アイディアや関連ドキュメントなどありましたら教えていただければと思い
ます.
>>
>> ----
>> 四角形の描画は Draw2D を用いている.
>> コンポーネントの状態に応じて色を変更する関数は,refreshVisuals()
>> おそらくは,setForegroundColor() の周辺を修正すれば所望の機能が達成でき
>> ると考えていますが,どうすれば画像を表示できるのか見当がついていません.
>> ----
>>
>> 以上よろしくお願いします.
>>
>>
>>
>> _______________________________________________
>> openrtm-users mailing list
>> openrtm-users@openrtm.org
>> http://www.openrtm.org/mailman/listinfo/openrtm-users
>>
>
>
>

_______________________________________________
openrtm-users mailing list
openrtm-users@openrtm.org
http://www.openrtm.org/mailman/listinfo/openrtm-users

Log in or register to post comments

Download

latest Releases : 2.0.0-RELESE

2.0.0-RELESE Download page

Number of Projects

Choreonoid

Motion editor/Dynamics simulator

OpenHRP3

Dynamics simulator

OpenRTP

Integrated Development Platform

AIST RTC collection

RT-Components collection by AIST

TORK

Tokyo Opensource Robotics Association

DAQ-Middleware

Middleware for DAQ (Data Aquisition) by KEK