コンテンツにスキップ

OpenSCENARIO シミュレータ — ブラウザで .xosc を実行 (esmini-WASM 搭載)

drawtonomy は自動運転シナリオ向けの無料ブラウザ完結型ホワイトボードです。OpenSCENARIO のエンティティ・Path・トリガ領域がキャンバス上のシェイプとして扱われるため、そのまま 無料のブラウザ完結型 OpenSCENARIO シミュレータ としても機能します。.xosc と対応する .xodr をドロップするだけで、組み込みの esmini-WASM ランタイムがシナリオをブラウザ内で実行します。タイムラインのスクラブ・コマ送り・ゴーストトレイル・Ego 車両に追従する Follow Ego カメラ (キャンバスが Ego とともにパンして中央に保持)・ワンクリック .webm エクスポートまで、一通りの機能をブラウザだけで使えます。

インストール不要。MATLAB ライセンスも、C++ ビルドも、アカウント登録も必要ありません。

ACC 割り込みシナリオ (.xosc) をブラウザで esmini-WASM 実行し、タイムラインをスクラブして .webm に録画するデモ。

シミュレーションを担うのは esmini

Section titled “シミュレーションを担うのは esmini”

drawtonomy は esmini — スウェーデンの ADAS コミュニティが開発した ASAM OpenSCENARIO 1.x のオープンソースリファレンスランタイム — を WebAssembly にコンパイルして内部に組み込んでいます。.xosc をドロップすると、次の流れで処理されます。

  1. OpenDRIVE ネットワークが解析され、キャンバスに配置されます。
  2. .xoscesmini-WASM に渡され、ネイティブ esmini とまったく同じ方法で OpenSCENARIO ストーリーボードが実行されます。Acts・Sequences・Maneuvers・条件付きトリガ・パラメータ宣言・コントローラもすべて対応しています。
  3. フレームごとにシミュレーション済みのエンティティポーズが読み出され、キャンバスに描画されます。

シミュレーションのセマンティクスは esmini のものをそのまま使っており、drawtonomy が独自に再実装したものではありません。ランタイムの正確性に関するすべての功績は esmini プロジェクトとそのメンテナーに帰します。drawtonomy が加えるのは キャンバスネイティブのシェル 部分です。タイムラインスクラバー・Follow Ego・ゴーストトレイル・.webm エクスポート・.drawtonomy.svg 形式での共有、そしてシナリオを作成するのと同じキャンバスで実行できる点が drawtonomy の付加価値です。esmini の地道な取り組みなくしてこれらは実現できません。

  • .xosc + .xodr のペアを読み込む — キャンバスへのドロップ、またはハンバーガーメニュー → ImportOpenSCENARIO から。
  • 再生・一時停止・スクラブ — Space・矢印キー・タイムラインで、フレーム単位の精度で操作できます。
  • 再生速度を調整 — 0.25× から 4× まで (プリセットチップとスライダー)。
  • Follow Ego — キャンバスが Ego 車両に追従してパンし、Ego が画面中央に保たれます。Bbox / Follow Ego モードは動画エクスポート時のカメラ選択にも使えます。
  • ゴーストトレイル — Path ゴースト (ポリライン) と Footprint ゴースト (サンプリングしたシルエット) を設定した時間間隔で表示し、動きの履歴を一目で確認できます。
  • Re-simulate — エンティティを移動したり Path を変えたり車種を差し替えたりしたあと、その場でシナリオを再実行できます。古いスナップショットではなく、常に最新のシナリオを反映します。
  • .webm にエクスポート — アスペクト比プリセット (16:9、9:16、1:1、4:3、Free) から選んで録画。ブラウザ内の MediaRecorder で完結するため、アップロードもアカウントも不要です。

詳しい操作手順は OpenSCENARIO ファイルをシミュレートする方法 ガイドを参照してください。

他のドライビングシミュレータとの比較

Section titled “他のドライビングシミュレータとの比較”
  • esmini — drawtonomy が組み込んでいる ASAM OpenSCENARIO 1.x のオープンソースリファレンスランタイム。シミュレーションエンジンとしては同一のもので、drawtonomy はそれをブラウザ上で動かしているという位置づけです。CLI・OpenSceneGraph 3D ビューワ・C++/Python API が必要な場合はネイティブ esmini を使ってください。
  • CARLA — カメラ・LiDAR・レーダーなどのフルセンサーモデルと Python OpenSCENARIO ランナーを備えたオープンソース AV シミュレータ。数 GB 規模のインストールと GPU が必要です。センサーデータを扱う用途に最適で、「シナリオを見るだけ」なら規模が大きすぎることもあります。
  • MathWorks RoadRunner Scenario — RoadRunner に統合された商用シナリオオーサリング・再生環境。MATLAB / Simulink 中心のチームに最適ですが、有償かつブラウザでは動作しません。
  • Foretellix Foretify / IPG CarMaker / dSPACE ASM — OpenSCENARIO 対応の本格的な車両ダイナミクスと大規模シナリオカタログを持つエンタープライズ向けプラットフォームです。調達規模のツールで、drawtonomy とは対象領域が大きく異なります。
  • Truevision Designer — 商用 3D HD マップ・シナリオエディタ (再生機能付き)。デスクトップアプリで、ブラウザ動作はしません。
  • LGSVL Simulator — OpenSCENARIO に対応していた人気のオープンソース AV シミュレータ。現在はホストサービスが終了しています。

このなかで drawtonomy が占める位置は意図的に狭く設定しています。インストール不要・無料・ブラウザ完結 で OpenSCENARIO ファイルを実行・録画したいときのための選択肢です。デスクトップシミュレータを立ち上げずに .xosc をとにかく確認したい、という場面が主なユースケースです。

センサーシミュレーションや数千シナリオのリグレッション一括実行が目的であれば、同じ .xosc を esmini・CARLA・エンタープライズシミュレータに渡してください。使い分けの詳細は drawtonomy vs esmini および drawtonomy vs CARLA を参照してください。

ブラウザシミュレータが活躍する場面

Section titled “ブラウザシミュレータが活躍する場面”
  • CI で失敗したシナリオをトリアージする。 .xosc をブラウザにドロップし、失敗した瞬間にスクラブしてスクリーンショットを撮ります。フルシミュレータの起動より格段に速いです。
  • シナリオ PR をコードレビューする。 esmini をインストールしていないレビュアーでも、drawtonomy でシナリオを開いて実行できます。
  • OpenSCENARIO の授業・ワークショップで使う。 学生のラップトップにローカルインストールなしで .xosc ファイルを実行できます。
  • スライド・バグレポート・顧客デモ・SNS 投稿用の .webm を録画する。 16:9・9:16・1:1 形式でそのままエクスポートできます。
  • 2 つのシナリオを並べて目視比較する。 タブを 2 つ開いてそれぞれスクラブします。
  • scenariogenerationScenic で生成したシナリオを確認する。 長いシミュレーションを走らせる前にブラウザで目視確認できます。
  • カメラ・LiDAR・レーダーのセンサーシミュレーションが必要 → CARLA・IPG CarMaker・Foretellix などのフルシミュレータを使ってください。drawtonomy はストーリーボードを実行しますが、センサーは扱いません。
  • 数千シナリオのリグレッション一括実行 → esmini や CARLA をスクリプトから駆動してください。
  • 本番レベルの HD マップ編集RoadRunnerTruevision Designer を使ってください。
  • ネイティブ esmini 付属の OpenSceneGraph 3D ビューワが必要 → ネイティブ esmini をそのまま使ってください。

シミュレータは ASAM OpenSCENARIO 1.x.xosc ファイルを、参照先の ASAM OpenDRIVE .xodr とセットで読み込みます。どちらもオープン標準です。drawtonomy でシミュレーションした .xosc は変換なしに、ネイティブ esmini・CARLA・RoadRunner Scenario・その他の OpenSCENARIO 対応ランタイムにそのまま渡せます。

謝辞 — esmini の上に成り立つシミュレータ

Section titled “謝辞 — esmini の上に成り立つシミュレータ”

このページのブラウザシミュレータは esmini プロジェクトを直接の基盤として構築されています。シミュレーションコアは esmini を WebAssembly にコンパイルしたものであり、ストーリーボードのセマンティクス・OpenSCENARIO 1.x としての正確性・そこに積み重ねられた長年の丁寧な作業はすべて esmini のメンテナーとコントリビュータによるものです。drawtonomy のものではありません。OpenSCENARIO 再生のデファクト標準オープンリファレンスを育ててくれたチームに、心からの感謝を伝えます。drawtonomy のブラウザシミュレータが役に立ったと感じたら、ぜひ GitHub で esmini をスターして プロジェクトを応援してください。