主要内容

基于CAN FD和TCP/IP的前向碰撞预警应用

此示例显示了如何执行前向碰撞警告(FCW)应用程序,通过CAN FD和TCP/IP协议实时重放传感器和视觉数据。安装在测试车辆上的传感器套件记录的数据将实时重放,就像它们通过车辆的网络接口一样。车辆网络工具箱™ 仪表控制工具箱™ 提供这些接口。此设置用于测试使用自动驾驶工具箱中的功能开发的FCW系统™. 有关设计和开发实际FCW算法的帮助,请参阅示例基于传感器融合的前向碰撞预警(自动驾驶工具箱)

系统配置

此示例使用Vector的虚拟CAN FD通道。这些虚拟设备通道可通过安装Vector驱动程序安装包获得www.vector.com

这个例子有两个主要组件:

  1. 发送器:通过CAN FD和TCP/IP发送传感器和视觉数据。这部分代表了一个示例车辆环境。它回放预先录制的数据,就像它是一个活的交通工具一样。

  2. 接收端:收集所有数据并执行FCW算法和可视化。这部分表示应用程序组件。

为了执行示例,发射器和接收器部分从MATLAB®的单独会话运行。这复制了作为开发工具存在于MATLAB会话之外的数据源。此外,这个示例允许您以不同性能特征的多种执行模式(解释模式和MEX模式)运行FCW应用程序。

生成数据

传输应用程序通过helperStartTransmitter函数。它启动一个单独的MATLAB进程在当前的MATLAB会话之外运行。发射器初始化自己,并开始自动发送传感器和视觉数据。要启动发射机,请使用系统命令。

系统('matlab-nodesktop-nosplash-r helperStartTransmitter&'))

执行前向碰撞预警系统(解释模式)

要打开接收FCW应用程序,请执行helperStartReceiver函数。你可以点击开始开始数据接收、处理和可视化。你可以探索helperStartReceiver函数,查看车辆网络工具箱如何相互协调使用FD函数、仪表控制工具箱TCP/IP函数和自动驾驶工具箱功能。

helperStartReceiver(解释)

审查结果

当就绪时,使用其命令窗口上的关闭窗口按钮停止发射机应用程序。点击停止在接收FCW应用程序上,然后也关闭其窗口。

当接收FCW应用程序停止时,会出现详细描述应用程序性能特征的图。它显示了接收数据、处理FCW算法和执行可视化所花费的时间。基准测试对于显示需要性能改进的设置部分非常有用。很明显,执行FCW算法花费了大量的时间。在下一节中,将探索代码生成作为改进性能的策略。

执行前向碰撞预警系统(MEX模式)

如果工作流中要求更快的性能,则可以使用MATLAB编码器™ 生成MATLAB代码并将其编译为MEX代码helperGenerateCode函数。构建将把FCW应用程序编译成一个可在MATLAB中直接调用的MEX函数。

helperGenerateCode(墨西哥人)

重新启动变送器应用程序。

系统('matlab-nodesktop-nosplash-r helperStartTransmitter&'))

接收FCW的应用程序也可以重新启动。这一次带有一个输入参数,以使用前一步中构建的MEX编译代码。

helperStartReceiver(墨西哥人)

准备好后,停止并关闭发射机和接收FCW应用。比较MEX执行的时间图和解释的模式图,您可以看到FCW算法的性能改进。

使用物理硬件和多台计算机

本示例使用一台计算机模拟具有虚拟连接的整个系统。因此,其性能是近似值。您也可以使用两台计算机(一台作为发射器,一台作为接收器)执行本示例。这将代表更真实的实时数据场景。要实现这一点,您可以对示例代码进行简单修改。

将CAN FD通信从虚拟设备更改为物理设备需要编辑发送和接收代码来调用canChannel使用硬件设备而不是虚拟通道。您可能还需要修改对的调用配置总线速度取决于硬件的功能。这些调用可在中找到helperStartReceiverdataTransmitter函数的例子。

更改多台计算机的TCP/IP通信需要将发送器的TCP/IP地址从本地主机(127.0.0.1)调整为静态值(建议为192.168.1.2)。此地址首先在发送计算机的主机上设置。之后,修改tcpipAddr变量helperStartReceiver要匹配的函数。

一旦在物理上配置和连接,您就可以在一台计算机上运行发射机应用程序,在另一台计算机上运行FCW应用程序。