ロボット開発における SysML の活用 株式会社チェンジビジョン岩永寿来
本日の話題 当社のご紹介 SysMLの概要について SysMLの活用 SysML と RT ミドルウェアとの連携について
Change Vision のご紹介 株式会社チェンジビジョン 設立 2006 年 2 月 代表取締役社長平鍋健児 h5p://blogs.itmedia.co.jp/hiranabe/ 事業領域 設計支援 ( モデリング ) ツールの提供 設計支援ツールカスタマイズ 関連サービス 教育 コンサル 所在地 US Office 66 Front St, Berea, Ohio, 44017, USA 本社東京都台東区上野 2-7- 7 上野 HS ビル 8 階 福井福井県福井市問屋町 3-111
SysML の概要 SysMLの背景 SysMLとは SysMLとUML 各図の紹介 要求図 ブロック図 内部ブロック図 パラメトリック図 アロケーションと各図の関係
SysML の背景 近年システム開発は ( ロボット開発においても ) 大規模複雑化が進んでいる 機械 ソフトウェア 電気 電子 制御など異なる業種の利害関係者が参加する開発において システムの理解や開発者間でのスムーズなコミュニケーションが難しくなってきている システムの様々な側面からの記述が 更に重要に ただ 文書中心の記述は困難になりつつある 理解しやすいモデルを使って システムの様々な側面から記述できる方法がないか? システムエンジニアリングのための標準モデリング言語 = Systems Modeling Language(SysML)
SysML とは システムレベルのモデリングを対象としたグラフィカルな標準モデリング言語 OMG によって標準化されている 現在のバージョンは 1.3 ハードウェアやソフトウェア 情報 プロセス 人員 設備を含む 広範囲の複雑なシステムについて 仕様決定 分析 設計 検証 妥当性確認をサポートする 6
SysML と UML(1) なぜ UML ではだめなのか システム エンジエアリングに必要な観点が用意されていない 要求項目や 要求に対応するテスト項目の表現 非機能要件や重量といった単位が表現しにくい 割り当ての表現 パラメータ間の制約表現 そこで UML の拡張機能 ( プロファイル ) を使って 足りない部分を補う
SysML と UML(2) SysML ダイアグラム 振舞い図 要求図 構造図 アクティビティ図シーケンス図ステートマシン図ユースケース図ブロック定義図内部ブロック図パッケージ図 UML2.0 と同等 パラメトリック図 UML2.0 から変更 新規
SysML の 4 本柱
UML と SysML の主な対象範囲 製品企画 製品審査 SysML システム要求分析 システム方式設計 システム エンジニアリング ソフトウェア適合性確認テスト システム結合 セーフティ エンジニアリング UML ソフトウェア要求分析 ソフトウェア方式設計 ソフトウェア エンジニアリング ソフトウェア適合性確認テスト ソフトウェア結合 ソフトウェア詳細設計 単体テスト 実装 ハードウェア開発 10 サポート IPA/SEC 組込みソフトウェア向け開発プロセスガイドより
要求図 要求と 要求間の関係を整理 詳細化 req [package] 要求例 [Customer Specification] Customer Specification 要求 包含 <<requirement>> Operating Environment Id = S1 text = システムは 1 日 24 時間 週 7 日 すべての気象条件において 侵入者を検知できる <<requirement>> Availavility Id = S2 text = システムは 設置期間において0.999の稼働率を示す 11 派生 ( 導出 ) <<requirement>> All Weather Operation Id = S1.1 text = システムは すべての気象条件において 侵入者を検知できる <<derivereqt>> <<derivereqt>> <<requirement>> Sensor Decision Id = D1 text = システムは 侵入者を検知するためにカメラを用いる <<requirement>> 24/7 Operation Id = S1.2 text = システムは 1 日 23 時間 週 7 日 侵入者を検知できる <<satisfy>> <<verify>> 最も費用対効果の高い方法 トレードオフ検討 T.1 参照 満足 <<block>> Camera <<testcase>> AvailavilityTest 検証 参考書籍 [2] より (p312)
ブロック 内部ブロック図
ブロック定義図 システムの構成要素とその関係を定義する bdd [package] HUV [ パワーサブシステム ] ブロック パワーサブシステム 部品関連 ecu epc パワー制御ユニット ice 電 子パワー制御 tsrm 内燃エンジン トランスミッション 13 SysML 仕様書 v1.3 p195 より
ブロック システムの構成要素を定義する ブロック 区画 制約 操作 部品 参照 値プロパティ フロープロパティ ポート... インタフェースブロック 給湯器 constraints { 設定温度に近いお湯を30 秒以内に提供すること } operations 給湯する () : void flow properties in 給水量 : Real out 給湯量 : Real parts : 加熱装置 references : 給湯操作パネル values 設定温度 : Real 14
親となるブロック名 このブロックの内部構造を表現 内部ブロック図 ibd [block] パワーサブシステム [ 提供要求機能 ] epc : 電子パワー制御 ctrl : EPC ブロックの内部構造を示す 内部構成要素間の接続関係も示す プロパティ ( パート ) 外枠のブロックの内部の構成要素 プロパティ名 : ブロック名親ブロックと部品関連を持つプロパティ epc : ~EPC ecu : パワー制御ユニット tsrm : ~TSRM ctrl : TSRM tsrm : トランスミッション 15 ice : ~ICE コネクタプロパティ間やポート間の接続関係 ブロック定義図の関連に対応 ctrl : ICE ice : 内燃エンジン ポート他のプロパティとのやりとりの口 名前と型を持ち 近くに ポート名 : 型名 と表示 SysML 仕様書 v1.3 p74 より
ブロック定義図と内部ブロック図の関係 bdd [package] HUV [ パワーサブシステム ] パワーサブシステム ecu epc パワー制御ユニット 電 子パワー制御 ice tsrm 内燃エンジン トランスミッション ibd [block] パワーサブシステム [ 提供要求機能 ] epc : 電子パワー制御 ctrl : EPC epc : ~EPC ecu : パワー制御ユニット ice : ~ICE tsrm : ~TSRM ctrl : TSRM tsrm : トランスミッション 16 ctrl : ICE ice : 内燃エンジン
パラメトリック記法
制約ブロック システム内の制約を定義する bdd [Package] パラメトリック例 ブロック定義図 <<constraint>> K parameters a: Real b: Real c: Real d: Real K: Real 制約ブロック <<constraint>> K1 constraints {K1 = a * b} parameters a: Real b: Real K1: Real 18 eq1 eq2 eq3 制約文法は自由 計算式や OCL プログラム言語など パラメータ <<constraint>> K1 * K2 constraints {K = K1 * K2} parameters K1: Real K2: Real K: Real <<constraint>> K2 constraints {K2 = c * d} parameters c: Real d: Real K2: Real
パラメトリック図 par [ConstraintBlock] K 親となる制約ブロック a a eq1 : K1 {K1 = a * b} 複数の制約のパラメータ間の関係を示し パラメータの解析に活用 制約プロパティ b 拘束コネクタ b K1 パラメータ K1 eq2 : K1 * K2 {K = K1 * K2} K2 K K c c eq3 : K2 K2 {K2 = c * d} 親の制約ブロックのパラメータ d d 19
例 制約ブロック定義の例 <<constraint>> 豆電球の点灯時間による熱 parameters Q : ジュール熱 I : 電流 V : 電圧 t : 時間 パラメトリックの例 par [constraintblock] 豆電球の点灯時間による熱 [ 豆電球の点灯時間による熱 ] V : 電圧 <<constraint>> オームの法則 constraints { E = RI } parameters V : 電圧 R : 電気抵抗 I : 電流 <<constraint>> ジュールの法則 constraints { Q = I * I * R * t } parameters Q : ジュール熱 I : 電流 R : 電気抵抗 t : 時間 V : 電圧 I : 電流 I : 電流 I : 電流 : オームの法則 { E = RI } R : 電気抵抗 R : 電気抵抗 : ジュールの法則 { Q = I * I * R * t } t : 時間 Q : ジュール熱 t : 時間 20 Q : ジュール熱
振舞いを 構造へ 要求を モデル要素へ 論理モデルを 物理モデルへ アロケーション ソフトウェアモデルを ハードウェアモデルへ 各種モデル要素間の割り当て関係を定義する 21 SysML v1.3 仕様書より引用 (p137)
SysML 4 本柱の関係 各モデルは 相互に関係している 構造 振舞い allocate satisfy value binding 22 verify 要求 パラメトリック
SysML の概要まとめ システムズエンジニアリングがターゲット 異なる業種の利害関係者が それぞれシステムに対して考えていることを モデルという目に見える 共通的な言語を用い コミュニケーション出来る環境を整える ソフトウェア 機械 電気などの担当者の共通言語 システムの仕様化 分析 設計 確認 検証に活用できる システムの構造 振る舞い 要求 パラメトリックをモデリングできる 23
SYSML の活用
SysML の活用 コミュニケーションのために を超えて モデルを活用したい 例 DSL 生成 ( 例.RTC ドメイン固有言語 ) シュミレーション可能な制御モデルとの連携 (Modelica,MATLAB/Simulink ) 安全設計のために活用する ソースコードを出力 いきなり S/W,H/W コードを出力するには SysML で扱う抽象レベルが適していない場合が多い
DSL SysML と RT ミドルウェアとの連携 (1) SysML SysML Requirements requirements SysML SysML Use Use cases cases SysML SysML Context requirements (Block) astah SysML SysML SysML Components Component (Block) (block) SysML STMs FSM RTC Plugin Component spec. RTC.xml OpenRTM- aist RTCBuilder RTSystemEditor RTC FSM FSMs SysML Component RTCs (block) another RTM astah RTM SysML Component RTCs (block) Implementa\on RTC source codes (Skeleton) Executable RTC Restore connectors RTC source codes (Skeleton ) Analysis RTS.xml Design Executable RTC Implementa\on
DSL SysML と RT ミドルウェアとの連携 (2) SysML のコンポーネントモデルと RTC のコンポーネントモデルが類似 ブロック = コンポーネント ポート / インタフェース SysML RTC / OpenRTM-aist
DSL SysML と RT ミドルウェアとの連携 (3) ブロック図から RTC プロファイルを生成 RTC にマッピングする SysML ブロックモデルから RTC の構造 ( ポートやインタフェース ) を RTC として生成 内部ブロック図から RTS プロファイルを生成 ロボットシステムがどのようなコンポーネントで構成され 相互接続されているか といったロボットシステムの構成を RTS として生成 内部ブロック図
DSL SysML と RT ミドルウェアとの連携 (4) ステートマシンより ステートマシンモデルから直接 実装を生成 確実に設計に沿った形で実現 ソースからはつかみにくい構造が視覚化される OMG RTC を拡張し Finite State Machine for RTC 標準 (FSM4RTC) の策定が進んでいる OMG RTC と組み合わせると ツールによる FSM コンポーネントの実装が非常に容易になる
Diagrams Internal Block Diagram Block Definition Diagram Requirement Diagram Requirement Table Parametric Diagram UseCase Diagram Activity Diagram Statemachine Diagram Sequence Diagram Mind Map Input-Output Printing, Print options, Print Preview Exporting to JPEG, PNG, EMF, SVG files Exporting Mind Map to PowerPoint System Requirements Astah SysML was made possible in part from a grant from the Measures to Support Global Technical Collaboration program 初回起動後 最長 20 日間は無償で評価利用できます さらに 270 日分の評価延長も可能です 2014 年春 astah SysML version 1.1, SysML / RTC 連携プラグインリリース http://astah.change-vision.com/ja/product/astah-sysml.html
安全設計のために活用する SysML 安全設計のためのリスクアセスメントでは まず 対象となるシステムの理解 対象範囲の設定 から始まる SysML を用いてシステムを理解 定義する IEC 61508 による安全ライフサイクル
( 参考 ) 安全性の保証技術 安全設計の対象となるシステムを SysML モデルを用いて理解し 対象範囲を設定する 安全性の保証技術も注目されつつある Goal Structuring Nota\on 自動車 ロボットなど 高信頼性システムの開発において その安全性を第三者に説明する必要がクローズアップされてきた その説明の理論的枠組みであるセーフティケース および その視覚的に議論を構造化して図示する方法として GSN(Goal Structuring Nota\on) が提案 使われている ex) 自動車業界 /ISO26262 でも セーフティケースの記述が義務付けられている GSN によって どのような規格 ガイドライン システム範囲が想定され どのような根拠資料が どのように利用されて安全性が保証されているかを その議論構造を明確に示すことが可能に 安全性保証のための議論構造の参照先に SysML などのモデルが活用できる
Example GSN Goal (Claim) InContextOf Context C1 Operating Role and Context G1 Control System is acceptably safe to operate SupportedBy C2 Control System Definition C3 Tolerability targets (Ref Z) G2 All identified hazards have been eliminated or sufficiently mitigated C4 Hazards identified from FHA (Ref Y) Assumption Strategy A1 All hazards have been identified A S1 Argument over each identified hazards SysML などのモデルは Context の参照先として活用できる G4 Hazard H1 has been eliminated G5 Probability of Hazard H2 occuring < 1x10-6 per year M2 Module Probability of Hazard H3 occuring < 1x10-3 per year Sn1 Formal Verification Solution (Evidence) GSN COMMUNITY STANDARD VERSION 1 より
Diagrams GSN Diagram Input-Output Printing, Print options, Print Preview Exporting to JPEG, PNG, EMF, SVG files Exporting Mind Map to PowerPoint NOTE Astah GSN is currently in its alpha release, diagrams and features may be changed without notice. Any file created with Astah GSN alpha may not be compatible with future releases. System Requirements GSN (Goal Structuring Notation) is a graphical notation developed at the University of York for specifying safety cases for safety critical systems. Several standards such as ISO26262 (Automotive E/E systems) and IEC62278 (Railway) mandate the use of safety cases and GSN supports their argumentation structures and its relation to evidences in a comprehensible yet compelling form. *Astah GSN was made in collaboration with AIST alphaリリース無償公開中 初回起動後 最長 20 日間は無償で評価利用できます さらに 評価延長も可能です http://astah.net/editions/gsn
シュミレーション可能な制御モデルとの連携 システムエンジニアリングでは システムの本質的な振る舞いを明確にし 特定の要求 / 機能 / 設計のトレードオフを行い 実現する機構を決める必要がある トレードオフ分析自体や 結果から得られた SysML モデルで表現した 要求 / 機能 / 設計の妥当性を確認することも重要 トレード分析 妥当性を確認できる実行可能なモデルが必要 MATLAB/Simulink や Modelica との連携も注目されている ex)omg SysML- Modelica Transforma\on 要求 構造 振舞い SysML 連携 MATLAB/Simulink Modelica テストケース構造 振舞い トレード分析 評価 トレーサビリティシミュレーション 制御 ( ソフト ) とプラント ( ハード )
参考 :SysML 書籍や WEB [ 書籍 ][1] A Prac\cal Guide to SysML, Second Edi\on: The Systems Modeling Language [ 書籍 ][2] システムズモデリング言語 SysML [1] の第一版の日本語翻訳 [WEB] OMG SysML h5p://www.omgsysml.org/ [WEB] SysML チュートリアル h5p://www.omgsysml.org/incose- OMGSysML- Tutorial- Final- 090901.pdf h5p://www.object- report.jp/archive/sysml_tutorial_2008.pdf [WEB] IPA/SEC セミナー h5p://sec.ipa.go.jp/seminar/2011/20110120_pre.html [WEB] QCon 資料 ( 豆蔵 ) h5p://qcontokyo.com/data_2012/tatsukiinoue_qconsysml_100.pdf [WEB] オージス総研 WEB マガジン (SysML 関連 6 記事 ) 36 h5p://www.ogis- ri.co.jp/rad/webmaga/rwm20100611.html
DSL - SysML と RT ミドルウェアとの連 携のデモ
問題記述 l 自律ロボットを遠隔操作し 2 つの動き (Spiral と Back-and- Forth) をさせる Operator は自律モードとデモモード切り替えることができる Controller PC kinect Operator l ハードウェアアーキテクチャはあらかじめ決まっている PCを乗せたRoombaを Wi-Fi 通信で Kinectを使ってモードスイッチする Wi-Fi Receiver PC Roomba
Demo System architecture Kinect SDK Kinect OpenRTM- aist Run\me Kinect input RTC (OpenRTM- aist) Another RTM Run\me Controller RTC Controller PC Receiver PC for OpenRTM- aist OpenRTM- aist Run\me Robot RTC (OpenRTM-aist) libroomba Receiver PC for another RTM Another RTM Run\me Robot RTC libroomba Roomba SCI (Serial Control Interface) Roomba Roomba SCI (Serial Control Interface) Roomba RTC connector Software I/F Serial Bus (USB/RS232C)