Download presentation
Presentation is loading. Please wait.
Published byとしみ りゅうとう Modified 約 7 年前
0
共有メモリを用いた RTコンポーネント間の画像データ通信
筑波大学 ○渡部 努 相山 康道
1
RTミドルウェアによるシステムの構築 現在,RTミドルウェアの利用が進んでいる ⇒機能要素のRTコンポーネント化を行うことで
要素の再利用性が向上する
2
RTミドルウェアによるシステムの構築 再利用性のある要素は,分割してComp化したい 何度も通信を行うため,
例)画像処理 例)マニピュレータ(力制御) 何度も通信を行うため, 通信にかかる時間が処理全体の時間に 大きく影響する
3
OpenRTM-aistにおける通信方法
ホスト間通信をサポートするためCORBAを利用 同一ホスト上Comp間でもCORBAを利用するため, データの通信を行う際,通信時間に遅延が発生する ⇒処理時間に関してシビアな要求をされるシステムの場合, 通信の遅延のためCompによるシステム構築が不可能
4
提案手法 Comp間で共有するメモリ空間を持つ ⇒共有メモリを経由してデータの授受を行うことで, 高速な通信を実現する
⇒共有メモリを経由してデータの授受を行うことで, 高速な通信を実現する 異なるホスト間では共有メモリは利用できない ⇒前提:高速な処理が求められるものは 同一ホスト上で実行されるであろう 通信対象のデータとして,画像データを取り扱う
5
提案手法 以下のようにしてメモリの共有を行う CompA CompB 共有空間名“α” 共有メモリ 空間α 共有メモリ空間α 共有メモリ
“画像データ”
6
提案手法 複数段対応 1対多対応 CompA CompB CompC CompD CompA CompB CompC 名称“α” “β”
“γ” CompD 共有空間α 共有空間β 共有空間γ 1対多対応 名称“α” CompA CompB CompC 共有空間α
7
実装方法 共有メモリ通信を容易にするためのクラス ⇒Comp内の画像データ1つにつきインスタンスが1つ必要 IplImage *img;
IplImage *Init(CvSize size, int depth, int channels, char *SMname); IplImage *Init(char *SMname); void Release(); void Read(); void Write(); void IsNew(); ⇒Comp内の画像データ1つにつきインスタンスが1つ必要 OS Windows XP RTM OpenRTM-aist 0.4.2 etc. OpenCV
8
実装した様子 複数段や1対多にも対応
9
実験と結果 実際に通信にかかる時間を計測した ⇒共有メモリを用いることで通信時間を短縮できた 640×480のカラー画像を使用
送信側CompのWrite()の後と受信側CompのIsNew()の後とで時刻を取得し,差分を通信時間とした 共有メモリによる通信: 0.4μs データポートによる通信: 5.7ms ⇒共有メモリを用いることで通信時間を短縮できた
10
まとめ Comp間の通信の遅延を解消するために, 共有メモリを用いた通信手法を提案した
処理時間にシビアな要求をされるシステムも RTコンポーネント化が可能になると考えられる 本手法を応用することで,画像データ以外にも 適応が可能である
11
動画による比較 共有メモリを用いた通信 データポートを用いた通信
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.