# 快速上手手册 本文的目标是帮助用户快速了解产品,通过用例教学一步一步完成从安装到运行的整个流程。 ## 1. 前置知识点 ### 1.1 用户主要使用流程图 用户简化的使用流程主要分为三步: **Step 1 创建用例** 在用例管理界面,新建用例,进入用例编辑器,对地图、主车行为等进行配置,保存用例,并运行用例。 **Step 2 创建任务** 进入任务设置页面,可以对主车、算法等进行设置。 **Step 3 查看结果** 任务运行过程可在任务列表中查看,有任务的可视化界面及具体任务运行结果。 ![](images/Quick_Start_Guide/image1.png) ### 1.2 用户完整使用流程图 在以上 SimOne 主要使用流程之外, * 用例中用到的 **资源** 都来自于 **资源管理** 页面中的内容, * 同时 **主车** 可以在 **主车管理** 界面中对**主车的模型**、**动力学**、**传感器**、**渲染视窗**等进行设置, * 另外 **算法** 可以在 算法管理 界面进行对**算法的导入和编辑**。 ![](images/Quick_Start_Guide/image2.png) ## 2. 启动软件并登录 ### 2.1 操作步骤 #### 2.1.1 启动软件 安装好软件后,点击桌面上 SimOne 快捷方式或双击本地安装文件夹中的 SimOne 的 exe 可启动 SimOne。 ```{admonition} 注意 :class: tip **协作版-客户端**:通过本地安装 exe 启动; **协作版-云端**:用户可直接在浏览器输入对应网址即可启动; ``` ![](images/Quick_Start_Guide/image3.png) #### 2.1.2 登录进入 SimOne 打开 SimOne 软件,输入账号密码可登录打开进入软件的首页。 [如何获取登录账号>>](https://nrwsxho0n9.feishu.cn/wiki/VzFgwXXZAiyY38kow8ScyXwOnlh) ![](images/Quick_Start_Guide/image4.png) ![](images/Quick_Start_Guide/image5.png) ## 3. 运行一个内置用例 ### 3.1 用例运行演示 自动驾驶仿真测试一般包括创建(或导入)用例静态场景、创建主车、编辑用例动态场景,运行用例、观察用例运行的可视化展示和查看用例的运行结果。SimOne 可以用来进行静态和动态数据导入、测试场景用例编辑、传感器仿真、动力学仿真、可视化、测试与回放、虚拟数据集生成。其中,运行用例是最基本和核心的功能之一。 #### 3.1.1 用例 测试用例其实指各个测试场景的集合,它可以用来测试各个功能,作为测试用例的测试人员来说,您可以将自己置身于最终用户的角色,在体验符合真实世界的场景过程中测试产品的各个功能是否完善。 #### 3.1.2 内置用例 内置用例是 SimOne 平台为用户免费提供用于测试功能的一批内置场景,它不能被用户编辑,如用户需编辑内置用例需另存为新的用例进行编辑。目前的内置用例库包括案例教学、标准法规和中国汽研场景库。 * 用例教学包括 ASAM 样例和入门用例(交通流用例和标准用例 2.0)。 * 标准法规包括了 C-NCAP2018 和智能网联场景库 * 另外还有中国汽研场景库用例。 ```{admonition} 注意 :class: tip **ASAM** > 测量、控制和校准系统联盟 / Association for Standardization of Automation and Measuring Systems ASAM 是**测量、控制和校准系统联盟**(Association for Standardization of Automation and Measuring Systems)的缩写。它是一个国际性组织,旨在推动测量、控制和校准系统的标准化。成员包括汽车制造商、汽车供应商、工具供应商和研究机构等。 ASAM **主要开发标准和规范**,以促进在测量、控制和校准系统领域的交互操作和互操作性。这些标准和规范包括: * **ASAM MCD-1 XCP**:用于汽车电子控制单元(ECU)和测量、控制和校准工具之间进行通信的协议。 * **ASAM MCD-2 MC**:用于描述汽车测量和校准系统的元数据的标准。 * **ASAM ODS**:用于描述测试数据的通用格式。 ASAM 的标准和规范对于自动驾驶技术的开发和测试非常重要,能够提高测试数据的交换和共享效率,减少测试成本,促进技术的快速发展。 ``` #### 3.1.3 运行用例 运行用例意味着将准备好的测试场景进行运行来测试各个功能。在未接入被测算法时,运行用例方便用户提前遍历用例场景,检测静态场景和动态场景。 *** ```{admonition} 注意 :class: tip 首先,你可以直接选择运行一个内置用例,感受一下用例运行的过程。 ``` ### 3.2 操作步骤 #### 3.2.1 运行用例 SimOne 仿真平台已提供系统内置用例库用于快速标准测试,如图所示进入 **用例管理** 页面,选择一个内置用例并点击 **运行** 按钮。 ![](images/Quick_Start_Guide/image6.png) #### 3.2.2 创建任务 点击 **运行** 按钮后,会弹出新建任务的弹窗,**主车类型** 选择(默认)**用例设置**,**控制器** 默认匹配选择 SimOneDriver 算法,并点击 **创建** 按钮运行用例。 ```{admonition} 注意 :class: tip 当前 **协作版** 和 **企业版** 版本为提升批量创建任务的效率,在 **新建任务** 页面中将**系统所有的控制器都已列出**,都需要用户设置对应的算法才能创建任务。 ``` ![](images/Quick_Start_Guide/image7.png) #### 3.2.3 监测用例的实时运行状态 在 **任务管理** 页面,可查看到用例的 **运行状态**,点击 **视频监控** 按钮弹出可视化窗口,用户可观察到用例的实时运行场景、传感器状态、测试日志等信息。 ![](images/Quick_Start_Guide/image8.png) ![](images/Quick_Start_Guide/image9.png) #### 3.2.4 回放用例或保存回放用例 运行结束后,可视化窗口关闭,运行结束后的任务会更新在已完成的列表中。在已完成的列表中用户可选择 **用例回放** 查看用例执行情况。 ![](images/Quick_Start_Guide/image10.png) #### 3.2.5 查看运行结果报告和数据 用户可选择 **下载任务报告** 或者 **下载单个用例的数据包** 查看用例运行的结果。 ![](images/Quick_Start_Guide/image11.png) 选择将下载的报告或数据 **保存在本地** 。 ```{admonition} 注意 :class: tip 报告参数介绍可参考 [ 测试报告](https://nrwsxho0n9.feishu.cn/wiki/IOZcwamofinwNtk0HmZcaa45nes?from=from_copylink)。 ``` ![](images/Quick_Start_Guide/image12.png) ![](images/Quick_Start_Guide/image13.png) ## 4. 创建你的第一个用例 用户可选择创建一个标准用例来遍历一下基本的测试流程,了解流程的基本步骤、进行自动驾驶感知、决策、控制算法训练、动力学仿真、硬件在环与传感器仿真和测试等功能。 ```{admonition} 注意 :class: tip 如果用户需要在**特定场景**下测试进行自动驾驶算法测试、传感器仿真、动力学仿真等测试,则需要自己创建用例。 ``` 当前 SimOne 支持创建标准用例(OpenSCENARIO 用例)和交通流用例。 ```{admonition} 注意 :class: tip **OpenSCENARIO** > 场景描述语言 / 场景 一种场景描述语言,用于描述**自动驾驶车辆在各种交通环境中的行为和决策**。它是由 ASAM 组织推出的开放标准,旨在促进自动驾驶技术的发展和应用。 可以描述**车辆的起始位置、目标位置、路线、速度限制、交通标志、交通灯、车辆之间的相对位置和行为、路面状况、天气情况**等各种场景信息,可以支持各种模拟和仿真工具使用。 其主要目的是实现**各种场景的自动化生成和交换**,以便更好地支持自动驾驶技术的开发和测试。 ``` ### 4.1 标准用例 标准用例(OpenSCENARIO 用例)是区别于标准用例 1.0(之前版本)的一种新类型的用例。 #### 4.1.1 标准用例 1.0 **标准用例 1.0** 是描述一个固定测试用例,里面的变量都是固定的。符合基本流程的标准用例,包括静态测试场景,用户可自定义静态、动态元素,可向场景中添加**主车、对手车、设置路径、触发器、特殊区域、判定条件、环境和设置**等,当用户需要测试标准测试场景、主车算法、主车动力学和传感器硬件在环等可以使用标准用例。 #### 4.1.2 标准用例 2.0 在标准用例 1.0 的基础上,**标准用例 2.0** 它能兼容 OpenSCENARIO 标准,支持 xosc 导入编辑,采用 OpenSCENARIO 格式的用例是一个标准的仿真测试场景格式,可描述驾驶模拟应用程序中的动态内容,可兼容不同的仿真测试软件。当用户想要采用兼容不同的仿真测试软件和在各种数据格式和接口中进行转换的时候可以使用 OpenSCENARIO 格式的用例。 ### 4.2 交通流用例 交通流用例也是测试用例的一种,用户可配置随机交通流、可以观察某个或多个车辆,监测车辆是否有违章、碰撞、异常操作等事件。用户可调节场景中的交通流,包括车辆类型和密度。当用户需要观察一组或多个车辆和主车在场景中的表现时,可以使用交通流用例。 ![](images/Quick_Start_Guide/image14.png) *** ```{admonition} 注意 :class: tip 接下来,是创建一个标准用例(OpenSCENARIO 用例)的基本流程: ``` ### 4.3 【资源管理】配置地图 对于训练和测试算法,合适的高精地图尤为重要,用户可以在创建用例前,需要查看或上传所需的地图。 1. 首先准备好需导入的 .xodr 地图文件。 2. 如下图打开 **资源管理**,打开 **地图** 文件夹,选择 **自定义地图**,点击 **导入**。 ![](images/Quick_Start_Guide/image15.png) 2. 在导入窗口点击 **浏览** 选择地图文件 .xodr,我们准备了以下地图 *Tutorial\_ThreeLanes.xodr*,点击 **确定** 开始导入。 ![](images/Quick_Start_Guide/image16.png) ```{admonition} 注意 :class: tip 导入时长取决于地图大小。 ``` 3. 地图导入成功后出现在该文件内 。 ![](images/Quick_Start_Guide/image17.png) 4. 在用例编辑器内可按需使用。 ### 4.4 【主车管理】选择和配置主车 对于训练和测试算法,需要用户事先选择并编辑好主车资源,在编辑测试用例的过程中方可选择相应的主车。 #### 4.4.1 新建一辆主车 进入 **主车管理** 页面,点击页面中的 **新建主车** 按钮,即可进入主车编辑器界面,编辑主车。 ![](images/Quick_Start_Guide/image18.png) #### 4.4.2 主车编辑视窗 新建一个主车,自动默认打开进入 **主车编辑视窗**,方便用户快速编辑主车内容。 ![](images/Quick_Start_Guide/image19.png) #### 4.4.3 配置传感器模型 通过拖拽方式,从 **主车资源库** 选择相应传感器仿真模型添加到 **主车编辑视窗** 中,同一主车可支持多传感器接入。 ![](images/Quick_Start_Guide/image20.png) ```{admonition} 注意 :class: tip 当前系统支持传感器包括 **目标级传感器、摄像头、激光雷达、毫米波雷达、定位传感器**等传感器。 ``` 具体的传感器参数调节可在左侧 **资源列表** 选中后,在右侧的 **传感器参数面板** 中完成。 ![](images/Quick_Start_Guide/image21.png) #### 4.4.4 配置主车动力学系统 通过拖拽的方式,从 **主车资源库** 选择主车动力学系统添加到 **主车编辑视窗** 中。 ![](images/Quick_Start_Guide/image22.png) 当前 SimOne 可支持的动力学系统如下: 具体的动力学参数可在右侧的参数面板进行设置。 ```{admonition} 注意 :class: tip 可以点击 **资源列表** **空白处**将 **参数面板** 进行隐藏。 ``` ![](images/Quick_Start_Guide/image23.png) 配置完保存即可。 ### 4.5 【算法管理】添加算法 ```{admonition} 注意 :class: tip SimOne 协作版 **本地客户端** 和 **云客户端** 导入算法的操作不同。 * **本地端** 需要准备.**exe** 格式算法的**执行脚本**。 * **云端** 需要上传包含.**exe** 格式算法以及**库依赖文件**等的.**zip 文件**。 ``` ```{admonition} 注意 :class: tip 快速上手手册仅介绍如何从 **本地端** 新建算法,如需进行 **更新** 或 **云端** 等操作,请参考 [ 软件在环测试](https://nrwsxho0n9.feishu.cn/wiki/T3nlwr0yVij2KkkSMNrcbgSdnEh?fromScene=spaceOverview#part-UmnSdecs0o2NVcxcUNMcNcBDnLd) ``` #### 4.5.1 本地端 1. 在左侧导航栏打开 **算法管理** 界面,点击左上角的 **新建算法** ,出现弹窗。 ![](images/Quick_Start_Guide/image24.png) 2. 选择算法接入方式:**本地脚本、驾驶模拟器**; 3. **本地脚本**方式:输入**算法名称**、**算法版本**、**启动脚本和结束脚本的文件路径**。点击脚本文件路径旁的 **测试** ,如果没有报错,则为有效路径,再点击 **创建** 。 ![](images/Quick_Start_Guide/image25.png) ```{admonition} 注意 :class: tip 如果点击 **测试** 后,文件下方出现红色小字 “**文件不存在,请检查**”,则说明在该路径上找不到此文件,需要重新填写。 ``` ![](images/Quick_Start_Guide/image26.png) 4. **驾驶模拟器**方式:输入**算法名称**。点击 **创建** 即可创建一个新的驾驶模拟器算法。 ![](images/Quick_Start_Guide/image27.png) ```{admonition} 注意 :class: tip 如需**更新算法**,选中**右键编辑**即可。详情可参考 **[更新算法](https://nrwsxho0n9.feishu.cn/wiki/T3nlwr0yVij2KkkSMNrcbgSdnEh?fromScene=spaceOverview#doxcn2jZKraM0Nrb8pcXzx2rXLb) **。 ``` ```{admonition} 注意 :class: tip **内置算法** 可以调整算法参数。**鼠标右键**点击该算法,选择 **参数设置** ,可以更改参数。 ``` ### 4.6 【用例管理】新建用例并运行 #### 4.6.1 新建用例 启动 SimOne 后,打开 **用例管理** 页面。 1. 首先在测试用例库点击 **新建** 。 2. 选择新建的测试用例库 **new** 文件夹。 3. 点击 **新建用例 。** ![](images/Quick_Start_Guide/image28.png) 2. 在 **选择用例类型** 界面选择 **标准用例** 。 3. 点击 **下一步。** ![](images/Quick_Start_Guide/image29.png) 4. 填写 **用例名称** 为 变道 。 5. 点击 **创建**,页面自动跳转至用例编辑器,这样就完成了新建用例。 ![](images/Quick_Start_Guide/image30.png) ```{admonition} 注意 :class: tip 理解编辑原理后,开始进入编辑器。 ``` #### 4.6.2 添加测试对象,设定对象初始状态 ##### 4.6.2.1 添加测试对象 1. 因为编辑器默认的地图不适合本用例,因此从 **用例资源库** -> **地图** 文件夹选择之前导入的 Tutorial\_ThreeLanes* *地图,并拖拽至 **视窗** 完成地图替换。 ![](images/Quick_Start_Guide/image31.png) 2. 选择 **用例资源库** -> **主车预设** 文件夹,拖拽 **主车(演示)** 至地图。 ```{admonition} 注意 :class: tip **鼠标左键单击**蓝色车辆图标可移动主车位置,**右侧属性面板**初始状态 **位移** 动作面板中坐标值会随着主车位置的移动而改变,也可直接通过输入坐标值设置主车起点。 ``` ![](images/Quick_Start_Guide/image32.png) 3. X 轴坐标设定为 -300。释放鼠标后,因为开启了 **自动吸附至车道中心功能** ,因此主车将自动吸附至车道中心,车头朝向自动与车道方向保持一致。鼠标移动至 **资源列表** -> **主车预设** 文件夹,**双击** 主车名称修改 **回车** 可重命名该对象。设置主车的**控制器**,如果暂未接入算法则使用默认控制器即可。 ```{admonition} 注意 :class: tip 测试时可换成接入算法的主车。 **控制器**是算法的载体,设置不同的控制器便于**同一辆主车**在**不同用例**中分类**测试不同的算法,**比如自驾控制器、AEB 算法控制器等。 4. **协作版** 由管理员负责在 SimOne **系统后台管理页面** 管理控制器的数量和名称。 5. **企业版** 可在主界面右上角的**设置**中管理控制器的数量和名称。 ``` ![](images/Quick_Start_Guide/image33.png) 6. 点击 **用例资源库** -> **动态元素** ,选择任意普通对手车(本用例选择的是 AudiA2),拖拽摆放 AudiA2 车,AudiA2 X 轴坐标为 -270,且 AudiA2 在主车的隔壁车道上。鼠标移动至 **资源列表** -> **动态元素** 文件夹,双击对手车名称 修改回车可重命名该对象。 ![](images/Quick_Start_Guide/image34.png) ```{admonition} 注意 :class: tip 按住鼠标左键可**拖动视图**,滚动鼠标中键可**缩放视图**, 视窗左上角按钮从上至下依次为**放大视图**、**缩小视图**、**定位至主车**、**标尺工具**。 ``` ##### 4.6.2.2 设定对象的初始状态 初始状态对应故事开始,表示该车辆开始瞬间的状态。 ![](images/Quick_Start_Guide/image35.png) 设置主车速度(15m/s)、普通对手车 AudiA2(20m/s)车辆的速度设定。 ```{admonition} 注意 :class: tip 动态对象若**只设定初始状态**,该对象将以**初始速度**沿着路网随机生成的路线行驶。 ``` #### 4.6.3 为测试对象添加行为规划 行为规划包含该动态对象在故事进行阶段什么时机做什么事情的内容。 ```{admonition} 注意 :class: tip 接下来,在行为规划面板为普通对手车 AudiA2 添加一次变道的事件。 ``` ##### 4.6.3.1 行为规划组成 单击普通对手车 AudiA2 车,选中其右侧属性面板的 **行为规划** Tab,点击 **添加事件**,行为规划以 **事件** 为组织单位,可包含多个 **事件** 。 ##### 4.6.3.2 添加动作 为普通对手车 AudiA2 添加一次变道事件的动作,在 **事件** -> **动作** 面板的 **添加 动作** 区域,在弹出的列表中选择 **专属动作** -> **变道** 。 ![](images/Quick_Start_Guide/image36.png) ##### 4.6.3.3 参数配置 ```{admonition} 注意 :class: tip * **变速维度**:时间 * **表述形态**:正弦曲线式 * **变速时间**:2s * **变道目标**:相对目标车道(使用相对目标车道需指定引用对象) * **引用对象**:主车(演示) * **相对目标车道**:0(表示变道至引用对象所在的车道) * **目标车道偏移**:0m ``` 以上参数表示普通对手车 AudiA2 会用 2s 的时间从中间车道变道至主车所在车道。 ![](images/Quick_Start_Guide/image37.png) ```{admonition} 注意 :class: tip 本用例地图遵守左手方向行驶交规,左侧为行车方向,左侧车道 ID 为负,右侧车道 ID 为正。 ``` ##### 4.6.3.4 添加触发器 ```{admonition} 注意 :class: tip 什么是触发器?是故事中普通对手车 AudiA2 做变道动作的时机或条件。 ``` 点击动作面板下方的 **开始条件** -> **添加条件** 面板,选择 **相对距离** 触发器。当普通对手车 AudiA2 超过主车 5 米后这个时机或条件下触发变道动作,因此普通对手车 AudiA2 既是触发者又是被触发对象。 ![](images/Quick_Start_Guide/image38.png) 如下图,参数作如下调整,其余保持默认即可。 ```{admonition} 注意 :class: tip * **引用对象**:主车(演示) * **规则**:> * **相对距离**:5m * **条件边界**:上升 **上升** 指触发条件从 False 变为 True 时触发,测试开始时 A2 与主车的距离大于 5 米条件是 False,逐渐小于 5 米,又大于 5 米条件为 True 触发。 ``` 将 **触发者管理** -> **添加触发者** 触发者设定为 AudiA2。 ![](images/Quick_Start_Guide/image39.png) ```{admonition} 注意 :class: tip **条件边界选项解释** * **上升** 指 触发条件从 False 变为 True 时触发。 * **下降** 指 触发条件从 True 变为 False 时触发。 * **上升** 或 **下降** 指 触发条件 **上升** 或 **下降** 任意其一达到后触发。 ``` ##### 4.6.3.5 预览变道效果 ```{admonition} 注意 :class: tip 设定好场景后,可通过预览来检查测试场景是否符合预期。(预览中的主车、对手车等动态元素由 SimOne 引擎驱动,不涉及算法、动力学、判定等) ``` 1. 点击 **刷新** 预览按钮(标 1),当 **时间轴** 由灰色变为蓝色后点击 **播放** 按钮(标 2),即进入预览模式。 之后可以看到 A2 车在逐渐靠近主车并超过主车后开始变道,第一次变道设置成功。 2. 在 **预览模式** 下画面跟随主车运动,地图上所有对象无法被选中。点击 **停止** 按钮(标 3)退出预览模式,重回编辑模式。 ![](images/Quick_Start_Guide/image40.png) #### 4.6.4 添加判定 SimOne 会为每个用例默认添加 **碰撞** 与 **超时** 判定,**用例资源库 判定** 文件夹内有更多的判定类型,可按需添加。 #### 4.6.5 设置用例结束触发器 ```{admonition} 注意 :class: tip **用例结束触发器** 是指当某个(组)条件为 True 时,终止测试。每个测试用例都需设置结束触发器。 SimOne 会为新创建的用例默认添加 **结束触发器**,结束条件为仿真时间大于 60s,即:当仿真时间大于 60s 且判定(判据为用例失败)未触发,系统自动结束测试。用户可自定义用例结束触发器。 ``` 页面跳转至 **用例结束触发器 **设置页面,点击**条件组** -> **仿真时间** 设置仿真时间,编辑器默认仿真时间大于 60s 结束测试,因本教学测试路线较短,主车和对手车容易相撞,因此修改为 15s。 ![](images/Quick_Start_Guide/image41.png) 参数如下 ```{admonition} 注意 :class: tip **规则**:> **仿真时间**:15s **条件边界**:无 **延时**:0s 设置结束后,再次点击 **刷新** **播放** 运行用例即可。 ``` **当用例未设置结束触发器**,以下行为会触发编辑器提醒用户去设置用例结束触发器: 1. 点击 **刷新** 按钮。 2. 点击 **运行用例** 。 3. 以点击 **运行用例** 为例,讲解如何设置结束触发器:点击 **运行用例**,如下图系统将提示用户需设置 **结束触发器** ,点击 **去设置** 。 ![](images/Quick_Start_Guide/image42.png) #### 4.6.6 运行用例 1. 点击顶部工具栏 **保存** 按钮,当保存的按钮变为灰色代表用例保存成功。点击 **运行用例** ,弹出 **新建任务** 窗口中,用户可将主车配置替换为接入算法的主车。 ![](images/Quick_Start_Guide/image43.png) 2. 在 4.6.2.1.3 中设置的控制器为**默认控制器**,则只需要修改对应的算法即可,比如设置为 SimOneDriver算法。点击 **创建** ,系统将自动添加测试任务。 ![](images/Quick_Start_Guide/image44.png) ```{admonition} 注意 :class: tip 在此处 **运行用例** 后,如要查看测试过程及结果,需要点击界面右上角的 **退出编辑器**,在 SimOne 主页的 **任务管理** 栏中查看。 ``` ### 4.7 【任务管理】观察监控并查看测试结果 #### 4.7.1 观察监控测试过程 SimOne 提供了简化渲染的 Web Observer 与高精度渲染的 UE Observer。安装时系统会根据用户的硬件配置推荐可视化方案。 * 使用 **高精度渲染** 或 **简化渲染** 后,UE Observer 或 Web Observer 都会**默认自动弹出**可视化窗口。 * 如未自动弹出需在 **任务管理** -> **正在测试** 中 点击启动视频监控。 ```{admonition} 注意 :class: tip **可视化窗口** 详情设置参考 [ 系统配置](https://nrwsxho0n9.feishu.cn/wiki/KaTwwxkZMiFMIGk3scscLWqjn1d#part-BGZzdZooUo1cAIxk4QecZyPLngd) 和 [ 可视化工具](https://nrwsxho0n9.feishu.cn/wiki/NNR9wrPmUimDWFkjqtRcz3Nanab?from=from_copylink)。 ``` ![](images/Quick_Start_Guide/image45.png) ![](images/Quick_Start_Guide/image46.png) #### 4.7.2 查看测试结果 测试结束后,用户可在 **任务管理** -> **已完成** 列表查看测试结果。 也可查看 **测试回放**、**测试 Log**、**下载测试报告。** ![](images/Quick_Start_Guide/image47.png)