Comments
Description
Transcript
【講演7】 電動車椅子ロボット開発へのTERAS活用
平成24年3月19日 第1回 TERAS成果報告会 電動車椅子ロボット開発への TERAS活用 S活用 (独)産業技術総合研究所 知能システム研究部門 主任研究員 2012/03/19 中坊 嘉宏 0 来場者 の事前アンケ ト結果 来場者への事前アンケート結果 質問: 「関心のある項目にチェックしてください(複数回答可)」 0 50 100 150 200 (人) 250 機能安全への対応 機能安全への対応 効果的なトレーサビリティ活用法 効果的なトレーサビリティ活用法 TERASツールの導入/運用方法 既存ツールのTERAS対応 その他 TERAS事務局提供 事務 提供 2012/03/19 1 発表概要 • なぜ機能安全が必要か? • なぜトレーサビリティが有効か? • TERASの活用方法 サービスロボット (生活支援 ボ ト)開発 (生活支援ロボット)開発 2012/03/19 2 生活支援 ボ 生活支援ロボット ‐ 社会背景 • ロボットがサービスを支える • 生活支援ロボットの市場創造 生活支援ロボ トの市場創造 2025年 労働力人 1) 労働力人口 (15才~64才) 6 770万人 6,770万人 6 300万人 6,300万人 ▲470万人 高齢者人 2) 高齢者人口 (65才~) 2 539万人 2,539万人 3 472万人 3,472万人 933万人 発生するギャップ 出典: 2012/03/19 増減 2005年 1 403万人 1,403万人 1) 厚生労働省職業安定局推計(2002年7月) 2) 国立社会保障・人口問題研究所「日本の将来推計人口」(2002年1月) 3 国際安全規格 ‐ 導入の背景 ・ 企業や国は,安全の全責任を負えるか? 企業や国は 安全の全責任を負えるか? 安全への 要求の増大 販売 製造物責任 一般消費者 生産者 ロボットメーカー 販売 責任 信頼 (ブランド) 信頼 (適合マーク) 責任分担構造 生産者 ロボットメーカー 認証機関 (第三者機関) 規格適合性認証 一般消費者 般消費者 企業ブランドに頼る方法 安全規格(ISO/IEC →JIS) • 現状の製品では十分 • では今後の製品では? • 例えば自動運転車は可能? EUなどは特に積極的に推進,TBT協定 2012/03/19 4 4 取り組み例 「NEDO生活支援ロボ ト実用化PJ」 取り組み例:「NEDO生活支援ロボット実用化PJ」 ISO TC184/SC2/WG7で規格策定中 ISO TC184/SC2/WG7で規格策定中 生活支援ロボット安全検証センター 生活支援 ボット安全検証センタ 必要な試験をワンストップで実施可能な 検証拠 検証拠点 2012/03/19 障害物接近再現装置 パッシブダミー 5 IEC61508機能安全の要求プロセス (≒ ウォーターフォール開発モデル) ウ タ 開発 デ ) • V字モデル開発 2012/03/19 • 全安全ライフサイクル 6 先行開発のプロセス = 試行錯誤・繰り返し 試行錯誤 繰り返し • アジャイル開発 • スパイラル開発 ⁻ 動けばOK ⁻ 開発チームの技量に依存 ⁻ 至高の極致 2012/03/19 プロトタイプ 分析 設計 評価 7 ロボットソフトウ ア開発の課題 ロボットソフトウェア開発の課題 • 機能安全プロセスに多大な工数がかかる – 大量のドキュメント..ガイドラインの必要性 – 開発,管理ツールの整備 開発,管理ツ ルの整備 • 先行開発と量産開発のギャップ 先行開発と量産開発 ギ プ – 開発が属人的 – 品質の確保 – 要求 要求・設計・実装・テストの整合性 設計 実装 テストの整合性 2012/03/19 8 解決策(機能安全) • 全て新規ではなく,再利用する • コンポーネントの組み合わせで作る RTミドル ウエア • プラットフォームを活用する プ • モデルベース開発を導入する → SysML 2012/03/19 9 解決策(先行開発) • 設計図を基にプラモデルを作ることは容易 • ならば,先行開発で設計図が作れればよい → トレーサビリティ → トレーサビリティ 2012/03/19 10 研究の目標 • 設計図の設計図を作り,変更の影響を制御可能に – 各工程で設計する項目,ドキュメント,モデルを 各 程で設計する項目 ドキ メント デルを あらかじめ定義しておく – 定義したプロセス,アクティビティ,タスクとその成 果物のトレ サビリティをとる 果物のトレーサビリティをとる – 変更があった際に影響範囲を検索し、そのタスク 情報を基に再計画する → ウォーターフォール開発に移行しやすい環境づくり 2012/03/19 11 実証検証 • 電動車椅子ロボット開発に適用して有効性を検証 電動車椅 ボ 適 有効性を検証 (ROBOMEC2012@5月,浜松にて関連発表数件) 安全を実現する冗長構成 長 2012/03/19 12 モデルベース・ロボット開発のトレーサビリティ(プロセス,アクティビティ ‐ ドキュメント,タスク ‐ モデル,技法) アクティビティと, 作成するドキュメント タスクと, 定義するモデル(主にSysML) ソフトウェアエンジニアリングプロセス 組込みソフトウェア開発プロセスガイドライン( ESPR) システムエンジニアリングプロセス <目的> ドメイン (ブロック定義図) システム 要求定義 D ミッション要求 (要求図) ユ スケ ス ユースケース (ユースケース図) アクティビティ (アクティビティ図) ハザード 安全ゴール 機能安全要求 D 機能安全 要求定義 リスク <事象> A C A システム アーキテクチャ 設計 コンテキスト (内部ブロック図) <責務> 状態遷移 (状態遷移図) <目的> ソフトウェア 要求定義 ドメイン (ブロック定義図) A B ソフトウェア アーキテクチャ 設計 <文脈> <機能> 論理構成 (ブロック定義図) <機能> 要求 (要求図) <データ> A RTコンポーネント (内部ブロック図) <構造> A 論理内部ブロック (内部ブロック図) <責務> <文脈> ユースケース (ユースケース図) アクティビティ (アクティビティ図) <責務> <事象> A C インタフェース (ブロック定義図) 状態遷移 (状態遷移表) IEC61508 3 SIL3 で推奨される技法 IEC61508‐3 SIL3 Technique and measures ソフトウェア 詳細設計 デバイス依存 処理の詳細 < > :下流方向のトレーサビリティで追加される情報 :開発の流れとトレーサビリティ A Semi‐formal methods B Modular approach pp C Simulation/modeling D Failure analysis Detailed Block diagrams Sequence diagrams Finite state machines Finite state machines Performance modeling Fault tree analysis FMEA ミッション要求(SysML 要求図) req [Pa ck a g e] Dep end a b leBa s e [03 Mis s ion Req uirement s ] <<requirement>> Prov id e d ep end a b le mob ilit y not es The robot base shall be capable of moving in 2 dimensions on a road-like surface. It shall provide this motion service to the utilising entity and allow the utilising entity to control it. It shall avoid collisions with static and dynamic obstacles where possible and when a collision is inevitable it shall attempt to minimise damage. It shall be safe even in the case of internal system failures. <<requirement>> q Mob ilit y <<requirement>> Dep end a b ilit iy not es The robot shall move in two dimensions. The motion shall be controlled by the utilising entity. <<deriveReqt>> <<deriveReqt>> <<requirement>> F orwa rd /rev ers e mot ion <<deriveReqt>> not es The robot shall avoid collisions where possible, and attempt to minimise damage when a collision is inevitable. It shall be safe even in the event of internal errors. The robot shall not move in an unsafe manner. not es The robot shall be capable of moving forwards and backwards. backwards not es The robot shall be able to rotate both on the spot and while moving. <<deriveReqt>> <<deriveReqt>> <<requirement>> S t op not es The robot shall be able to stop. <<requirement>> E x t erna l cont rol <<deriveReqt>> not es The robot shall provide a facility and interface to i immediately di t l halt h lt allll motion. not es The robot shall be capable of detecting internal errors. <<requirement>> Report current s a fet y s t a t us not es The robot shall report its current status, including detected errors, currentt speedd limits, li it sensor statuses, etc. not es The robot shall prevent collisions wherever possible. <<deriveReqt>> <<requirement>> Res t rict cont rols not es The robot shall refuse to perform motion commands that would conflict with the safety goals. not es The robot shall report whether a command was successfully executed or not. <<deriveReqt>> <<deriveReqt>> <<requirement>> Ob s t a cle collis ion p re v e n t ion not es The robot shall limit its maximum speed so as to not allow unsafe motion. <<deriveReqt>> <<requirement>> C omma nd s t a t us <<deriveReqt>> <<requirement>> Report mot ion s t a t us not es The robot shall report its current motion status, including speed. <<deriveReqt>> <<deriveReqt>> <<requirement>> C ollis ion prev ent ion s t ra t eg y not es When an obstacle Wh b t l appears within ithi a given i range, the th robot shall limit its speed. When an obstacle moves into a closer range, the robot shall halt all motion. When the robot detects contact with an obstacle, it shall halt all motion. <<requirement>> Ob s t a cle det ect ion not es The robot shall detect obstacles. <<deriveReqt>> <<deriveReqt>> <<deriveReqt>> <<requirement>> << i t>> Ov erride s a fet y res t rict ions 2012/03/19 <<requirement>> Int erna l error d e t e c t ion <<requirement>> S peed limit ing not es The robot's motion shall be controlled by the utilising entity. not es The robot shall be capable of entering confined spaces. spaces <<deriveReqt>> <<requirement>> E merg ency s t op <<deriveReqt>> <<requirement>> C onfined s pa ce mot ion <<deriveReqt>> <<deriveReqt>> <<requirement>> Rot a t ion not es The utilising entity shall be capable of overriding halted motion to allow restricted motion even in the presence of a close obstacle. <<deriveReqt>> <<deriveReqt>> <<requirement>> << >> C ont a ct ing obs t a cle d e t e c t ion not es The robot shall detect contact with obstacles. <<requirement>> Dis t a nt ob s t a cle d e t e c t ion not es The robot shall detect obstacles at a distance and measure the distance to them. 14 ミッションユースケース(ユースケース図) uc [Pa c k a g e] Depe nd a b leBa s e [04 Mis s ion u s e c a s e s ] Dependable mobile robot base Class:Dependable mobile robot base Mov e forwa rd s a n d b a c k wa rds <<include>> Rot a t e <<include>> Mov e <<include>> <<include>> <<block,external>> Roa d S t op Mov e de pe nd a b ly Det ec t in t e rna l e rrors Av oid collis ions <<include>> <<include>> C ont rol mot ion Ma in t a in s a fet y <<include>> <<extend>> Ov e rride s a fe t y res t ric t ions Det ect obs t a c les a t a dis t a nc e <<include>> Minimis e c ollis ion d a ma g e <<include>> <<extend>> <<include>> <<block,external>> Ob s t a c le De t ec t cont a ct in g obs t a c les Limit mot ion s p ee d Ut ilis ing e nt it y E x e cu t e emerg e nc y s t op Re port s t a t us es When motion is restricted by safety concerns, the user will initiate an override. When the robot's safety is jeopardized, the speed of motion should be limited. Re port s a fet y s t at us Rep ort mot ion st at us Rep ort comma n d s t at us 15 論理内部ブロック図(SysML 内部ブロック図) ib d [Pa ck a g e ] Wheelc ha ir [119 Wheelcha ir log ica l int erna l block d ia g ra m] : DependableWheelchairRobot : ObstacleSensor Right : DriveUnit Left : LogicalController <<fl P >> O : <<flowPort>> ObstacleInformation <<flowPort>> Encoder : <<flowPort>> SS : Angle SensorStatus <<flowPort>> O : ObstacleInformation <<flowPort>> S : SensorStatus <<flowPort>> Resolver :Angle <<flowPort>> Encoder : Angle EmergencyStop <<flowPort>> B :BrakeStatus MotionCommand <<flowPort>> Resolver :Angle Override <<flowPort>> M : MotionStatus <<flowPort>> TorqueControl : Current StatusInformation StatusInformation <<flowPort>> MS : MotionStatus EmergencyStop : UserInterfaceUnit <<flowPort>> B :BrakeStatus <<flowPort>> Resolver :Angle MotionCommand EmergencyStop <<flowPort>> B : BrakeStatus <<flowPort>> R :Angle <<delegate>> Override <<flowPort>> M : MotionStatus BrakeControl L ft : DriveUnit Left D i U it Override MotionCommand <<delegate>> : ElectricMotor EmergencyStop Override MotionCommand : Brake BrakeControl <<flowPort>> Control :Current <<flowPort>> TorqueControl : Current <<flowPort>> MS : MotionStatus <<flowPort>> T : Torque <<flowPort>> T :Torque <<flowPort>> T :Torque StatusInformation BrakeControl <<delegate>> : Wheel <<delegate>> StatusInformation <<flowPort>> BrakeT : Torque EmergencyStop EmergencyStop : Encoder <<flowPort>> Tout :Torque <<flowPort>> FOut :Force <<flowPort>> T :Torque <<flowPort>> A :Angle <<flowPort>> FOut :Force 2012/03/19 <<flowPort>> F :Force <<flowPort>> Encoder : Angle 16 論理コンポーネント図(SysML 内部ブロック図) ibd [Pa ck a g e ] Whe e lc h a ir [12 0 Log ica l c ont rolle r in t e rn a l block d ia g ra m] Left : LogicalController : SafetyMonitor : PartnerMonitor <<flowPort>> Theirs : PartnerStatus <<flowPort>> Theirs : PartnerStatus <<flowPort>> Mine : PartnerStatus <<flowPort>> Mine : PartnerStatus <<flowPort>> O : ObstacleInformation <<flowPort>> O : ObstacleInformation <<flowPort>> SS : SensorStatus <<flowPort>> Encoder : Angle <<flowPort>> B :BrakeStatus <<flowPort>> SS :SensorStatus <<flowPort>> Encoder : Angle : UserInterfaceController <<delegate>> StatusInformation <<flowPort>> Mine : PartnerStatus Override EmergencyStop MotionCommand StatusInformation Override <<flowPort>> MO : MotionStatus <<flowPort>> BS : BrakeStatus <<flowPort>> M : MotionStatus EmergencyStop <<flowPort>> M : MotionStatus MotionCommand SafeMotionCommand <<flowPort>> SL : SafetyLevel MotionCommand Override EmergencyStop g y p <<flowPort>> SL : SafetyLevel MotionCommand <<delegate>> : CommandProcessor MotionCommand Override SafeMotionCommand EmergencyStop : MotorController MotionCommand <<flowPort>> C : MotorControlSignal <<flowPort>> C : MotorControlSignal <<flowPort>> R :Angle <<flowPort>> M : MotionStatus 2012/03/19 <<flowPort>> Resolver :Angle <<flowPort>> Control :Current <<flowPort>> TorqueControl :Current 17 トレ サビリティの表示(TERAS) トレーサビリティの表示(TERAS) 18 ム ビ 1:「ドキュメントトレ サビリティ」 ムービー1:「ドキュメントトレーサビリティ」 2012/03/19 19 ムービー2: ム ビ 2: 「下流影響範囲の検索」の具体例 2012/03/19 20 まとめ • 先行開発から量産開発へスムースにつなぎ, 機能安全に対応するためのトレ サビリティ 機能安全に対応するためのトレーサビリティ (TERAS)の有効性が見えてきた • 何のために,何のトレーサビリティをとるのか が重要 • 説明力の向上には,さらに工夫が必要 説明力の向上には さらに工夫が必要 • トレーサビリティツールは「知の道具」 トレ サビリティツ ルは「知の道具」 2012/03/19 21 ご清聴ありがとう ございました 2012/03/19 22