主要内容

带有CAN FD和TCP/IP的前向碰撞警告应用程序

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

系统配置

这个例子使用了来自Vector的虚拟CAN FD通道。这些虚拟设备通道可以在安装矢量驱动安装包时使用www.vector.com.

此示例有两个主要组件:

  1. 变送器:通过CAN FD和TCP/IP发送传感器和视觉数据。本部分代表一个样车环境。它重放预先记录的数据,就好像它是一辆活的汽车。

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

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

生成数据

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

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

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

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

helperStartReceiver('已解释')

审查结果

准备就绪后,使用变送器命令窗口上的关闭窗口按钮停止变送器应用程序。点击停止,然后关闭其窗口。

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

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

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

helperGenerateCode('mex')

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

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

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

helperStartReceiver('mex')

准备就绪后,停止并关闭变送器并接收FCW应用程序。比较MEX执行的时间图和解释模式图,您可以看到FCW算法的性能改进。

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

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

将CAN FD通信从虚拟设备更改为物理设备需要编辑传输和接收代码以调用坎坎通道(车辆网络工具箱)使用硬件设备而不是虚拟通道。您可能还需要修改调用configBusSpeed(车辆网络工具箱)这取决于硬件的性能。这些调用在助手开始接收数据发送器示例的功能。

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

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

另见

功能

物体

相关的话题