ホンダにおける RT ミドルウェア開発と標準化活動 株式会社本田技術研究所基礎技術研究センター関谷眞

Similar documents
RTM セミナー RT ミドルウェアによる実時間ロボット 制御系の構築とソフトウェア教育 静岡大学大学院工学研究科機械工学専攻 清水昌幸

組込みシステムにおける UMLモデルカタログの実践研究

スライド 1

Microsoft Word - RTSystemBuilderOnTheEA操作マニュアル_

スライド 1

株式会社セックにおける ロボティクス分野への取り込み

組込み用Linuxボード,BeagleBone Blackにおける RTミドルウェアの動作と開発支援ツール

(Microsoft PowerPoint - daqmiddware-overview [\214\335\212\267\203\202\201[\203h])

TFTP serverの実装

目次 はじめに 4 概要 4 背景 4 対象 5 スケジュール 5 目標点 6 使用機材 6 第 1 章 C# 言語 7 C# 言語の歴史 7 基本構文 8 C 言語との違い 9 Java 言語との違い 10.Netフレームワーク 10 開発資料 10 第 2 章 Mono 11 Monoの歴史 1

XNA Framework

二次元連続動的計画法による知的画像処理システム ImageFileSelector RTC 機能仕様書 ImageFileSelectorRTC Ver.1.0 ( 株 ) 東日本計算センター 1 / 11

Microsoft Word - ModelAnalys操作マニュアル_

スライド 1

メディプロ1 Javaプログラミング補足資料.ppt

Javaの作成の前に

使用する前に

Microsoft PowerPoint RT講習会(送付用)_ [互換モード]

個人依存開発から組織的開発への移行事例 ~ 要求モデル定義と開発プロセスの形式化 による高生産性 / 高信頼性化 ~ 三菱電機メカトロニクスソフトウエア ( 株 ) 和歌山支所岩橋正実 1

ユーザーズマニュアル 有線ネットワークシステム 発行日 2016 年 3 月 30 日

PowerPoint プレゼンテーション

HMD を用いた PT カメラのインターネット遠隔操作芝浦工業大学知能機械システム研究室 HMD(Head Mounted Display) を用いた PT(Pan-Tilt) カメラのインターネット遠隔操作 ユーザマニュアル (ver1.0) 2014 年 10 月 23 日 芝浦工業大学知能機械

Microsoft PowerPoint - ●SWIM_ _INET掲載用.pptx

改版履歴 Ver 改版日内容 /02/07 新規作成 2 / 18

Microsoft PowerPoint - UML1_2009.ppt

UML は次のように表記を拡張して 利用しやすくすることができる ステレオタイプ クラス図などで モデル要素の意味を拡張するもの ギルメット << >> によるラベル表記と アイコン表記がある <<actor>> <<interface>> ステレオタイプ一覧 UML 表記の拡張 ATM 利用者 ス

コンテンツセントリックネットワーク技術を用いた ストリームデータ配信システムの設計と実装

スキル領域 職種 : ソフトウェアデベロップメント スキル領域と SWD 経済産業省, 独立行政法人情報処理推進機構

Jude を DSL エディタとして使う -Jude API 活用法 年 11 月 14 日稚内北星学園大学東京サテライト校浅海智晴 本日のテーマ Why Jude API What Jude API How Jude API 1

吉田坂本.pptx

ChoreonoidとOpenHRIを用いたシステム構築事例

アナリシスパターン勉強会 責任関係事例紹介 株式会社オーエスケイ小井土亨 (CBOP COM 分科会主査 ) 2000/07/19 1

SysMLに関する操作方法について

デザインパターン第一章「生成《

SIOS Protection Suite for Linux v9.3.2 AWS Direct Connect 接続クイックスタートガイド 2019 年 4 月

Using VectorCAST/C++ with Test Driven Development

高信頼RTミドルウエアの開発

Microsoft PowerPoint - IAF フォーラム2015講演資料_PLCopenJapan_A02.pptx

アジェンダ Renesas Synergy TM プラットフォーム構成 ThreadX とは ThreadX の状態遷移 ThreadX とμITRONの機能比較 まとめ ページ 2

Microsoft PowerPoint pptx

Oracle SQL Developer Data Modeler

Microsoft PowerPoint - 04_01_text_UML_03-Sequence-Com.ppt

PowerPoint Presentation

PowerPoint プレゼンテーション

Notesアプリが iPadで動くDomino Mobile Apps ご紹介

11 ソフトウェア工学 Software Engineering デザインパターン DESIGN PATTERNS デザインパターンとは? デザインパターン 過去のソフトウェア設計者が生み出したオブジェクト指向設計に関して, ノウハウを蓄積し 名前をつけ 再利用しやすいようにカタログ化したもの 各デ

(Microsoft PowerPoint _RT\215u\217K\211\357)

ユーザーズマニュアル 有線無線通信ネットワークシステム STP ポート状態ビューア 発行日 2017 年 3 月 30 日 公立大学法人会津大学 株式会社東日本計算センター

Microsoft Word 基_シラバス.doc

MultiLABELISTOCX と MultiLABELISTV4 MLOCX は MLV4 のレイアウト発行機能を継承しています したがって MLV4 の振分発行やプ リセット発行を使用するための登録情報は使用できません MLV4 のレイアウト管理でレイアウトを作成すると 拡張子が m lay

スライド 1

スライド 1

オートビュー

Microsoft PowerPoint - se05-ER&OOAD&UML.ppt [互換モード]

Technical Information TI16H02F01 放射線治療部門画像ビューア ShadeQuest /ViewRT V1.03 DICOM コンフォーマンス ステートメント TI 16H02F 初版

2. 目的 1RationalRose を利用する場合にプログラム仕様書としての最低限必要な記述項目を明確にする 2 プログラム仕様書として記載内容に不足がない事をチェックする 3UML の知識があるものであれば 仕様書の内容を理解できること 4Rose にて入力した内容を SoDaWord を利用

1. 目次 PixiModule ターミナルアプリ (ios 版 ) ソース説明 2. ios 版ご利用の前に ソースファイル内の用語の説明... 4 サンプル 4. ソースファイルの構成 Main.storyboard の説明 ViewControlle

第 2 章インタフェース定義言語 (IDL) IDL とは 言語や OS に依存しないインタフェース定義を行うためのインタフェース定義言語です CORBA アプリケーションを作成する場合は インタフェースを定義した IDL ファイルを作成する必要があります ここでは IDL の文法や IDL ファイ

Microsoft Word - 平野学(詳細).doc

科学的モデリング 2 回 継承 2 無断転載 & 無断配布を禁じます 第 2 回 : 科学的モデリング 継承 2 継承される特性( プロパティ ) 第 2 回の話題 継承は何を継承するのか? 今回のコラムの話題は 継承される特性 ( プロパティ ) についてです そもそもサブクラスはスーパークラスか

presen1.pptx

Enterprise Architect 12.1 機能ガイド

スライド 1

スライド 1

// このクラスの有効期間中の各呼び出しに使用される キャッシュされた Socket オブジェクト Socket socket = null; // 非同期処理が完了したことを通知するために信号を送るオブジェクト static ManualResetEvent clientdone = new Ma

オープンソースESB Mule と Seasar2 の連携プロダクト - S2Mule(仮称)

Microsoft PowerPoint _2.プログラミングの基礎_final.pptx

FIDO技術のさらなる広がり

(Microsoft Word - 06_2_22420-\222n\210\346\230A\214g\203V\203X\203e\203\200\223\340\202\305\202\314\217\210\227\235_ doc)

Microsoft PowerPoint _2.プログラミングの基礎_final


<基礎領域>

受講を行うための前提知識 PC の基本操作ができること 座学 コーディング実習 受講講座の名称 9 日間 67:30 システムエンジニア向け IT 基礎 4/8/( 月 ) IT 技術者に共通する基本的な知識の習得を目標とします コンピュータ基礎では コンピュータの仕組みやコンピュータで扱う数値や単

モデリング操作ガイド クラス図・オブジェクト図編

Monthly Research / セキュアハードウェアの登場とその分析

常駐接続(ISL AlwaysOn)Wake On LAN 設定ガイド

目次 ペトリネットの概要 適用事例

Rmenuフレームワーク

DFDおよび構造図 マニュアル

Seasar.NET入門

機能仕様書 ロボット Raspberry Pi カメラ RTC Ver 発行日 2017 年 12 月 27 日公立大学法人会津大学株式会社東日本計算センター

ユーザーズマニュアル 有線無線通信ネットワークシステム Wi-Fi 経路情報ビューア 発行日 2017 年 3 月 30 日 公立大学法人会津大学 株式会社東日本計算センター

講義の進め方 第 1 回イントロダクション ( 第 1 章 ) 第 2 ~ 7 回第 2 章 ~ 第 5 章 第 8 回中間ミニテスト (11 月 15 日 ) 第 9 回第 6 章 ~ 第 回ローム記念館 2Fの実習室で UML によるロボット制御実習 定期試験 2

ObjectPartner Pro

V8.1新規機能紹介記事

<4D F736F F D CC82BD82DF82CC50438AC28BAB90DD92E82E646F63>

(Microsoft PowerPoint - Java\221\3462\225\224\211\357\224\255\225\\\216\221\227\ ppt)

はじめに : ご提案のポイント

2.5 トランスポート層 147

Microsoft Word - tutorial8-10.docx

1

Oracle Un お問合せ : Oracle Data Integrator 11g: データ統合設定と管理 期間 ( 標準日数 ):5 コースの概要 Oracle Data Integratorは すべてのデータ統合要件 ( 大量の高パフォーマンス バッチ ローブンの統合プロセスおよ

CommCheckerManual_Ver.1.0_.doc

SHOBI_Portal_Manual

FW ファイルアップロード ダウンロード機能利用ガイド Version 年 9 月 21 日富士通株式会社 i All Right Reserved, Copyright FUJITSU LIMITED

働く人間型ロボット研究開発用プラットフォームHRP-4 を開発

FUJITSU Cloud Service K5 認証サービス サービス仕様書

PowerPoint プレゼンテーション

Microsoft PowerPoint - FormsUpgrade_Tune.ppt

Transcription:

ホンダにおける RT ミドルウェア開発と標準化活動 株式会社本田技術研究所基礎技術研究センター関谷眞

目次 知能ロボットシステム概要 コンポーネント指向ミドルウェア HRTMの開発 ASIMOへの適用 HRTMとOpenRTM-aistの連携動作 標準化活動

知能ロボットシステム概要 センサーやアクチュエーターは追加や変更される システム構成は変更したくない センサー, アクチュエーターの関係を抽象化した データ処理 ( 知能アルゴリズム ) が必要となる

知能アルゴリズムの抽象化 階層設計によって知能アルゴリズムの抽象化を実現する知能ロボットシステムアーキテクチャー 抽象化モデル層 ( 知能アルゴリズム ) 基盤機能層 ( フレームワーク ) OS ハードウェア データフロー ステートマシン 抽象化センサー 抽象化アクチュエーター 実行制御 通信

コンポーネント指向開発 アルゴリズムの抽象化のためのオブジェクト コンポーネント指向開発 共通のインターフェース仕様に従う 同一インターフェースを持つコンポーネント同士は入れ替え可能 コンポーネントの特徴 オブジェクトは開発言語仕様として定義される ( 例えば C++) が, コンポーネントは言語とは独立した仕様として定義することができる コンポーネントは抽象化モデルの実現手段として適している

Component Component6 コンポーネント指向ミドルウェア システム設計 コンポーネント FSM コンポーネント 通信プロトコル指定 階層化コンポーネント B a A b c C コンポーネント仕様 フレームワーク OS コンポーネント指向ミドルウェアはシステム設計ツール, コンポーネント仕様, フレームワークで構成される

知能ロボットミドルウェアの要件 構成要素 要件 システム設計ツール 標準的なモデル言語でシステムを設計できること コンポーネント仕様 標準的なコンポーネント仕様に準拠すること コンポーネントを階層的に設計できること 状態遷移型コンポーネントを設計できること フレームワーク コンポーネントを様々な OS 上で実行できること コンポーネント間通信に複数の手法を利用できること 処理時間に対するオーバーヘッドが最小限であること

ロボットミドルウエアの比較 Name OpenRTM-aist ROS OROCOS 階層化コンポーネント 実装は2 階層まで no no FSM コンポーネント no yes (Python) no サポート OS 通信プロトコル Linux Windows Mac OSX CORBA Linux TCP/IP UDP Linux Windows Mac OSX TCP/IP UDP システム設計言語 独自ブロック図 no no コンポーネント仕様 RTC no 独自仕様 2009 年当時は全ての要件を満たすロボットミドルウェアが存在しなかったため RTC 仕様に準拠した独自のミドルウェア開発を開始した

Honda Robotic Technology Middleware(HRTM) の特徴 構成要素 システム設計ツール コンポーネント仕様 フレームワーク 特徴 UML でシステムを設計できる RTC 仕様に準拠する コンポーネントを階層的に設計できる 状態遷移型コンポーネントを設計できる コンポーネントのソースコードは OS に依存しない コンポーネント間通信 複数のプロトコルを選択できる ネットワーク プロセス間 プロセス内通信モードを選択できる ハードリアルタイム性を確保

システム設計ツール UMLによる視覚的な設計 ポートの種類や接続関係設計 コンポーネントの実行順指定 ステートチャートによるFSM 設計 ソースコード自動生成機能コンポーネント実行状態のモニタリング

コンポーネント仕様 RTC 仕様 (CORBA PSM) に準拠 OpenRTM-aist との相互接続が可能 HRTM 独自の拡張を実装

階層型コンポーネント 多階層化が可能 プロパティによって, サブコンポーネントの並列実行, 直列実行及び実行順序を指定可能 並列実行 直列実行

状態遷移型コンポーネント UML Statechart による視覚的な状態遷移モデル設計を実現し, 複雑な状態遷移を簡潔に表現できるようにした 設計した状態遷移図からソースコードを自動生成できる Super State Event A State A State B Event C Event B State C

フレームワーク マルチプラットフォーム対応 OS 依存 API の抽象化層を実装し, コンポーネントのソースコードを OS 非依存とした マルチ通信プロトコル対応 コンポーネント間の通信プロトコルをプロパティとして, 実行時に選択する機能を実装した コネクタのプロパティで通信プロトコルを選択

ハードリアルタイム性 実行コンテキストに優先度指定を追加した OpenRTM-aist 互換通信処理を拡張し,3 つの通信モードを実装した ネットワーク プロセス間 プロセス内 1000 バイト通信時間測定結果 通信モード 受信時間 [us] 送信時間 [us] 合計 [us] ネットワーク 123 188 311 プロセス内 16 7 23

ASIMO への適用 HRTM の機能実証例として,ASIMO システムの経路追従歩行部のコンポーネント化に成功した ReceiveStop ReceiveSuspend TrackingWalk TrackWalk ReceiveTarget 指令値待ち状態 歩行中状態 状態通知 状態遷移 イベント生成 目的地到着状態 コンポーネント化後の処理時間 à 32 μs(10%) 増加 ポート数を最小限にすることで, 処理時間は減らすことができる

HRTM と OpenRTM-aist との連携 システム概要 HRTM コンポーネントと OpenRTM-aist コンポーネントが相互接続して 2 台のルンバを操作するシステムを構築した Kinect コンポーネント (OpenRTM-aist) ジェスチャーコンポーネント (OpenRTM-aist) ルンバコンポーネント (HRTM) ルンバコンポーネント (OpenRTM-aist) モニターコンポーネント (OpenRTM-aist) コントローラーコンポーネント (HRTM)

HRTM と OpenRTM-aist との連携動作 2012 年 12 月の OMG Robotics Information Day で実施

標準化活動 FSM4RTC(Finite State Machine for RTC) 仕様 RTC 仕様に対する拡張仕様 n コンポーネントの状態変化を外部に通知するインターフェース仕様 n FSM コンポーネントのための拡張インターフェース仕様 n データポートインターフェース仕様 2015 年 7 月現在採択仕様として公開中 n http://www.omg.org/spec/fsm4rtc 2015 年 9 月正式仕様化予定

まとめ ホンダ製ミドルウェアの狙いと特徴を示し,ASIMO システムへの適用例を紹介した 拡張仕様を産総研と共に標準化作業中 拡張機能は OpenRTM-aist への適用を検討中

Appendix FSM4RTC 仕様

FSM4RTC の概要 RTC に対する拡張項目 ComponentObserver(SDOService を継承 ) n コンポーネントの状態変化を外部に通知するためのインターフェース ExtendedFsmService(SDOService を継承 ) n FSM コンポーネントのための拡張インターフェース DataPort の追加 n コンポーネント間でイベントを送受信するためのインターフェース

SDOService による機能拡張 FSM4RTC は SDOService を継承したインターフェースによるコンポーネント拡張の仕組みを利用している

ComponentObserver クラス図 pkg <<interface>> SDOPackage::SDOService <<interface>> RTC::ComponentObserver + update_status(status_kind : StatusKind, hint : String) : void <<enumeration>> RTC::StatusKind - COMPONENT_PROFILE - RTC_STATUS - EC_STATUS - PORT_PROFILE - CONFIGURATION - RTC_HEARTBEAT - EC_HEARTBEAT - FSM_PROFILE - FSM_STATUS - FSM_STRUCTURE - USER_DEFINED - STATUS_KIND_NUM コンポーネントが外部に通知を行うための update_status メソッドを持つ

ComponentObserver シーケンス図 外部ツールなどが ComponentObserver をコンポーネントに登録し, 状態の通知を待つ

ExtendedFsmService クラス図 pkg <<interface>> SDOPackage::SDOService FsmEventProfile - name : String - data_type : String * 1 <<interface>> RTC::ExtendedFsmService + get_current_state() : String + set_fsm_structure( in fsm_structure : FsmStructure) : ReturnCode_t + get_fsm_structure(inout fsm_structure : FsmStructure) : ReturnCode_t 1 1 RTC::FsmStructure - name : String - structure : String - event_profiles : FsmEventProfile[] - properties : NameValue[] FSM 状態を取得するための get_current_state FSM の内部構造を設定するための set_fsm_structure FSM の内部構造を取得するための get_fsm_structure

ExtendedFsmService シーケンス図 FSM コンポーネントは ExtendedFsmService を外部インターフェースとして自ら登録する

DataPort クラス図 <<interface>> RTC::DataPushService + push(data : Octet[]) : PortStatus <<interface>> RTC::DataPullService + pull(data : Octet[]) : PortStatus プッシュ型通信の DataPushService は push プル型通信の DataPullService は Pull メソッドを持つ

DataPort シーケンス図 PortService は PortProfile に基づいて DataPushService または DataPullService を生成する