跳转到内容

在 GitHub 上预览 OpenSCENARIO 文件 — drawtonomy Chrome 扩展

大多数 OpenSCENARIO 相关的工作都是从 GitHub 开始的。场景存放在代码库中,以 pull request 的形式提交,理解一个场景通常意味着先克隆代码库、搭建仿真器,再运行文件看它到底做了什么。

drawtonomy for GitHub 省去了这一整套流程。这是一个免费的 Chrome 扩展,能直接在 github.com 上播放 .xosc 文件 — 不用下载,不用安装,不用仿真器。

从 Chrome 网上应用店安装 →

在 GitHub 上预览 esmini 的场景,在编辑器中打开一个场景,编辑一个事件,并导出裁剪后的片段。
运行位置github.com — 文件页面和文件夹列表
预览对象公开代码库中的 OpenSCENARIO .xosc 文件
自动解析场景所需的道路网络和车辆目录
收集的数据无 — 没有分析统计,也不需要账户

Chrome 网上应用店安装 drawtonomy for GitHub。无需任何配置,也无需创建账户。打开任意包含 .xosc 文件的 GitHub 页面,扩展即可直接使用。

Chrome 网上应用店中的 drawtonomy for GitHub 页面,展示 lane_change.xosc 场景在 GitHub 文件页面上的原地预览

浏览到一个包含 OpenSCENARIO 文件的公开代码库 — 例如 esmini/esmini,它的 resources/ 文件夹下有几十个示例场景。

在 GitHub 列表页面中,任何 .xosc 文件(或存放它们的文件夹)旁都会出现一个小小的 ▶ 播放图标。包含场景的文件夹还会显示数量,点击前就能知道里面有几个场景。

esmini/resources 的 GitHub 目录列表,xosc 和 scenario_construct_examples 文件夹上带有播放图标和场景数量

点击图标,场景就会以弹出窗口的形式直接在当前页面上播放 — 道路、车辆和完整的事件时间线都在其中。

cut-in.xosc 场景在 GitHub 上的预览窗口中播放,LOGIC 时间线显示 CutInAndBrakeAct 事件

要浏览整个文件夹? 用 ◀ ▶ 按钮(或方向键)切换到下一个场景,无需关闭预览窗口。点击顶部的文件名可以从列表中直接跳转到文件夹里的任意场景,而不必逐个翻页。如果一个代码库把每个场景都放在单独的子文件夹中,点击文件夹的播放图标会按顺序依次播放它及其子文件夹中的每一个场景。

直接打开一个 .xosc 文件(而不是文件夹)时,同样的预览会显示在页面内,紧挨着 GitHub 的 Raw / Copy / Download 按钮。

按键操作
Esc关闭预览
/ 上一个 / 下一个场景
在跳转列表中移动
Enter打开选中的场景

预览让你看到场景在做什么。想要修改它时,点击 Open in drawtonomy,把同一个场景交给新标签页中的完整编辑器 — 它所需的道路和目录都已经解析完毕,打开后立刻就能播放。

acc-test 场景在新标签页的完整 drawtonomy 编辑器中打开,吐司提示确认它是从 GitHub 打开的

打开后跳转到的链接是一个普通的可分享 URL — 任何人都能打开它,无论有没有装这个扩展。

进入编辑器后,两个设置能让场景更容易看清楚:

  • Follow: Ego 让相机始终锁定自车,对于可能绵延数公里的导入道路尤其有用。
  • Ghost 会留下历史位置的轨迹,这样切入这类快速动作也能一眼看清全过程,而不必在瞬间抓拍。

acc-test 场景以 4 倍速播放,开启 Follow Ego 和幽灵轨迹,展示切入动作

完整的播放控制说明见 播放

导入的场景并非只读。点击任意事件卡打开事件编辑器,修改它的触发条件或动作,然后重新播放查看新的行为。

事件编辑器打开在 LaneChange2Event 上,展示其仿真时间触发条件和 Change Lane 动作

编辑后的场景重新播放,幽灵轨迹展示修改后的变道行为

各选项的具体含义见 动作触发器

大多数时候你并不需要完整的运行过程 — 往往只是发生有趣情况的那几秒钟。Export video 能把这一段精确录制为 .webm 文件,可以直接放进 pull request 评论、工单或评审文档里。

EXPORT VIDEO 面板,显示画幅比例、相机、半径、幽灵轨迹,以及 3.85 秒到 8.33 秒的 Trim 区间

Range 设为 Trim,拖动时间条上的两个手柄选取所需的时刻,然后点击 Start。你还可以选择画幅比例、相机是跟随自车还是适配整个场景,以及录制中是否包含幽灵轨迹。

导出的 .webm 在浏览器标签页中播放

该扩展不收集任何数据 — 没有分析统计,不需要账户,也不会向自己的服务器发送任何内容。预览一个文件等同于在新标签页中打开 drawtonomy.com 上的同一个场景。完整说明见 Chrome 扩展隐私政策

  • 仅限公开代码库。 不支持私有代码库。
  • 仅支持 .xosc 文件 — 单独的 .xodr 道路文件目前还不能预览。
  • 如果场景引用的是 Windows 风格路径,或仿真器内置的地图(而不是同一代码库中的 .xodr),道路就无法自动解析;drawtonomy 会请求你手动提供一个。
  • pull request 的 “Files changed” 对比视图中目前还不会出现预览按钮 — 请直接打开文件本身。

你可以在扩展的选项页面(工具栏图标 → Options)中修改预览所使用的应用 URL,并开启自动预览。

扩展能做的一切,你也可以用一个链接完成。在 GitHub 文件 URL 前加上 ?open=

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

打开 esmini 的 cut-in 场景 →

这个链接对任何人都有效,无论是否装了扩展 — 与同事分享场景时很好用。参见 打开并运行 .xosc 文件