131017 cnr研究会 ando

535 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
535
On SlideShare
0
From Embeds
0
Number of Embeds
150
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

131017 cnr研究会 ando

  1. 1. 2013年10月17日 クラウドネットワークロボット研究会 ロボットミドルウエア標準「RTミドルウエア」 ~ RTコンポーネントフレームワークと OMGにおける標準化 ~ (独)産業技術総合研究所 知能システム研究部門 安藤慶昭 2013-10-17 クラウドネットワークロボット研究会 1
  2. 2. 概要 • • • • RTミドルウエアとは OMGにおける標準化 RTミドルウエアの展開 まとめ 2013-10-17 クラウドネットワークロボット研究会 2
  3. 3. RTミドルウエアとは 2013-10-17 クラウドネットワークロボット研究会 3
  4. 4. RTとは? • RT = Robot Technology cf. IT – ≠Real-time – 単体のロボットだけでなく、さまざまなロボット技術に基づく機能要素 をも含む (センサ、アクチュエータ, 制御スキーム、アルゴリズム、 etc….) 産総研版RTミドルウエア OpenRTM-aist + + + + + RT-Middleware • RT-Middleware (RTM) – RT要素のインテグレーションのためのミドルウエア • RT-Component (RTC) – RT-Middlewareにおけるソフトウエアの基本単位 2013-10-17 クラウドネットワークロボット研究会 4
  5. 5. RTミドルウエアの目的 モジュール化による問題解決 • • • 仕様の明確化 コストの問題 最新技術を容易に利用可能 誰でもロボットが作れる A社製移動ベース B社製アーム 技術の問題 ニーズの問題 最新の理論・ アルゴリズム 多様なユーザ C社製センサ・・・ 仕様 RTコンポーネント化 ! モジュール化・再利用 ロボットの低コスト化 ! ! ! システム開発者 最新技術を利用可能 カスタマイズが容易に 多様なニーズに対応 ロボットシステムインテグレーションによるイノベーション 2013-10-17 クラウドネットワークロボット研究会 5
  6. 6. RTミドルウエアとRTコンポーネント ロジック ・デバイス制御 ・制御アルゴリズム ・アプリケーション etc… RT コンポーネント フレームワーク RT コンポーネント ロジックを箱(フレームワーク)に入れたもの=RTコンポーネント(RTC) RTC RTC RTC RTC RTC RTC RTC RTC RTミドルウエア RTCの実行環境(OSのようなもの)=RTミドルウエア(RTM) ※RTCはネットワーク上に分散可能 2013-10-17 クラウドネットワークロボット研究会 6
  7. 7. RTコンポーネントの主な機能 データポート アクティビティ・実行コンテキスト 複合実行 共通の状態遷移 Inactive Active • • • センサRTC 目標値 制御RTC Error データ指向ポート 連続的なデータの送受信 動的な接続・切断 アクチュエータRTC ステレオビジョンの例 サービスポート ステレオビジョン インターフェース 3Dデプス データ 画像 データ Kp 位置 制御器 コ ンポーネント アクチュエータ コンポーネント コンフィギュレーション 定義可能なインターフェースを持つ 内部の詳細な機能にアクセス ・モード設定関数 ・座標系設定関数 ・キャリブレーション ・etc… + データ指向通信機能 サービスポート パラメータ取得・設定 モード切替 etc… 1 TI s TDs ライフサイクルの管理・コアロジックの実行 – – – 電圧 - エンコーダ コンポーネント • • サーボの例 位置 ステレオビジョン コンポーネント • • • パラメータを保持する仕組み いくつかのセットを保持可能 実行時に動的に変更可能 セット名 名前 セット名 複数のセットを 動作時に 切り替えて 使用可能 名前 値 値 データポート サービス指向相互作用機能 2013-10-17 クラウドネットワークロボット研究会 7
  8. 8. RTCコアロジックの実行 ・実行コンテキスト(ExecutionContext) = 実行主体 ≒スレッド ・RTコンポーネント⇔実行コンテキスト:動的に関連付けられる RTミドルウエア 標準コンテキスト 実行コンテキストB モジュールの 動的ロード RTコンポーネント RTコンポーネント 実行コンテキストA コンテキストをアタッチ コンテキストをアタッチ 異なる実行コンテキストを関連付けることにより 動作形態を動的に変更できる 2013-10-17 クラウドネットワークロボット研究会 8
  9. 9. データポート • データ指向(Data Centric)な ストリームポート – 型:long, double×6, etc… • ユーザが任意に定義可能 – 出力:OutPort – 入力:InPort • 接続制御(接続時に選択可能) – Interface type • CORBA,TCP socket, other protocol, etc… Activity Publisher CORBA I/F Notify put(data) inport.put(data) operation buffer Original Protocol (a) “new” type subscription asynchronous Raw TCP Socket (a) Push (publisher/subscriber) communication model Activity Publisher Timer buffer put(data) outport.get() operation Connected by original protocol (b) “periodic” type subscription – Data flow type • push/pull Activity Data transfer through “Original Protocol” – Subscription type (b) Pull communication model put(data) • Flush, New, Periodic synchronous 2013-10-17 クラウドネットワークロボット研究会 (c) “flush” type subscription 9
  10. 10. 開発環境 • • RTCBuilder (GUI版) rtc-template (CUI) – RTコンポーネントのコードジェネレータ – GUI画面で必要事項を入力 – C++, Python, Java, C#等のコードを自 動生成 • RTSystemEditor RTCBuilder – ネットワーク上のすべてのコンポー ネントの操作が可能 – コンポーネントのON/OFF、パラ メータの変更、状態監視 – コンポーネント間の接続 RTSystemEditor RTC・RTM統合開発環境の整備 RTC設計・実装・デバッグ、RTMによるインテグレーション・デバッグまでを 一貫して行うことができる統合開発環境をEclipse上に構築 2013-10-17 クラウドネットワークロボット研究会
  11. 11. OpenRTMを使った開発の流れ どのようなコンポーネントか? ・名前 ・データポート ・サービスポート ・コンフィギュレーション コンポーネント の仕様 コードの雛型 (C++のクラス) RtcTemplate (RTCBuilder) コード生成 コンパイル .so or DLL マネージャ (ミドルウエア) 実行 2013-10-17 クラウドネットワークロボット研究会 コアロジック RTC開発者が 開発したプログ ラム資産 雛型にコアロジッ クを埋め込む
  12. 12. モデルに基づくコード生成 コンポーネント仕様 name: category: description: comp_type: act_type: InPorts: OutPorts: MyComp temp.sensor device temp. sensor RTC STATIC PERIODIC mode:TimedBool temp: TimedDouble 同一のRTC仕様からは 言語が異なっていても、 同じ(コンポーネントモデ ルの)RTCが生成される Template code generator C++ backend RTC source for C++ class MyComp : public DataflowComponent { public: virutal onExecute(ec_id); : private: TimedBool m_mode; TimedDouble m_temp; }; Java backend RTC source for Java RTC source for Python import RTC.DataFlowComponent; public class MyCompImpl extends DataFlowComponent { public ConsoleInImpl(mgr) { } : }; #/usr/bin/env python import RTC class MyComp( DataFlowComponent): def __init__(self, manager): : 2013-10-17 クラウドネットワークロボット研究会 def onExecute(self, ec_id): : Python backend RTC-Lite backend RTC-Lite source for PIC C #include <16f877a.h> #include "rtc_base.c“ int main (void) { rtc_connect_proxy(); rtc_mainloop(); return 0; } RTC-Lite proxy code #/usr/bin/env python import RTC class Proxy( DataFlowComponent): def __init__(self, manager): : def onExecute(self, ec_id): : 12
  13. 13. RTCの分割と連携 ロボット体内のコンポーネントによる構成例 画像データ 顔位置 問 合せ カメラ コ ンポーネント 画像データ データ・コマンドの流れ 顔認識 コ ンポーネント 人物データ 表情データ ステレオビジョン コ ンポーネント カメラ コ ンポーネント ポート ジェスチャ 軌 道データ カメラコントロール 音声データ 音声認識 コ ンポーネント 対話 コ ンポーネント 文字データ 頭・腕駆動 コ ンポーネント 音声合成 コ ンポーネント 文字データ マイク コ ンポーネント (モジュール)情報の隠蔽と公開のルールが重要 2013-10-17 クラウドネットワークロボット研究会
  14. 14. RTミドルウエアによる分散システム RTMにより、 ネットワーク上に 分散するRTCを OS・言語の壁を 越えて接続する ことができる。 ネットワーク RTC ロボットC ロボットB ロボットA RTC RTC RTC RTC RTC RTC RTM RTM RTM Solaris FreeBSD ARTLinux Linux Windows TRON RTM RTM RTM RTC RTC アプリケーション 2013-10-17 クラウドネットワークロボット研究会 RTC RTC 操作デバイス RTC RTC センサ RTC同士の接続 は、プログラム 実行中に動的に 行うことが出来る。
  15. 15. OMGにおける標準化 2013-10-17 クラウドネットワークロボット研究会 15
  16. 16. なぜ標準が必要? RTミドルウエアの目的 • 人々の間で共有される共通ソフトウエアモデル • オープンな仕様を提供 – 誰でも実装可能→実装の多様性 – 仕様を策定することが主たる目的 – 実装(OpenRTM-aist):仕様の妥当性検証 • 実装技術に非依存なソフトウエアモデル – 特定の言語、OS、分散オブジェクトミドルウエアに依存しないモデル (PIM: Platform Independent Model) • 標準化された仕様 – OMG (Object Management Group) における標準化 – オープンな標準化プロセス 2013-10-17 クラウドネットワークロボット研究会 16
  17. 17. OMG RTC 標準化 • 2005年9月 RFP: Robot Technology Components (RTCs) 公開。 • 2006年2月 Initial Response : PIM and PSM for RTComponent を執筆し提出 提案者:AIST(日)、RTI(米) • 2006年4月 両者の提案を統合した仕様を提案 • 2006年9月 ABにて承認、事実上の国際標準獲得 FTFが組織され最終文書化開始 • 2007年8月 FTFの最後の投票が終了 • 2007年9月 ABにてFTFの結果を報告、承認 • 2008年4月 OMG RTC標準仕様 ver.1.0公式リリース • 2010年1月 OpenRTM-aist-1.0リリース • 2012年9月 ver. 1.1改定 2013-10-17 クラウドネットワークロボット研究会 17
  18. 18. OMG RTC ファミリ 名称 ベンダ 特徴 互換性 OpenRTM-aist AIST C++, Python, Java --- OpenRTM.NET SEC .NET(C#,VB,C++/CLI, F#, etc..) ◎ RTM on Android SEC Android版RTミドルウエア ◎ H-RTM (仮称) 本田R&D OpenRTM-aist互換、FSM型コンポーネントをサポート ◎ RTC-Lite AIST PIC, dsPIC上の実装 〇(ブリッジ) miniRTC, microRTC SEC CAN・ZigBee等を利用した組込用RTC実装 〇(ブリッジ) RTMSafety SEC/AIST 機能安全認証 (IEC61508) capableなRTM実装,商用 〇(ブリッジ) RTC CANOpen SIT, CiA CANOpen-RTCマッピングを定めたCiA 標準 〇(ブリッジ) PALRO 富士ソフト 小型ヒューマノイドのためのC++ PSM 実装 × OPRoS ETRI 韓国国家プロジェクトでの実装 × GostaiRTC GOSTAI, THALES ロボット言語上で動作するC++ PSM実装 × 同一標準仕様に基づく多様な実装により • 実装(製品)の継続性を保証 • 実装間での相互利用がより容易に 2013-10-17 クラウドネットワークロボット研究会 18
  19. 19. ロボット関連のOMG標準 • OMG RTC (Robotic Technology Component) spec. – – • OMG RLS (Robot Localization Service) spec. – – • 産総研が仕様案を作成しOMGに提出 http://www.omg.org/spec/DDC4RTC/ OMG FSM4RTC (Finite State Machine for RTC) RFP – • ATR, JARA (AIST)が推進、JARAとして仕様案提出 http://www.omg.org/spec/RoIS OMG DDC4RTC (Dynamic Deployment and Configuration for RTC) spec. – – • ATR、JARAとして仕様案提出、仕様の策定に関しては国内でTFを開催して検討 http://www.omg.org/spec/RLS OMG RoIS (Robot Interraction Service) spec. – – • OpenRTM-aist-0.4, RTI constellation をベースに策定 http://www.omg.org/spec/RTC 本田技術研究所を中心に作成、Initial submissionに向けて作業中 OMG UCM (Unified Component Model) RFP – – MARSを中心にRFPがissueされた 現在Initial submissionに向けて作業中 2013-10-17 クラウドネットワークロボット研究会 19
  20. 20. RTミドルウエアの展開 2013-10-17 クラウドネットワークロボット研究会 20
  21. 21. RT-Middleware関連プロジェクト RTM0.1 リリース from 2002~ OpenRTM-aist 0.2.0リリース OMG RTC spec. draft OpenRTM-aist 0.4.0リリース OMG RTC spec. approved OpenRTM-aist 1.0リリース OMG RTC 標準 仕様リリース FY 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 RTミドルウエアプロジェクト 科研費 若手(B) 科振費 分散コンポーネントシミュレータ ロボット大賞 2007 NEDO 次世代ロボット共通基盤開発 工業標準部 標準基盤研究 科振費 環境と作業構造のユニバーサルデザイン さまざまなプロジェクトで 標準ソフトウエアプラットフォーム として採用されている 2013-10-17 クラウドネットワークロボット研究会 産総研イニシアチブ UCROA NEDO 戦略的先端ロボット要素技術開発 経済産業省・NEDO次世代ロボット知能化技術開発プロジェクト
  22. 22. NEDOオープンイノベーションプロジェクト RTミドルウエアを基盤として、多数の 福祉機器同士を連携 2013-10-17 クラウドネットワークロボット研究会 22
  23. 23. モニタ・表示系RTC 家電・窓制御RTC群 窓開閉制御 Web表示 家電制御 タブレッド 玄関ドア制御 シナリオコントロール RTC 制御シナリオRTC 制御シナリオRTC 制御シナリオRTC 入退出管理RTC群 人感センサ 音声認識 インタラクション系RTC群 2013-10-17 クラウドネットワークロボット研究会 RFIDによる 人状態検出 音声合成 センシング系RTC群 23
  24. 24. 恒常動作するRTコンポーネント群 センサコンポーネント 2013-10-17 クラウドネットワークロボット研究会 シナリオコンポーネント サービス提供 コンポーネント 24
  25. 25. 応用例 DAQ-Middleware: KEK/J-PARC KEK: High Energy Accelerator Research Organization J-PARC: Japan Proton Accelerator Research Complex HRP-4: Kawada/AIST TAIZOU: General Robotics Inc. 2013-10-17 クラウドネットワークロボット研究会 HIRO: Kawada/GRX HRP-4C: Kawada/AIST 25
  26. 26. 応用例 2013-10-17 クラウドネットワークロボット研究会 26
  27. 27. プロジェクトページ • ユーザが自分の作品を 登録 • 他のユーザの作った RTCを探すことができ る タイプ RTコンポーネント群 登録数 287 RTミドルウエア 14 ツール 19 仕様・文書 ハードウエア 2013-10-17 クラウドネットワークロボット研究会 4 28 27
  28. 28. ハードウエア集 • OpenRTMで利用可能 なハードウエアのリスト • ハードウエアを利用す るために利用できるコ ンポーネントのリスト 2013-10-17 クラウドネットワークロボット研究会 28
  29. 29. サマーキャンプ • • • • • 毎年夏に1週間開催 今年:7月29日~8月2日 募集人数:10名 場所:産総研つくばセンター 座学と実習を1週間行い、最後 にそれぞれが成果を発表 • 産総研内のさくら館に宿泊しな がら夜通し?コーディングを行 う! _∧∧__ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ |( ゚д゚)| < もう寝る! |\⌒~\ \____________ \ |⌒⌒| 2013-10-17 クラウドネットワークロボット研究会 29
  30. 30. RTミドルウエアコンテスト • SICE SI (計測自動制御学会 システムインテグレーション 部門講演会 )のセッションとして開催 – – – – • エントリー〆切:9月ごろ ソフトウエア登録:10月ごろ 講演原稿〆切:10月ごろ 発表・授賞式:12月ごろ 2012年度実績 – 応募数:17件 – 計測自動制御学会学会RTミドルウエア賞 (副賞10万円) – 奨励賞(賞品協賛):3件 – 奨励賞(団体協賛):10件 – 奨励賞(個人協賛):5件 • 詳細はWebページ: openrtm.org – コミュニティー→イベント をご覧ください 2013-10-17 クラウドネットワークロボット研究会 30
  31. 31. まとめ • RTミドルウエア – 基本機能、標準化、適用例 – 過去のプロジェクト – 普及活動:Webページ、講習会、コンテスト 詳しくは… 検索 openrtm 本日の資料はopenrtm.orgに掲載します。 2013-10-17 クラウドネットワークロボット研究会 31

×