倒立二輪車の人間・機械協調システムのSTAMP解析
STPA analysis for human-machine interaction
system using two-wheel-pendulum
２０１６．１2．6
ＩＰＡ/ＳＥＣ 佐々木 千春

Copyright © 2016 IPA, All Rights Reserved

Software Reliability Enhancement Center

Agenda 背景
 ロボットの紹介
 STPAの実施 実施結果を基にした対策の適応
 まとめ© 2016 IPA

Background
What’s Robot?
Using STPA
Implementation of measures
Summary

Software Reliability Enhancement Center2

背景 Background ソフトウェアが高機能化するに伴い、航空機・自動車・ロボットをはじめとした、人間と機械が協調したシステムが広く登場している。
 一方でソフトウェアの不具合によって人間に危害を与えたり、大きな経済損失を与える危険性が高まっている。システムが安全であることを担保することも重要になってきている。
 如何にして、人間と機械が協調するシステムの安全を担保するかが重要となる。

 人間と機械が協調するモデルとして、二輪倒立ロボットをベースにユーザーの操作機能を追加したシステムを構築し、STPAを実施する。

© 2016 IPA

Software Reliability Enhancement Center3

ロボットの紹介
 名称
LEGO Mindstorms EV3ロボコン(JASA ETロボコン)等で使用される、主に教育用とに利用されるロボット
 性能
CPU: ARM9
MEM:16Mb(Flash)+64Mb(RAM)10年前の携帯/ゲーム機と同じぐらいの性能
 OS:BrickOS
 I/O
Sensor Input( 4 port)
Motor Output(4 port)
Wifi/Bluetooth ロボットの最大速度(MAX Speed)
約44cm/s© 2016 IPA

Software Reliability Enhancement Center4

ロボットの紹介[Safety[Safety[Function]
Function]
Function]
Manipuｌatecollision
InvertedRobot
prevention
control[安全機能]倒立制御
ロボット操作[安全機能]衝突防止機能
超音波センサーにより、前方ジャイロセンサーにより傾きを外部パッドによりロボットの前の物体を検知検出。
後、左右操作を行う。
物体が一定距離以内になった傾きを打ち消すように、前後自立制御はロボット自身が、ら、音を出して検知を知らせ、に車輪を動かす。
ロボットの移動はユーザーがユーザー操作による前方移動それぞれ制御するを遮断する。

© 2016 IPA

Software Reliability Enhancement Center5

ロボットの紹介© 2016 IPA

Software Reliability Enhancement Center6

ロボットの紹介© 2016 IPA

Software Reliability Enhancement Center7

ロボットの紹介
PCへ転送(ログ表示)
Output to PC(Display Log)

センサー入力Sensor Input

ユーザー入力受付
User Input© 2016 IPA

操作制御
Manipulate Control
・ユーザー入力をモータ動力に変換ロボットに出力
Output to Robot

安全系制御
Safety Control
・倒立制御
・衝突防止
Software Reliability Enhancement Center

8

STPAの実施①Accident, 安全機能, Hazard, Safety Constraintの定義
 Accident

損失に繋がるようなイベント
 [A-1] ロボットが転倒する fall
 [A-2] ロボットが障害物にぶつかる collide with obstacle 安全機能safety function

アクシデントを防ぐために用意された機能
 ロボットの重心を一定に保つ姿勢制御機能
 障害物を検知したら停止する衝突防止機能 anti-collide function

 Hazard

アクシデントに繋がるような安全機能の状態、条件
 [H-1] ロボットの重心が制御可能域を逸脱する [H-2] 障害物を検知しても停止が間に合わない Safety Constraint ハザードからシステムを安全に保つための要件・制約
 [SC1-1] ロボットの重心を常に制御可能範囲内に抑える
 [SC2-1] 衝突防止策が間に合う範囲で障害物検知する© 2016 IPA

Software Reliability Enhancement Center

9STPAの実施
controlfeedback
外部との作用②Control Structureの作成

ManipulateController①前進・後進指示(Forward/Backward instruction)②旋回指示(Turn)

Operator

動作状況表示Robot Situation

Robot Status Monitor③前進・後進指示信号(Forward/Backword signal)④旋回指示信号(Turn signal)

MotorActuator⑤前進・後進指示信号(Forward/Backword signal)

走行状況（目視）

動作状況表示Robot Status Monitor（車体角度、移動速度
障害物有無）

SafetyController
ジャイロ（車体角）
Gyro(Body angle)

エンコーダ（車輪角、速度）
Motor encoder(Wheel Angle,)velocity)⑥モーター回転指示(Motor rotate instruction)

外乱（道路の凹凸、突風）© 2016 IPA

超音波（障害物有無）
ultrasonic sensor(detect obstacle)

LEGO
Software Reliability Enhancement Center 10

STPAの実施③Unsafe Control Actionの抽出
Stop toosoon/Applying
too long#ControlActionSourceController

Destination

Not Providing

Incorrectly Providing

Too early / Too Late

1Forward/
Backward

OperatorManipulate
Ctrl-er- None -(UCA1-P)LEGOが不安定な状態での前進・後進指示による転倒 (HC1-1違反)- None -- None -2

TurnOperatorManipulate
Ctrl-er- None -(UCA2-P)LEGOが不安定な状態での旋回指示による転倒(HC1-1違反)- None -- None -3

Forward/BackwardManipulate
Ctrl-er

Motor
Actuator- None -(UCA1-P)LEGOが不安定な状態での前進・後進指示による転倒 (HC1-1違反)- None -- None -4Turn

Manipulate
Ctrl-er

Motor
Actuator- None -(UCA2-P)LEGOが不安定な状態での旋回指示による転倒(HC1-1違反)- None -- None -Motor
Actuator(UCA3-N)LEGOの重心を制御できず転倒(HC1-1違反)(UCA4-N)障害物前で停止できず衝突(HC2-1違反)(UCA3-P) LEGOの重心を制御できず転倒(HC1-1違反)(UCA5-P)障害物前で前進してしまい衝突(HC2-1違反)(UCA3-T) LEGOの重心を制御できず転倒(HC1-1違反)(UCA4-T)障害物前で停止できず衝突(HC2-1違反)- None -(UCA3-N)LEGOの重心を制御できず転倒(HC1-1違反)(UCA3-P) LEGOの重心を制御できず転倒(HC1-1違反)(UCA5-P)障害物前で前進してしまい衝突(HC2-1違反)(UCA3-T) LEGOの重心を制御できず転倒(HC1-1違反)(UCA4-T)障害物前で停止できず衝突(HC2-1違反)- None -5

6Forward/Backward

MotorrotateSafetyCtrl-er

Motor
Actuator© 2016 IPA

LEGOSoftware Reliability Enhancement Center 11

STPAの実施
青は制御
赤は応答④Hazard Causal Factorの特定

操作系
コントローラー

①前進・後進指示(Forward/Backword instruction)②旋回指示(Turn)

操作員③前進・後進指示信号(Forward/Backword signal)④旋回指示信号(Turn signal)

走行状況（目視）⑤フィードバックが不適切・喪失・遅れ(incorrect,loss,delay)⑥動作の遅れ(delay)

モーター
アクチュエータ ⑤前進・後進指示信号(Forward/Backword signal)

安全系コントローラー

考えられるHCF(HCF-1)
段差の前後で操作員が急な前進、後退命令をだし、LEGOの姿勢が不安定になった。操作員は復帰を操作系コントローラーに指示を出すことにより試み、操作系コントローラーはモーターアクチュエーターに対し後退指示を正しく出した。一方で、安全系コントローラーも姿勢安定化のためにモーターアクチュエーターに対し前進・後進指示信号を出した。この際、安全系コントローラーは前進命令を、操作系コントローラーは後退命令を出したため、モーターアクチュエータはその合算値：0をモーターに伝え、結果LEGOはモーターを動かさず、転倒した。
© 2016 IPA

Software Reliability Enhancement Center 12

STPAの実施④HCFの特定⇒対策案検討[推定される原因]
段差の前後で操作員が急な加速、減速命令をだし、LEGOの姿勢が不安定になった。操作員は復帰を操作系コントローラーに指示を出すことにより試み、操作系コントローラーはモーターアクチュエーターに対し後退指示を正しく出した。一方で、安全系コントローラーも姿勢安定化のためにモーターアクチュエーターに対し前進・後進指示信号を出した。この際、安全系コントローラーは前進命令を、操作系コントローラーは後退命令を出したため、モーターアクチュエータはその合算値：0をモーターに伝え、結果LEGOはモーターを動かさず、転倒した。

[対策案]
操作要求信号に対して、最大速度と最大加速度、加加速度を制限する(PID制御との干渉、UTの停止指示と操作要求信号の干渉による転倒防止）ジョイスティックから手を放すと停止する安全設計
ルールベース制御(ロボットが不安定な時は操作系コントローラー入力を受け付けない)の採用
衝突防止時/ルールベース制御時にロボットから音を出して、操作員に衝突防止が働いていることを知らせる。

© 2016 IPA

Software Reliability Enhancement Center 13

STPAの実施
controlfeedback
外部との作用②Control Structureの作成

ManipulateController①前進・後進指示(Forward/Backward instruction)②旋回指示(Turn)

Operator

動作状況表示Robot Situation

Robot Status Monitor③前進・後進指示信号(Forward/Backword signal)④旋回指示信号(Turn signal)

MotorActuator⑤前進・後進指示信号(Forward/Backword signal)

外乱（道路の凹凸、突風）© 2016 IPA

動作状況表示Robot Status Monitor（車体角度、移動速度
障害物有無）

SafetyController
ジャイロ（車体角）⑦操作コントローラー命令を阻害
Inhibit manipulate signal.
⑥モーター回転指示(Motor rotate instruction)

走行状況（目視）Gyro(Body angle)

エンコーダ（車輪角、速度）
Motor encoder(Wheel Angle,)velocity)

超音波（障害物有無）
ultrasonic sensor(detect obstacle)

LEGO
Software Reliability Enhancement Center 14

実施結果を基にした対策の適応
ルールベース制御 rule-based control
以下のいずれか条件でユーザー入力を無視する⇒姿勢制御のみを行う
・車体角度が一定以上になった。
・車体角速度が一定以上になった。

© 2016 IPA

Software Reliability Enhancement Center 15

実施結果を基にした対策の適応© 2016 IPA

Software Reliability Enhancement Center 16

まとめ STAMP/STPAを用いることで、二輪倒立ロボットを用いた人間、機械の協調制御システム、および周辺状況の記述から、安全制約を脅かす要因の絞り込みまでを一通り行うことが可能であった。
 この要因への対策を行うことで、ロボットの動作が変化し、対策が効果をなしていることも確認できた。
 この対策により新たなUnsafe Control Actionが生じていないかの確認、さらには環境条件が変わった場合にはその変更を反映しての再度の分析が必要である。

© 2016 IPA

Software Reliability Enhancement Center 17