编辑场景元素 (OpenScenario)¶
此教学讲述如何创建出符合 OpenSCENARIO 标准测试场景的全流程。包括 ① 标准用例编辑器界面介绍、② 编辑测试对象的初始状态与行为规划、③ 触发器用法、④ 如何设定动作、⑤ 设定测试结束条件、⑥ 如何预览场景等。
1. 添加测试对象,设定对象初始状态¶
1.1 用例编辑器页面介绍¶
| ID | 项目 | 描述 |
|---|---|---|
| 1 | 用例名 | 展示用例名称 |
| 2 | 保存按钮 | 当对用例进行编辑后,点击此按钮可保存用例 |
| 3 | 运行用例按钮 | 当用例编辑器中有编辑相关的操作时,点击此按钮,弹出新建任务弹框,用户选择主车类型即可直接运行用例。 |
| 4 | 吸附到车道线中心 | 激活此按钮,将给主车或动态元素添加路径点时,路径点会默认添加到用户移动到的车道线的中心 |
| 5 | 跟随主车 | 预览轨迹时,视窗会跟随主车移动 |
| 6 | 前进一步/后退一步 | 恢复到上一步/下一步的操作 |
| 7 | 资源列表 | 在右侧用例编辑器展示的内容所在列表 |
| 8 | 用例编辑视窗操作 | 包括放大、缩小和定位到主车 |
| 9 | 测距工具 | 点击标尺按钮后,鼠标变成十字光标,在地图区域点击鼠标左键后松开同时移动鼠标即可看到长度,测距工具支持多段测量,再次点击鼠标左键可记录距离上一点距离,点击鼠标右键/ESC 键退出测量 |
| 10 | 用例编辑视窗 | 可在此视窗内编辑用例,包括拖入主车、动态元素、静态元素并设置其路径或参数等 |
| 11 | 主车属性设置面板 | 可对主车的参数进行调整,包括主车的类型和控制器的选择 |
| 12 | Tab 切换 | 包括初始状态和行为规划两种 |
| 13 | 主车对手车属性 | 给主车或对手车添加动作、设置初始状态等 |
| 14 | 播放控制栏 | 从左至右依次是循环播放按钮、设置数据播放速率、刷新按钮、跳转至起点按钮、跳转至上一帧按钮 播放/暂停按钮,跳转至终点按钮、播放进度条、已播放时间/总时间、自定义的预览时长设置 |
| 15 | 用例资源库列表 | 可以用于数据驱动用例编辑的资源 |
| 16 | 文本编辑器 | 弹出文本编辑模式方便用户编辑 |
| 17 | 用例资源展示 | 点击左侧用例资源库列表里的资源,右侧展示对应的用例资源 |
| 18 | 隐藏路径点 | 调节隐藏路径点,添加到用例编辑器中的主车、动态元素的路径点将统一被隐藏,仅展示路径 |
| 19 | 帮助中心 | 点击此按钮可弹出帮助中心的文档 |
| 20 | 退出编辑器 | 点击此按钮可退出主车编辑器弹框 |
1.2 添加测试对象¶
- 因为编辑器默认的地图不适合本用例,因此从 用例资源库 -> 地图 文件夹选择之前导入的 Tutorial_ThreeLanes 地图,并拖拽至 视窗 完成地图替换。
- 选择 用例资源库 -> 主车预设 文件夹,拖拽 主车(演示) 至地图。
鼠标左键单击蓝色车辆图标可移动主车位置,右侧属性面板初始状态 位移 动作面板中坐标值会随着主车位置的移动而改变,也可直接通过输入坐标值设置主车起点。
- X 轴坐标设定为 -300。释放鼠标后,因为开启了 自动吸附至车道中心功能 ,因此主车将自动吸附至车道中心,车头朝向自动与车道方向保持一致。鼠标移动至 资源列表 -> 主车预设 文件夹,双击 主车名称修改 回车 可重命名该对象。设置主车的控制器,如果暂未接入算法则使用默认控制器即可。
测试时可换成接入算法的主车。
控制器是算法的载体,设置不同的控制器便于同一辆主车在不同用例中分类测试不同的算法,比如自驾控制器、AEB 算法控制器等。
- 协作版 由管理员负责在 SimOne 系统后台管理页面 管理控制器的数量和名称。
- 企业版 可在主界面右上角的设置中管理控制器的数量和名称。
- 点击 用例资源库 -> 动态元素 ,选择任意普通对手车(本用例选择的是 AudiA2),拖拽摆放 AudiA2 车,AudiA2 X 轴坐标为 -270,且 AudiA2 在主车的隔壁车道上。鼠标移动至 资源列表 -> 动态元素 文件夹,双击对手车名称 修改回车可重命名该对象。
按住鼠标左键可拖动视图,滚动鼠标中键可缩放视图,
视窗左上角按钮从上至下依次为放大视图、缩小视图、定位至主车、标尺工具。
1.3 设定对象的初始状态¶
初始状态对应故事开始,表示该车辆开始瞬间的状态。
设置主车速度(15m/s)、普通对手车 AudiA2(20m/s)车辆的速度设定。
动态对象若只设定初始状态,该对象将以初始速度沿着路网随机生成的路线行驶。
2. 为测试对象添加行为规划¶
行为规划包含该动态对象在故事进行阶段什么时机做什么事情的内容。
接下来,在行为规划面板为普通对手车 AudiA2 添加一次变道的事件。
2.1 行为规划组成¶
单击普通对手车 AudiA2 车,选中其右侧属性面板的 行为规划 Tab,点击 添加事件,行为规划以 事件 为组织单位,可包含多个 事件 。
2.2 添加动作¶
为普通对手车 AudiA2 添加一次变道事件的动作,在 事件 -> 动作 面板的 添加 动作 区域,在弹出的列表中选择 专属动作 -> 变道 。
2.3 参数配置¶
- 变速维度:时间
- 表述形态:正弦曲线式
- 变速时间:2s
- 变道目标:相对目标车道(使用相对目标车道需指定引用对象)
- 引用对象:主车(演示)
- 相对目标车道:0(表示变道至引用对象所在的车道)
- 目标车道偏移:0m
以上参数表示普通对手车 AudiA2 会用 2s 的时间从中间车道变道至主车所在车道。
本用例地图遵守左手方向行驶交规,左侧为行车方向,左侧车道 ID 为负,右侧车道 ID 为正。
2.4 添加触发器¶
什么是触发器?是故事中普通对手车 AudiA2 做变道动作的时机或条件。
点击动作面板下方的 开始条件 -> 添加条件 面板,选择 相对距离 触发器。当普通对手车 AudiA2 超过主车 5 米后这个时机或条件下触发变道动作,因此普通对手车 AudiA2 既是触发者又是被触发对象。
如下图,参数作如下调整,其余保持默认即可。
- 引用对象:主车(演示)
- 规则:>
- 相对距离:5m
- 条件边界:上升
上升 指触发条件从 False 变为 True 时触发,测试开始时 A2 与主车的距离大于 5 米条件是 False,逐渐小于 5 米,又大于 5 米条件为 True 触发。
将 触发者管理 -> 添加触发者 触发者设定为 AudiA2。
条件边界选项解释
- 上升 指 触发条件从 False 变为 True 时触发。
- 下降 指 触发条件从 True 变为 False 时触发。
- 上升 或 下降 指 触发条件 上升 或 下降 任意其一达到后触发。
2.5 预览变道效果¶
设定好场景后,可通过预览来检查测试场景是否符合预期。(预览中的主车、对手车等动态元素由 SimOne 引擎驱动,不涉及算法、动力学、判定等)
- 点击 刷新 预览按钮(标 1),当 时间轴 由灰色变为蓝色后点击 播放 按钮(标 2),即进入预览模式。 之后可以看到 A2 车在逐渐靠近主车并超过主车后开始变道,第一次变道设置成功。
- 在 预览模式 下画面跟随主车运动,地图上所有对象无法被选中。点击 停止 按钮(标 3)退出预览模式,重回编辑模式。
3. 设定判定条件并运行任务¶
3.1 添加判定¶
SimOne 会为每个用例默认添加 碰撞 与 超时 判定,用例资源库 判定 文件夹内有更多的判定类型,可按需添加。
3.2 设置用例结束触发器¶
用例结束触发器 是指当某个(组)条件为 True 时,终止测试。每个测试用例都需设置结束触发器。 SimOne 会为新创建的用例默认添加 结束触发器,结束条件为仿真时间大于 60s,即:当仿真时间大于 60s 且判定(判据为用例失败)未触发,系统自动结束测试。用户可自定义用例结束触发器。
页面跳转至 用例结束触发器设置页面,点击条件组 -> 仿真时间 设置仿真时间,编辑器默认仿真时间大于 60s 结束测试,因本教学测试路线较短,主车和对手车容易相撞,因此修改为 15s。
参数如下
规则:>
仿真时间:15s
条件边界:无
延时:0s
设置结束后,再次点击 刷新 播放 运行用例即可。
当用例未设置结束触发器,以下行为会触发编辑器提醒用户去设置用例结束触发器:
- 点击 刷新 按钮。
- 点击 运行用例 。
- 以点击 运行用例 为例,讲解如何设置结束触发器:点击 运行用例,如下图系统将提示用户需设置 结束触发器 ,点击 去设置 。
3.3 运行用例¶
- 点击顶部工具栏 保存 按钮,当保存的按钮变为灰色代表用例保存成功。点击 运行用例 ,弹出 新建任务 窗口中,用户可将主车配置替换为接入算法的主车。
- 在 1.2 中设置的控制器为默认控制器,则只需要修改对应的算法即可,比如设置为 SimOneDriver算法。点击 创建 ,系统将自动添加测试任务。
在此处 运行用例 后,如要查看测试过程及结果,需要点击界面右上角的 退出编辑器,在 SimOne 主页的 任务管理 栏中查看。
4. 观察测试过程¶
可视化窗口会自动弹出,具体请查看任务管理页面。
附录 运动路线编辑步骤¶
SimOne 提供用户 3 种方式设定动态对象的运动路线,分别是:
- 路径(AssignRouteAction) 基于路网(RoadNetwork):使用至少两个路径点(Waypoints)和路径规划策略(RouteStrategy)生成的路径线。
- 获取位置(AcquirePositionAction):动态对象从当前位置基于路网与最短路径规划策略需到达的目标位置。
- 运动轨迹跟踪(FollowTrajectoryAction):使用拟合曲线,定义动态对象的运动轨迹。
1. 创建路径¶
基于路网(RoadNetwork),使用至少两个路径点(Waypoints)和路径规划策略(RouteStrategy)生成的路径线。
- 在视窗里选中 主车后,点击右侧 行为规划面板,点击 添加事件 -> 动作 -> 添加动作 -> 专属动作 -> 路径动作。
- 按照提示信息,按下 Ctrl 键,点击下图箭头起点位置,成功添加第 0 个路径点。
添加路径点 0,坐标如图。
- 再次按下 Ctrl 键,点击下图位置,释放 Ctrl 键,成功添加第 1 个路径点,路径点 0 与路径 1 由绿色路径线连接,体现基于路网的路径规划结果。
该结果仅供用户参考,在测试中,主车实际的行驶路径取决于用户的规划算法。
- 选中 路径点 1,拖动该点到(标 6)路径 0 的对向邻近车道,释放鼠标可看到绿色路径线消失,说明在实际测试中,主车可能无法从路径点 0 行驶到路径点 1。
- 继续按住鼠标左键拖动该路径点,将该点移动至(标 7)路径点 0 所在车道,可看到绿色路径线随之出现,说明路径规划成功。
- 至此,路径创建完成,所有动态对象创建路径的步骤一致。
设置好路径后记得点击 刷新 ,才能预览最新效果。
选中路径点按 Delete 删除该点;
选中路径点后,按 Ctrl可在当前选中的路径点后插入新点。
路径点至少两个,数量无上限。用户按需添加即可。
2. 创建获取位置¶
获取位置,指动态对象基于路网与最短路径规划策略需到达的目标位置。
2.1 设定初始位置¶
- 在 视窗里选中 主车后,初始点设置为 X : -36,Y : -6,Z : 0。
- 点击 刷新按钮(标 1),点击 播放(标 2),可看到 主车 通过路口后直行。
- 下面我们指定 主车 在路口右转到达(标 3)位置。
2.2 添加获取位置动作,添加位置点¶
- 按 Esc退出播放模式,点击右侧 行为规划面板,添加 专属动作-> 获取位置动作。
- 按照提示信息,按下 Ctrl 键,点击下图位置,X:-7,Y:-40,Z:0,添加位置点。
- 获取位置仅需指定一个位置点即可,测试车辆将使用最短路径规划策略到达该点。
- 再次 刷新 ,点击 播放 按钮,可看到主车通过路口右转到达指定位置。
3. 创建运动轨迹跟踪¶
运动轨迹跟踪,使用拟合曲线定义动态对象的运动轨迹。
下面演示如何运用运动轨迹跟踪绘制 A1 变道切入 主车 所在车道,可用于危险工况还原等用例。
3.1 添加对手车,分别设置坐标速度¶
- 从 用例资源库-> 动态元素 -> 普通对手车文件夹拖拽任意一辆对手车至视窗,坐标设置为 X:-163,Y:-3,Z:0;主车 坐标设置为 X:-145,Y:-6,Z:0
- 如下图将对手车初始速度设置为 20,或任意高于 SimOneDriver 初始速度的值。
- 选中视窗中的对手车,点击右侧 行为规划面板,添加 专属动作-> 运动轨迹跟踪 动作。
- 按照提示信息,按下 Ctrl 键,点击主车左后方位置,添加轨迹点 0,坐标为 X :-150,Y :-3,Z :0,此处只要保持轨迹点在主车左后方位置即可,无需过于精确。
- 点击关闭 吸附车道中心功能,使得轨迹点的放置更加自由。
- 再次按下 Ctrl 键,连续点击(标 5、6、7)添加轨迹点 1、2、3,轨迹点坐标如图,坐标值仅供参考,摆放时相对位置关系正确即可。
- 通过添加 4 个轨迹点,创建出变道轨迹,主车将沿着该轨迹运动。
- 点击 刷新,再点击 播放,可看到对手车按照轨迹运动完成变道切入动作。

































