技术文章和通讯

基于模型设计的驾驶员监控系统AUTOSAR自适应软件开发

作者:托马斯·克莱因亨茨,赛义德·诺巴克什,斯特凡Zürbes, Elektrobit


全球超过1亿辆汽车中超过10亿部设备运行着Elektrobit公司开发的嵌入式软件。该软件的大部分是使用标准v -模型和ASPICE流程开发和验证的。虽然这些设备运行良好,但由于手工编码和其他劳动密集型的手工任务,应用程序软件开发速度变慢了。

我们的团队开始展示基于模型的设计可以加速端到端AUTOSAR自适应软件系统的开发。我们选择的项目是一个原型驾驶员监控系统,如果驾驶员的眼睛闭上而没有立即重新打开,就会发出警报,表明驾驶员睡着了(图1)。为了说明我们可以如何高效地使用基于模型的设计开发嵌入式软件,我们给自己设定了一个雄心勃勃的截止日期:在短短三个月内设计、实现、测试和验证整个系统。如果采用传统方法,同样的项目至少需要一年的时间。

图1。模拟驾驶员监控系统,显示在视频流中检测到的人脸和眼睛。

图1。模拟驾驶员监控系统,显示在视频流中检测到的人脸和眼睛。

定义需求和划分设计

我们通过定义需求开始项目。高级要求包括,即使司机戴着眼镜也能检测到闭着的眼睛,将误报率保持在3%以下,并通过Adaptive AUTOSAR向EB人机界面(HMI)发送警报。

在这个早期阶段,我们与MathWorks工程师一起开发系统体系结构,并将我们的需求映射到体系结构中的功能块(图2)。在顶层,我们的设计有两个主要块。第一个是计算机视觉组件,它处理来自摄像机的输入,并根据视频流生成信号——例如,“检测到脸”、“检测到眼睛”和“闭上眼睛”。第二个是AUTOSAR Adaptive功能块,用于过滤这些信号并确定是否触发警报。该块包含一个到EB corbos AdaptiveCore软件框架的接口,该接口用于将该块与HMI集成。

图2。驾驶员监控系统的顶层Simulink模型。

图2。驾驶员监控系统的顶层Simulink模型。

建模和验证设计

通过将设计划分为具有明确定义的接口的组件(图3),我们能够独立地处理每个组件。我们在Simulink中对计算机视觉组件进行了建模®,使用预先训练的深度学习网络和计算机视觉工具箱™来检测人脸和眼睛。为了验证该模型,我们进行了模拟,在模拟中,模型处理预先录制的司机面部视频。这些视频是从不同的角度和不同的环境光线条件下录制的。它包括戴眼镜和不戴眼镜的司机,以确保系统能够在一系列操作场景下检测到闭着的眼睛。

图3。Simulink模型的计算机视觉组件和滤波组件。

图3。计算机视觉组件(上)和过滤组件(下)的Simulink模型。

过滤组件将计算机视觉组件的输出作为输入。它跟踪“被检测到的眼睛”和“闭着的眼睛”信号的值,过滤掉短暂的眨眼,当这些信号表明司机的眼睛已经闭得太久时,通过AUTOSAR自适应通信向EB AdaptiveCore软件框架发起警报。我们从顶层的Simulink模型中生成了一个单元测试模型,这样我们就可以按照ISO 26262执行系统验证和设计评估。

代码生成和硬件部署

在通过模拟验证设计之后,我们在原型硬件设置上部署并测试它。设置由两个树莓派™3b +板组成,一个用于DMS系统,另一个用于测试设置,包括HMI、驱动输入和环境。两个板通过以太网连接(图4)。

图4。硬件测试设置。

图4。硬件测试设置。

我们生成MISRA®计算机视觉组件和过滤组件兼容的C/ c++代码。在编译了计算机视觉组件代码后,我们将其直接部署到第一块树莓派板上。对于过滤组件,我们将生成的代码(包括ARXML文件)导入到EB corbos Studio中。我们在corbos Studio中编译了该组件,并将其作为AUTOSAR软件组件部署到同一个树莓派上。计算机视觉和过滤组件通过进程间通信(IPC)接口连接。另一块树莓派板用于运行EB corbos AdaptiveCore软件库和EB GUIDE HMI来表示一个车载仪表集群。

随着代码在两块板上运行,我们用一个实时的摄像机视频流测试了系统,并验证了当视频中的个体闭上眼睛时,HMI正确地发出了“闭上眼睛”警报。

从概念验证到实际应用

由于驱动程序管理系统是一个概念验证原型,所以在开发过程中不需要严格遵循ISO指南。然而,在为那些确实需要ISO规范的项目做准备时,我们使用Model Advisor来检查我们的模型的需求覆盖率,以及是否符合ISO 26262、ISO 61508和MISRA C:2012标准。

在演示了基于模型的设计在EB加速自适应AUTOSAR软件开发的能力之后,我们现在正在努力扩大其使用范围,并向汽车一级供应商和oem演示它。我们的团队计划将安全特性和处理器在环测试纳入到工作流程中,我们正在帮助其他EB位置的同事开始使用基于模型的设计。

2021年出版的

Baidu
map