基于Simulink使用激光雷达数据跟踪车辆仿真(附源码)

此示例演示如何使用安装在 ego 车辆顶部的激光雷达传感器的测量值来跟踪车辆。由于激光雷达传感器的高分辨率功能,来自传感器的每次扫描都包含大量点,通常称为点云。该示例说明了 Simulink 中用于处理点云和跟踪对象的工作流。此示例中使用的激光雷达数据是从高速公路驾驶方案中记录的。可以使用记录的数据通过联合概率数据关联 (JPDA) 跟踪器和交互式多模型 (IMM) 方法跟踪车辆。该示例紧随使用激光雷达的跟踪车辆:从点云到跟踪列表 MATLAB 示例。

与文章《基于Matlab使用激光雷达从点云到跟踪列表跟踪车辆仿真》不同之处,在于该文章基于Simulink实现激光雷达数据跟踪车辆仿真的功能,而《基于Matlab使用激光雷达从点云到跟踪列表跟踪车辆仿真》是基于Matlab的m文件实现跟踪车辆仿真的功能。

一、设置

此示例中,使用的激光雷达数据将随源程序一起发送。

将数据文件下载到当前工作文件夹中。如果要将文件放在其他文件夹中,请在后续说明中更改目录名称。

二、模型概述

基于Simulink使用激光雷达数据跟踪车辆仿真(附源码)_第1张图片激光雷达和图像数据读取器

激光雷达数据读取器和图像数据读取器模块使用 MATLAB 系统(Simulink)模块实现。块的代码分别由帮助器类定义。图像和激光雷达数据读取器从 MAT 文件中读取记录的数据,并分别输出参考图像和点云中点的位置。

边界框检测器

如前所述,来自传感器的原始数据包含大量点。必须预处理此原始数据以提取感兴趣的对象,例如汽车、骑自行车的人和行人。预处理是使用边界框检测器块完成的。边界盒检测器也实现为由帮助器类 定义的 MATLAB 系块。它接受点云位置作为输入,并输出与障碍物对应的边界框检测。该图显示了边界框检测器模型中涉及的过程以及用于实现每个过程的计算机视觉工具函数。它还显示控制每个进程的块的参数。

基于Simulink使用激光雷达数据跟踪车辆仿真(附源码)_第2张图片

该块将检测和分割信息输出为名为 和 的 Simulink.Bus (Simulink) 对象。这些总线是使用回调中指定的帮助程序函数在基本工作区中创建的。

跟踪算法

跟踪算法是使用联合概率数据关联(JPDA)跟踪器实现的,该跟踪器使用交互多模型(IMM)方法来跟踪目标。IMM 筛选器由 指定为块的“筛选器初始化函数”参数的 实现。在此示例中,IMM 滤波器配置为使用两个模型,一个是等速长方体模型,另一个是恒定转弯速率长方体模型。这些模型将长方体的尺寸定义为状态转换期间的常量,并且它们的估计值在滤波器的校正阶段随时间演变。下面的动画显示了在滤波器的预测阶段将具有不同概率的恒定速度和恒定转弯率模型混合在一起的效果。

基于Simulink使用激光雷达数据跟踪车辆仿真(附源码)_第3张图片

当使用检测校正筛选器时,IMM 筛选器会自动计算每个模型的概率。下面的动画显示了车道变换事件期间模型的估计轨迹和概率。

基于Simulink使用激光雷达数据跟踪车辆仿真(附源码)_第4张图片

跟踪器块选中“启用所有轨道输出”和“启用可检测的跟踪 ID 输入”复选框,以从跟踪器输出所有轨道,并将其检测概率作为其状态的函数进行计算。

计算可检测性

“计算可检测性”模块是使用 MATLAB 函数(模拟链接)模块实现的。该块计算跟踪器的可检测跟踪 ID 输入,并将其输出为具有 2 列的数组。第一列表示轨迹的 TrackID,第二列指定传感器和边界框检测器检测到轨迹的概率。

可视化

可视化块也是使用 MATLAB 系统块实现的,并使用 定义。该块使用块的参数来显示其输出。

三、检测和跟踪总线对象

如前所述,不同模块的输入和输出由总线对象定义。您可以使用类型编辑器 (Simulink) 可视化每条总线的结构。下图显示了用于检测和跟踪的总线结构。

检测

输出一个包含 2 个元素的嵌套总线对象。

基于Simulink使用激光雷达数据跟踪车辆仿真(附源码)_第5张图片

 第一个元素 , 表示检测次数。第二个元素是表示所有检测的固定大小的总线对象。总线对象的第一个元素表示当前检测集。请注意,总线的结构类似于对象检测类。

基于Simulink使用激光雷达数据跟踪车辆仿真(附源码)_第6张图片

 轨道

轨道总线类似于检测总线。它是一个嵌套总线,其中定义总线中的轨道数并定义固定大小的轨道。轨道的大小由块参数“最大轨道数”控制。

基于Simulink使用激光雷达数据跟踪车辆仿真(附源码)_第7张图片

第二个元素是由 定义的总线对象。此总线由跟踪器块使用指定为前缀的总线名称自动创建。请注意,总线的结构类似于对象Track类。

基于Simulink使用激光雷达数据跟踪车辆仿真(附源码)_第8张图片

 四、结果

探测器和跟踪器算法的配置与使用激光雷达跟踪车辆:从点云到跟踪列表 MATLAB 示例完全相同。运行模型后,可以在图上可视化结果。下面的动画显示了从时间 0 到 4 秒的结果。轨道由绿色边界框表示。边界框检测由橙色边界框表示。检测器内部还具有橙色点,表示被分割为障碍物的点云。分割的地面以紫色显示。裁剪或丢弃的点云以蓝色显示。请注意,被跟踪的对象能够通过将检测定位到车辆的可见部分来保持其形状和运动学中心。这说明了在测量函数中建模的偏移和收缩效应。

基于Simulink使用激光雷达数据跟踪车辆仿真(附源码)_第9张图片

五、总结

此示例显示了如何使用带有 IMM 过滤器的 JPDA 跟踪器来跟踪使用激光雷达传感器的对象。了解 了 如何对原始点云进行预处理以生成传统跟踪器的检测,传统跟踪器假定每个 传感器扫描每个对象 一 个检测。您还学习了如何使用长方体模型来描述 JPDA 跟踪器跟踪的扩展对象。

六、程序

使用Matlab R2021a版本,点击打开。

基于Simulink使用激光雷达数据跟踪车辆仿真(附源码)_第10张图片

 打开下面的“TrackVehiclesSimulinkExample.slx”文件,点击运行,就可以看到上述效果。

基于Simulink使用激光雷达数据跟踪车辆仿真(附源码)_第11张图片

 关注下面公众号,后台回复关键词:Simulink激光雷达跟踪车辆仿真,发送源码链接。

你可能感兴趣的:(Simulink学习,simulink,激光雷达,数据跟踪车辆仿真,仿真)