# 车辆控制评测分析云服务的应用 - [车辆控制评测分析云服务的应用](#车辆控制评测分析云服务的应用) - [概览](#概览) - [前提条件](#前提条件) - [主要步骤](#主要步骤) - [数据采集](#数据采集) - [数据记录](#数据记录) - [数据检查](#数据检查) - [控制评测云服务任务提交](#控制评测云服务任务提交) - [文件夹结构要求](#文件夹结构要求) - [1. 上传预处理后的数据至BOS](#1-上传预处理后的数据至bos) - [2. 提交控制评测任务数据至BOS](#2-提交控制评测任务数据至bos) - [3. 获取评测结果](#3-获取评测结果) - [评测结果说明](#评测结果说明) ## 概览 车辆控制评测云服务主要是根据解析自动驾驶的路测数据,对车辆的控制效果进行评价评分,了解车辆的控制效果,通过多维度的评分结果,能够展现出一个全面、客观的车辆控制评价结果。 ## 前提条件 车辆控制评测是根据车辆自动驾驶的数据来进行控制评分评测,因此需要车辆完成车辆闭环自动驾驶,可以是循迹自动驾驶,也可以是带感知的自动驾驶。因此需要最少完成以下前提步骤: - [循迹搭建--车辆集成](vehicle_integration_cn.md) - [循迹搭建--定位模块配置](localization_configuration_cn.md) - [循迹搭建--Apollo系统安装](apollo_installation_cn.md) - [循迹搭建--车辆循迹演示](start_waypoint_following_cn.md) - [开通云服务账号](../../Apollo_Fuel/apply_fuel_account_cn.md) ## 主要步骤 - 评测数据采集 - 控制评测任务提交 - 结果分析 ## 数据采集 ### 数据记录 完成一次或多次自动驾驶(循迹/感知闭环),并记录数据包。 ### 数据检查 - **在上传需要控制评测的数据前,一定要检查数据包内是否包含评测所需的channel,否则会造成数据缺少相关通道的信息而造成评测结果失败**。 - 控制评测需要检查的数据至少包含以下channel信息,才能正确的进行评测: | 模块 | channel名称 | 检查项目 | |---|---|---| | Canbus | `/apollo/canbus/chassis` | 确保能正常输出底盘数据 | | Control | `/apollo/control` | 确保能正常输出控制信息数据,该数据需要启动自动驾驶后才能获得 | | Planning | `/apollo/planning` | 确保能正常输出规划信息 | | Localization | `/apollo/localization/pose` | 确保能正常输出位置数据 | | GPS | `apollo/sensor/gnss/best_pose` | 确保`sol_type`为`NARROW_INT` | - 通过使用`cyber_recorder`命令来检查采集数据内是否存在上述`channel`的数据: ``` cyber_recorder info xxxxxx.record.xxxxx ``` - 如下图所示,可以看到上述表格内对应`channel`的`messages`数据不为0,说明数据有效。 ![profiling_channel_check](images/profiling_channel_check.png) ## 控制评测云服务任务提交 ### 文件夹结构要求 #### 1. 上传预处理后的数据至BOS 在上传数据之前,请注意以下几点: 1)请将数据按照如下文件夹结构进行放置: ![profiling_folder_structure](images/profiling_folder_structure.png) 2)`Origin Folder`一般是**BOS的根目录**,本例中`task001`目录是在BOS根目录下创建的(根目录:登录BOS存储服务器后首先看到的目录即为根目录,一般是`Bucket name`目录); 3)`task001、task002...`代表一次评测任务的文件夹,即每提交一次评测任务时,只能输入一个task目录的路径地址,云端会对该文件内的数据进行分析评分,一个task文件内可以包含多个车辆文件夹,在一次任务提交文件夹内可以包含多个车辆;`task001`如果在BOS根目录,则提交任务时,只需要填写输入目录路径为`task001`;如果在其它目录下,则需要填写输入目录路径为从根目录开始的绝对路径,如`xxx/task001`; 4) `Vehicle1、Vehicle2...`代表评测的车辆文件夹,可以根据实际情况,按照车辆名称+编号的形式命名,如`devkit01`、`devkit02`等。每一个`Vehicle文件夹`下包含评测自动驾驶数据文件夹和该车辆的配置文件。 **需要注意:**自动驾驶数据文件夹下需要有2层子文件夹,record数据文件放在第二层的文件夹内,如上图文件夹结构图所示,可以根据自动驾驶的场景不同,分成`straight`(直行)、`left`(左转)、`right`(右转)……,每一个场景下也可以根据速度等维度区分,如`1m/s`、`2m/s`、`3m/s` ……,速度维度的文件夹内即是该场景速度条件下的自动驾驶数据。 5) `Configuration File`即为`vehicle_param.pb.txt`(车辆配置文件),该文件在`apollo/modules/calition/data/dev_kit`文件夹内,将该文件夹下的`vehicle_param.pb.txt`拷贝至BOS对应的车辆控制评测文件夹下,例如上图`Vehicle2`文件夹内; 6)总结上述文件夹结构: BOS根目录 -> 任务文件夹 -> 车型文件夹 -> 具体的自动驾驶数据包 + vehicle_param.pb.txt #### 2. 提交控制评测任务数据至BOS 首先进入[Apollo云服务任务页面](http://bce.apollo.auto/login),选择使用百度账号登录,在左侧框中选择`Apollo Fuel-->任务`,点击`新建任务`,然后在下拉框内选择`控制评测`,然后输入相应要评测的数据路径,在`输入数据路径`中填写到根目录,在本示例中填写为`task001`。如下图所示: ![profiling_submit_task1](images/profiling_submit_task1.jpg) ![profiling_submit_task2](images/profiling_submit_task2.jpg) ![profiling_submit_task3](images/profiling_submit_task3.png) ![profiling_submit_task4](images/profiling_submit_task4.png) #### 3. 获取评测结果 - 评测任务完成后,会在注册的邮箱(与商务联系确定)中收到2封结果邮件,分别是控制评分结果(Grading results)和数据图表展示邮件(Visualization results)。 - 评分结果邮件 ![profiling_grading_results](images/profiling_grading_results.png) - 我们可以看到,评分邮件结果,会根据task->vehicle这一级目录下的第一级文件目录来分别生成对应的评分结果,即根据前述文件结构中`straight`(直行)、`left`(左转)来分类生成的结果,下载评分结果附件后,可以看到具体的评测附件内容,如下图所示: ![profiling_grading_folder](images/profiling_grading_folder.png) - 其中,各组目录(`1_Dev_Kit_left_gradings`和`2_Dev_Kit_straight_gradings`)下的`1mps_Dev_Kit_Lon_Lat_Controller_control_performance_grading.txt`和`2mps_Dev_Kit_Lon_Lat_Controller_control_performance_grading.txt`是评分结果文件,`1mps_Dev_Kit_Lon_Lat_Controller_control_profiling_conf.pb.txt`和`2mps_Dev_Kit_Lon_Lat_Controller_control_profiling_conf.pb.txt`是评分对应的配置文件,这个文件目前是默认设定的,不可修改,主要是定义了各个评分指标的评价基准。 - 打开其中一个评分结果文件,如`1_Dev_Kit_left_gradings/1mps_Dev_Kit_Lon_Lat_Controller_control_performance_grading.txt`,我们可以看到相应的评价情况,评价分数主要以均方根的结果展示,按百分数显示,如下图所示: ![left_gradings_1mps](images/left_gradings_1mps.png) - 数据图表展示邮件 ![profiling_visualization_result](images/profiling_visualization_result.png) 数据图表展示的附件与评分附件相同,主要根据上述各评分结果对应的数据包进行相应的数据展示,图表附件如下图所示: ![profiling_plot_folder](images/profiling_plot_folder.png) 图表附件是pdf文件,文件内描述了上述评价指标的对应真实数据变化过程(自动驾驶过程中),从而方便直观的查看各指标的变化情况,还会针对一些数据变化较大的指标,进行90%的数据描绘,横轴代表数据的数值,纵轴代表数据的数量;如果是`100%data`描绘,则会展示该指标随采样时间轴的变化情况,即描述了自动驾驶过程中的真实变化情况。 ![profiling_90data](images/profiling_90data.png) ![profiling_100data](images/profiling_100data.png) 以上只是2张图表的示例图,图表结果内展示约50张图表,数据展示量非常丰富,方便开发者对控制过程的数据变化进行查看。 ## 评测结果说明 控制测评参数主要说明如下: ![profiling_result_param1](images/profiling_result_param1.jpg) ![profiling_result_param2](images/profiling_result_param2.jpg) ![profiling_result_param3](images/profiling_result_param3.png) ![profiling_result_param4](images/profiling_result_param4.png) ![profiling_result_param5](images/profiling_result_param5.png) ![profiling_result_param6](images/profiling_result_param6.png) **以下表格与上述表格内容一致,方便复制** | 序号 | 参数 | 名称 | 说明 | |:---|:---|:---|:---| | |平均控制性能相关参数 |