主要内容

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

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

系统配置

这个例子使用了Vector中的虚拟CAN FD通道。通过安装Vector Driver Setup包,可以使用这些虚拟设备通道www.vector.com

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

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

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

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

生成数据

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

system('matlab -nodesktop -nosplash -r helperStartTransmitter &')

MATLAB命令窗口。png

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

若要打开接收FCW应用程序,请执行helperStartReceiver函数。您可以单击开始开始数据接收、处理和可视化。你可以浏览helperStartReceiver功能,了解车辆网络工具箱CAN FD功能、仪表控制工具箱TCP/IP功能和自动驾驶工具箱功能是如何协同使用的。

helperStartReceiver(解释)

FCW_Example_BEP_Window_1_80.png

审查结果

准备就绪后,使用发送器命令窗口上的关闭窗口按钮停止发送器应用程序。点击停止在接收FCW应用程序上,然后关闭它的窗口。

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

解释Plot.png

执行前方碰撞警告系统(MEX模式)

如果在您的工作流程中需要更快的性能,您可以使用MATLAB Coder™将MATLAB代码生成并编译为MEX代码。要将此示例构建为MEX代码,请使用helperGenerateCode函数。构建将把FCW应用程序编译成可在MATLAB中直接调用的MEX函数。

helperGenerateCode(墨西哥人)

重新启动发射器应用程序。

system('matlab -nodesktop -nosplash -r helperStartTransmitter &')

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

helperStartReceiver(墨西哥人)

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

MEX Plot.png

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

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

将CAN FD通信从虚拟设备更改为物理设备需要编辑要调用的传输和接收代码canChannel(车辆网络工具箱)使用硬件设备而不是虚拟通道。您可能还需要将调用修改为configBusSpeed(车辆网络工具箱)这取决于硬件的性能。这些调用在helperStartReceiver而且dataTransmitter函数的示例。

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

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

另请参阅

功能

对象

相关的话题