场景编辑器 — 在浏览器中编写和运行 OpenSCENARIO
drawtonomy 的场景编辑器将绘图画布转变为 OpenSCENARIO 编写工具。你绘制道路、放置演员、描述他们随时间的行动,然后点击播放 — 运行由 esmini 编译为 WebAssembly 在同一浏览器标签页内执行。无需安装、无需账户、无需编译步骤。

两种模式:场景和场景逻辑
Section titled “两种模式:场景和场景逻辑”drawtonomy 将工作分为两部分。在它们之间切换是开始前最重要的事情。
| 模式 | 你在那里做什么 | 工具栏提供什么 |
|---|---|---|
| 场景 | 绘制道路:车道、交叉口、人行横道、标记。放置车辆和行人。 | 完整的绘图工具栏 — Lane、Linestring、Intersection、Participants 等。 |
| 场景逻辑 | 定义行为:阶段、事件、动作、触发器、结束和失败条件。运行场景。 | 仅撤销、重做、Hand、Select、添加演员和 Path。 |
从左上角的汉堡菜单中切换模式,在 EDITING 标题下:Scene 或 Scenario。
分割带来两个后果:
- 你不能在场景逻辑模式中绘制道路。 绘图工具在那里不显示。要返回,使用汉堡菜单,或演员放置面板顶部的 Edit roads 按钮。
- 先绘制道路并放置至少一个演员。 + Phase 按钮保持禁用,直到场景有演员,没有道路的场景对演员来说没有可驾驶的地方。
编写工作流程
Section titled “编写工作流程”- 场景模式 — 绘制道路。 按 N 调用 Lane 工具并绘制一条或多条车道。或者 导入 OpenDRIVE
.xodr而不是绘制。 - 放置演员。 你可以从任一模式执行此操作:在场景模式中按 P 调用 Participants 工具,或在场景逻辑模式中点击 Add actor — 然后点击车道上。每个演员成为一个 OpenSCENARIO 实体。
- 切换到场景逻辑模式。 汉堡菜单 → EDITING → Scenario。
- 构建逻辑。 + Phase 创建带有第一个事件的阶段。每个事件有一个 TRIGGER(何时触发)和一个或多个 ACTIONS(发生什么)。
- 设置结束和失败条件。 END CONDITIONS 节点决定何时停止运行;FAIL CONDITIONS 决定运行是 PASS 还是 FAIL。
- 播放。 LOGIC 卡左侧的 ▶ 按钮运行场景,结果徽章报告结果。
- 导出。 汉堡菜单 → Export → OpenSCENARIO (.xosc)… 导出场景,.xodr (OpenDRIVE) 导出道路,或 Export video… 导出录像。
你的工作在进行过程中自动保存到浏览器,重新打开标签页时返回,所以这里没有必需的”保存”步骤 — 但导出是你用来共享场景或永久保存的方式。
编辑器的标签映射到 OpenSCENARIO 元素。简要版本:
| drawtonomy UI | OpenSCENARIO 1.x |
|---|---|
| Phase | Act |
| Event | Event |
| TRIGGER | 事件的 StartTrigger |
| ACTION | 私有动作,如 SpeedAction |
| ALL OF (AND) | 一个 ConditionGroup |
| END CONDITIONS | storyboard 的 StopTrigger |
| FAIL CONDITIONS | drawtonomy 特定,存储为供应商参数 |
完整表格(包括 RoadRunner Scenario 等价物)在 RoadRunner 和 OpenSCENARIO 术语 上。
接下来去哪里
Section titled “接下来去哪里”- 构建你的第一个场景 — 逐步进行车道变更,从空白画布到 PASS 结果。
- 打开和播放现有 .xosc — 导入
.xosc+.xodr对,或直接从 GitHub 打开。 - 阶段和事件 — 逻辑图如何结构化以及事物运行顺序。
- 动作参考 — 全部 35 个动作及每个发出的 OpenSCENARIO 元素。
- 触发器参考 — 全部 19 个条件,加上 AND / OR 分组。
- 结束和失败条件 — 何时停止运行以及如何决定 PASS / FAIL。
- 播放 — 传输控制、跟随摄像机、幽灵轨迹、结果徽章、视频导出(完整或修剪)。
- RoadRunner 和 OpenSCENARIO 术语 — 如果来自 RoadRunner Scenario,可参考的翻译表。