41
ディペンダブルソフトウェアDAY ディペンダブルソフトウェアDAY クライブ クライブ 2012年5月11日 ESEC2012 ャッツース

Dependable Software DAY

Embed Size (px)

Citation preview

Page 1: Dependable Software DAY

ディペンダブルソフトウェアDAYディペンダブルソフトウェアDAY

トークライブト クライブ

2012年5月11日

キ ブESEC2012 キャッツブース

Page 2: Dependable Software DAY

安心・安全・心地よい社会のために

近年、製品の安全への関心が高まっています。

安全、安心を実現する高信頼なソフトウェアを開発するには、

私たち開発者は 何をどのように取り組んだらよいのでし うか私たち開発者は、何をどのように取り組んだらよいのでしょうか。

このトークライブでは産業技術総合研究所で開発している

電動車椅子ロボットを題材に 安全を支える技術のいくつか電動車椅子ロボットを題材に、安全を支える技術のいくつか

について、トークライブ形式でポイントを紹介します。

Page 3: Dependable Software DAY

安心・安全・心地よい社会のために

(2)(2)システムシステム

1)D-Caseでロジカルに。重要性が増す安全性の説明松野裕 (名古屋大学)

システムシステム冗長構成冗長構成 2)現実的な冗長構成と安全監視ソフトウェア

藤原清司(産業技術総合研究所)

(3)(3)システムシステム安全分析安全分析

(6)(6)ソフトウェアソフトウェア安全設計安全設計(1)(1)

3)おさえるべきはここ! 安全分析の実際水口大知(産業技術総合研究所)

( )( )ディペンダブルディペンダブル

ケースケース

4)実機で納得!電動車椅子のSysMLモデリングGeoffrey Biggs(産業技術総合研究所)

5)高信頼と生産性を両立させるミドルウ ア

(5)(5)安全安全

(4)(4)システムシステム

5)高信頼と生産性を両立させるミドルウェア中本啓之(株式会社セック)

6)安全管理ソフトウェアを検証せよ!安全安全ミドルウェアミドルウェア

システムシステムモデリングモデリング

6)安全管理ソフトウェアを検証せよ!穴田啓樹(キャッツ株式会社)

Page 4: Dependable Software DAY

ディペンダブルソフトウェアDAYディペンダブルソフトウェアDAY

1) D-Caseでロジカルに1) D-Caseでロジカルに

重要性が増す安全性の保証

名古屋大学名古屋大学

情報連携統括本部

情報戦略室

松野裕松野裕

Page 5: Dependable Software DAY

生活支援ロボットの実用化に向けて

• 介護などで役に立つ生活ロボットが多く開発されています

例)産総研で開発中の自動椅子ロボット

• 普及へ向けて多くの課題があります普及 向けて多くの課題があります

– 私達の身の回りで使われるので、

安全性がとても大事です安全性がとても大事です

– しかし新しい分野なので

ノウハウが蓄積されていません

– 国際規格もできはじめたばかりです国際規格もできはじめたばかりです

Page 6: Dependable Software DAY

生活支援ロボットの安全性保証

• 生活ロボットの普及には、利用者に安全性をきちんと

理解してもらう必要があります理解してもらう必要があります

• 例えば、以下のことが必要です

–きちんと設計されていること

S MLによるモデリング• SysMLによるモデリング

–きちんとテストや検証して開発されていること

–国際規格に適合していること安全性などをきちんと説明することを安 性な をきち 説明する を保証(Assurance)といいます。今、ロボットの安全性保証が強く望まれています。

Page 7: Dependable Software DAY

絶対に安全なロボット?絶対に安全なロボット?• 残念ながら、そんなロボットは作れません。。

• ではどうすればよいか?

–起こりうる危険なこと、故障をきちんと予測する起こりうる危険なこと、故障をきちんと予測する

• リスク分析、ハザード分析、…

危険な と 故障に対処 き ように きちんと ボ ト–危険なこと、故障に対処できるように、きちんとロボット

を作る

• 故障検知、冗長構成、セーフティモニタ状態遷移、…

Page 8: Dependable Software DAY

D-Case(ディペンダビリティ・ケース): 安全性 デ ペ ダビリテ を保証するための安全性・ディペンダビリティを保証するためのツール

安全性ゴール

エビデンス

http://www.il.is.s.u‐tokyo.ac.jp/deos/dcase/

Page 9: Dependable Software DAY

ディペンダブルソフトウェアDAYディペンダブルソフトウェアDAY

2) 現実的な冗長構成と2) 現実的な冗長構成と

安全監視ソフトウェア

(独)産業技術総合研究所(独)産業技術総合研究所

主任研究員主任研究員

藤原清司

Page 10: Dependable Software DAY

冗長構成とその問題点冗長構成とその問題点

• 通常の系統と予備系統による判定器 判定器多数決?

通常の系統と予備系統による構成– 内部状態の転送判定器

故障しているのは判定器自身かも?

切替器の

判定器

切替器の切替器の判定器?

– 切替器の故障

– 判定器の故障故障判定器の故障は誰が判定す

切替器切替器の予備? 切替器の

切替器?

替器判定器?

• 故障判定器の故障は誰が判定するのか?

– 予備系統の待機中故障

制御系(通常)

出力内部状態の転送

切替器?

• システム肥大化の恐れ– コストアップ

制御系(予備)

出力内部状態の転送

切り替えてみたら– 信頼性がかえって低下制御系

(予備の予備?)

切り替えてみたら故障していたり?予備系の

判定器?

Page 11: Dependable Software DAY

安全側故障と停止のための構成安全側故障と停止のための構成

• 停止によって安全が確保でき意見の不 致 停止によって安全が確保できるのであれば、簡素な構成が可能安全信号 遮断器

(A)

自己診断動作接点溶着の検出

意見の不一致

– 複数制御系の常時稼働• 内部状態の転送不要

• 待機中故障の検出

制御系(A)

相 監視

(A)

出力(A) • 待機中故障の検出

– 切替ではなく遮断

– 不一致による判定制御系(B)

相互監視

出力(B)

( )

致 定• または自己診断による異常申告

– 遮断器の故障診断強制接点ガイドリレ

(B)

安全信号遮断器(B)

動力の遮断ブレーキ故障時に喪失

• 強制接点ガイドリレーブレ キ

安全信号遮断

故障時に喪失(安全側故障)

Page 12: Dependable Software DAY

高信頼試作車両(車椅子ロボット)の構成高信頼試作車両(車椅子ロボット)の構成

• 2系統の制御系が相互監視• 2系統の制御系が相互監視左右の車輪に対応

• 制御系間はシリアル接続• 制御系間はシリアル接続帰還信号によるエラー耐性

セ サ 操作入力は多重化• センサ・操作入力は多重化双方の制御系が等しく入力を得る

• 異常を検知すると停車自己診断、他者診断、意見不一致、、 者 、 見 致、通信途絶…

Page 13: Dependable Software DAY

単独での故障検出の例単独での故障検出の例

• 制御ソフトウェアがモジュールタイムアウトなどエラーを検知した場合制御ソフトウェアがモジュ ルタイムアウトなど ラ を検知した場合

制御系(右)

それはいけない!

制御系(右)

停車

遮断!

停車

遮断!遮断!

制御系(左)

何かおかしい!

Page 14: Dependable Software DAY

相互監視による故障検出の例相互監視による故障検出の例

• ジョイスティックの一部が故障していた場合ジョイスティックの 部が故障していた場合

制御系(右)999

不一致!

制御系(右)999

停車

遮断!

どちらかが間違っている! 1

23

99

9 停車

遮断!

制御系(左)123 不一致!

遮断!

制御系(左)

安全は確保できる電気的に独立した

冗長回路どちらが間違っているかはわからないが……

Page 15: Dependable Software DAY

ディペンダブルソフトウェアDAYディペンダブルソフトウェアDAY

3) おさえるべきはここ!3) おさえるべきはここ!

安全分析の実際

(独)産業技術総合 究所(独)産業技術総合研究所

研究員研究員

水口大知

Page 16: Dependable Software DAY

生活支援ロボットと機能安全

・安全関連部の切り分けが困難・多様な機能、運用環境

生活支援ロボット安全検証センター パンフレットより抜粋

Page 17: Dependable Software DAY

機能安全開発ロボット要求仕様書 ハザ ドハザ ドロボット要求仕様書

ロボットリスク分析ハザードハザード

&リスク分&リスク分析析

初期アーキテクチャ設計

機能仕様書

ハザード・リスク分析

析析

機能安全コンセプト

システム設計

技術安全コンセプト

ハードウェア設計

ハードウェア安全要求仕様

ソフトウェア設計

ソフトウェア安全要求仕様

Page 18: Dependable Software DAY

ハザード&リスク分析

制御系不具合 操作者意図 運用状態・環境

故障分析 シチュエーション分析

「ブレ キが 「時速

Hazard Operational Situation

「ブレーキがきかない」

「停止」 「時速X 」、「前方に障害物」

p

Hazardous Event

「車両が速度超過」

Hazardous EventSeverity

リスク評価

「車両と障害物に挟まれる」

「回復可能」

「レベル3」(例)HarmLikelihood

リスク評価

ガ デ

「回避不可能」、

「よくある状況」

「レベル3」(例)

網羅性 → Systematicな手法 → 表・ガイドワード・モデルの活用分析対象の機能仕様が明確であることも重要

Page 19: Dependable Software DAY

ディペンダブルソフトウェアDAYディペンダブルソフトウェアDAY

4) 実機で納得!4) 実機で納得!

電動車椅子のSysMLモデリングy

G ff BiGeoffrey Biggs

産業技術総合研究所産業技術総合研究所

知能システム研究部門

Page 20: Dependable Software DAY

SysMLとは

• システム用のモデル言語

–設計

–分析

–検証

• UMLの拡張 UML SysMLUMLの拡張

–要求図

パラメトリック図

UML SysML

–パラメトリック図

• SysMLモデルに別言語やツールで作られたリソースも含める

Page 21: Dependable Software DAY

SysMLでモデリングするメリット

• 情報交換をより公式情報交換をより公式

• ひとつのモデル、複数のツール

システムモデル(SysML)

• トレーサビリティ

ソフトウェアモデル(UML) ハードウェアモデル(Modelica)

要求→ユーズケース→設計→実装→テスト

• モデルの再利用

Page 22: Dependable Software DAY

SysMLのプロセス:OOSEM

「Obj t O i t d S t E i i M th d• 「Object-Oriented Systems Engineering Method」

ソ トウ アのオブジ クト指向メソ ドとの類似方法• ソフトウェアのオブジェクト指向メソッドとの類似方法

システム分解とモデル再利用を奨励する• システム分解とモデル再利用を奨励する

S MLの利用を支える• SysMLの利用を支える

Page 23: Dependable Software DAY

主要な図

要求図 ユ スケ ス図 ブロック図要求図 ユースケース図 ブロック図

アクティビティ図 ステートマシーン図 内部ブロック図

シーケンス図 パッケージ図 パラメトリック図

Page 24: Dependable Software DAY

ディペンダブルソフトウェアDAYディペンダブルソフトウェアDAY

5) 安全性と生産性を両立する5) 安全性と生産性を両立する

ミドルウェア

株式会社セ ク株式会社セック

開発本部

第四開発部

中本啓之中本啓之

Page 25: Dependable Software DAY

RTミドルウェアとは?

• RTミドルウェアとは、ロボットの部品化・共通化の技術

ド ウ 導入により 部品 再利用化が進む– RTミドルウェア導入により、部品の再利用化が進む

– RTミドルウェア導入により、部品調達のオープン化が進む

ボ ト開発の ストダウン 産業化のための技術→ロボット開発のコストダウン、産業化のための技術

ロボット部品ロボット部品RTC(Robot Technology Component)

RTCのフレームワーク、インタフ スをOMGで標準化インタフェースをOMGで標準化

Page 26: Dependable Software DAY

機能安全対応RTミドルウェア

• 機能安全に対応した高信頼なRTミドルウェアの必要性生活支援分野などサ ビスロボ トにおける機能安全の必要性– 生活支援分野などサービスロボットにおける機能安全の必要性

– IEC61508、ISO26262、ISO13482など国際標準規格への対応の必要性要性

– 機能安全対応のためのコストダウン、安全モジュールの再利用による開発効率の向上による開発効率の向上

• IEC61508 SIL3準拠のRTミドルウェア「RTMSafety」を開発

Page 27: Dependable Software DAY

機能安全対応RTミドルウェア

IEC61508機能安全規格に準拠した

安全認証取得RTミドルウェア

世界初の安全コンセプトをもったロボット用

ミドルウ ア

「RTMSafety」

ミドルウェア

IEC61508の製品認証(SIL3)を取得

ロボット用コンポ ネント(RTC)とCPU負荷を均 化ロボット用コンポーネント(RTC)とCPU負荷を均一化

するフレームワークを提供

RTCの生存状況を監視する機能(Safety Function 

Library)を装備Library)を装備

GIOP / CDR準拠の軽量通信プロトコルを実装し、

様々なネットワークプロトコルに対応可能(Network 

Protocol))

OpenRTM‐aistと連携する機能を搭載(RTM Safety 

Bridge)

Page 28: Dependable Software DAY

RTMSafetyシステム構成

RTコンポーネントフレームワーク

機能安全対応RTコンポーネント群

Middleware

Application 故障監視APL

機能安全

Kernel

RTコンポーネントフレームワーク

故障検出機能OS

機能安全ライブラリ OS抽象化層 N/W抽象化層

System Timer

故障検出機能

Hardware

機能安全の

認証済みの

ため、システ

ム全体の機

ROM

INTC

RAM

CPU BUSTimerTimer WDT

内蔵CLK

能安全対応コ

ストを抑える

ことが可能

Main CLK Ethernet CTL

Ethernet DD

電源 リセ ト

Sub CLK WDT

(周辺回路)

電源・リセット

:機能関連 :データ参照 :データ設定 :クロック供給

Page 29: Dependable Software DAY

RTMSafetyの構成とメリット

RTC RTC RTC

非安全関連系

RTC RTC RTC

非安全関連系

エラーがエラーが伝搬しにくい

通常のRTC

動的システム

Communication middleware

LwRTC LwRTC LwRTC

Communication middleware

LwRTC LwRTC LwRTC

エラーがしない

エラーが伝搬しない

しにくい伝搬しにくいRTC システム

Certified real‐time OS

Lightweight RT‐Middleware

LwRTC LwRTC LwRTC

Communication middleware

Certified real‐time OS

Lightweight RT‐Middleware

LwRTC LwRTC LwRTC

Communication middleware

高信頼RTC

静的システム

Certified real‐time OS

安全関連系(要認証)

Certified real‐time OS

安全関連系(要認証)

Page 30: Dependable Software DAY

ディペンダブルソフトウェアDAYディペンダブルソフトウェアDAY

6) 安全管理ソフトウェアを検証せよ!

キャ ツ株式会社キャッツ株式会社

プロダクト事業本部

穴田 啓樹

Page 31: Dependable Software DAY

ibd [Package] Wheelchair [121 Wheelchair logical internal block diagram]

電動車椅子ロボットのシステム構成ibd [Package] Wheelchair [121 Wheelchair logical internal block diagram] 

: DependableWheelchairRobot: ObstacleSensor

Left : LogicalController Right : DriveUnitO :ObstacleInformationO :ObstacleInformation Encoder :Angle Resolver:Angle

<<flowPort>> <<flowPort>> 

<<flowPort>>

<<flowPort>>  <<flowPort>> 

SS :SensorStatusS:SensorStatus 

B:BrakeStatus

Resolver:AngleEmergencyStop

MotionCommand

Encoder :Angle

TorqueControl :CurrentM :MotionStatus

<<flowPort>> 

<<flowPort>> 

<<flowPort>> 

<<flowPort>> <<flowPort>> 

UserInterfaceUnit

Left : DriveUnit

: ElectricMotor: Brake

Override

TorqueControl :Current

TorqueControl :Current

StatusInformation

StatusInformation

B:BrakeStatus

B:BrakeStatusR :Angle

Resolver:Angle<<flowPort>>  <<flowPort>> 

fl P<<flowPort>> 

<<flowPort>> 

<<flowPort>>  <<flowPort>> 

<<flowPort>> <<flowPort>> 

: UserInterfaceUnit

: Wheel : Encoder

EmergencyStop

MotionCommand

Override

EmergencyStop

MotionCommand

EmergencyStop

Override EmergencyStop

MS :MotionStatus

BrakeT :Torque

T:Torque

BrakeControl

Control:Current<<flowPort>> 

<<flowPort>> <<flowPort>> 

<<flowPort>> 

<<flowPort>>

<<delegate>>

<<delegate>><<delegate>>Override

MotionCommand

Override

MS :MotionStatusM :MotionStatus

EmergencyStop

EmergencyStop

FOut:Force

Tout :Torque 

BrakeT :Torque

T:Torque T:TorqueA :Angle 

Encoder :Angle

BrakeControl<<flowPort>> 

<<flowPort>>  <<flowPort>> 

<<flowPort>> 

<<flowPort>> 

<<flowPort>> <<flowPort>>  g

<<delegate>>

<<delegate>>

StatusInformation

StatusInformation F :Force <<flowPort>> 

de egate

※SysMLモデルをプレゼン用にPPTに書き起こしたもの

Page 32: Dependable Software DAY

電動車椅子ロボットの安全走行

● Safety Monitor が外界を監視して安全レベルを決定● Safety Monitor が外界を監視して安全レベルを決定

● 安全レベル =「安全・注意・警告・危険(・故障)」● 安全レベル =「安全・注意・警告・危険(・故障)」

● Command Processor が安全レベルを考慮して● Command Processor が安全レベルを考慮して

目標速度を決定目標速度を決定

Page 33: Dependable Software DAY

重視したこと

● 設計の意図を説明できること● 設計の意図を説明できること

● 状態遷移表で設計の抜け漏れを防ぐこと

● 実機の振る舞いを効率的に解析できること● 実機の振る舞いを効率的に解析できること

Page 34: Dependable Software DAY

ソフトウェアコンポーネント構成ibd [Package] Wheelchair [120 Logical controller internal block diagram] 

: SafetyMonitor : PartnerMonitor

Left : LogicalController

Theirs :PartnerStatus Theirs :PartnerStatus

<<flowPort>>  <<flowPort>> 

<<flowPort>> <<flowPort>> 

: UserInterfaceController

O :ObstacleInformation

SS :SensorStatus

Mine :PartnerStatus Mine :PartnerStatusO :ObstacleInformation

Override

EmergencyStopStatusInformation

StatusInformation<<flowPort>>  <<flowPort>> 

<<flowPort>> 

<<flowPort>> <<flowPort>> <<delegate>>

S f t M itBS :BrakeStatus

M :MotionStatus

Mine :PartnerStatus

MO :MotionStatusM :MotionStatus

SS :SensorStatusg y p

MotionCommand

OverrideEmergencyStop

MotionCommand

MotionCommand

OverrideEmergencyStop

<<flowPort>> 

<<flowPort>> 

<<flowPort>> 

<<flowPort>> Safety Monitor

: MotorController

: CommandProcessor

Encoder :Angle

Encoder :Angle

SL :SafetyLevel

g y p

MotionCommand

OverrideEmergencyStop

MotionCommandSafeMotionCommand

SafeMotionCommand

<<flowPort>> 

<<flowPort>> 

<<flowPort>> 

fl P t

<<flowPort>> <<delegate>>

SL :SafetyLevel C :MotorControlSignalM :MotionStatus

Control :Current 

TorqueControl :CurrentResolver:AngleB:BrakeStatus

R :Angle

C :MotorControlSignal

MotionCommand

<<flowPort>> 

<<flowPort>>

<<flowPort>> <<flowPort>> 

<<flowPort>> 

<<flowPort>> <<flowPort>>

<<flowPort>> 

<<flowPort>>  <<flowPort>>  <<flowPort>> 

※SysMLモデルをプレゼン用にPPTに書き起こしたもの

赤線のコンポーネントは安全レベルを決定する SafetyMonitor

Page 35: Dependable Software DAY

Safety Monitor の状態遷移表

ZIPC-RT http://www zipc com/special/zipc rt/

SafetyMonitor の振る舞いに抜け漏れがないことをレビューZIPC-RT http://www.zipc.com/special/zipc_rt/

Page 36: Dependable Software DAY

障害物を検知して安全制御するしくみibd [Package] Wheelchair [120 Logical controller internal block diagram] 

: SafetyMonitor : PartnerMonitor

Left : LogicalController

Theirs :PartnerStatus Theirs :PartnerStatus

<<flowPort>>  <<flowPort>> 

<<flowPort>> <<flowPort>> 

セーフティモニタの決定を受け

● 注意状態では減速する

● 危険状態では停止する

: UserInterfaceController

O :ObstacleInformation

SS :SensorStatus

Theirs :PartnerStatus

Mine :PartnerStatus

Theirs :PartnerStatus

Mine :PartnerStatusO :ObstacleInformation

Override

EmergencyStopStatusInformation

StatusInformation<<flowPort>>  <<flowPort>> 

<<flowPort>> 

<<flowPort>> <<flowPort>> <<delegate>>

● 危険状態では停止する

ように制御する。

: UserInterfaceController

BS :BrakeStatus

M :MotionStatus

Mine :PartnerStatus

MO :MotionStatusM :MotionStatus

SS :SensorStatusEmergencyStop

MotionCommand

OverrideEmergencyStop

MotionCommand

MotionCommand

OverrideEmergencyStop

<<flowPort>> 

<<flowPort>> 

<<flowPort>> 

<<flowPort>> 

: MotorController

: CommandProcessor

Encoder :Angle

Encoder :Angle

SL :SafetyLevel

EmergencyStop

MotionCommand

OverrideEmergencyStop

MotionCommandSafeMotionCommand

SafeMotionCommand

<<flowPort>> 

fl

<<flowPort>> <<flowPort>> 

<<delegate>>

SL :SafetyLevel C :MotorControlSignalM :MotionStatus

Control :Current 

TorqueControl :CurrentResolver:AngleB:BrakeStatus

R :Angle

C :MotorControlSignal

MotionCommand

<<flowPort>> 

<<flowPort>> 

<<flowPort>> <<flowPort>> 

<<flowPort>> 

<<flowPort>> 

qg<<flowPort>>  <<flowPort>>  <<flowPort>> 

※SysMLモデルをプレゼン用にPPTに書き起こしたものアーキテクチャを説明できることを重視

Page 37: Dependable Software DAY

例) 安全状態で遠くに障害物を検出した時

トレーサビリティツールを利用して

Page 38: Dependable Software DAY

例) 安全状態で遠くに障害物を検出した時

要求を実現する構造・振る舞いを説明できるようにしたZIPC-RT http://www.zipc.com/special/zipc_rt/

Page 39: Dependable Software DAY

設計カバレッジを確認

実機ログから設計網羅を確認して検証のエビデンスに利用した

ZIPC-RT http://www.zipc.com/special/zipc_rt/

Page 40: Dependable Software DAY

まとめ (ポイント)

● アーキテクチャの説明にトレーサビリティを活用した● アーキテクチャの説明にトレーサビリティを活用した

● 状態遷移表で安全系の設計の抜け漏れを防いだ

● 実機の状態遷移を効率的に解析できるようにした● 実機の状態遷移を効率的に解析できるようにした

Page 41: Dependable Software DAY

ディペンダブルソフトウェアDAYディペンダブルソフトウェアDAY

ご清聴ありがとうございましたご清聴ありがとうございました

■本発表の詳細は、5月27日~29日に開催される

日本機械学会ロボティクス・メカトロニクス講演会

2012で発表する予定です2012で発表する予定です。

■ご質問、ご相談は [email protected] へお願いします。■ご質問、ご相談は [email protected] お願いします。