コンテンツにスキップ

GitHub 上で OpenSCENARIO をプレビュー

OpenSCENARIO をめぐる作業の多くは GitHub から始まります。シナリオはリポジトリに置かれ、プルリクエストとして届きますが、その中身を理解するには本来リポジトリをクローンし、シミュレータを用意し、実際にファイルを動かして確認する必要がありました。

drawtonomy for GitHub はその手間を丸ごとなくす無料の Chrome 拡張機能です。.xosc ファイルを github.com 上でそのまま再生できます — ダウンロードもインストールもシミュレータも不要です。

Chrome ウェブストアからインストール →

esmini のシナリオを GitHub 上でプレビューし、エディタで開いてイベントを編集、トリムしたクリップを書き出すまでの流れ。
動作する場所github.com — ファイルページとフォルダ一覧
プレビュー対象公開リポジトリ内の OpenSCENARIO .xosc ファイル
自動で解決される要素シナリオに必要な道路ネットワークと車両カタログ
収集する情報なし — アナリティクスもアカウントも不要

Chrome ウェブストアから drawtonomy for GitHub をインストールします。設定もアカウント登録も不要です。.xosc を含む GitHub のページを開けば、それだけですぐに使えます。

drawtonomy for GitHub の Chrome ウェブストア掲載ページ。GitHub のファイルページで lane_change.xosc シナリオがインラインプレビューされている様子

GitHub を離れずにシナリオをプレビューする

Section titled “GitHub を離れずにシナリオをプレビューする”

OpenSCENARIO ファイルを含む公開リポジトリを開きます。たとえば esmini/esminiresources/ フォルダには、サンプルシナリオが数十個入っています。

GitHub の一覧で .xosc ファイル (やそれを含むフォルダ) が表示されている箇所には、小さな ▶ 再生チップが付きます。シナリオを含むフォルダには件数も表示されるので、クリックする前に中身の量がわかります。

esmini/resources の GitHub ディレクトリ一覧。xosc フォルダと scenario_construct_examples フォルダに再生チップとシナリオ件数が表示されている

チップをクリックすると、ページの上にポップアップとしてシナリオがその場で再生されます — 道路、車両、イベントタイムラインまで含めて。

GitHub 上のプレビューで再生される cut-in.xosc シナリオ。LOGIC タイムラインに CutInAndBrakeAct のイベントが表示されている

フォルダをまとめて見たいときは、◀ ▶ ボタン (または矢印キー) でプレビューを閉じずに次のシナリオへ進めます。ヘッダーのファイル名をクリックすると、1 件ずつ送るのではなく一覧から目的のシナリオへ直接ジャンプできます。1 ディレクトリに 1 シナリオという構成のリポジトリでは、フォルダのチップを開くとそのフォルダとサブフォルダ内の全シナリオを続けて閲覧できます。

.xosc ファイルを (フォルダではなく) 直接開いた場合も、GitHub の Raw / Copy / Download ボタンの隣に同じプレビューがインラインで表示されます。

キー動作
Escプレビューを閉じる
/ 前 / 次のシナリオへ移動
ジャンプリスト内を移動
Enter選択中のシナリオを開く

プレビューでシナリオの中身はわかります。変更したくなったら、Open in drawtonomy をクリックすると、道路と必要なカタログを解決済みの状態で同じシナリオがフルエディタに渡され、新しいタブですぐに再生できます。

acc-test シナリオが drawtonomy のフルエディタで新しいタブに開かれ、GitHub から開いたことを示すトーストが表示されている

開いた先の URL は普通の共有可能なリンクです。拡張機能の有無に関わらず、誰でも開けます。

エディタに入れば、長い高速道路シナリオを見やすくする 2 つの設定があります。

  • Follow: Ego はカメラを Ego 車両に固定します。インポートした道路は数キロメートルに及ぶこともあります。
  • Ghost は過去の位置をトレイルとして残すので、カットインのような一瞬の挙動も、見逃さないよう身構えなくても 1 枚の絵として把握できます。

acc-test シナリオを 4 倍速で再生し、Follow Ego とゴーストトレイルでカットインの挙動が示されている

操作の全体像は 再生 を参照してください。

インポートしたシナリオは読み取り専用ではありません。任意のイベントカードをクリックすればイベントエディタが開き、トリガーやアクションを変更して再生し直せます。

LaneChange2Event を開いたイベントエディタ。シミュレーション時刻によるトリガーと Change Lane アクションが表示されている

編集後のシナリオを再生した様子。ゴーストトレイルに変更後の車線変更の挙動が表れている

各トリガーとアクションの意味については アクショントリガー を参照してください。

必要な部分だけをクリップとして書き出す

Section titled “必要な部分だけをクリップとして書き出す”

実行全体が必要になることはほとんどなく、多くの場合は何かが起きる数秒間だけです。Export video を使えば、その部分だけを .webm として録画でき、そのままプルリクエストのコメントやチケット、レビュー用の資料に貼り付けられます。

EXPORT VIDEO パネル。アスペクト比・カメラ・半径・ゴーストの設定と、3.85 秒から 8.33 秒までの Trim 範囲が表示されている

RangeTrim にして、シークバーの 2 つのハンドルを目的の区間までドラッグし、Start をクリックします。アスペクト比、カメラをシーン全体に合わせるか Ego に追従させるか、ゴーストトレイルを録画に含めるかも選べます。

書き出された .webm がブラウザタブで再生されている様子

拡張機能は何も収集しません — アナリティクスもアカウントも、独自サーバーへの送信もありません。ファイルをプレビューする操作は、drawtonomy.com で同じシナリオを新しいタブで開くのと同じです。詳細は Chrome 拡張機能のプライバシーポリシー を参照してください。

  • 公開リポジトリのみ対応しています。非公開リポジトリは使えません。
  • .xosc ファイルのみ対応で、単体の .xodr 道路ファイルはまだプレビューできません。
  • Windows 形式のパスやシミュレータ内蔵の地図を参照するシナリオ (同じリポジトリ内の .xodr を参照していない場合) は道路を自動解決できず、drawtonomy がファイルの指定を求めます。
  • プルリクエストの「Files changed」差分にはまだ再生ボタンが表示されません。ファイル自体のページから開いてください。

プレビューの読み込み元アプリの URL の変更や、自動プレビューの有効化は、拡張機能のオプションページ (ツールバーのポップアップ → Options) から行えます。

拡張機能が行うことは、リンクだけでも再現できます。GitHub の blob リンクを ?open= の後ろに付け加えるだけです。

https://drawtonomy.com/?open=https://github.com/esmini/esmini/blob/master/resources/xosc/cut-in.xosc

esmini の cut-in シナリオを開く →

このリンクは拡張機能を入れていない相手にもそのまま渡せるので、チームメイトとシナリオを共有するときに便利です。詳しくは 既存の .xosc を開いて再生する を参照してください。