運転シナリオの抽象度 — 機能・論理・具体
ADAS(先進運転支援システム)や AD(自動運転)のシナリオベーステストでは、シナリオを 3 つの抽象度で分けて扱うのが標準的なやり方です。これは PEGASUS プロジェクト に由来し、いまではテストカタログ・安全性ケース・シナリオライブラリのほぼすべてで前提になっています。
- 機能シナリオ(functional scenario) — 自然言語による定性的な記述。
- 論理シナリオ(logical scenario) — パラメータの「範囲」を持つ構造化記述。
- 具体シナリオ(concrete scenario) — すべてのパラメータが具体値に固定された 1 つのインスタンス。
このページは中立的な入門記事として、それぞれの抽象度の意味、ODD(運用設計領域)との関係、対応するフォーマット、そして drawtonomy が関わる範囲を整理します。
3 つの抽象度
Section titled “3 つの抽象度”機能シナリオ
Section titled “機能シナリオ”機能シナリオ は、運転状況を自然言語で定性的に書いたものです。登場物・道路レイアウト・行動を述べますが、数値には踏み込みません。
例:「片側 2 車線の高速道路で、左レーンを走るより速い車両が、自車を追い越した直後に右レーンへカットインする」
機能シナリオは、テスト計画書、設計レビュー資料、スライドデッキ、論文の図、安全性ケースの説明文といった「人間どうしの伝達」のレベルで使われます。
論理シナリオ
Section titled “論理シナリオ”論理シナリオ は、機能シナリオを構造化したうえで、各変数に パラメータ範囲 を与えたものです。自車の初速、車間距離、TTC(衝突余裕時間)、相手車両の相対速度、天候、道路曲率といった各パラメータが、単一の値ではなく範囲・分布を持ちます。
例:「自車速度 ∈ [70, 130] km/h、カットイン車両の相対速度 ∈ [+10, +30] km/h、カットイン開始時の TTC ∈ [1.5, 4.0] 秒、…」
論理シナリオは、テストキャンペーンでサンプリング・パラメータ走査・探索の対象になるレベルです。このレイヤを直接扱うツール・DSL には、Scenic、scenariogeneration(pyoscx / pyodrx)、OpenSCENARIO 2.0 / DSL などがあります。
具体シナリオ
Section titled “具体シナリオ”具体シナリオ は、論理シナリオから 1 点を取り出した、すべての値が固定されたインスタンスです。シミュレータで実際に走るのも、テストコースで再現するのもこのレベルです。
例:「自車 90 km/h、カットイン車両の相対速度 +20 km/h、カットイン開始時 TTC = 2.5 秒、路面:乾燥アスファルト、…」
OpenSCENARIO 1.x の XML や esmini でのリプレイ、各種リプレイツールが扱うのは基本的にこの具体レベルです。
ODD との関係
Section titled “ODD との関係”ODD(運用設計領域、Operational Design Domain) は、ある運転機能が動作することを想定している条件の集合です(対象道路の種類、天候、時間帯、地理的範囲など)。シナリオの 3 抽象度はそれぞれ ODD と切り離せません。
- 機能シナリオは ODD の 内側 で書きます(例:「晴天の高速道路」)。
- 論理シナリオはパラメータ範囲を ODD に 整合させて 与えます(高速道路限定なら速度範囲もそれに合わせる)。
- 具体シナリオは ODD の 内側に位置するインスタンス、または ODD の境界を意図的に攻めるエッジケースとして選ばれます。
関連する標準と枠組み
Section titled “関連する標準と枠組み”- PEGASUS — 機能・論理・具体という分類を整理したドイツの研究プロジェクト。ここで使う語彙の出どころ。
- ISO 21448(SOTIF) — 意図された機能の安全性。ODD と組み合わせて「機能が ODD の中で意図どおり振る舞う」ことを論証するための背骨に、シナリオの分類が使われます。
- ASAM OpenSCENARIO — 1.x は具体シナリオ向け、2.0 / DSL は論理シナリオ向けという棲み分け。
- ASAM OpenDRIVE — どの抽象度のシナリオも、静的な世界としてこれを参照します。
drawtonomy が関わる範囲
Section titled “drawtonomy が関わる範囲”drawtonomy は論理シナリオのサンプラーでも、具体シナリオの実行エンジンでもありません。あくまで運転シーン向けのブラウザホワイトボードです。それでも、3 つの抽象度のうち以下の場面では使えます。
- 機能シナリオの図解。テスト計画書、設計レビュー、安全性ケース、スライド、論文の図に載るシナリオの図は、見た目としては機能シナリオの可視化そのものです。drawtonomy はこの図を作るのに向いています。
- 論理シナリオの「絵」。論理シナリオは値の範囲をパラメータ表で持ちますが、読者がまず見たいのは「どんなレイアウト・どんな登場物・どう動く」というシーンの形です。drawtonomy はこの絵を担当します。パラメータ表そのものは DSL や表計算で持つことになります。
- 具体シナリオを書き出す前の下書き。これから OpenSCENARIO 1.x の XML を手書きしようとしているとき、drawtonomy で 2D のスケッチを作り、その出発点となる
.xoscを書き出す動線があります。詳しくは OpenSCENARIO を書く前の下書き を参照してください。
実運用での論理・具体シナリオの本格的な著述 — パラメータ走査、条件付きトリガ、複雑な Storyboard — は、Scenic、scenariogeneration、手書き OpenSCENARIO XML、または OpenSCENARIO 2.0 / DSL の領域です。drawtonomy が担当するのは「絵」であって、テストロジックではありません。
同じシナリオテストエコシステムの中で
Section titled “同じシナリオテストエコシステムの中で”- OpenSCENARIO とは
- OpenDRIVE とは
- esmini とは
- エコシステム:Scenic
- drawtonomy と scenariogeneration
- drawtonomy と手書き OpenSCENARIO XML
- ADAS テストシナリオの下書き — カットイン・合流・歩行者横断のテスト図を作る流れ。
- OpenSCENARIO を書く前の下書き — 視覚的なスケッチから XML への動線。
- 自動運転の論文向け図版 — 出版品質のシナリオ図。