基于Matlab用于汽车应用的JPDA跟踪器的处理器在环验证(附源码)

目录

一、用于嵌入式代码生成的设置跟踪算法

二、设置测试台

三、对记录的数据进行实时性能验证

四、总结

五、程序​


本示例向展示如何为跟踪器JPDA(JPDA)跟踪器生成嵌入式代码,并在具有1 MB RAM和2 MB闪存的STM32 Nucleo板上使用处理器在环(PIL)仿真对其进行验证。在此示例中,将 JPDA 跟踪器配置为处理来自高速公路场景中安装在自我车辆前方的摄像头和雷达传感器的检测。对于 PIL 模拟,可以使用模拟检测来验证生成的代码的跟踪和计算性能。

一、用于嵌入式代码生成的设置跟踪算法

在计算要求和跟踪性能之间取得平衡。JPDA跟踪器是嵌入式系统的合适选择。在每一步中,JPDA 跟踪器都会将检测到跟踪数据关联问题拆分为每个传感器的多个集群。每个群集都包含一组检测和跟踪,可以在门控后相互分配。检测和跟踪在群集中的确切分离、每个群集的大小以及每个群集的可行数据关联事件数通常由运行时输入确定。

从跟踪器生成用于安全关键应用(如高速公路车道跟踪)的嵌入式代码时,通常不鼓励动态内存分配。这意味着分配给跟踪器的内存量必须在编译时知道。此外,生成的代码必须适合嵌入式设备提供的存储器。要在没有动态内存分配的情况下有效地管理跟踪器的内存占用,必须在跟踪器上指定某些边界。这些边界通常是使用有关目标应用程序的先验知识定义的。要绑定每个集群的可行事件数,可以通过为属性指定有限值来使用 K-best JPDA 跟踪器。这允许跟踪器在每个集群中使用最多 K 个数据关联事件,而无需枚举所有可行事件。可以使用 and 属性来绑定群集的大小。对于高速公路驾驶方案,可以使用有关最大间隔车辆数的先验知识来限制聚类大小。为属性选择适当的值,以控制检测到跟踪的关联。较大的值可能导致门大小比预期大得多,这可能导致形成大型集群。为避免大型集群,请将属性设置为 ,如果超出集群大小,则会导致跟踪器出错。您可以使用来自模拟或实际传感器的信息来设置和属性。在此示例中,雷达最多输出 36 个物体级检测,相机最多输出 10 个物体级检测。

最后,使用嵌入式编码器™生成嵌入式®代码需要以函数的形式编写 MATLAB® 代码。此函数通常称为入口点函数。若要将跟踪算法重写为函数,请在入口点函数中使用作为持久变量定义跟踪器,以在函数调用之间保留其状态。

二、设置测试台

若要测试跟踪算法,请使用drivingScenario(自动驾驶工具箱)对象来模拟高速公路驾驶方案。可以使用drivingRadarDataGenerator(自动驾驶工具箱)和visionDetectionGenerator(自动驾驶工具箱)对象分别模拟来自雷达和摄像头传感器的检测。此示例中使用的场景和传感器配置类似于前方车辆传感器融合(自动驾驶工具箱)示例中所示的场景和传感器配置,适用于高速公路车道跟随(自动驾驶工具箱)等汽车应用。场景和传感器模型生成过程包含在此示例附带的帮助程序函数中。此函数接受方案的名称作为输入。

本例中使用的目标板支持单精度和双精度的浮点运算。要减少跟踪器的内存占用,请使用跟踪器的单精度输入。使用跟踪器的单精度输入允许它在生成的代码中使用严格的单精度算术。若要将检测转换为单精度,请使用此示例附带的函数。可以通过将变量更改为来将跟踪算法配置为使用双精度输入。

可以使用trackGOSPAMetric(GOSPA) 指标来评估跟踪算法的性能。GOSPA 指标使用场景模拟中可用的地面实况,并将跟踪算法的精度捕获为每步的标量距离。该指标的这一特性也使其成为在 PIL 仿真期间评估跟踪算法等效性的有吸引力的方法。在此示例中,通过比较 MATLAB 仿真和 PIL 仿真的 GOSPA 值,验证目标硬件上生成的代码是否产生相同的结果。

接下来,通过在 MATLAB 环境中运行跟踪器,在此特定场景中运行测试平台,以确保测试平台和跟踪算法产生预期的结果。还可以在 MATLAB 执行期间捕获 GOSPA 指标。

基于Matlab用于汽车应用的JPDA跟踪器的处理器在环验证(附源码)_第1张图片

下图显示了在 MATLAB 运行和 PIL 仿真期间捕获的 GOSPA 指标。请注意,在两次运行期间捕获的 GOSPA 指标是相同的,这可确保在目标硬件上运行的生成的代码产生与 MATLAB 相同的结果。

基于Matlab用于汽车应用的JPDA跟踪器的处理器在环验证(附源码)_第2张图片

除了跟踪性能之外,还可以使用 PIL 仿真捕获的分析结果来检查目标硬件上跟踪算法的计算性能。下图显示了跟踪算法在目标硬件上的运行时性能。请注意,跟踪器能够以超过100 Hz的速率运行,从而确保在该特定板上进行实时计算的能力。

基于Matlab用于汽车应用的JPDA跟踪器的处理器在环验证(附源码)_第3张图片

三、对记录的数据进行实时性能验证

在前面的部分中,验证了 Nucleo 目标硬件上跟踪算法的跟踪和计算性能。场景模拟允许定义各种情况并验证跟踪器在这种情况下的性能。但是,在真实数据集上验证跟踪器的性能也很重要。这确保了跟踪算法能够承受现实世界情况的挑战和复杂性。

在本节中,将在高速公路场景中使用来自相机和雷达的记录数据来验证跟踪器的计算性能。此记录中使用的雷达是多模雷达,可在中距离提供宽覆盖范围,在远距离提供窄但高分辨率覆盖范围。除了提供来自目标物体的检测外,雷达还输出来自道路基础设施的检测,使跟踪算法容易受到许多错误轨迹的影响。使用帮助程序函数筛选出基础结构检测。该辅助功能使用记录的速度、自我车辆的偏航率以及来自雷达的多普勒(距离速率)信息来过滤环境中静态物体的检测。

基于Matlab用于汽车应用的JPDA跟踪器的处理器在环验证(附源码)_第4张图片

四、总结

在此示例中,学习了如何从跟踪算法生成用于 PIL 模拟的代码。使用模拟数据以及高速公路驾驶场景的记录数据验证了STM32 Nucleo板上生成的代码。进一步评估了跟踪算法在所选目标硬件上的此类场景中的计算性能和实时能力。

五、程序​

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

基于Matlab用于汽车应用的JPDA跟踪器的处理器在环验证(附源码)_第5张图片 

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

基于Matlab用于汽车应用的JPDA跟踪器的处理器在环验证(附源码)_第6张图片 

关注下面公众号,后台回复关键词:用于汽车应用的JPDA跟踪器的处理器在环验证,发送源码链接。

你可能感兴趣的:(#,Matlab实例(附源码),汽车,跟踪点目标,Matlab)