CN115733886B - 基于fpga和ros的嵌入式通信系统、方法、装置、介质及车辆 - Google Patents
基于fpga和ros的嵌入式通信系统、方法、装置、介质及车辆 Download PDFInfo
- Publication number
- CN115733886B CN115733886B CN202110986950.6A CN202110986950A CN115733886B CN 115733886 B CN115733886 B CN 115733886B CN 202110986950 A CN202110986950 A CN 202110986950A CN 115733886 B CN115733886 B CN 115733886B
- Authority
- CN
- China
- Prior art keywords
- ros
- data packet
- priority
- memory
- fpga
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000004891 communication Methods 0.000 title claims abstract description 49
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000012544 monitoring process Methods 0.000 claims abstract description 18
- 238000004590 computer program Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 abstract description 3
- 230000000875 corresponding effect Effects 0.000 description 34
- 238000012545 processing Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 5
- 230000036632 reaction speed Effects 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于FPGA和ROS的嵌入式通信系统、方法、装置、介质及车辆,所述系统中的ROS发布者节点用于基于话题发布ROS数据包,话题中预先配置ROS数据包的优先级等级;ROS订阅者节点用于订阅话题,并监听话题对应的ROS数据包;对话题进行解析,以获得ROS数据包的优先级等级;当ROS数据包的优先级等级高于优先级阈值时,将ROS数据包发送至FPGA硬件加速器;FPGA硬件加速器用于对ROS数据包进行硬件解码,并将解码获得的第一ROS内容发送至存储器;存储器用于存储接收到的第一ROS内容;执行器用于通过FPGA硬件加速器从存储器中获取第一ROS内容,解析第一ROS内容获得控制指令,并执行控制指令。采用本发明的技术方案能够通过降低时延,提升自动驾驶的反应速度。
Description
技术领域
本发明涉及自动驾驶及通信技术领域,尤其涉及一种基于FPGA和ROS的嵌入式通信系统、方法、装置、计算机可读存储介质及车辆。
背景技术
ROS(Robot Operating System,机器人操作系统)是专为机器人软件开发所设计出来的一套操作系统架构,在汽车自动驾驶领域也是常用的一种系统架构。ROS提供了一种发布和监听的机制,通过ai芯片将神经网络识别的结果通过广播的机制发布出去,其他传感器作为一个节点进行监听,并根据监听结果作出相应的反应。
传统的基于ROS的软硬件嵌入式通信架构在处理传统场景问题时,虽然能够实现较低的时延,但是,在汽车自动驾驶应用场景中,相对于自动驾驶需要及根据接收到的命令执行相应动作来说,传统的通信架构所带来的时延还是比较大的,并不能满足自动驾驶需求,导致自动驾驶的反应速度较慢。
发明内容
本发明实施例所要解决的技术问题在于,提供一种基于FPGA和ROS的嵌入式通信系统、方法、装置、计算机可读存储介质及车辆,能够通过降低时延,从而提升自动驾驶的反应速度。
为了解决上述技术问题,本发明实施例第一方面提供了一种基于FPGA和ROS的嵌入式通信系统,包括ARM处理器、FPGA硬件加速器、存储器和执行器;所述ARM处理器中包括ROS发布者节点和ROS订阅者节点;
所述ROS发布者节点,用于基于预设的话题发布ROS数据包;其中,所述话题中预先配置了所述ROS数据包的优先级等级;
所述ROS订阅者节点,用于订阅所述话题,并监听所述话题对应的所述ROS数据包;对所述话题进行解析,以获得所述ROS数据包的优先级等级;当所述ROS数据包的优先级等级高于预设的优先级阈值时,将所述ROS数据包发送至所述FPGA硬件加速器;
所述FPGA硬件加速器,用于对接收到的所述ROS数据包进行硬件解码,并将解码获得的第一ROS内容发送至所述存储器;
所述存储器,用于存储接收到的所述第一ROS内容;
所述执行器,用于通过所述FPGA硬件加速器从所述存储器中获取所述第一ROS内容,解析所述第一ROS内容获得控制指令,并执行控制指令。
进一步地,所述系统还包括软件加速器;则,
所述ROS订阅者节点,还用于当所述ROS数据包的优先级等级不高于所述优先级阈值时,将所述ROS数据包发送至所述软件加速器;
所述软件加速器,用于对接收到的所述ROS数据包进行软件解码,并将解码获得的第二ROS内容发送至所述存储器;
所述存储器,还用于存储接收到的所述第二ROS内容;
所述执行器,还用于从所述存储器中获取所述第二ROS内容,解析所述第二ROS内容获得控制指令,并执行控制指令。
进一步地,所述优先级等级包括高优先级和低优先级,所述优先级阈值为低优先级;则,
所述ROS订阅者节点用于当所述ROS数据包的优先级等级高于预设的优先级阈值时,将所述ROS数据包发送至所述FPGA硬件加速器,具体包括:
当所述ROS数据包的优先级等级为高优先级时,将所述ROS数据包发送至所述FPGA硬件加速器;
所述ROS订阅者节点还用于当所述ROS数据包的优先级等级不高于所述优先级阈值时,将所述ROS数据包发送至所述软件加速器,具体包括:
当所述ROS数据包的优先级等级为低优先级时,将所述ROS数据包发送至所述软件加速器。
为了解决上述技术问题,本发明实施例第二方面提供了一种基于FPGA和ROS的嵌入式通信方法,所述方法适用于上述第一方面任一项所述的基于FPGA和ROS的嵌入式通信系统;所述方法由所述ROS订阅者节点执行,所述方法包括:
订阅话题,并监听所述话题对应的ROS数据包;其中,所述ROS数据包由所述ROS发布者节点基于所述话题发布,所述话题中预先配置了所述ROS数据包的优先级等级;
对所述话题进行解析,以获得所述ROS数据包的优先级等级;
当所述ROS数据包的优先级等级高于预设的优先级阈值时,将所述ROS数据包发送至所述FPGA硬件加速器,使得所述FPGA硬件加速器对接收到的所述ROS数据包进行硬件解码,并将解码获得的第一ROS内容发送至所述存储器;使得储器存储接收到的所述第一ROS内容;以及,使得所述执行器通过所述FPGA硬件加速器从所述存储器中获取所述第一ROS内容,解析所述第一ROS内容获得控制指令,并执行控制指令。
进一步地,所述系统还包括软件加速器;则,所述方法还包括:
当所述ROS数据包的优先级等级不高于所述优先级阈值时,将所述ROS数据包发送至所述软件加速器,使得所述软件加速器对接收到的所述ROS数据包进行软件解码,并将解码获得的第二ROS内容发送至所述存储器;使得所述存储器存储接收到的所述第二ROS内容;以及,使得所述执行器从所述存储器中获取所述第二ROS内容,解析所述第二ROS内容获得控制指令,并执行控制指令。
进一步地,所述优先级等级包括高优先级和低优先级,所述优先级阈值为低优先级;则,
所述当所述ROS数据包的优先级等级高于预设的优先级阈值时,将所述ROS数据包发送至所述FPGA硬件加速器,具体包括:
当所述ROS数据包的优先级等级为高优先级时,将所述ROS数据包发送至所述FPGA硬件加速器;
所述当所述ROS数据包的优先级等级不高于所述优先级阈值时,将所述ROS数据包发送至所述软件加速器,具体包括:
当所述ROS数据包的优先级等级为低优先级时,将所述ROS数据包发送至所述软件加速器。
为了解决上述技术问题,本发明实施例第三方面提供了一种基于FPGA和ROS的嵌入式通信装置,所述装置用于实现上述第二方面任一项所述的基于FPGA和ROS的嵌入式通信方法;所述装置设置在所述ROS订阅者节点中,所述装置包括:
数据包监听模块,用于订阅话题,并监听所述话题对应的ROS数据包;其中,所述ROS数据包由所述ROS发布者节点基于所述话题发布,所述话题中预先配置了所述ROS数据包的优先级等级;
数据包优先级获取模块,用于对所述话题进行解析,以获得所述ROS数据包的优先级等级;
第一数据包发送模块,用于当所述ROS数据包的优先级等级高于预设的优先级阈值时,将所述ROS数据包发送至所述FPGA硬件加速器,使得所述FPGA硬件加速器对接收到的所述ROS数据包进行硬件解码,并将解码获得的第一ROS内容发送至所述存储器;使得储器存储接收到的所述第一ROS内容;以及,使得所述执行器通过所述FPGA硬件加速器从所述存储器中获取所述第一ROS内容,解析所述第一ROS内容获得控制指令,并执行控制指令。
进一步地,所述系统还包括软件加速器;则,所述装置还包括:
第二数据包发送模块,用于当所述ROS数据包的优先级等级不高于所述优先级阈值时,将所述ROS数据包发送至所述软件加速器,使得所述软件加速器对接收到的所述ROS数据包进行软件解码,并将解码获得的第二ROS内容发送至所述存储器;使得所述存储器存储接收到的所述第二ROS内容;以及,使得所述执行器从所述存储器中获取所述第二ROS内容,解析所述第二ROS内容获得控制指令,并执行控制指令。
本发明实施例第四方面还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序;其中,所述计算机程序在运行时控制所述计算机可读存储介质所在的设备执行上述第二方面任一项所述的基于FPGA和ROS的嵌入式通信方法。
本发明实施例第五方面还提供了一种车辆,包括车辆本体以及上述第一方面任一项所述的基于FPGA和ROS的嵌入式通信系统。
与现有技术相比,本发明实施例提供了一种基于FPGA和ROS的嵌入式通信系统、方法、装置、计算机可读存储介质及车辆,所述系统包括ARM处理器、FPGA硬件加速器、存储器和执行器,ARM处理器中包括ROS发布者节点和ROS订阅者节点;ROS发布者节点基于预设的话题发布ROS数据包,且所述话题中预先配置了所述ROS数据包的优先级等级;ROS订阅者节点订阅所述话题,并监听所述话题对应的所述ROS数据包,对所述话题进行解析,以获得所述ROS数据包的优先级等级,当所述ROS数据包的优先级等级高于预设的优先级阈值时,将所述ROS数据包发送至FPGA硬件加速器;FPGA硬件加速器对接收到的所述ROS数据包进行硬件解码,并将解码获得的第一ROS内容发送至存储器;存储器存储接收到的所述第一ROS内容;执行器通过FPGA硬件加速器从存储器中获取所述第一ROS内容,解析所述第一ROS内容获得控制指令,并执行控制指令;本发明实施例通过对ROS数据包的优先级等级进行划分,并通过FPGA硬件加速器对优先级等级较高的ROS数据包进行硬件解码,且执行器可以通过FPGA硬件加速器从存储器中间接读取存储器中存储的第一ROS内容进行相应处理,能够实现硬件加速,降低执行器获取第一ROS内容的时延,从而提升自动驾驶的反应速度。
附图说明
图1是本发明第一方面提供的一种基于FPGA和ROS的嵌入式通信系统的一个优选实施例的结构框图;
图2是本发明第二方面提供的一种基于FPGA和ROS的嵌入式通信方法的一个优选实施例的流程图;
图3是本发明第三方面提供的一种基于FPGA和ROS的嵌入式通信装置的一个优选实施例的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本技术领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例第一方面提供了一种基于FPGA和ROS的嵌入式通信系统,参见图1所示,是本发明第一方面提供的一种基于FPGA和ROS的嵌入式通信系统的一个优选实施例的结构框图,所述系统包括ARM处理器、FPGA硬件加速器、存储器和执行器;所述ARM处理器中包括ROS发布者节点和ROS订阅者节点;
所述ROS发布者节点,用于基于预设的话题发布ROS数据包;其中,所述话题中预先配置了所述ROS数据包的优先级等级;
所述ROS订阅者节点,用于订阅所述话题,并监听所述话题对应的所述ROS数据包;对所述话题进行解析,以获得所述ROS数据包的优先级等级;当所述ROS数据包的优先级等级高于预设的优先级阈值时,将所述ROS数据包发送至所述FPGA硬件加速器;
所述FPGA硬件加速器,用于对接收到的所述ROS数据包进行硬件解码,并将解码获得的第一ROS内容发送至所述存储器;
所述存储器,用于存储接收到的所述第一ROS内容;
所述执行器,用于通过所述FPGA硬件加速器从所述存储器中获取所述第一ROS内容,解析所述第一ROS内容获得控制指令,并执行控制指令。
具体的,所述系统主要由ARM处理器、FPGA硬件加速器、存储器和执行器组成,ARM处理器中还包括ROS发布者节点和ROS订阅者节点,其中,ARM处理器、FPGA硬件加速器、存储器和执行器之间可以通过总线进行数据传输;在具体实施时,ROS发布者节点可以针对预先设置的话题发布对应的ROS数据包,并且话题中预先配置了与话题相对应的ROS数据包的优先级等级;ROS订阅者节点可以订阅话题,并监听订阅的话题所对应的ROS数据包(由ROS发布者节点发布),在监听到某一个话题所对应的ROS数据包之后,先对该话题进行解析,以获得该话题中预先设置的与本话题相对应的ROS数据包的优先级等级,再将获得的ROS数据包的优先级等级与预先设置的优先级阈值进行比较,当判定获得的ROS数据包的优先级等级高于预先设置的优先级阈值时,将获得的ROS数据包发送至FPGA硬件加速器;FPGA硬件加速器在接收到ROS发布者节点发送的ROS数据包之后,通过硬件逻辑电路对接收到的ROS数据包进行硬件解码,并将解码获得的第一ROS内容发送至存储器;存储器在接收到FPGA硬件加速器发送的第一ROS内容之后,对接收到的第一ROS内容进行存储;执行器可以通过FPGA硬件加速器从存储器中间接读取存储器中存储的第一ROS内容,对读取到的第一ROS内容进行解析,相应获得控制指令,并执行解析获得的控制指令(例如自动驾驶中的相关控制指令)。
其中,在话题中预先配置与话题相对应的ROS数据包的优先级等级时,可以在话题中约定某一个字节表示优先级等级信息。
执行器具体是指接收到命令执行下一个动作的处理器,通过获取ROS内容,并解析获得ROS内容中约定的字段,以通过字段的具体状态判断是否需要执行下一步操作。例如,摄像头单元获取图像,然后通ROS节点广播,神经网络单元会对图像进行识别,并将识别结果通过ROS节点广播,刹车单元如果获取到相应的ROS内容需要处理,则执行刹车或者不刹车命令,这些摄像头单元、刹车单元都属于传感器处理器。
需要说明的是,通过软件方式对ROS数据包进行解码的方案一般是基于CPU等指令性处理器实现的,通过硬件方式对ROS数据包进行解码的方案一般是基于FPGA等非指令性处理器实现的,相对于软件解码方案,硬件解码方案的运行速度更快。
另外,上文中的第一ROS内容具体是指通过FPGA硬件加速器解码ROS数据包对应获得的ROS内容,即,通过硬件方式对ROS数据包进行解码相应获得第一ROS内容。
可以理解的,在图1所示的基于FPGA和ROS的嵌入式通信系统中,仅包括一个ROS发布者节点、两个ROS订阅者节点和两个执行器,而在实际应用中,可以包括多个ROS发布者节点、多个ROS订阅者节点和多个执行器等情况,图1结构框图仅仅是上述基于FPGA和ROS的嵌入式通信系统的组成示例,并不构成对基于FPGA和ROS的嵌入式通信系统的限定,可以包括比图示更多或更少的部件,本发明实施例不作具体限定。
本发明实施例第一方面所提供的一种基于FPGA和ROS的嵌入式通信系统,通过对ROS数据包的优先级等级进行划分,并通过FPGA硬件加速器对优先级等级较高的ROS数据包进行硬件解码,且执行器可以通过FPGA硬件加速器从存储器中间接读取存储器中存储的第一ROS内容进行相应处理,能够实现硬件加速,降低执行器获取第一ROS内容的时延,从而提升自动驾驶的反应速度。
在另一个优选实施例中,所述系统还包括软件加速器;则,
所述ROS订阅者节点,还用于当所述ROS数据包的优先级等级不高于所述优先级阈值时,将所述ROS数据包发送至所述软件加速器;
所述软件加速器,用于对接收到的所述ROS数据包进行软件解码,并将解码获得的第二ROS内容发送至所述存储器;
所述存储器,还用于存储接收到的所述第二ROS内容;
所述执行器,还用于从所述存储器中获取所述第二ROS内容,解析所述第二ROS内容获得控制指令,并执行控制指令。
具体的,结合上述实施例,所述系统还包括软件加速器,相应的,ROS订阅者节点在将获得的ROS数据包的优先级等级与预先设置的优先级阈值进行比较后,当判定获得的ROS数据包的优先级等级不高于(即等于或低于)预先设置的优先级阈值时,将获得的ROS数据包发送至软件加速器;软件加速器在接收到ROS发布者节点发送的ROS数据包之后,通过软件算法对接收到的ROS数据包进行软件解码,并将解码获得的第二ROS内容发送至存储器;存储器在接收到软件加速器发送的第二ROS内容之后,对接收到的第二ROS内容进行存储;执行器可以通过总线从存储器中直接读取存储器中存储的第二ROS内容,对读取到的第二ROS内容进行解析,相应获得控制指令,并执行解析获得的控制指令。
需要说明的是,上文中的第二ROS内容具体是指通过软件加速器解码ROS数据包对应获得的ROS内容,即,通过软件方式对ROS数据包进行解码相应获得第二ROS内容。
作为上述方案的改进,所述优先级等级包括高优先级和低优先级,所述优先级阈值为低优先级;则,
所述ROS订阅者节点用于当所述ROS数据包的优先级等级高于预设的优先级阈值时,将所述ROS数据包发送至所述FPGA硬件加速器,具体包括:
当所述ROS数据包的优先级等级为高优先级时,将所述ROS数据包发送至所述FPGA硬件加速器;
所述ROS订阅者节点还用于当所述ROS数据包的优先级等级不高于所述优先级阈值时,将所述ROS数据包发送至所述软件加速器,具体包括:
当所述ROS数据包的优先级等级为低优先级时,将所述ROS数据包发送至所述软件加速器。
具体的,结合上述实施例,话题中预先配置的与话题相对应的ROS数据包的优先级等级包括两个等级,即高优先级和低优先级,对应设置的优先级阈值为低优先级,则ROS订阅者节点在将获得的ROS数据包的优先级等级与低优先级进行比较后,当获得的ROS数据包的优先级等级为高优先级时,判定获得的ROS数据包的优先级等级高于低优先级,则将获得的ROS数据包发送至FPGA硬件加速器进行相应处理;当获得的ROS数据包的优先级等级为低优先级时,判定获得的ROS数据包的优先级等级等于低优先级,则将获得的ROS数据包发送至软件加速器进行相应处理。
例如,约定话题(topic)的前一个字节为优先级等级,后面跟随话题内容,topic定义示范具体表示为:“/emergency/topic内容”或“/normal/topic内容”,“/emergency”表示高优先级,“/normal”表示低优先级;ROS订阅者节点通过解析获得topic的前一个字节,如果是“/emergency”,则表示topic对应的ROS数据包的优先级等级为高,需要将该ROS数据包发送至FPGA硬件加速器进行硬件解码;如果是“/normal”,则topic对应的ROS数据包的优先级等级为低,需要将该ROS数据包发送至软件加速器进行软件解码。
可以理解的,本发明实施例中优先级等级的设置包括但不限于高优先级和低优先级,还可以根据FPGA的不同处理性能和不同处理效率,设置更加细分的优先级等级;另外,优先级等级的设置也依赖于应用层的需求,例如,车辆前进时,对于前方摄像头基于ROS发布的图片或者处理信息,希望优先级高一点,因为能降低一点时延,就能提升车辆的反应速度;在车辆高速行驶时,如果运行资源不足,环视部分的节点发布的处理信息,希望优先级低一点,可以通过软件解码的方式进行解码。
本发明实施例第二方面提供了一种基于FPGA和ROS的嵌入式通信方法,参见图2所示,是本发明第二方面提供的一种基于FPGA和ROS的嵌入式通信方法的一个优选实施例的流程图,所述方法适用于上述第一方面任一实施例所述的基于FPGA和ROS的嵌入式通信系统;所述方法由所述ROS订阅者节点执行,所述方法包括步骤S11至步骤S13:
步骤S11、订阅话题,并监听所述话题对应的ROS数据包;其中,所述ROS数据包由所述ROS发布者节点基于所述话题发布,所述话题中预先配置了所述ROS数据包的优先级等级;
步骤S12、对所述话题进行解析,以获得所述ROS数据包的优先级等级;
步骤S13、当所述ROS数据包的优先级等级高于预设的优先级阈值时,将所述ROS数据包发送至所述FPGA硬件加速器,使得所述FPGA硬件加速器对接收到的所述ROS数据包进行硬件解码,并将解码获得的第一ROS内容发送至所述存储器;使得储器存储接收到的所述第一ROS内容;以及,使得所述执行器通过所述FPGA硬件加速器从所述存储器中获取所述第一ROS内容,解析所述第一ROS内容获得控制指令,并执行控制指令。
具体的,ROS订阅者节点作为本发明实施例的执行主体,可以订阅ROS发布者节点发布的话题,并监听订阅的话题所对应的ROS数据包,其中,由ROS发布者节点针对预先设置的话题发布与本话题相对应的ROS数据包,并且话题中预先配置了与本话题相对应的ROS数据包的优先级等级;ROS订阅者节点在监听到某一个话题所对应的ROS数据包之后,先对该话题进行解析,以获得该话题中预先设置的与本话题相对应的ROS数据包的优先级等级,再将获得的ROS数据包的优先级等级与预先设置的优先级阈值进行比较,当判定获得的ROS数据包的优先级等级高于预先设置的优先级阈值时,将获得的ROS数据包发送至FPGA硬件加速器,使得FPGA硬件加速器在接收到ROS发布者节点发送的ROS数据包之后,通过硬件逻辑电路对接收到的ROS数据包进行硬件解码,并将解码获得的第一ROS内容发送至存储器,进一步使得存储器在接收到FPGA硬件加速器发送的第一ROS内容之后,对接收到的第一ROS内容进行存储,进一步使得执行器可以通过FPGA硬件加速器从存储器中间接读取存储器中存储的第一ROS内容,对读取到的第一ROS内容进行解析,相应获得控制指令,并执行解析获得的控制指令。
在又一个优选实施例中,所述系统还包括软件加速器;则,所述方法还包括:
当所述ROS数据包的优先级等级不高于所述优先级阈值时,将所述ROS数据包发送至所述软件加速器,使得所述软件加速器对接收到的所述ROS数据包进行软件解码,并将解码获得的第二ROS内容发送至所述存储器;使得所述存储器存储接收到的所述第二ROS内容;以及,使得所述执行器从所述存储器中获取所述第二ROS内容,解析所述第二ROS内容获得控制指令,并执行控制指令。
具体的,结合上述实施例,所述系统还包括软件加速器,相应的,ROS订阅者节点在将获得的ROS数据包的优先级等级与预先设置的优先级阈值进行比较后,当判定获得的ROS数据包的优先级等级不高于(即等于或低于)预先设置的优先级阈值时,将获得的ROS数据包发送至软件加速器,使得软件加速器在接收到ROS发布者节点发送的ROS数据包之后,通过软件算法对接收到的ROS数据包进行软件解码,并将解码获得的第二ROS内容发送至存储器,进一步使得存储器在接收到软件加速器发送的第二ROS内容之后,对接收到的第二ROS内容进行存储,进一步使得执行器可以通过总线从存储器中直接读取存储器中存储的第二ROS内容,对读取到的第二ROS内容进行解析,相应获得控制指令,并执行解析获得的控制指令。
作为上述方案的改进,所述优先级等级包括高优先级和低优先级,所述优先级阈值为低优先级;则,
所述当所述ROS数据包的优先级等级高于预设的优先级阈值时,将所述ROS数据包发送至所述FPGA硬件加速器,具体包括:
当所述ROS数据包的优先级等级为高优先级时,将所述ROS数据包发送至所述FPGA硬件加速器;
所述当所述ROS数据包的优先级等级不高于所述优先级阈值时,将所述ROS数据包发送至所述软件加速器,具体包括:
当所述ROS数据包的优先级等级为低优先级时,将所述ROS数据包发送至所述软件加速器。
具体的,结合上述实施例,话题中预先配置的与话题相对应的ROS数据包的优先级等级包括两个等级,即高优先级和低优先级,对应设置的优先级阈值为低优先级,则ROS订阅者节点在将获得的ROS数据包的优先级等级与低优先级进行比较后,当获得的ROS数据包的优先级等级为高优先级时,判定获得的ROS数据包的优先级等级高于低优先级,则将获得的ROS数据包发送至FPGA硬件加速器进行相应处理;当获得的ROS数据包的优先级等级为低优先级时,判定获得的ROS数据包的优先级等级等于低优先级,则将获得的ROS数据包发送至软件加速器进行相应处理。
本发明实施例第二方面所提供的一种基于FPGA和ROS的嵌入式通信方法,通过对ROS数据包的优先级等级进行划分,并通过FPGA硬件加速器对优先级等级较高的ROS数据包进行硬件解码,且执行器可以通过FPGA硬件加速器从存储器中间接读取存储器中存储的第一ROS内容进行相应处理,能够实现硬件加速,降低执行器获取第一ROS内容的时延,从而提升自动驾驶的反应速度。
本发明实施例第三方面还提供了一种基于FPGA和ROS的嵌入式通信装置,参见图3所示,是本发明第三方面提供的一种基于FPGA和ROS的嵌入式通信装置的一个优选实施例的结构框图,所述装置用于实现上述第二方面任一实施例所述的基于FPGA和ROS的嵌入式通信方法;所述装置设置在所述ROS订阅者节点中,所述装置包括:
数据包监听模块11,用于订阅话题,并监听所述话题对应的ROS数据包;其中,所述ROS数据包由所述ROS发布者节点基于所述话题发布,所述话题中预先配置了所述ROS数据包的优先级等级;
数据包优先级获取模块12,用于对所述话题进行解析,以获得所述ROS数据包的优先级等级;
第一数据包发送模块13,用于当所述ROS数据包的优先级等级高于预设的优先级阈值时,将所述ROS数据包发送至所述FPGA硬件加速器,使得所述FPGA硬件加速器对接收到的所述ROS数据包进行硬件解码,并将解码获得的第一ROS内容发送至所述存储器;使得储器存储接收到的所述第一ROS内容;以及,使得所述执行器通过所述FPGA硬件加速器从所述存储器中获取所述第一ROS内容,解析所述第一ROS内容获得控制指令,并执行控制指令。
优选地,所述系统还包括软件加速器;则,所述装置还包括:
第二数据包发送模块,用于当所述ROS数据包的优先级等级不高于所述优先级阈值时,将所述ROS数据包发送至所述软件加速器,使得所述软件加速器对接收到的所述ROS数据包进行软件解码,并将解码获得的第二ROS内容发送至所述存储器;使得所述存储器存储接收到的所述第二ROS内容;以及,使得所述执行器从所述存储器中获取所述第二ROS内容,解析所述第二ROS内容获得控制指令,并执行控制指令。
优选地,所述优先级等级包括高优先级和低优先级,所述优先级阈值为低优先级;则,
所述第一数据包发送模块13具体用于:
当所述ROS数据包的优先级等级为高优先级时,将所述ROS数据包发送至所述FPGA硬件加速器;
所述第二数据包发送模块具体用于:
当所述ROS数据包的优先级等级为低优先级时,将所述ROS数据包发送至所述软件加速器。
需要说明的是,本发明实施例第三方面所提供的一种基于FPGA和ROS的嵌入式通信装置,能够实现上述第二方面任一实施例所述的基于FPGA和ROS的嵌入式通信方法的所有流程,装置中的各个模块的作用以及实现的技术效果分别与上述实施例所述的基于FPGA和ROS的嵌入式通信方法的作用以及实现的技术效果对应相同,这里不再赘述。
本发明实施例第四方面还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序;其中,所述计算机程序在运行时控制所述计算机可读存储介质所在的设备执行上述第二方面任一实施例所述的基于FPGA和ROS的嵌入式通信方法。
本发明实施例第五方面还提供了一种车辆,包括车辆本体以及上述第一方面任一实施例所述的基于FPGA和ROS的嵌入式通信系统。
需要说明的是,本发明实施例第五方面所提供的一种车辆,能够实现上述第二方面任一实施例所述的基于FPGA和ROS的嵌入式通信方法的所有流程,具体的实现方案以及达到的技术效果分别与上述实施例所述的基于FPGA和ROS的嵌入式通信方法的实现方案以及达到的技术效果对应相同,这里不再赘述。
综上,本发明实施例所提供的一种基于FPGA和ROS的嵌入式通信系统、方法、装置、计算机可读存储介质及车辆,通过对ROS数据包的优先级等级进行划分,并通过FPGA硬件加速器对优先级等级较高的ROS数据包进行硬件解码,提高执行效率,且执行器可以通过FPGA硬件加速器从存储器中间接读取存储器中存储的第一ROS内容并且快速响应,能够实现硬件加速,降低执行器获取第一ROS内容的时延,从而提升自动驾驶的反应速度。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (7)
1.一种基于FPGA和ROS的嵌入式通信系统,其特征在于,包括ARM处理器、FPGA硬件加速器、存储器和执行器;所述ARM处理器中包括ROS发布者节点和ROS订阅者节点,ROS表示机器人操作系统;
所述ROS发布者节点,用于基于预设的话题发布ROS数据包;其中,所述话题中预先配置了所述ROS数据包的优先级等级;
所述ROS订阅者节点,用于订阅所述话题,并监听所述话题对应的所述ROS数据包;对所述话题进行解析,以获得所述ROS数据包的优先级等级;当所述ROS数据包的优先级等级高于预设的优先级阈值时,将所述ROS数据包发送至所述FPGA硬件加速器;
所述FPGA硬件加速器,用于对接收到的所述ROS数据包进行硬件解码,并将解码获得的第一ROS内容发送至所述存储器;
所述存储器,用于存储接收到的所述第一ROS内容;
所述执行器,用于通过所述FPGA硬件加速器从所述存储器中获取所述第一ROS内容,解析所述第一ROS内容获得控制指令,并执行控制指令;
所述系统还包括软件加速器;则,
所述ROS订阅者节点,还用于当所述ROS数据包的优先级等级不高于所述优先级阈值时,将所述ROS数据包发送至所述软件加速器;
所述软件加速器,用于对接收到的所述ROS数据包进行软件解码,并将解码获得的第二ROS内容发送至所述存储器;
所述存储器,还用于存储接收到的所述第二ROS内容;
所述执行器,还用于从所述存储器中获取所述第二ROS内容,解析所述第二ROS内容获得控制指令,并执行控制指令。
2.如权利要求1所述的基于FPGA和ROS的嵌入式通信系统,其特征在于,所述优先级等级包括高优先级和低优先级,所述优先级阈值为低优先级;则,
所述ROS订阅者节点用于当所述ROS数据包的优先级等级高于预设的优先级阈值时,将所述ROS数据包发送至所述FPGA硬件加速器,具体包括:
当所述ROS数据包的优先级等级为高优先级时,将所述ROS数据包发送至所述FPGA硬件加速器;
所述ROS订阅者节点还用于当所述ROS数据包的优先级等级不高于所述优先级阈值时,将所述ROS数据包发送至所述软件加速器,具体包括:
当所述ROS数据包的优先级等级为低优先级时,将所述ROS数据包发送至所述软件加速器。
3.一种基于FPGA和ROS的嵌入式通信方法,其特征在于,所述方法适用于如权利要求1~2任一项所述的基于FPGA和ROS的嵌入式通信系统;所述方法由所述ROS订阅者节点执行,所述方法包括:
订阅话题,并监听所述话题对应的ROS数据包;其中,所述ROS数据包由所述ROS发布者节点基于所述话题发布,所述话题中预先配置了所述ROS数据包的优先级等级;
对所述话题进行解析,以获得所述ROS数据包的优先级等级;
当所述ROS数据包的优先级等级高于预设的优先级阈值时,将所述ROS数据包发送至所述FPGA硬件加速器,使得所述FPGA硬件加速器对接收到的所述ROS数据包进行硬件解码,并将解码获得的第一ROS内容发送至所述存储器;使得储器存储接收到的所述第一ROS内容;以及,使得所述执行器通过所述FPGA硬件加速器从所述存储器中获取所述第一ROS内容,解析所述第一ROS内容获得控制指令,并执行控制指令;
所述系统还包括软件加速器;则,所述方法还包括:
当所述ROS数据包的优先级等级不高于所述优先级阈值时,将所述ROS数据包发送至所述软件加速器,使得所述软件加速器对接收到的所述ROS数据包进行软件解码,并将解码获得的第二ROS内容发送至所述存储器;使得所述存储器存储接收到的所述第二ROS内容;以及,使得所述执行器从所述存储器中获取所述第二ROS内容,解析所述第二ROS内容获得控制指令,并执行控制指令。
4.如权利要求3所述的基于FPGA和ROS的嵌入式通信方法,其特征在于,所述优先级等级包括高优先级和低优先级,所述优先级阈值为低优先级;则,
所述当所述ROS数据包的优先级等级高于预设的优先级阈值时,将所述ROS数据包发送至所述FPGA硬件加速器,具体包括:
当所述ROS数据包的优先级等级为高优先级时,将所述ROS数据包发送至所述FPGA硬件加速器;
所述当所述ROS数据包的优先级等级不高于所述优先级阈值时,将所述ROS数据包发送至所述软件加速器,具体包括:
当所述ROS数据包的优先级等级为低优先级时,将所述ROS数据包发送至所述软件加速器。
5.一种基于FPGA和ROS的嵌入式通信装置,其特征在于,所述装置用于实现如权利要求3~4任一项所述的基于FPGA和ROS的嵌入式通信方法;所述装置设置在所述ROS订阅者节点中,所述装置包括:
数据包监听模块,用于订阅话题,并监听所述话题对应的ROS数据包;其中,所述ROS数据包由所述ROS发布者节点基于所述话题发布,所述话题中预先配置了所述ROS数据包的优先级等级;
数据包优先级获取模块,用于对所述话题进行解析,以获得所述ROS数据包的优先级等级;
第一数据包发送模块,用于当所述ROS数据包的优先级等级高于预设的优先级阈值时,将所述ROS数据包发送至所述FPGA硬件加速器,使得所述FPGA硬件加速器对接收到的所述ROS数据包进行硬件解码,并将解码获得的第一ROS内容发送至所述存储器;使得储器存储接收到的所述第一ROS内容;以及,使得所述执行器通过所述FPGA硬件加速器从所述存储器中获取所述第一ROS内容,解析所述第一ROS内容获得控制指令,并执行控制指令;
所述系统还包括软件加速器;则,所述装置还包括:
第二数据包发送模块,用于当所述ROS数据包的优先级等级不高于所述优先级阈值时,将所述ROS数据包发送至所述软件加速器,使得所述软件加速器对接收到的所述ROS数据包进行软件解码,并将解码获得的第二ROS内容发送至所述存储器;使得所述存储器存储接收到的所述第二ROS内容;以及,使得所述执行器从所述存储器中获取所述第二ROS内容,解析所述第二ROS内容获得控制指令,并执行控制指令。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序;其中,所述计算机程序在运行时控制所述计算机可读存储介质所在的设备执行如权利要求3~4任一项所述的基于FPGA和ROS的嵌入式通信方法。
7.一种车辆,其特征在于,包括车辆本体以及如权利要求1~2任一项所述的基于FPGA和ROS的嵌入式通信系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110986950.6A CN115733886B (zh) | 2021-08-26 | 2021-08-26 | 基于fpga和ros的嵌入式通信系统、方法、装置、介质及车辆 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110986950.6A CN115733886B (zh) | 2021-08-26 | 2021-08-26 | 基于fpga和ros的嵌入式通信系统、方法、装置、介质及车辆 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115733886A CN115733886A (zh) | 2023-03-03 |
CN115733886B true CN115733886B (zh) | 2024-04-19 |
Family
ID=85289934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110986950.6A Active CN115733886B (zh) | 2021-08-26 | 2021-08-26 | 基于fpga和ros的嵌入式通信系统、方法、装置、介质及车辆 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115733886B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105024945A (zh) * | 2014-04-30 | 2015-11-04 | 惠州市德赛西威汽车电子有限公司 | 一种多处理器间的信息交互方式 |
CN105429858A (zh) * | 2015-12-11 | 2016-03-23 | 中国人民解放军国防科学技术大学 | 一种多机器人间实时消息传递方法 |
CN110891014A (zh) * | 2019-11-28 | 2020-03-17 | 北京宁云科技有限公司 | 基于硬件的mqtt发布订阅方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9503548B2 (en) * | 2013-10-28 | 2016-11-22 | International Business Machines Corporation | Subscriber based priority of messages in a publisher-subscriber domain |
WO2019104087A1 (en) * | 2017-11-21 | 2019-05-31 | Google Llc | Managing processing system efficiency |
-
2021
- 2021-08-26 CN CN202110986950.6A patent/CN115733886B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105024945A (zh) * | 2014-04-30 | 2015-11-04 | 惠州市德赛西威汽车电子有限公司 | 一种多处理器间的信息交互方式 |
CN105429858A (zh) * | 2015-12-11 | 2016-03-23 | 中国人民解放军国防科学技术大学 | 一种多机器人间实时消息传递方法 |
CN110891014A (zh) * | 2019-11-28 | 2020-03-17 | 北京宁云科技有限公司 | 基于硬件的mqtt发布订阅方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115733886A (zh) | 2023-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114355866B (zh) | 无人驾驶远程接管系统 | |
CN113608483A (zh) | 获取车辆信号值方法、电子设备及电子控制单元 | |
CN114089713A (zh) | 一种基于uds的通信方法、ecu及上位机 | |
CN112988346A (zh) | 任务处理方法、装置、设备及存储介质 | |
CN115733886B (zh) | 基于fpga和ros的嵌入式通信系统、方法、装置、介质及车辆 | |
CN116455694A (zh) | 一种波特率设置方法、装置、设备和存储介质 | |
CN114172915B (zh) | 一种消息同步方法、自动驾驶系统、存储介质及电子设备 | |
US20060075172A1 (en) | Method for applying interrupt coalescing to incoming messages based on message length | |
CN113442856A (zh) | 基于自适应平台和ros2的控制方法、装置及存储介质 | |
CN116991142A (zh) | 基于模块化uds协议的汽车诊断服务方法及系统 | |
CN114978898B (zh) | 数据传输控制方法、装置、抬头显示器和存储介质 | |
CN115794317A (zh) | 一种基于虚拟机的处理方法、装置、设备及介质 | |
AU2021204522A1 (en) | Information interaction methods, apparatuses, devices, and systems and storage media | |
CN115248724A (zh) | 异构多核系统的实时调度 | |
CN115904488A (zh) | 数据传输方法、系统、装置及设备 | |
US6763439B1 (en) | Disk throttling and priority queuing for streaming I/O | |
CN108574622B (zh) | 一种基于xmpp的即时消息处理方法及装置 | |
Trifunović et al. | Data Exchange Interfaces in Automotive SOA | |
US8018932B1 (en) | Methods and apparatus for sending a multicast packet from multiple network interfaces using the same MAC source address | |
CN116782277B (zh) | 一种用于车载c-v2x的分布式部署系统 | |
CN116827933B (zh) | 一种云服务器的控制方法、装置、电子设备及存储介质 | |
CN115190338B (zh) | 视频预加载的方法和系统 | |
EP3772696A1 (en) | Method, apparatus and storage medium for implementing a discrete frame-based scene section | |
CN115904750A (zh) | 一种消息处理方法、装置及存储介质 | |
CN115623044A (zh) | 一种基于mqtt协议的信息交互方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |