ETロボコン走⾏体システムへの
STAMP/STPA適用事例の紹介
仙台高等専門学校
大友楓雅,菊池雄太郎,⼒武克彰,岡本圭史

1⽬次
1.

背景

2.

⽬的

3.

ETロボコンの概要

4.

XSTAMPPを用いたSTPA

5.

まとめ

2

背景

3

背景
STAMP/STPAとは• システム理論に基づくアクシデントモデル• 構成要素の相互作用がもたらす障害の分析に有効

STPAの⼿順
Step0準備1
Step0準備2
Step1
Step2

アクシデント、ハザード、安全制約の識別
コントロールストラクチャの構築
UCA(Unsafe Control Action)の抽出
HCF(Hazard Causal Factor)の特定
4

背景STAMP/STPAの課題• 比較的公開された適用事例少ない(IPAの直近5年の報告書では7件)• 補助ツールの利用事例さらに少ない• 「はじめてのSTAMP/STPA」の事例→

⼈間系を含まず
5

⽬的

6

⽬的STAMP/STPA分析を志す⼈への事例提供

その際、以下の３点に留意
1.

運用部分(⼈間系)を含めた分析の実施

2.

⼊⼿が容易な補助ツール(XSTAMPP)の利用

3.

分析用資料の⼊⼿容易さ
7

ETロボコンの概要

8

ETロボコンの概要
ETロボコン：共通のロボット（走⾏体）を用いてコースを走破するタイムを競う競技

デベロッパー部門プライマリクラスとは• ジャイロセンサを用いて傾き制御• 輝度値センサを用いてライントレース• ゴール後に難所に挑戦可能
今回は競技開始からゴールまでを分析対象とした
9

ETロボコンの概要
キャリブレーション中
輝度値サンプリングとスタートへの設置
スタートまで走⾏体は完全停⽌状態
スタート後外部から操作不可
図.ターンでの振る舞い ETロボコン2016 競技規約から抜粋

10

XSTAMPPを用いたSTPA

11

分析⼿順と利用ツール• IPAの「はじめてのSTAMP/STPA」を参考に以下の⼿順で⾏った
Step0準備1 アクシデント、ハザード、安全制約の識別
Step0準備2 コントロールストラクチャの構築
XSTAMPPを利用
Step1
UCA(Unsafe Control Action)の抽出
Step2
HCF(Hazard Causal Factor)の特定
Excel,Wordを利用
最終Step対策のまとめ
STPAに用いた情報・ETロボコン競技規約
・シーケンス図・プログラムソース
・前年度の経験12

アクシデント・ハザード・安全制約の識別
アクシデント：望んでもいないし計画もしていない、損失につながるようなイベント→競技リタイヤとなるイベントをアクシデントに設定
アクシデントNo.
1
走⾏体が転倒する2

走⾏体がコースを外れて復帰不可能になる

ハザード

安全制約

走⾏体が限度を超えて傾く

走⾏体の傾きが限度を超えてはならない

コースラインをトレースしない

走⾏体はライン上に存在しなければならない

元にした情報・ETロボコン競技規約
・前年度の経験13

コントロールストラクチャの構築
構築の観点

競技者が関わる⼈間系
前年度の経験より• 走⾏体へのコントロールを探した• 走⾏体のパーツは別のコンポーネント

走⾏体自身の制御系
シーケンス図、プログラムソースより試⾏の結果得た知⾒• XSTAMPP利用で作図が容易• 包含関係は示せない

14

UCAの抽出
抽出の観点• 前年度、競技スタート時にアクシデント多く経験→UCAの発想の⼿助け抽出の結果• 13件のUCAを抽出 (競技スタートに関するUCAは9件)• XSTAMPPではUCAテーブル作成の⼿間が減る

対応するハザードは候補の中から選択

コントロールアクションは自動で埋められる15抽出したUCAの例
経験から予想できたものと出来ないものがあった
コントロールアクション

どこからどこへ

XSTAMPPのガイドワード

UCA• UCAになると予想していなかったもの
走⾏開始操作競技者
PC
スタート位置へ設置完了前にWrong
走⾏開始すると、スタート姿勢timing/order(Wrong timing) ではない状態で走り出す
スタート位置へ
競技者
走⾏体
走⾏体を傾けて設置してスタート
Providing
設置
すると傾きを⽴て直せないまま走り出す
輝度値サンプリング 競技者
走⾏体
複数箇所サンプリングする場合、Wrong箇所に設置設置順番を間違えると誤った基準でtiming/order
ライントレースすることになる(Wrong order)
回転量EV3テイル
テイルが安全な位置に固定されず、Not providing
モータ
走⾏中に競技フィールドと接触

予想

○○××
16

HCFの特定
特定作業の⼿順
1. UCAとHCF特定用ガイドワードのテーブルのテンプレートを作成（ Excel使用。はじめてのSTAMP/STPAの形式を参考）
2. コントロールループとガイドワードの対応を⾒ながら考える
3. HCF+ハザードシナリオをテーブルに⼊⼒

17

HCFの特定試⾏の結果得た知⾒• 分析対象の知識が必要→今回は前年度の同競技への出場経験から必要知識を得た• どこにHCF特定用のガイドワードが対応しているか分かり辛い→コントロールストラクチャに直接ガイドワードを配置すると良い18

対策のまとめ対策の考案• ⼈間系と非⼈間系どちらにHCFがあるかで大別
⼈間系HCF 「競技者の動きの想定」ヒアリング 競技者の認識の変更で対策
防げない場合 → プログラム側で対策
非⼈間系HCF プログラムソースを参考
 プログラム側で対策• 結果はHCFのテーブルに追記し、重複するものをまとめた19

対策シナリオの例
ControlAction (走⾏体を)スタート位置へ設置
走⾏体を傾けて設置した状態で、UCAそのままスタートさせたため走⾏体が転倒
適切なスタート姿勢
競技者の感覚に任せた不正確な操作
HCF競技者が、機体⾓度を自身の感覚で決めて、ハザード設置する。スタート後2輪走⾏を開始するが、シナリオ
設置⾓度が不適切な場合⽴て直しきれず転倒
スタートまで、機体⾓度が不適切なことを対策検知し競技者に通知傾いたスタート姿勢

感覚に頼らず定量的基準を作る
20

今回の開発と分析の関係分析資料
・ETロボコン競技規約
・UML図
・プログラムソース

対策案(Word形式)
・ハザードシナリオ
・対策
提案タイミングは最終リリース前

21

対策の採用・非採用• 考案した対策のうち一部のみ採用された採用された対策の例• 競技者の競技中における⾏動⼿順書の作成• 輝度値サンプリングが終了するまでスタート姿勢にならないようにする

採用されなかった対策の例

微修正でOK• 輝度値サンプリングのやり直し機能をとりいれる• サンプリングした輝度値が想定の範囲外の場合通知する

採用されなかった理由：コスト

新機能必要

22

対策の採用・非採用
別な形で採用された対策• ハザードシナリオ
競技者が走⾏体⾓度を自身の感覚で決めて、設置する。
スタート後2輪走⾏を開始するが、設置⾓度が不適切な場合⽴て直しきれず転倒

• 対策
要機能追加
コスト高

：スタートまでの間、機体⾓度が不適切なことをロータリーエンコーダから検知し競技者に通知

低コストでの対策
ほぼ直⽴状態をスタート姿勢として設定し、不適切な⾓度では設置が⾏えないように、テイルを制御微修正でOK
コスト低

23

競技の結果結果 競技中にアクシデント「走⾏体が転倒する」が発生
STPAを再度試⾏• センサに対するコントロールアクションが抜けを発⾒システム起動時のみ（前回は分析範囲外）

24

2度⽬のSTPAの結果
新たに抽出できたUCA• 走⾏体が静⽌していない時にセンサ初期化されると、ジャイロセンサが正しく働かなくなり傾きを誤認識する

対応するHCF• センサ初期化や輝度値サンプリングを開始するタイミングが不明確であるため、想定した順序で⾏われない採用を想定し運用面で対策追加対策案
1. センサ初期化は競技前に開始し、静⽌状態で⾏う
2. センサ初期化が終わるまで、輝度値サンプリング位置へ設置は⾏わない
25

まとめ

26

まとめ
ETロボコンを運用部分も含めSTAMP/STPAを実施• UCAの抽出まではXSTAMPPを利用• ガイドワード適用により、既知ではないUCAも抽出対策案を開発者へ提案• 実装コストの低いものは採用• ハザードシナリオと併せて提案することで開発者は代替案を提案可能

競技本番ではアクシデント発生防げず• 再度STPA実施、コントロールストラクチャ構築の不備が原因？
27