如何基于ADAS Logger和CANape搭建一个自动驾驶路试采集系统( 二 )


工程师针对以上数据采集硬件系统问题 , 提出如下解决方案 。
摄像头传感器隐藏 。 选择具有螺栓螺母结构的Axis摄像头 , 在车身外部用对应螺母咬合Axis摄像头固定 , 贴合固定的摄像头突出部分仅2厘米左右 。
硬件布局合理且稳定
工程师根据实车后备箱实际尺寸和数据采集硬件规格定制工业金属支架用于放置数据采集硬件 , 金属支架底层安置线槽用于采集硬件连接线束及数据采集系统供电线束走线 , 金属支架通过固定设备安装在后备箱 , ADASLogger数据采集主机、VX1135、VN5640和Axis传感器主单元盒等硬件通过工业导轨或L型铝合金贴片固定在金属支架上 。
如何基于ADAS Logger和CANape搭建一个自动驾驶路试采集系统
文章图片
图二:部分硬件图
二、数据采集软件系统搭建
硬件布局安装完成之后 , 通过ADASLogger中CANape软件配置硬件设备通信通道、建立实际路试工程 , 添加测量信号 , 即可同步采集实车运行状态和周围路试环境 。 在实际路试采集中 , 大多数测量模块至少以1Gb的以太网连接到ADASLogger记录仪 , 传输数据带宽高达1GByte/s左右 , 每个工作日数据存储数量级高达TB级别 。 以现有的数据存储技术 , 难以达到要求 。 针对此问题 , 工程师从以下两个方面提出解决方案 。 1、降低无效数据存储量 。 2、提供可更换的记录硬盘 。
对路试采集记录文件分析发现 , 文件中包含重复场景下车辆状态记录信号 , 且这些信号在文件存储量占有一定比重 。 工程师因此使用CANape条件触发功能记录文件 , 即当车辆到达某一状态时开始记录信号 , 这样就有效地过滤无用信号 , 从源头上缓解记录压力 。 根据实际记录场景和触发实现方式 , 基本可以分为两类 。 一类是直接通过采集信号的布尔逻辑组合实现触发 , 另一类是借助Matlab搭建的逻辑模型对采集信号状态进行判断后实现触发 。
如何基于ADAS Logger和CANape搭建一个自动驾驶路试采集系统
文章图片
图三:算法模型
如采集分析发动机转速大于1500RPM且持续2s条件下整车状态信号 。 使用MATLAB搭建算法模型确定发动机状态 , 当发动机转速大于1500RPM且时间超过2s时 , 算法模型输出为1 , 否则输出为0 。 将模型封装为dll文件 , 加载到CANape数据采集工程中 , 并设置工程中判断条件为1时触发记录 , 即可实现需求 。
如何基于ADAS Logger和CANape搭建一个自动驾驶路试采集系统
文章图片
图四:dll文件关联信号
在实车路试过程中 , 由于实时存储的数据量巨大(~1GByte/s) , 通过无线网络直接传输到计算中心的构想不现实 , 因此当固态硬盘数据存满文件之后 , 需要替代硬盘记录 。 通过实车携带可供更换的固态硬盘 , 当前工作固态硬盘存储满状态后 , 将该硬盘取下换上新替代硬盘 , 然后将换下来的固态硬盘运送计算中心 。
三、数据采集离线文件分析
固态硬盘中存储的*MF4格式离线文件 , 若采用手动分析 , 无异于大海捞针 。 CANape提供数据挖掘功能和脚本编写功能 , 基于CANape语言CalculationAndScriptLanguage(CASL)提供函数功能和具体实现逻辑编写相应脚本 , 工程师可以实现对离线文件自动分析 。 整个分析流程可以完全的实现自动化 , 减轻信号分析提取工作量 , 提高离线分析效率 。
如何基于ADAS Logger和CANape搭建一个自动驾驶路试采集系统
文章图片
图五:离线分析
如分析实车在路试时进入自动驾驶状态总时长和总里程 , 首先读取所有离线文件 , 找到离线文件中进入自动驾驶状态信号光标位置 , 读取该位置时间轴和纵轴上自动驾驶里程 , 找到离线文件中退出自动驾驶状态信号光标位置 , 读取该位置时间轴和纵轴上自动驾驶里程 , 将两次读到的数据相减即可得到自动驾驶总时长和总里程 , 避免手动加载离线文件和人为分析带来的时间成本和统计误差 。