跳转到内容

RoadRunner 和 OpenSCENARIO 术语对照

如果你已经用过 MathWorks RoadRunner Scenario,drawtonomy 的场景编辑器大部分概念都会感到熟悉 — 两个工具用相似的方式组织同一个问题,都遵循 ASAM OpenSCENARIO 标准。不过在术语上有些差异。这个页面列出三者的对应关系。

RoadRunner Scenario 是功能完整的商业桌面产品,配备 3D 画布、资源库、内置车辆行为、与 CARLA 和 Simulink 的协同仿真,以及 gRPC API。drawtonomy 是免费的浏览器 2D 编辑器。两者不是同一个工具;这个页面的作用是说明 概念 是通用的。

RoadRunner ScenariodrawtonomyOpenSCENARIO 1.x
Scene Editing modeScene 模式
Scenario Editing modeScenario 模式
Logic editorLOGIC 卡片Storyboard
Action PhasePhase 阶段Act
—(动作在阶段内)Event 事件Event
ActorActor 参与者ScenarioObject / Entities
ConditionTRIGGER 触发器StartTrigger
End conditionEND CONDITIONS 结束条件StopTrigger
Fail conditionFAIL CONDITIONS 失败条件(供应商特定)
Attributes pane属性面板
Library Browser (assets)TEMPLATE 模板列表Vehicle / Pedestrian 目录
Scenario Parameters, Variables{x} 参数面板ParameterDeclarations, VariableDeclarations

两个工具都采用 Scene / Scenario 模式的划分,原因相同:道路是独立于行为逻辑的一个工件。

在行为序列化上存在一个真正的结构性区别。

RoadRunner Scenario 为每个参与者链接 动作阶段条件 作为圆形节点堆在中间。每个条件决定前一个阶段何时结束、下一个阶段何时开始。行为表现为一条链。

drawtonomy事件 放在一个 阶段 内,每个事件都携带自己的 TRIGGER 触发器。一个阶段有自己的 Start 条件,阶段内的事件在其触发器满足时激发。行为表现为一套触发规则集,而非线性链。这与 OpenSCENARIO 的模型相同,其中一个 ActStartTrigger,每个 Event 也有触发器。

实际上:RoadRunner 写作 阶段 → 条件 → 阶段,drawtonomy 写作 同一阶段中两个不同触发器的事件

还有一处命名差异:RoadRunner 为每个参与者创建一个 初始动作阶段 来设置起始状态。drawtonomy 把起始状态保存在参与者自身 — 放置面板中的 Set initial speed 复选框 — 阶段只用于后续行为。

RoadRunner ScenariodrawtonomyOpenSCENARIO 1.x
Change SpeedChange SpeedSpeedAction
Change LaneChange LaneLaneChangeAction
Change Lateral OffsetLateral OffsetLaneOffsetAction
Change Longitudinal DistanceKeep Longitudinal DistanceLongitudinalDistanceAction
Path FollowingFollow PathFollowTrajectoryAction
TeleportTeleportAction
Drive to PositionAcquirePositionAction

drawtonomy 共公开 35 个动作,每个对应一个 OpenSCENARIO 动作元素。

RoadRunner ScenariodrawtonomyOpenSCENARIO 1.x
Simulation TimeSimulation timeSimulationTimeCondition
Actor SpeedActor speedSpeedCondition
Distance to ActorDistance to actorRelativeDistanceCondition
Distance to PointDistance to pointDistanceCondition
CollisionCollisionCollisionCondition
DurationDuration(仅在失败条件中)
Time GapTime gap to actorTimeHeadwayCondition
Phase / event stateStoryboardElementStateCondition

完整列表见 触发器参考

两个工具都默认在碰撞时判定场景失败。在 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 是场景运行时显示的判定徽章。

RoadRunner Scenario 导出 ASAM OpenSCENARIO XML,drawtonomy 可以导入它。导出 .xosc 时一起导出道路网络的 OpenDRIVE .xodr,然后把两个文件都拖到 drawtonomy 画布上 — 见 打开和播放现有 .xosc 文件。Act 会以其原始名称作为阶段导入,事件保留触发器、动作和优先级。

反向转移时,drawtonomy 从菜单 → Export 导出 .xosc + .xodr。见 导出 OpenDRIVE + OpenSCENARIO

两个方向的转移都会有损失。任何工具特定的行为、资源或内置逻辑都没有 OpenSCENARIO 表示法来传输,标准本身对 3D 资源的覆盖也受设计限制。可靠传输的是最重要的部分:道路网络、实体和故事板。