CN111076736B - 一种基于FPGA设计的车载***和A star路径搜索方法 - Google Patents
一种基于FPGA设计的车载***和A star路径搜索方法 Download PDFInfo
- Publication number
- CN111076736B CN111076736B CN202010002122.XA CN202010002122A CN111076736B CN 111076736 B CN111076736 B CN 111076736B CN 202010002122 A CN202010002122 A CN 202010002122A CN 111076736 B CN111076736 B CN 111076736B
- Authority
- CN
- China
- Prior art keywords
- node
- evaluation function
- map
- new
- round
- 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
- 238000013461 design Methods 0.000 title claims abstract description 37
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000011156 evaluation Methods 0.000 claims abstract description 105
- 238000012163 sequencing technique Methods 0.000 claims abstract description 35
- 238000004891 communication Methods 0.000 claims abstract description 18
- 230000006870 function Effects 0.000 claims description 103
- 239000002131 composite material Substances 0.000 claims description 20
- 230000008569 process Effects 0.000 claims description 13
- 101100325756 Arabidopsis thaliana BAM5 gene Proteins 0.000 claims description 9
- 101150046378 RAM1 gene Proteins 0.000 claims description 9
- 101100476489 Rattus norvegicus Slc20a2 gene Proteins 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 9
- 230000008447 perception Effects 0.000 claims description 4
- 230000002457 bidirectional effect Effects 0.000 claims description 3
- 230000008901 benefit Effects 0.000 abstract description 4
- 230000009286 beneficial effect Effects 0.000 abstract description 3
- 238000004422 calculation algorithm Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012772 sequence design Methods 0.000 description 2
- 230000017105 transposition Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000004134 energy conservation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/28—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
- G01C21/30—Map- or contour-matching
- G01C21/32—Structuring or formatting of map data
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3446—Details of route searching algorithms, e.g. Dijkstra, A*, arc-flags, using precalculated routes
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于FPGA设计的车载***和A star路径搜索方法,该车载***包括提供地图信息的车载计算平台与计算路径的FPGA构成的异构计算***。该FPGA设计包括以下模块:存储地图信息的地图节点信息存储子模块与地图节点序号存储子模块,基于评价函数拓展节点的节点拓展模块,计算新拓展节点评价函数与父节点关系的节点信息更新模块,基于评价函数值与奇‑偶排序网络以排序新拓展节点的第一轮排序模块,与基于评价函数值与双向链表以排序所有开启节点的第二轮模块。本发明在FPGA设计中充分发挥了FPGA在并行运算方面的优势,有助于大幅提升路径搜索的效率,并基于通信与***设计实现了车载应用。
Description
技术领域
本发明涉及电子技术领域,特别是涉及一种基于FPGA设计的车载***和A star路径搜索方法。
背景技术
智能网联汽车是时下汽车行业的发展热点,在提升车辆与交通的安全、舒适、节能与高效等方面具有很大潜力。而近年来随着智能驾驶技术的发展,愈加复杂的智能驾驶算法也为车载计算硬件提出了更高的要求:在合理的成本与能耗前提下,提升硬件的计算能力,进而实现更高的计算频率与控制精度、实用化更复杂的智能算法。
目前,主流的处理器包括CPU、GPU、FPGA和ASIC等。其中,FPGA(现场可编程门阵列)以其高性能、高灵活性、低功耗和相对低成本的特点,成为目前一个种主流的硬件加速设备,可以与CPU构成CPU+FPGA的异构计算***。FPGA常被用作嵌入式硬件,通过对特定计算任务的算法、硬件电路协同开发以提升任务的计算效率,进而提升***的计算能力。在汽车工程领域,FPGA早期主要应用于车载数据采集,以及电子控制器的硬件仿真。而随着智能网联汽车的发展与人工智能算法的应用,在运算精度、实时性、能耗与成本的复合需求下,传统的车载处理器已难以提供足够的算力,而FPGA以其多方面优势成为智能驾驶芯片开发的可行方案。然而相对于通用处理器上的算法应用,FPGA需要基于底层数字电路设计以实现算法功能。上述特点提升了FPGA应用复杂性,但方便于进一步优化算法过程、提升硬件运算效率。
智能驾驶包括一套复杂的计算***,常被分为感知、决策与控制三个主要部分。其中,A star算法是一种常见的决策算法,应用于非结构化道路环境下的路径规划。A star算法的功能是基于包括起始/目标/障碍物信息的网格地图,搜索生成连接起始与障碍物的路径,基于评价函数的设计,该生成路径具有评价函数值最优性。A star算法的主要过程包括节点拓展、评价与排序等基本流程,其中地图坐标信息的存储与节点评价函数值的排序过程都可能随着精度的提升产生非线性增加,进而增长决策***的计算延时、难以满足智能车决策的实时性要求。而基于FPGA设计的灵活性,能够优化运算模块的流水线、实现节点的并行运算,并应用更高效的硬件排序方法、优化定点运算精度等,从而提升算法的车载实用性。
发明内容
本发明的目的在于提供一种基于FPGA设计的车载***和A star路径搜索方法来克服或至少减轻现有技术的上述缺陷中的至少一个。
为实现上述目的,本发明提供一种基于FPGA设计的车载***,该车载***包括车载计算平台和FPGA设计,其中,所述车载计算平台根据环境感知信息生成地图坐标信息,所述车载计算平台通过配置的PCI-E通信模块向所述FPGA设计发送信息,所述FPGA设计包括PCI-E通信模块与所述A star路径搜索模块,其中,所述PCI-E通信模块接收所述车载计算平台发送的信息,所述A star路径搜索模块用于根据所述PCI-E通信模块接收的地图坐标信息完成路径搜索,并将生成路径通过PCI-E通信发送回所述车载计算平台;所述FPGA设计包括A star路径搜索模块,所述A star路径搜索模块具有:地图节点信息存储子模块RAM0,其用于存储写入的地图节点信息;地图节点序号存储子模块RAM1,其用于根据本轮排序,将序号转化成地图上的坐标,并按照序号-坐标对应关系进行存储;节点拓展模块,其用于根据上一轮的排序结果,将所述地图节点序号存储子模块RAM1存储的评价函数值最小的节点作为本轮的目标点,根据目标点拓展并生成本轮所需的新拓展节点,并将其地图坐标放入“开启集”,目标点转为“关闭”;节点信息计算子模块,其用于根据所述节点拓展模块的新拓展节点的地图坐标,从所述地图节点信息存储子模块RAM0中读取新拓展节点对应的地图坐标信息,并利用评价函数计算各个新拓展节点的评价函数值与其父节点坐标;节点信息更新子模块,其用于根据所述节点信息计算子模块计算得到的新拓展节点的评价函数值,更新地图节点信息存储子模块RAM0中存储的对应信息;第一轮排序子模块,其用于根据所述地图节点信息存储子模块RAM0存储的新拓展节点对应的评价函数值,将其地图坐标与其对应的评价函数值前后相缀组成复合信号,并基于奇-偶网络排序法对评价函数值由小至大的顺序对本轮的新拓展节点进行排序,最后按照排好的顺序输出相应的新拓展节点的地图坐标;以及第二轮排序子模块,其用于采用双向链表对所述第一轮排序子模块排序后的新拓展节点进行排序,并按序***到所有已开启节点序列中,删除上一轮的目标点和被重复开启节点,得到评价函数值最小的开启节点作为下一轮拓展的目标点。
进一步地,所述第二轮排序子模块中的“删除上一轮的目标点和被重复开启节点”包括:使用被删除节点的前一个节点坐标更新链表中其前一个节点复合信号中的对应坐标,使用被删除节点的后一个节点坐标更新链表中其后一个节点复合信号中的对应坐标。
进一步地,存入所述地图节点信息存储子模块RAM0的每一个节点的地图坐标信息包括该节点的已运动距离、节点状态与父节点坐标,其中:所述节点状态分为未开启状态、已开启状态、关闭状态、障碍物和目标点;在新拓展节点的状态为已开启状态的情形下,则比较该新开启节点对应的新的已运动距离值与原来的已运动距离值,若新的已运动距离值小于原来的已运动距离值,则用新的已运动距离值更新其已运动距离与父节点;在新拓展节点的状态为关闭状态或障碍物的情形下,则评价函数将赋予该新拓展节点的评价函数值为极大评价函数值;在新拓展节点的状态为未启状态的情形下,则开启该节点,并由评价函数计算该节点的评价函数值以及父节点坐标;在新拓展节点的状态为目标点的情形下,则搜索过程结束,基于节点的父节点关系逆推得到完整路径。
进一步地,所述节点拓展模块中的“拓展”为以目标点为中心点,并围绕该目标点一圈寻找所述新拓展节点。
进一步地,如果该轮为第一轮,则出发点为所述目标点。
本发明还提供一种基于FPGA设计的A star路径搜索方法,该方法包括:步骤1,将上一轮循环得到的评价函数值最小的节点作为该轮目标点,拓展并生成本轮所需的新拓展节点,并将其地图坐标放入“开启集”,目标点转为“关闭”;如果该轮为第一轮,则出发点为所述目标点;步骤2,根据所述新拓展节点的地图坐标,利用评价函数计算各个所述新拓展节点的评价函数值与其父节点坐标;步骤3,根据计算得到的所述新拓展节点的评价函数值,更新地图节点信息存储子模块RAM0中存储的对应信息;步骤4,根据所述新拓展节点对应的评价函数值,将其地图坐标与其对应的评价函数值前后相缀组成复合信号,并基于奇-偶网络排序法对评价函数值从小至大的顺序对本轮的所述新拓展节点进行排序,最后按照排好的顺序输出相应的新拓展节点的地图坐标;以及步骤5,采用双向链表对所述步骤4排序后的新拓展节点进行排序,并按序***到所有已开启节点序列中,删除上一轮的目标点和被重复开启节点,得到评价函数值最小的开启节点作为下一轮拓展的目标点。
进一步地,所述步骤5中的“删除上一轮的目标点和被重复开启节点”包括:使用被删除节点的前一个节点坐标更新链表中其前一个节点复合信号中的对应坐标,使用被删除节点的后一个节点坐标更新链表中其后一个节点复合信号中的对应坐标。
进一步地,每一个节点的所述地图坐标信息包括该节点的已运动距离、节点状态与父节点坐标,其中:所述节点状态分为未开启状态、已开启状态、关闭状态、障碍物和目标点;在新拓展节点的状态为已开启状态的情形下,则比较该新开启节点对应的新的已运动距离值与原来的已运动距离值,若新的已运动距离值小于原来的已运动距离值,则用新的已运动距离值更新其已运动距离与父节点;在新拓展节点的状态为关闭状态或障碍物的情形下,则评价函数将赋予该新拓展节点的评价函数值为极大评价函数值;在新拓展节点的状态为未启状态的情形下,则开启该节点,并由评价函数计算该节点的评价函数值以及父节点坐标;在新拓展节点的状态为目标点的情形下,则搜索过程结束,基于节点的父节点关系逆推得到完整路径。
本发明充分实现了模块的并行运算,有助于大幅提升路径搜索效率,实现了符合智能车决策***实时性与精度等符合需求的车载应用。
附图说明
图1是本发明实施例提供的实现A star算法的车载***的原理图;
图2是图1中的FPGA设计的模块划分示意图;
图3是图2中的第一轮排序所采用的排序网络示意图;
图4是图2中的第二轮排序所采用的双向链表示意图;
图5是图2优化后的模块运行时序示意图;
图6是本发明实施例的一种拓展节点的方式示意图。
具体实施方式
在附图中,使用相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面结合附图对本发明的实施例进行详细说明。
在本发明的描述中,术语“中心”、“纵向”、“横向”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明保护范围的限制。
如图1所示,本发明实施例提供的基于FPGA设计的车载***包括车载计算平台(CPU)和FPGA(英文全称为“Field-Programmable Gate Array”,中文全称为“现场可编程门阵列”)设计组成的异构计算***。其中:
车载计算平台根据环境感知信息生成地图坐标信息,该地图坐标信息即为网格地图,其主要包括自车位置、目标位置与障碍物位置。车载计算平台通过配置的PCI-E通信模块向FPGA设计发送信息,本实施例中该信息指的是地图坐标信息。车载计算平台运行于Linux***下,基于对PCI-E通信模块的设计,车载计算平台可配置发送/接收功能、设置寄存器数据长度与个数、选择FPGA设计运行时钟频率、测量通信时间与数据传输速度。需要说明的是,FPGA设计计算效率受到车载计算平台运行频率影响,而其最大运行频率受到具体计算任务的限制。通过实验与调节FPGA设计的运行频率,选择合适的频率,能够提升车载计算平台的计算效率。
FPGA设计包括两个主要模块,分别为:PCI-E通信模块与A star路径搜索模块。其中:PCI-E通信模块以Altera自带的模块为基础进行设计,并对发送/接收的通信协议、信号时序与相关的数据存储寄存器、功能设置寄存器等进行配置。A star路径搜索模块用于根据接收的地图坐标信息完成路径搜索,并将生成路径通过PCI-E通信发送回车载计算平台。
如图2所示,A star路径搜索模块包括节点拓展模块1、节点信息计算子模块2、节点信息更新子模块3、第一轮排序子模块4、第二轮排序子模块5、地图节点信息存储子模块RAM0和地图节点序号存储子模块RAM1,完成A star算法搜索的节点拓展-评价-排序等过程。
其中:
地图节点信息存储子模块RAM0用于存储写入到FPGA设计的地图节点信息,该地图节点信息包括节点的坐标、评价函数值与其父节点等信息。
地图节点序号存储子模块RAM1用于根据本轮排序,将序号转化成地图上的坐标,并按照序号-坐标对应关系进行存储,以供节点拓展模块1进行搜索。节点拓展模块1用于根据上一轮的排序结果,将地图节点序号存储子模块RAM1存储的评价函数值最小的节点作为本轮的目标点,根据目标点拓展并生成本轮所需的新拓展节点,并将其地图坐标放入“开启集”,目标点转为“关闭”。
其中,“拓展”可以理解为以目标点为中心点,并围绕该目标点一圈寻找节点。“拓展”的具体操作还可以借助图6进行理解,类似于九宫格中围绕中心格一圈的八个网格所在位置的节点,即目标点A的正上方的节点A1、正下方的节点A2、左斜上方的节点A3、左斜下方的节点A4、右斜上方的节点A5、右斜下方的节点A6、左侧的节点A7和右侧的节点A8。当然,如果该轮为第一轮,则出发点为“目标点”。
节点信息计算子模块2用于根据节点拓展模块1的新拓展节点的地图坐标,从地图节点信息存储子模块RAM0中读取新拓展节点对应地图坐标信息,并利用评价函数计算各个新拓展节点的评价函数值与其父节点坐标。其中,评价函数值由节点的已运动距离和节点到目标的直线距离加和得到。存入地图节点信息存储子模块RAM0的每一个节点的地图坐标信息包括该节点的已运动距离、节点状态与父节点坐标,其中:节点状态分为未开启状态、已开启状态、关闭状态、障碍物和目标点。
在新拓展节点的状态为已开启状态的情形下,则比较该新开启节点对应的新的已运动距离值与原来的已运动距离值,若新的已运动距离值小于原来的已运动距离值,则用新的已运动距离值更新其已运动距离与父节点。
在新拓展节点的状态为关闭状态或障碍物的情形下,则评价函数将赋予该新拓展节点的评价函数值为极大评价函数值(对于非“障碍物-非障碍物”二元划分的网格地图,则基于其地图规则,评价函数改进为等效的已运动距离、到目标直线距离)。
在新拓展节点的状态为未启状态的情形下,则开启该节点,并由评价函数计算该节点的评价函数值以及父节点坐标。
在新拓展节点的状态为目标点的情形下,则搜索过程结束,基于节点的父节点关系逆推得到完整路径。
在本实施例中,信息从地图节点信息存储子模块RAM0和地图节点序号存储子模块RAM1的读取/写入为顺序进行,而新开启节点的评价函数值可以并行求取。在时序设计上,读操作按序连续进行,完成读取的节点可无需等待其他节点的读取而立即开始计算评价函数值。
节点信息更新子模块3用于根据节点信息计算子模块2计算得到的新拓展节点的评价函数值,更新地图节点信息存储子模块RAM0中存储的对应信息。
第一轮排序子模块4用于根据地图节点信息存储子模块RAM0存储的新拓展节点对应的评价函数值,将其地图坐标与其对应的评价函数值前后相缀组成复合信号,并基于奇-偶网络排序法(Even-Odd Network)对评价函数值由小至大的顺序对本轮的新拓展节点进行排序,最后按照排好的顺序输出相应的新拓展节点的地图坐标。
基于FPGA设计运算的并行优势,采用如图3所示的奇-偶网络排序法(Even-OddNetwork,图三释义见文尾)对评价函数值进行快速排序,在6个时钟周期中完成排序。横向上,x1—x8代表要排序的8个数,上下连接的两点代表对两端数进行比较、换位(小的在上,大的在下)。FPGA设计能够并行完成无干涉的运算,所有并行的比较在一个阴影中,能够在一个时钟周期完成。可见,完成排序只需要6个时钟周期,输出y1—y8满足从小至大排序。作为一种经典硬件排序方法,该算法排序效率最高,但只能用于固定长度的序列排序,且难以实现本算法所需的数据增加/删除操作。
第二轮排序子模块5用于采用如图4所示的双向链表对第一轮排序后的新拓展节点进行排序,并按序***到所有已开启节点序列中,删除上一轮的目标点和被重复开启节点,得到评价函数值最小的开启节点作为下一轮拓展的目标点。
图4提供的双向链表中有三个连续的链节,每个链节由对应节点的地址和评价函数值、前向链节地址和后向链节地址构成。在该链表中增加/删除链节时,只需更新对应链节的前向链节坐标和后向链节坐标。如图中删除某一链节(比如图4的中间打上“×”符号的链节),只需用该链节储存的前向链节坐标和后向链节坐标,分别更新其前链节和后链节的对应前后向坐标即可。
故,第二轮排序子模块5中的“删除上一轮的目标点和被重复开启节点”包括:使用被删除节点的前一个节点坐标更新链表中其前一个节点复合信号中的对应坐标,使用被删除节点的后一个节点坐标更新链表中其后一个节点复合信号中的对应坐标。
作为应用硬件方法优化的所述第二轮排序方法,针对A star算法第二轮排序中节点数量不固定、需要删除上一轮的目标点和被重复开启节点的需要,采取双向链表对所有节点进行排序。生成的复合信号包括自身坐标、前一个节点坐标、后一个节点坐标与自身评价函数值。每轮排序时将新节点按序***到链表中,删除节点时使用被删除节点的前一个、后一个节点坐标分别更新链表中其前一个、后一个节点复合信号中的对应坐标。
基于上述各实施例中的FPGA设计的A star路径搜索模块根据接收的地图坐标信息完成路径搜索的具体过程包括:
步骤1,节点拓展:将上一轮循环得到的评价函数值最小的节点作为该轮目标点,拓展并生成本轮所需的新拓展节点,并将其地图坐标放入“开启集”,目标点转为“关闭”。其中,“拓展”可以理解为以目标点为中心点,并围绕该目标点一圈寻找节点。“拓展”的具体操作还可以借助图6进行理解,类似于九宫格中围绕中心格一圈的八个网格所在位置的节点,即目标点A的正上方的节点A1、正下方的节点A2、左斜上方的节点A3、左斜下方的节点A4、右斜上方的节点A5、右斜下方的节点A6、左侧的节点A7和右侧的节点A8。当然,如果该轮为第一轮,则出发点为“目标点”。
步骤2,评价:根据节点拓展模块1的新拓展节点的地图坐标,利用评价函数计算步骤1中的各个新拓展节点的评价函数值与其父节点坐标。其中,评价函数值由节点的已运动距离和节点到目标的直线距离加和得到。存入地图节点信息存储子模块RAM0的每一个节点的地图坐标信息包括该节点的已运动距离、节点状态与父节点坐标,其中:节点状态分为未开启状态、已开启状态、关闭状态、障碍物和目标点。
在新拓展节点的状态为已开启状态的情形下,则比较该新开启节点对应的新的已运动距离值与原来的已运动距离值,若新的已运动距离值小于原来的已运动距离值,则用新的已运动距离值更新其已运动距离与父节点。
在新拓展节点的状态为关闭状态或障碍物的情形下,则评价函数将赋予该新拓展节点的评价函数值为极大评价函数值(对于非“障碍物-非障碍物”二元划分的网格地图,则基于其地图规则,评价函数改进为等效的已运动距离、到目标直线距离)。
在新拓展节点的状态为未启状态的情形下,则开启该节点,并由评价函数计算该节点的评价函数值以及父节点坐标。
在新拓展节点的状态为目标点的情形下,则搜索过程结束,基于节点的父节点关系逆推得到完整路径。
在本实施例中,信息从地图节点信息存储子模块RAM0和地图节点序号存储子模块RAM1的读取/写入为顺序进行,而新开启节点的评价函数值可以并行求取。在时序设计上,读操作按序连续进行,完成读取的节点可无需等待其他节点的读取而立即开始计算评价函数值。
步骤3,根据计算得到的新拓展节点的评价函数值,更新地图节点信息存储子模块RAM0中存储的对应信息。
步骤4,第一轮排序:根据地图节点信息存储子模块RAM0存储的新拓展节点对应的评价函数值,将其地图坐标与其对应的评价函数值前后相缀组成复合信号,并基于奇-偶网络排序法(Even-Odd Network)对评价函数值从小至大的顺序对本轮的新拓展节点进行排序,最后按照排好的顺序输出相应的新拓展节点的地图坐标。
基于FPGA设计运算的并行优势,采用如图3所示的奇-偶网络排序法(Even-OddNetwork,图三释义见文尾)对评价函数值进行快速排序,在6个时钟周期中完成排序。横向上,x1—x8代表要排序的8个数,上下连接的两点代表对两端数进行比较、换位(小的在上,大的在下)。FPGA设计能够并行完成无干涉的运算,所有并行的比较在一个阴影中,能够在一个时钟周期完成。可见,完成排序只需要6个时钟周期,输出y1—y8满足从小至大排序。作为一种经典硬件排序方法,该算法排序效率最高,但只能用于固定长度的序列排序,且难以实现本算法所需的数据增加/删除操作。
步骤5,第二轮排序:采用如图4所示的双向链表对第一轮排序后的新拓展节点进行排序,并按序***到所有已开启节点序列中,删除上一轮的目标点和被重复开启节点,得到评价函数值最小的开启节点作为下一轮拓展的目标点。
图4提供的双向链表中有三个连续的链节,每个链节由对应节点的地址和评价函数值、前向链节地址和后向链节地址构成。在该链表中增加/删除链节时,只需更新对应链节的前向链节坐标和后向链节坐标。如图中删除某一链节(比如图4的中间打上“×”符号的链节),只需用该链节储存的前向链节坐标和后向链节坐标,分别更新其前链节和后链节的对应前后向坐标即可。
故,步骤5中的“删除上一轮的目标点和被重复开启节点”包括:使用被删除节点的前一个节点坐标更新链表中其前一个节点复合信号中的对应坐标,使用被删除节点的后一个节点坐标更新链表中其后一个节点复合信号中的对应坐标。
作为应用硬件方法优化的所述第二轮排序方法,针对A star算法第二轮排序中节点数量不固定、需要删除上一轮的目标点和被重复开启节点的需要,采取双向链表对所有节点进行排序。生成的复合信号包括自身坐标、前一个节点坐标、后一个节点坐标与自身评价函数值。每轮排序时将新节点按序***到链表中,删除节点时使用被删除节点的前一个、后一个节点坐标分别更新链表中其前一个、后一个节点复合信号中的对应坐标。
为优化算法运行流水线,提升运算的并行性,优化后的模块运行时序如图5所示。图5展示了主要功能模块的运行时间。实线、虚线分别对应了两轮节点拓展过程。图中主要示意的是各模块运行的先后顺序与并行关系,可看到本专利设计中充分实现了模块的并行运算(形成流水线),相比传统的各模块顺序运算,有助于大幅提升运算效率。运算模块中节点信息更新、第一轮排序与第二轮排序子模块5可以并行运作。第二轮排序只需得到评价函数值最小的节点,即可运行节点拓展模块1、启动新一轮循环。
最后需要指出的是:以上实施例仅用以说明本发明的技术方案,而非对其限制。本领域的普通技术人员应当理解:可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (6)
1.一种基于FPGA设计的车载***,其特征在于,包括车载计算平台和FPGA设计,其中,所述车载计算平台根据环境感知信息生成地图坐标信息,所述车载计算平台通过配置的PCI-E通信模块向所述FPGA设计发送信息,所述FPGA设计包括PCI-E通信模块与A star路径搜索模块,其中,所述PCI-E通信模块接收所述车载计算平台发送的信息,所述A star路径搜索模块用于根据所述PCI-E通信模块接收的地图坐标信息完成路径搜索,并将生成路径通过PCI-E通信发送回所述车载计算平台;所述FPGA设计包括A star路径搜索模块,所述Astar路径搜索模块具有:
地图节点信息存储子模块RAM0,其用于存储写入的地图节点信息;
地图节点序号存储子模块RAM1,其用于根据本轮排序,将序号转化成地图上的坐标,并按照序号-坐标对应关系进行存储;
节点拓展模块(1),其用于根据上一轮的排序结果,将所述地图节点序号存储子模块RAM1存储的评价函数值最小的节点作为本轮的目标点,根据目标点拓展并生成本轮所需的新拓展节点,并将其地图坐标放入“开启集”,目标点转为“关闭”;
节点信息计算子模块(2),其用于根据所述节点拓展模块(1)的新拓展节点的地图坐标,从所述地图节点信息存储子模块RAM0中读取新拓展节点对应的地图坐标信息,并利用评价函数计算各个新拓展节点的评价函数值与其父节点坐标;
节点信息更新子模块(3),其用于根据所述节点信息计算子模块(2)计算得到的新拓展节点的评价函数值,更新地图节点信息存储子模块RAM0中存储的对应信息;存入所述地图节点信息存储子模块RAM0的每一个节点的地图坐标信息包括该节点的已运动距离、节点状态与父节点坐标,其中:所述节点状态分为未开启状态、已开启状态、关闭状态、障碍物和目标点;
在新拓展节点的状态为已开启状态的情形下,则比较已开启状态的新拓展节点对应的新的已运动距离值与原来的已运动距离值,若新的已运动距离值小于原来的已运动距离值,则用新的已运动距离值更新其已运动距离与父节点;
在新拓展节点的状态为关闭状态或障碍物的情形下,则评价函数将赋予该新拓展节点的评价函数值为极大评价函数值;
在新拓展节点的状态为未启状态的情形下,则开启该节点,并由评价函数计算该节点的评价函数值以及父节点坐标;
在新拓展节点的状态为目标点的情形下,则搜索过程结束,基于节点的父节点关系逆推得到完整路径;
第一轮排序子模块(4),其用于根据所述地图节点信息存储子模块RAM0存储的新拓展节点对应的评价函数值,将其地图坐标与其对应的评价函数值前后相缀组成复合信号,并基于奇-偶网络排序法对评价函数值由小至大的顺序对本轮的新拓展节点进行排序,最后按照排好的顺序输出相应的新拓展节点的地图坐标;以及
第二轮排序子模块(5),其用于采用双向链表对所述第一轮排序子模块(4)排序后的新拓展节点进行排序,并按序***到所有已开启节点序列中,删除上一轮的目标点和被重复开启节点,得到评价函数值最小的开启节点作为下一轮拓展的目标点。
2.如权利要求1所述的基于FPGA设计的车载***,其特征在于,所述第二轮排序子模块(5)中的“删除上一轮的目标点和被重复开启节点”包括:使用被删除节点的前一个节点坐标更新链表中其前一个节点复合信号中的对应坐标,使用被删除节点的后一个节点坐标更新链表中其后一个节点复合信号中的对应坐标。
3.如权利要求1所述的基于FPGA设计的车载***,其特征在于,所述节点拓展模块(1)中的“拓展”为以目标点为中心点,并围绕该目标点一圈寻找所述新拓展节点。
4.如权利要求3所述的基于FPGA设计的车载***,其特征在于,如果本轮为第一轮,则出发点为所述目标点。
5.一种基于FPGA设计的A star路径搜索方法,其特征在于,包括:
步骤1,将上一轮循环得到的评价函数值最小的节点作为本轮目标点,拓展并生成本轮所需的新拓展节点,并将其地图坐标放入“开启集”,目标点转为“关闭”;如果本轮为第一轮,则出发点为所述目标点;
步骤2,根据所述新拓展节点的地图坐标,利用评价函数计算各个所述新拓展节点的评价函数值与其父节点坐标;
步骤3,根据计算得到的所述新拓展节点的评价函数值,更新地图节点信息存储子模块RAM0中存储的对应信息;每一个节点的所述地图坐标信息包括该节点的已运动距离、节点状态与父节点坐标,其中:所述节点状态分为未开启状态、已开启状态、关闭状态、障碍物和目标点;
在新拓展节点的状态为已开启状态的情形下,则比较已开启状态的新拓展节点对应的新的已运动距离值与原来的已运动距离值,若新的已运动距离值小于原来的已运动距离值,则用新的已运动距离值更新其已运动距离与父节点;
在新拓展节点的状态为关闭状态或障碍物的情形下,则评价函数将赋予该新拓展节点的评价函数值为极大评价函数值;
在新拓展节点的状态为未启状态的情形下,则开启该节点,并由评价函数计算该节点的评价函数值以及父节点坐标;
在新拓展节点的状态为目标点的情形下,则搜索过程结束,基于节点的父节点关系逆推得到完整路径;
步骤4,根据所述新拓展节点对应的评价函数值,将其地图坐标与其对应的评价函数值前后相缀组成复合信号,并基于奇-偶网络排序法对评价函数值从小至大的顺序对本轮的所述新拓展节点进行排序,最后按照排好的顺序输出相应的新拓展节点的地图坐标;以及
步骤5,采用双向链表对所述步骤4排序后的新拓展节点进行排序,并按序***到所有已开启节点序列中,删除上一轮的目标点和被重复开启节点,得到评价函数值最小的开启节点作为下一轮拓展的目标点。
6.如权利要求5所述的基于FPGA设计的A star路径搜索方法,其特征在于,所述步骤5中的“删除上一轮的目标点和被重复开启节点”包括:使用被删除节点的前一个节点坐标更新链表中其前一个节点复合信号中的对应坐标,使用被删除节点的后一个节点坐标更新链表中其后一个节点复合信号中的对应坐标。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010002122.XA CN111076736B (zh) | 2020-01-02 | 2020-01-02 | 一种基于FPGA设计的车载***和A star路径搜索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010002122.XA CN111076736B (zh) | 2020-01-02 | 2020-01-02 | 一种基于FPGA设计的车载***和A star路径搜索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111076736A CN111076736A (zh) | 2020-04-28 |
CN111076736B true CN111076736B (zh) | 2020-10-27 |
Family
ID=70321707
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010002122.XA Active CN111076736B (zh) | 2020-01-02 | 2020-01-02 | 一种基于FPGA设计的车载***和A star路径搜索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111076736B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113794558B (zh) * | 2021-09-16 | 2024-02-27 | 烽火通信科技股份有限公司 | 一种XMSS算法中的L-tree计算方法、装置及*** |
CN114234986B (zh) * | 2021-10-29 | 2024-07-05 | 广州小鹏自动驾驶科技有限公司 | 一种地图数据的处理方法和装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104266656A (zh) * | 2014-09-03 | 2015-01-07 | 清华大学 | 用于道路网的最短路径搜索方法及装置 |
US20160179071A1 (en) * | 2014-12-19 | 2016-06-23 | Lattice Semiconductor Corporation | Reconfigurable and Scalable Hardware Management Architecture |
CN107273088A (zh) * | 2017-06-16 | 2017-10-20 | 山东科技大学 | 一种针对极化码的快速排序网络方法及装置 |
CN108225326A (zh) * | 2017-12-31 | 2018-06-29 | 南京理工大学 | 一种基于a*算法的agv路径规划方法 |
CN108279014A (zh) * | 2017-01-05 | 2018-07-13 | 武汉四维图新科技有限公司 | 自动驾驶地图数据采集装置及***、地图智能生产*** |
CN108444488A (zh) * | 2018-02-05 | 2018-08-24 | 天津大学 | 基于等步采样a*算法的无人驾驶局部路径规划方法 |
CN109375632A (zh) * | 2018-12-17 | 2019-02-22 | 清华大学 | 自动驾驶车辆实时轨迹规划方法 |
-
2020
- 2020-01-02 CN CN202010002122.XA patent/CN111076736B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104266656A (zh) * | 2014-09-03 | 2015-01-07 | 清华大学 | 用于道路网的最短路径搜索方法及装置 |
US20160179071A1 (en) * | 2014-12-19 | 2016-06-23 | Lattice Semiconductor Corporation | Reconfigurable and Scalable Hardware Management Architecture |
CN108279014A (zh) * | 2017-01-05 | 2018-07-13 | 武汉四维图新科技有限公司 | 自动驾驶地图数据采集装置及***、地图智能生产*** |
CN107273088A (zh) * | 2017-06-16 | 2017-10-20 | 山东科技大学 | 一种针对极化码的快速排序网络方法及装置 |
CN108225326A (zh) * | 2017-12-31 | 2018-06-29 | 南京理工大学 | 一种基于a*算法的agv路径规划方法 |
CN108444488A (zh) * | 2018-02-05 | 2018-08-24 | 天津大学 | 基于等步采样a*算法的无人驾驶局部路径规划方法 |
CN109375632A (zh) * | 2018-12-17 | 2019-02-22 | 清华大学 | 自动驾驶车辆实时轨迹规划方法 |
Non-Patent Citations (3)
Title |
---|
Cognitive Internet of Vehicles;Min Chen, Yuanwen Tian, Giancarlo Fortino, Jing Zhang, Iztok Hum;《Computer Communications》;20180531;全文 * |
基于FPGA的高速巴切奇偶排序网络的实现;何非;《实验科学与技术》;20070228;第5卷(第1期);全文 * |
基于改进A*算法的移动机器人路径规划研究;吴鹏等;《计算机工程与应用》;20191231;第55卷(第21期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111076736A (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11514324B2 (en) | Methods of optimization of computational graphs of neural networks | |
CN111076736B (zh) | 一种基于FPGA设计的车载***和A star路径搜索方法 | |
CN110648527B (zh) | 一种基于深度学习模型的交通速度预测方法 | |
CN101694749B (zh) | 一种路径推测方法及装置 | |
CN109284682B (zh) | 一种基于stt-lstm网络的手势识别方法及*** | |
CN109840628B (zh) | 一种短时多区域车速预测方法及*** | |
WO2023098018A1 (zh) | 一种基于多帧点云的运动目标检测***和方法 | |
CN110223515B (zh) | 一种车辆轨迹生成方法 | |
CN114038212A (zh) | 基于双阶段注意力机制和深度强化学习的信号灯控制方法 | |
CN103226581A (zh) | 一种基于方向寻优的启发式最短路径搜索方法 | |
CN106530779B (zh) | 一种基于城市交通控制信号灯的路径规划方法及*** | |
CN111191772B (zh) | 一种面向嵌入式环境的智能计算通用加速***及其构建方法 | |
CN110488842A (zh) | 一种基于双向内核岭回归的车辆轨迹预测方法 | |
CN103425753A (zh) | 一种基于方向寻优的启发式最短路径搜索方法 | |
CN115393684B (zh) | 一种基于自动驾驶场景多模态融合的抗干扰目标检测方法 | |
CN114527761A (zh) | 一种基于融合算法的智能汽车局部路径规划方法 | |
CN114379595A (zh) | 基于车辆行为特征与环境交互信息的车辆轨迹预测方法 | |
CN115051925B (zh) | 一种基于迁移学习的时空序列预测方法 | |
JP2019095569A (ja) | 地図情報処理装置、地図情報処理方法および地図情報処理プログラム | |
CN114677544A (zh) | 一种基于全局上下文交互的场景图生成方法及***及设备 | |
CN116698075B (zh) | 路网数据处理方法、装置、电子设备及存储介质 | |
Luo et al. | Researches on intelligent traffic signal control based on deep reinforcement learning | |
CN116679698A (zh) | 用于车辆的自动驾驶方法、装置、车辆、设备和介质 | |
Tao et al. | A delay-based deep learning approach for urban traffic volume prediction | |
CN113255954B (zh) | 一种混合同构异构深度图神经网络的充电时空预测方法 |
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 |