影子模式的作用是在人类驾驶员参与的情况下,开启系统中除执行器外的所有模块,不停收集感知数据、道路交通者行为和预测结果,以及系统作出的决策和规划结果,并收集人类的驾驶行为,并将所有数据收集供开发者进行数据的回灌、对比、校验和训练。通过反复的训练和验证,不停提高系统感知、融合和行为预测与决策能力。
影子模式架构图如下图1所示,场景分为传感器逻辑判断部分、感知融合逻辑判断部分、NOA逻辑判断部分以及危险场景逻辑判断部分等,每个场景又分别包含多个事件(如NOA逻辑判断部分包含主动接管、提醒接管、决策冲突等多个事件),各模块根据所需要的输入参数分别判断是否满足触发条件,然后把满足条件的事件信息以Bus的方式送入影子模式仲裁模块,通过仲裁模块输出最终所需要的结果信息。

影子模式条件触发架构图
事件Bus内容定义如下表所示:
同一场景中有可能同时触发多个满足条件的事件,在仲裁之前需要把满足触发条件的事件全部送入仲裁模块,因此采用Bus的方式记录全部事件。
| EventMessageBus |
信号名 |
信号初始化 |
| Flag |
Uint8(0) |
|
| Priority |
Uint8(0) |
|
| SceneType |
EnumSceneType.Invalid |
|
| EventType |
EnumEventType.Invalid |
其中,Flag:表示所对应的事件是否有效,0表示无效,1表示有效;Priority:表示所对应事件的优先级(数值越大,表示优先级越高);SceneType:表示场景的类型,使用枚举表示,不同的场景对应各自的数值;EventType:表示事件类型,采用枚举表示。
通过仲裁模块后,对仲裁结果所输出的事件进行数据记录,为产品的优化提供数据支持。

仲裁结果结构体定义
感知事件和融合事件在一分钟内只允许触发一次。
感知模块中仅包含一种事件类型:感知性能下降事件,对感知性能下降事件进行触发测试。
对于感知模块,其所需要接收的信号如下表所示:
| 信号名 |
描述 |
| VehSpdIndcdBus. VehSpdIndcdVal |
自车速度数据 |
| WipgSpdInfoBus.WipgSpdInfo |
雨刮挡位数据 |
| 视觉目标有效性 |
视觉目标有效性 |
| DispOfODD |
ODD区域 |
在下雨等恶劣天气下,自车以5~150Km/h的车速运行在高架或高速上时,单雷达能检测到前方稳定目标的情况下视觉感知未输出有效目标,这时达到感知性能下降事件的条件,此时把满足条件的事件信息存入事件Bus内,如图3所示,并输出给影子仲裁模块,影子仲裁管理模块对输入的Bus信息进行仲裁,根据事件的优先级最终得出影子模式下输出的事件类型。

感知性能下降事件
只有以下四个信号的值同时满足所对应的区间时,才能触发感知性能下降事件,其信号间的逻辑关系为: