main content

使用 can fd 和 tcp/ip 的前向碰撞警告应用程序 -凯发k8网页登录

以下示例说明如何执行前向碰撞警告 (fcw) 应用程序,其中通过 can fd 和 tcp/ip 协议实时回放传感器和视觉数据。测试车辆上安装的传感器套件所录制的数据会被实时回放,就如同它们来自车辆的网络接口一样。vehicle network toolbox™ 和 instrument control toolbox™ 提供这些接口。这套系统用于测试使用 automated driving toolbox™ 的功能开发的 fcw 系统。有关真实 fcw 算法的设计和开发的帮助,请参阅示例forward collision warning using sensor fusion (automated driving toolbox)

系统配置

此示例使用 vector 提供的虚拟 can fd 通道。安装 上提供的 vector driver setup 包后,可以使用这些虚拟设备通道。

此示例有两个主要组件:

  1. 发射机:通过 can fd 和 tcp/ip 发送传感器和视觉数据。该部分代表示例车辆环境。它可以回放预先录制的数据,就像现场车辆一样。

  2. 接收机:收集所有数据并执行 fcw 算法和可视化。该部分代表应用程序组件。

为了执行该示例,发射机和接收机部分分别在不同的 matlab® 会话中运行。这样就复制了数据源存在于作为开发工具的 matlab 会话外部的情况。此外,此示例允许您以多种执行模式(解释模式和 mex 模式)运行 fcw 应用程序,每种模式有各自的性能特征。

生成数据

传输应用程序通过 helperstarttransmitter 函数执行。它在当前 matlab 会话之外启动一个新的 matlab 进程来运行。发射机初始化自身并自动开始发送传感器和视觉数据。要运行发射机,请使用 system 命令。

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

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

要打开接收 fcw 应用程序,请执行 helperstartreceiver 函数。您可以点击 start 开始数据接收、处理和可视化。您可以探查 helperstartreceiver 函数,了解 vehicle network toolbox can fd、instrument control toolbox tcp/ip 和 automated driving toolbox 的各功能之间如何配合使用。

helperstartreceiver('interpreted')

查看结果

完成后,使用命令行窗口中的关闭窗口按钮停止发射机应用程序。点击接收 fcw 应用程序上的 stop,然后也关闭其窗口。

当停止接收 fcw 应用程序时,会出现详细说明应用程序性能特征的图。它显示接收数据、处理 fcw 算法和执行可视化所花费的时间。基准设定对于显示系统中需要提高性能的部分非常有用。很明显,执行 fcw 算法花费的时间占据了很大一部分。在下一节中,将探查代码生成作为提高性能的一项策略。

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

如果工作流中需要更快的性能,则可以使用 matlab coder™ 生成 matlab 代码并将其编译为 mex 代码。要将此示例编译为 mex 代码,请使用 helpergeneratecode 函数。该编译会将 fcw 应用程序编译为可在 matlab 中直接调用的 mex 函数。

helpergeneratecode('mex')

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

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

也可以重新启动接收 fcw 应用程序。这次带有输入参数,以使用在前一步骤中编译的 mex 编译代码。

helperstartreceiver('mex')

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

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

该示例使用单台计算机通过虚拟连接仿真整个系统。因此,其性能只是真实性能的近似表示。您也可以使用两台计算机(一台作为发射机,一台作为接收机)执行此示例。这样可以更为真实地表示实时数据场景。为此,您可以对示例代码进行简单修改。

将 can fd 通信从虚拟设备更改为物理设备需要编辑传输和接收代码,以使用硬件设备(而不是虚拟通道)来调用 。您可能还需要根据硬件的功能修改对 的调用。这些调用位于示例的 helperstartreceiverdatatransmitter 函数中。

更改多台计算机的 tcp/ip 通信需要将发射机的 tcp/ip 地址从本地主机 (127.0.0.1) 调整为静态值(推荐使用 192.168.1.2)。首先在传输主机上设置该地址。然后,修改 helperstartreceiver 函数中的 tcpipaddr 变量以进行匹配。

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

网站地图