RoadRunner 和 OpenSCENARIO 术语对照
如果你已经用过 MathWorks RoadRunner Scenario,drawtonomy 的场景编辑器大部分概念都会感到熟悉 — 两个工具用相似的方式组织同一个问题,都遵循 ASAM OpenSCENARIO 标准。不过在术语上有些差异。这个页面列出三者的对应关系。
RoadRunner Scenario 是功能完整的商业桌面产品,配备 3D 画布、资源库、内置车辆行为、与 CARLA 和 Simulink 的协同仿真,以及 gRPC API。drawtonomy 是免费的浏览器 2D 编辑器。两者不是同一个工具;这个页面的作用是说明 概念 是通用的。
| RoadRunner Scenario | drawtonomy | OpenSCENARIO 1.x |
|---|---|---|
| Scene Editing mode | Scene 模式 | — |
| Scenario Editing mode | Scenario 模式 | — |
| Logic editor | LOGIC 卡片 | Storyboard |
| Action Phase | Phase 阶段 | Act |
| —(动作在阶段内) | Event 事件 | Event |
| Actor | Actor 参与者 | ScenarioObject / Entities |
| Condition | TRIGGER 触发器 | StartTrigger |
| End condition | END CONDITIONS 结束条件 | StopTrigger |
| Fail condition | FAIL CONDITIONS 失败条件 | (供应商特定) |
| Attributes pane | 属性面板 | — |
| Library Browser (assets) | TEMPLATE 模板列表 | Vehicle / Pedestrian 目录 |
| Scenario Parameters, Variables | {x} 参数面板 | ParameterDeclarations, VariableDeclarations |
两个工具都采用 Scene / Scenario 模式的划分,原因相同:道路是独立于行为逻辑的一个工件。
结构上的差异
Section titled “结构上的差异”在行为序列化上存在一个真正的结构性区别。
RoadRunner Scenario 为每个参与者链接 动作阶段,条件 作为圆形节点堆在中间。每个条件决定前一个阶段何时结束、下一个阶段何时开始。行为表现为一条链。
drawtonomy 把 事件 放在一个 阶段 内,每个事件都携带自己的 TRIGGER 触发器。一个阶段有自己的 Start 条件,阶段内的事件在其触发器满足时激发。行为表现为一套触发规则集,而非线性链。这与 OpenSCENARIO 的模型相同,其中一个 Act 有 StartTrigger,每个 Event 也有触发器。
实际上:RoadRunner 写作 阶段 → 条件 → 阶段,drawtonomy 写作 同一阶段中两个不同触发器的事件。
还有一处命名差异:RoadRunner 为每个参与者创建一个 初始动作阶段 来设置起始状态。drawtonomy 把起始状态保存在参与者自身 — 放置面板中的 Set initial speed 复选框 — 阶段只用于后续行为。
| RoadRunner Scenario | drawtonomy | OpenSCENARIO 1.x |
|---|---|---|
| Change Speed | Change Speed | SpeedAction |
| Change Lane | Change Lane | LaneChangeAction |
| Change Lateral Offset | Lateral Offset | LaneOffsetAction |
| Change Longitudinal Distance | Keep Longitudinal Distance | LongitudinalDistanceAction |
| Path Following | Follow Path | FollowTrajectoryAction |
| — | Teleport | TeleportAction |
| — | Drive to Position | AcquirePositionAction |
drawtonomy 共公开 35 个动作,每个对应一个 OpenSCENARIO 动作元素。
| RoadRunner Scenario | drawtonomy | OpenSCENARIO 1.x |
|---|---|---|
| Simulation Time | Simulation time | SimulationTimeCondition |
| Actor Speed | Actor speed | SpeedCondition |
| Distance to Actor | Distance to actor | RelativeDistanceCondition |
| Distance to Point | Distance to point | DistanceCondition |
| Collision | Collision | CollisionCondition |
| Duration | Duration(仅在失败条件中) | — |
| Time Gap | Time gap to actor | TimeHeadwayCondition |
| — | Phase / event state | StoryboardElementStateCondition |
完整列表见 触发器参考。
两个工具都默认在碰撞时判定场景失败。在 RoadRunner 中这个默认值随参与者的初始阶段自动设置;在 drawtonomy 中,FAIL CONDITIONS 部分一开始就包含 Collision / Any actor。
drawtonomy 中术语用法不一致的地方
Section titled “drawtonomy 中术语用法不一致的地方”以下两点可以帮助你理解文档和 UI 中的措辞:
- Actor、participant 和 entity 的含义完全相同。 绘制工具栏称之为 Participants,场景工具栏说 Add actor,属性面板标题是 ACTORS,OpenSCENARIO 叫它们
ScenarioObject。这份文档统一使用 actor。 - 没有按钮叫 “Run”。 LOGIC 卡片上的 ▶ 按钮用来启动场景;
RUN是场景运行时显示的判定徽章。
在工具间转移场景
Section titled “在工具间转移场景”RoadRunner Scenario 导出 ASAM OpenSCENARIO XML,drawtonomy 可以导入它。导出 .xosc 时一起导出道路网络的 OpenDRIVE .xodr,然后把两个文件都拖到 drawtonomy 画布上 — 见 打开和播放现有 .xosc 文件。Act 会以其原始名称作为阶段导入,事件保留触发器、动作和优先级。
反向转移时,drawtonomy 从菜单 → Export 导出 .xosc + .xodr。见 导出 OpenDRIVE + OpenSCENARIO。
两个方向的转移都会有损失。任何工具特定的行为、资源或内置逻辑都没有 OpenSCENARIO 表示法来传输,标准本身对 3D 资源的覆盖也受设计限制。可靠传输的是最重要的部分:道路网络、实体和故事板。