车辆脱困控制方法、装置、设备和存储介质与流程
未命名
07-11
阅读:91
评论:0

1.本公开涉及车辆控制技术领域,尤其涉及一种车辆脱困控制方法、装置、设备和存储介质。
背景技术:
2.在自动驾驶车辆完成任务的途中,往往会遇到环境复杂的场景,包括狭窄区域、u型弯区域、环岛区域、进站停靠区域、路口区域和顶牛等场景。在这些复杂场景中,如果既想要车辆继续保持较好的安全性,还想要车辆具备良好的通行能力,往往是困难的。因为这些场景环境复杂,无人车的自动驾驶系统有时很难兼具各种要求来继续向前行驶,所以在无人车的运营过程中,经常会堵塞在这些复杂场景中。因此,为了提高无人车的运行效率,急需提供一种车辆脱困控制方法,使得无人车在复杂场景中能够突破安全性约束和交通环境约束,脱离堵塞状态继续完成驾驶任务。
技术实现要素:
3.为了解决上述技术问题,本公开提供了一种车辆脱困控制方法、装置、设备和存储介质,使得无人车在复杂场景中能够突破安全性约束和交通环境约束,脱离堵塞状态继续完成驾驶任务。
4.第一方面,本公开实施例提供了一种车辆脱困控制方法,包括:
5.获取车辆的当前行驶信息,并根据所述当前行驶信息确定所述车辆的行驶状态;
6.在所述行驶状态是堵塞状态的情况下,根据所述当前行驶信息确定所述车辆对应的多条道路;
7.在所述多条道路中筛选出有效道路;
8.计算所述车辆在所述有效道路上的脱困位置;
9.基于所述当前行驶信息中当前位置和所述脱困位置生成脱困轨迹,并控制所述车辆基于所述脱困轨迹行驶。
10.第二方面,本公开实施例提供了一种车辆脱困控制装置,包括:
11.获取模块,用于获取车辆的当前行驶信息,并根据所述当前行驶信息确定所述车辆的行驶状态;
12.确定模块,用于在所述行驶状态是堵塞状态的情况下,根据所述当前行驶信息确定所述车辆对应的多条道路;
13.筛选模块,用于在所述多条道路中筛选出有效道路;
14.计算模块,用于计算所述车辆在所述有效道路上的脱困位置;
15.生成模块,用于基于所述当前行驶信息中当前位置和所述脱困位置生成脱困轨迹,并控制所述车辆基于所述脱困轨迹行驶。
16.第三方面,本公开实施例提供了一种电子设备,包括:
17.存储器;
18.处理器;以及
19.计算机程序;
20.其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如上述的车辆脱困控制方法。
21.第四方面,本公开实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的车辆脱困控制方法的步骤。
22.本公开实施例提供了一种车辆脱困方法,包括:获取车辆的当前行驶信息,并根据当前行驶信息确定车辆的行驶状态;在行驶状态是堵塞状态的情况下,根据当前行驶信息确定车辆对应的多条道路;在多条道路中筛选出有效道路,并计算车辆在有效道路上的脱困位置;基于当前行驶信息中当前位置和脱困位置生成脱困轨迹,并控制车辆基于脱困轨迹行驶。本公开提供的方法使得无人车在复杂场景中能够突破安全性约束和交通环境约束,脱离堵塞状态继续完成驾驶任务。
附图说明
23.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
24.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
25.图1为本公开实施例提供的一种自动驾驶系统的结构示意图;
26.图2为本公开实施例提供的一种车辆脱困控制系统的结构示意图;
27.图3为本公开实施例提供的一种车辆脱困控制方法的流程示意图;
28.图4为本公开实施例提供的一种用于实现s330的方法的流程图;
29.图5为本公开实施例提供的一种行驶场景的示意图;
30.图6为本公开实施例提供的一种用于实现s340的方法的流程图;
31.图7为本公开实施例提供的一种有效车道上搜索起点的示意图;
32.图8为本公开实施例提供的一种车辆的示意图;
33.图9为本公开实施例提供的一种车端和云端信息交互的示意图;
34.图10为本公开实施例提供的一种用于实现s350的方法的流程图;
35.图11为本公开实施例提供的一种可行使区域的示意图;
36.图12为本公开实施例提供的一种行驶状态确定方法的流程示意图;
37.图13为本公开实施例提供的一种行驶状态发送方法的流程示意图;
38.图14为本公开实施例提供的一种脱困位置确定方法的流程示意图;
39.图15为本公开实施例提供的一种有效车道确定方法的流程示意图;
40.图16为本公开实施例提供的一种脱困轨迹生成方法的流程示意图;
41.图17为本公开实施例提供的一种车辆脱困控制装置的结构示意图;
42.图18为本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
43.为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
44.在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
45.在自动驾驶车辆(例如无人车)完成驾驶任务的途中,往往会遇到环境复杂的场景,包括狭窄区域、u型弯区域、环岛区域、进站停靠区域、路口区域和顶牛等复杂场景,在这些复杂场景中,车辆若可以进行自动脱困,以堵塞困境,也就是在确保车辆的安全性的同时,还要确保车辆具备良好的通行能力。车辆要进行自动脱困需要解决的问题至少包括如下方面:1、识别出无人车处于堵塞环境中;2、完成车端和云端的脱困通信;3、寻找理想的脱困位置;4、计算脱困轨迹。
46.针对上述技术问题,本公开实施例提供了一种车辆脱困控制方法,应用于车端,车端识别出处于堵塞环境后向云端服务器发送反馈,再由云端向车端发送脱困指令,触发车端运行其上部署的脱困控制系统(以下简称脱困系统),以确定脱困位置并计算脱困轨迹,使得车端在复杂场景中能够突破安全性约束和交通环境约束,脱离堵塞环境继续完成驾驶任务。具体通过下述一个或多个实施例进行详细说明。
47.在对本公开实施例提供的车辆脱困控制方法进行详细说明前,优先对自动驾驶系统和车辆上部署的脱困系统进行说明。
48.图1为本公开实施例提供的一种自动驾驶系统的结构示意图,完整的自动驾驶系统包括车端的自动驾驶系统和云端的自动驾驶系统,车端的自动驾驶系统和云端的自动驾驶系统通过网络服务连接,车端的自动驾驶系统包括高精地图服务、感知模块、定位模块、规划模块、控制模块、底盘模块、云服务客户端和车端进程通信服务模块,其中,高精度地图服务用于为感知模块、定位模块和规划模块提供数据,感知模块、定位模块、规划模块、控制模块、底盘模块和云服务客户端通过车端进程通信服务模块和云端的自动驾驶系统通信。云端的自动驾驶系统包括云端监视器、云端控制器、多车协同控制器和云端进程通信服务模块等,其中,云端监视器、云端控制器和多车协同控制器通过云端进程通信服务模块和车端的自动驾驶系统通信,具体的,云端监视器用于接收车端的状态信息,比如车辆位置信息、周围环境信息以及车辆运行状态等信息,并将上述接收的信息显示在云端监视器的显示屏幕中,云端控制器用于向车端发送指令信息,比如靠边停车以及更换路线等指令信息,同时也会接收车端的状态反馈和服务请求,其他模块的功能在此不作限定。
49.本技术提供的脱困系统主要是由车端计算系统和云端控制系统组成,示例性的,参见图2,图2为本公开实施例提供的一种车辆脱困控制系统的结构示意图,将车端计算系统部署在上述图1中的规划模块中,车端计算系统包括四个计算模块,分别是车辆堵塞状态识别模块、脱困位置计算模块、脱困轨迹生成模块以及脱困状态切换模块。车端计算系统和云端控制系统通过车云通信服务连接,云端控制系统主要包括上述图1中的云端监视器和云端控制器。其中,车辆堵塞状态识别模块用于根据车辆行驶的环境信息和车辆本身的状态来判定车辆是否处于堵塞状态,并将堵塞状态发送至云端监视器,云端监视器确定车辆
处于堵塞状态后,通过云端控制器向车端发送脱困指令,随后脱困位置计算模块进行脱困位置的运算,脱困位置计算模块运行完毕之后,开始进行脱困轨迹生成模块的计算,并将计算得到的轨迹发送给云端监视器,云端监视器接收到车端计算出的轨迹之后,会判定该轨迹是否满足合理、合法、安全等条件,若是满足则通过云端控制器向车端发送脱困确认指令,脱困状态切换模块会一直监听云端发送的脱困确认指令,接收到脱困确认指令后控制车辆进入脱困状态,以使车辆开始自动脱困,摆脱堵塞困境。
50.图3为本公开实施例提供的一种车辆脱困控制方法的流程示意图,应用于上述脱困系统,具体包括如图3所示的如下步骤s310至s350:
51.s310、获取车辆的当前行驶信息,并根据所述当前行驶信息确定所述车辆的行驶状态。
52.其中,所述当前行驶信息包括驾驶状态、驾驶任务、当前车速、规划行驶轨迹和环境信息。
53.可理解的,获取车辆的当前行驶信息,并根据当前行驶信息识别车辆的行驶状态。其中,当前行驶信息包括驾驶状态、驾驶任务、当前车速、规划行驶轨迹和环境信息,驾驶状态包括自动驾驶状态和非自动驾驶状态,自动驾驶状态可能是由云端控制车辆或者由自动驾驶系统控制车辆所表现的非人工控制车辆的状态,非自动驾驶状态是指人工控制车辆的状态,驾驶任务可以理解为车辆在行驶过程中完成的任务,规划行驶轨迹是指车辆从当前位置行驶到目标位置的轨迹,车辆的行驶状态包括堵塞状态和非堵塞状态,行驶状态可以用traffic jam来表示,如果是堵塞状态,traffic jam的值是1,如果是非堵塞状态,traffic jam的值是0。
54.可选的,上述s310中确定行驶状态具体可以通过如下步骤实现:
55.在所述驾驶状态是自动驾驶状态的情况下,判断所述驾驶任务是否完成;若未完成所述驾驶任务,则在所述当前车速小于或等于预设车速的情况下,根据所述规划行驶轨迹和所述环境信息进行障碍物检测,生成障碍物检测结果;在所述障碍物检测结果是所述车辆行驶前方存在障碍物的情况下,计算所述车辆同所述障碍物检测结果中每个障碍物的目标距离;若所述目标距离小于第一预设距离,且根据所述环境信息中所述车辆所在目标车道的交通灯确定所述车辆行驶前方为允许通行,则确定所述车辆处于堵塞状态。
56.可理解的,判断车辆当前的驾驶状态是否是自动驾驶状态,若驾驶状态不是自动驾驶状态,而可能是人为控制的车辆,可以直接确定车辆处于非堵塞状态,此时traffic jam=0,若驾驶状态是自动驾驶状态,则判断驾驶任务是否完成,例如判断车辆当前位置是否是目标位置,目标位置是指车辆最终要到达的目的地,若当前位置是目标位置,则说明车辆处于非堵塞状态,此时traffic jam=0,若当前位置不是目标位置,则说明车辆当前尚未完成驾驶任务,还需要继续向前行驶,在当前车速小于或等于预设车速的情况下,优选的,预设车速可以是0,也就是车辆尚未完成行驶任务但是停止运动了,该种情况下继续根据规划行驶轨迹和环境信息进行障碍物检测,生成障碍物检测结果,也就是判断车辆是否是因为周围存在障碍物而无法向前继续行驶,障碍物检测是指检测车辆周围是否存在障碍物,其中,规划行驶轨迹是由一条离散的姿态点组成的,每个姿态点都代表车辆的可能运动位置,然后检查每个姿态点是否和环境信息中的障碍物发生碰撞,以进行碰撞检测,生成障碍物检测结果,若发生碰撞说明车辆若按照规划行驶轨迹继续行驶将会和障碍物发生碰撞,
因此车辆停止运动,若障碍物检测结果为车辆周围不存在障碍物,则确定车辆处于非堵塞状态,此时traffic jam=0,若障碍物检测结果是车辆行驶前方存在障碍物,则继续计算车辆同障碍物检测结果中每个障碍物的目标距离,若目标距离大于或等于第一预设距离,则确定车辆处于非堵塞状态,若目标距离小于第一预设距离,且根据环境信息中车辆所在目标车道的交通灯确定车辆行驶前方为允许通行,即车辆所在车道的交通信号灯不是红灯,该种情况下确定车辆处于堵塞状态,此时traffic jam=1,若车辆所在车道的交通信号灯是红灯,则确定车辆处于非堵塞状态,此时traffic jam=0,其中,第一预设距离可根据用户需求自行确定,在此不作限定。通过上述步骤能够自动识别车辆是否处于堵塞状态,最大程度排除特殊情况且识别准确率也比较高。
57.可选的,确定车辆处于堵塞状态后,具体还包括如下步骤:
58.确定所述车辆处于堵塞状态的第一时刻;从所述第一时刻开始计算所述车辆的堵塞时间;若所述堵塞时间大于预设时间,则将所述堵塞状态发送至云端,以使所述云端基于所述堵塞状态生成脱困指令,所述脱困指令用于指示计算所述车辆的脱困位置。
59.可理解的,确定车辆处于堵塞状态(traffic jam=1)后,此时车端并不会直接向云端发送堵塞状态,而是引入时钟计时器,以提高堵塞状态的识别准确率。具体的,获取车辆处于堵塞状态的第一时刻,也就是获取计算得到traffic jam=1的时刻,第一时刻还可以理解为堵塞开始时间,第一时刻记为t0,实时获取车辆的当前时刻,并记为t1,从第一时刻开始根据当前时刻计算车辆的堵塞时间,堵塞时间记为t2,其中,t2=t1-t0。判断堵塞时间是否大于预设时间,预设时间可以理解为堵塞界定时间,记为t3,优选的,t3可以是5s,若堵塞时间大于预设时间,也就是确定车辆处于堵塞状态一段时间后,车端再向云端发送堵塞状态,若堵塞时间小于或等于预设时间,则重新判断车辆是否还仍然处于堵塞状态,若车辆仍处于堵塞状态,则继续执行上述流程,若车辆不处于堵塞状态,则将t0更新为t1。堵塞状态的发送过程是,车辆堵塞状态识别模块向车端进程通信服务模块发送堵塞状态,然后车端的云服务客户端从车端进程通信服务模块中获取到堵塞状态,随后云服务客户端也能过车云通信服务将堵塞状态发送到云端监视器。
60.可理解的,云端监视器在接收到堵塞状态后,后台监视员通过云端监视器判断车辆的周围环境,若监视员确定车辆确实属于堵塞状态,车辆的自动驾驶系统已经陷入了堵塞困境,车辆无法按照规划行驶轨迹继续向前行驶,此时需要触发车端的脱困功能来增强自动驾驶车辆的通过性,监视员通过云端控制器向车端发送脱困指令。
61.s320、在所述行驶状态是堵塞状态的情况下,根据所述当前行驶信息确定所述车辆对应的多条道路。
62.可理解的,确定行驶状态是堵塞状态的情况下,可以直接根据当前行驶信息确定车辆对应的多条道路,也可以在上述s310的基础上,云端向车端发送脱困指令后,脱困系统根据当前行驶信息确定车辆对应的多条道路,再利用脱困位置计算模块进行脱困位置的计算,脱困位置计算模块一直处于接收云端发送脱困指令的等待状态,接收到脱困指令说明云端控制器希望车辆能够自主脱困。具体的,车端确定行驶状态是堵塞状态并接收到脱困指令后,根据当前行驶信息确定车辆对应的多条道路,具体可以根据环境信息、定位信息和当前位置等确定多条道路,其中,多条道路可能是车辆所在道路、所在道路的相邻道路以及和所在道路不相邻但允许车辆通过的道路。
63.s330、在所述多条道路中筛选出有效道路。
64.可理解的,在上述s320的基础上,根据交通规则和交通环境确定多条车道中每条车道的有效性,筛选出有效车道,有效道路是指车辆可以有效行驶的道路,有效道路的数量可以小于或等于多条道路的数量。其中,将车道的有效性用lane
valid
表示,若lane
valid
=0说明该车道为无效车道,若lane
valid
=1说明该车道为有效车道,如果车道是有效的,需要在车道上确定搜索起点,如果车道是无效的,则无需在该车道上进行搜索。
65.在一实施例中,在所述多条道路中筛选出有效道路,包括:
66.针对所述多条车道中的每条车道,判断所述车道是否是所述车辆所在的目标车道,若是,则将所述车道确定为有效车道;若否,则在所述车道是所述目标车道的相邻车道、且所述车道的车道线是允许通行的情况下,确定所述车道的动态障碍物在所述车辆前方的情况下,将所述车道确定为有效车道。
67.具体的,如图4为本公开实施例提供的一种用于实现s330的方法的流程图,用于实现s330的方法有多种,本技术对此不作限制,本发明用于实现s330的方法包括s331至s332:
68.s331、针对所述多条车道中的每条车道,判断所述车道是否是所述车辆所在的目标车道,若是,则将所述车道确定为有效车道。
69.s332、若否,则在所述车道是所述目标车道的相邻车道、且所述车道的车道线是允许通行的情况下,确定所述车道的动态障碍物在所述车辆行驶前方的情况下,将所述车道确定为有效车道。
70.可理解的,针对多条车道中的每条车道,根据车道的车道信息判断该车道是否是车辆所在的目标车道,也就是判断车辆是否行驶在该车道上,若车辆行驶在该车道上,将该车道直接确定为有效车道,若车辆未行驶在该车道上,则判断该车道是否是目标车道的相邻车道,若该车道不是目标车道的相邻车道,则将该车道确定为无效车道,若该车道是目标车道的相邻车道,则判断该车道的车道线是否是实线,也就是判断车辆能否从目标车道行驶至该车道,若该车道的车道线是实线,则将该车道确定为无效车道,若该车道的车道线不是实线,在该车道的所有障碍物中确定动态障碍物,并判断该车道上的所有动态障碍物是否在车辆的后面行驶,若该车道上的所有动态障碍物都在车辆的后面行驶,则将该车道确定为无效车道,若该车道上的所有动态障碍物都在车辆的前面行驶,则将该车道确定为有效车道。
71.示例性地,图5为本公开实施例提供的一种行驶场景的示意图,图5包括2条加粗的道路边界、车道0、车道1和车道2,其中,车道1中车辆行驶前方包括障碍物1和障碍物2,其中,障碍物1是静态障碍物,障碍物2是动态障碍物,车道1为车辆所在的目标车道,车道1上的箭头指向为车辆的行驶方向,因此直接将车道1确定为有效车道;车道0为车道1的相邻车道,且车道1和车道0相邻的车道线为虚线,说明允许车辆由车道1行驶至车道0,车道0上的障碍物4为动态障碍物,障碍物4在车辆的行驶后方,因此,车道0为无效车道;车道2为车道1的相邻车道,车道2上的障碍物3为动态障碍物,但是车道1和车道2相邻的车道线为实线,说明不允许车辆由车道1行驶至车道2,因此,车道2为无效车道。在图5所示的行驶场景中,通过上述计算有效车道的方法,可以在车道0、车道1和车道2等多条车道中筛选出车道1为有效车道;其中,车道的有效性表示为lane
valid
,有效车道lane
valid
=1,无效车道lane
valid
=0。
72.s340、计算所述车辆在所述有效道路上的脱困位置。
73.可理解的,s340可由上述脱困位置计算模块执行,脱困位置计算模块包括3个核心的计算单元,分别是搜索起点计算单元、脱困位置搜索单元、最优脱困位置选择单元,上述3个计算单元用于计算搜索起点、基于搜索起点搜索出脱困位置、判断脱困位置是否有效以及得到有效的脱困位置。
74.其中,脱困位置是指车辆可以摆脱堵塞困境的位置,在确定了有效车道后,计算车辆在有效道路上的脱困位置,也就是在有效道路上计算出一个合理的位置,只要车辆行驶到该合理的位置就能摆脱被堵塞的困境。
75.在一实施例中,所述计算所述车辆在所述有效道路上的脱困位置,包括:
76.在所述有效车道上确定搜索起点;基于所述搜索起点和所述有效车道上的障碍物,计算所述车辆在所述有效车道上的脱困位置。
77.具体的,图6为本公开实施例提供的一种用于实现s340的方法的流程图,用于实现s340的方法有多种,本技术对此不作限制,本发明用于实现s340的方法包括s341至s342:
78.s341、在所述有效车道上确定搜索起点。
79.s342、基于所述搜索起点和所述有效车道上的障碍物,计算所述车辆在所述有效车道上的脱困位置。
80.在一实施例中,在所述有效车道上确定搜索起点,包括:
81.确定所述有效车道上的所有静态障碍物,并将所有静态障碍物按照同所述车辆的距离进行排序,生成障碍物列表;确定所述障碍物列表中首个障碍物的多个顶点,并将所述多个顶点中距离所述车辆最远的顶点作为目标顶点;从所述目标顶点向所述有效车道的中心线作垂线,确定所述垂线和所述中心线的交点;根据所述交点在所述有效车道上确定搜索起点。
82.可理解的,对于每一条有效车道,需要确定有效车道上的搜索起点,搜索起点记为point
start
,搜索起点的确定流程如下:统计有效车道上所有的静态障碍物,静态障碍物可以是停在车道上的车辆,具体可以是该车道预设范围内的所有静态障碍物,预设范围可以是200m。随后将所有静态障碍物按照和车辆的距离进行排序,生成障碍物列表,障碍物列表记为list
obs
,具体的,可以将所有静态障碍物按照距离车辆从近到远的顺序排序。得到障碍物列表后,确定障碍物列表中首个障碍物的多个顶点,也就是获取列表中第一个障碍物,每个障碍物都存在至少一个顶点,计算每个顶点到车辆的距离,并将多个顶点中距离车辆最远的顶点作为目标顶点,目标顶点记为point
max
。从目标顶点向有效车道的中心线作垂线,确定所述垂线和中心线的交点,也就是计算point
max
到车道中心线的最近点,最近点(交点)记为point
close
。可以直接将交点确定为搜索起点,搜索起点记为point
start
,也就是将point
close
对应的值存储到point
start
中,完成point
start
的初始化。可理解的是,为了减少后续基于搜索起点搜索脱困位置的搜索量,将point
start
向前移动第四预设距离,第四预设距离记为dist0,将移动第四预设距离后的点作为在有效车道上最后的搜索起点point
start
,完成初始化。
83.示例性地,如图7为本公开实施例提供的一种有效车道上搜索起点的示意图,有效车道为图5中的车道1,也就是车辆所在的目标车道,如图7所示,障碍物1为距离车辆最近的静态障碍物(障碍物列表中首个静态障碍物或者第一个静态障碍物),障碍物2为动态障碍物,障碍物1包括4个顶点,分别记为顶点1至顶点4,将4个顶点中距离车辆最远的顶点2作为
目标顶点,随后从顶点2向有效车道的中心线作垂线,确定垂线和中心线的交点,记为交点1,将交点1确定为搜索起点。
84.进一步,为了减少后续基于搜索起点搜索脱困位置的搜索量,将最近点(交点1)point
close
向前移动第四预设距离dist0,得到搜索起点point
start
,即图7中的搜索起点。
85.在一实施例中,基于所述搜索起点和所述有效车道上的障碍物,计算所述车辆在所述有效车道上的脱困位置,包括:
86.基于所述搜索起点、第二预设距离和第三预设距离得到搜索点;对每个所述搜索点构建所述车辆的虚拟模型;将所述虚拟模型和所述有效车道上的静态障碍物进行碰撞检测,得到每个所述搜索点对应的碰撞检测结果;基于每个所述搜索点对应的碰撞检测结果,将所述碰撞检测结果为无碰撞对应的搜索点在所述有效车道上的位置确定为脱困位置。
87.可理解的,确定每个有效车道上的搜索起点后,针对每个有效车道,基于该有效车道上的搜索起点、第二预设距离和第三预设距离得到至少一个搜索点,具体的,将搜索起点向左和/或右偏移第二预设距离得到一个新的搜索点,再将新的搜索点继续向左和/或右偏移第二预设距离得到另一个新的搜索点,以此类推,直至最新得到的搜索点超过有效车道的车道线,则停止搜索,得到一组搜索点,记为第一组搜索点,第一组搜索点包括搜索起点在内的至少一个搜索点,其中,将第二预设距离记为dist
lat
。可理解的是,可以得到一组搜索点后就判断第一组搜索点的有效性,若第一组搜索点都无效,则继续沿着车道线的方向,将第一组搜索点向前偏移第三预设距离,得到第二组搜索点,再判断第二组搜索点的有效性,直至得到有效的搜索点,还可以计算得到多组搜索点后,在由第一组搜索点开始确定每组搜索点的有效性,具体得到搜索点的方式不作限定,其中,第三预设距离记为dist1,dist1可以是采样点的分辨率,是有效车道方向的分辨率,优选的,dist1可以是0.2m。
88.示例性的,如图7所示,基于搜索起点、第二预设距离和第三预设距离,搜索得到多组搜索点,记为第一组搜索点至第i组搜索点,每组包括至少一个搜索点,如图7中用虚线框选的第一组搜索点包括5个搜索点,具体搜索过程在此不作赘述。
89.可理解的,得到至少一个搜索点后,判断每个搜索点有效性的流程如下:对每个搜索点构建车辆的虚拟模型,也就是将每个搜索点拓展成车辆的形状,同时为了保证脱困位置的安全性,在虚拟模型四周增加安全距离,得到膨胀后的虚拟模型,其中,安全距离可以根据用户需求自行确定。首先判断第一组搜索点中每个搜索点是否有效,将膨胀后的虚拟模型和有效车道上的静态障碍物进行碰撞检测,得到每个搜索点对应的碰撞检测结果,碰撞检测是指车辆在行驶过程中是否会同静态障碍物发生碰撞。基于每个搜索点对应的碰撞检测结果,将碰撞检测结果为无碰撞对应的搜索点在有效车道上的位置确定为脱困位置,也就是若基于该搜索点得到的膨胀后的虚拟模型没有和静态障碍物发生碰撞,则认为该搜索点有效,将该搜索点在有效车道上的位置作为脱困位置,若发生碰撞,则说明该搜索点无效,继续选取下一组搜索点,或者继续判断下一搜索点的有效性检测。
90.示例性的,参见图8,图8为本公开实施例提供的一种车辆的示意图,图8是基于上述图7中某一搜索点构建的虚拟模型的俯视图,图8包括搜索点和基于搜索点构建的车辆形状的虚拟模型,如图8所示,车辆左右两侧分别存在安全距离,记为车辆左侧安全距离和车辆右侧安全距离,车辆后方和车头方向也都存在安全距离,记为车辆后方安全距离和车辆前方安全距离,也就是在车身四周增加了安全距离,可以理解为膨胀后的虚拟模型,另外车
身每一侧增加的安全距离不完全相同,可以是预先设置的固定值,具体可以根据车辆所在的应用场景自行设置。
91.可理解的是,每条有效车道经过搜索后,都可能会搜索出有效的脱困位置,例如,3条有效车道都存在有效的脱困位置,需要在3个有效的脱困位置中选择一个最优的脱困位置生成一个最优的脱困轨迹,或者基于每个有效的脱困位置都生成一个脱困轨迹,也就是生成3个脱困轨迹,以供后续使用。若要在3个有效的脱困位置中选择一个最优的脱困位置,需要计算每个有效的脱困位置同车辆的当前距离,将当前距离最短所对应的脱困位置作为最优的脱困位置。计算得到脱困位置后,若表示脱困位置有效性的goal
valid
的值为1,说明脱困位置有效,随后会调用脱困轨迹生成模块,基于当前位置和脱困位置生成脱困轨迹,若表示脱困位置有效性的goal
valid
的值为0,说明脱困位置无效,此时车端会向云端发送没有脱困位置的状态信息。
92.可理解的,通过在多条车道中筛选出有效车道,排除无效车道,有利于减少后续的计算量和搜索量,同时还能提高脱困位置的计算准确性;随后在有效车道上根据交通规则和交通环境确定搜索起点,可以提高车辆在脱困模式下依据脱困轨迹行驶的安全性;基于搜索起点、第二预设距离和第三预设距离得到至少一个搜索点,将搜索点在增加安全距离的情况下构建成虚拟车辆模型,将虚拟车辆模型同有效车道上的静态障碍物进行碰撞检测,将碰撞检测结果为无碰撞对应的搜索点在有效车道上的位置确定为脱困位置,该种确定脱困位置的方式能够快速准确的得到使车辆摆脱堵塞困境的安全位置,也能够最大限度的确保车辆在进行自动脱困时到达脱困位置的行驶过程的安全性和通过性。
93.s350、基于所述当前行驶信息中当前位置和所述脱困位置生成脱困轨迹,并控制所述车辆基于所述脱困轨迹行驶。
94.可理解的,在以上实施例的基础上,脱困位置计算模块运行完毕之后,开始进行脱困轨迹生成模块的计算。具体的,在脱困位置有效的情况下,基于车辆的当前位置和脱困位置生成脱困轨迹,脱困轨迹是指车辆由当前位置行驶至脱困位置以摆脱堵塞困境的行驶轨迹,具体可以采用轨迹生成算法搜索出轨迹,可理解的是,若搜索出轨迹,说明该轨迹就是有效的,可以直接输出脱困轨迹,并向云端发送有效的脱困轨迹,若没有搜索出轨迹,说明在当前环境下无法继续向前行驶,输出无效轨迹的信息,并向云端发送轨迹生成失败的信息。云端监视器接收到车端计算出的脱困轨迹后,会进一步判定该脱困轨迹是否符合合理、合法且安全的脱困条件,在该脱困轨迹符合脱困条件的情况下,通过云端控制器向车端发送脱困确认指令。
95.可理解的,车端的脱困状态切换模块会一直监听云端发送的脱困确认指令,一旦接收到脱困确认指令,就会控制车辆进入脱困状态,按照脱困轨迹行驶至脱困位置,完成自主脱困。
96.示例性的,参见图9,图9为本公开实施例提供的一种车端和云端信息交互的示意图,也就是车端成功脱困过程中的车云信息交互流程,具体车云交互流程如下:车端向云端发送车辆堵塞状态,云端向车端发送脱困指令,车端向云端发送脱困轨迹,云端向车端发送脱困确认指令,完成车云信息交互。车端的脱困状态切换模块在接收到云端的脱困确认指令之后,会由自动驾驶模式切换到脱困模式,在脱困模式下车辆按照脱困轨迹行驶,在车辆由当前位置行驶到脱困位置之后,车辆会停止运动,并退出脱困模式,切换到自动驾驶模
式,开始继续按照规划行驶轨迹执行车辆尚未完成的驾驶任务。
97.本公开实施例提供的一种车辆脱困控制方法,应用于上述脱困系统,包括:获取车辆的当前行驶信息,并根据当前行驶信息自动识别出车辆的行驶状态,行驶状态包括堵塞状态和非堵塞状态,在行驶状态是堵塞状态的情况下,根据当前行驶信息确定车辆对应的多条道路,随后在多条道路中筛选出有效道路,并计算车辆在有效道路上的脱困位置,基于车辆的当前位置和脱困位置生成脱困轨迹,并控制车辆基于脱困轨迹行驶,当车辆行驶至脱困轨迹后,车辆就摆脱了被堵塞的困境。本公开提供的方法使得车辆在复杂场景中能够自动突破安全性约束和交通环境约束,脱离堵塞状态继续完成驾驶任务。
98.在上述实施例的基础上,参见图10,图10为本公开实施例提供的一种用于实现s350的方法的流程图,可选的,所述基于所述当前行驶信息中当前位置和所述脱困位置生成脱困轨迹,具体包括如图10所示的如下步骤s101至s104:
99.可理解的,脱困位置计算模块运行完毕后,开始进行脱困轨迹生成模块的计算,如果脱困位置计算模块计算的脱困位置有效,脱困轨迹生成模块就会计算脱困轨迹,如果脱困位置无效,脱困轨迹生成模块就会停止计算。脱困轨迹生成模块具体包括3个计算单元,分别是安全性约束生成单元、可行驶区域计算单元和轨迹生成单元,其中,安全性约束生成单元用于保证行驶轨迹和障碍物的安全宽度,一般而言,行驶轨迹和障碍物的距离越大,安全性就越好,但是安全性太高也可能会导致车辆通过性降低;可行驶区域计算单元用于提供车辆当前可行使的区域;轨迹生成单元用于在安全宽度和可行驶区域的基础上,生成由当前位置行驶至脱困位置的脱困轨迹,上述安全性约束生成单元、可行驶区域计算单元和轨迹生成单元等3个计算单元的具体实现流程参见下述实施例。
100.s101、获取所述车辆的预设可行使区域和安全宽度。
101.可理解的,基于上述安全性和通过性的关系,本实施例引入两级安全宽度,分别是第一安全宽度和第二安全宽度,第二安全宽度小于第一安全宽度,引入两级安全宽的方式能够最大程度的,在提高安全性的同时确保通过性,其中,第一安全宽度记为优选的,为0.5米,第二级安全宽度记为优选的,为0.1米,安全宽度用于保证在实际中车辆和障碍物不会发生碰撞,车辆和障碍物之间的宽度大于安全宽度即可确保安全性。
102.可理解的,基于车辆的当前位置获取的预设可行使区域,不同场景下车辆的可行使区域不同,比如路口场景中可行驶区域就是路口的范围,u型弯场景中可行驶区域就是u型弯的范围,其中,可行驶区域的范围通常是比车道所占的面积要大的,u型弯处的车道比可行驶区域要小,可行驶区域就是车辆可以行驶的区域。如果车辆在u型弯场景发生堵塞,车辆自动脱困的时候就需要利用u型弯的范围,生成脱困轨迹。可理解的是,可行驶区域可以是提前绘制好,并且存储到高精地图中,车辆在行驶过程中可以利用高精地图服务基于当前位置实时读取可行驶区域,有效加快了脱困轨迹的生成速度。可行驶区域通常使用一系列点集表示,记为space
drive
={p0,p1,...,pn},不同的场景都对应有可行驶区域,可行驶区域的形状不固定,大小也不固定,是根据行驶环境绘制的。
103.示例性的,参见图11,图11为本公开实施例提供的一种可行使区域的示意图,具体是u型弯场景中可行驶区域的示意图,如图11所示,两条车道线组成车道,车辆行驶在车道
上,车辆行驶前方由虚线将车道部分区域框选的区域为可行使区域。
104.s102、计算所述当前行驶信息中当前位置到目标节点的第一代价,计算所述目标节点到所述脱困位置的第二代价。
105.其中,所述目标节点是在所述可行使区域内搜索到的节点。
106.可理解的,在上述s101的基础上,采用搜索算法在可行使区域内利用第一安全宽度和第二安全宽度搜索出目标节点,搜索算法可以是混合a星算法,具体用于生成脱困轨迹的搜索算法不作限定。可理解的是,混合a星算法的代价值公式为f=g+h,其中,f是一个节点的总代价值,g是从车辆的当前位置到一个目标节点的实际代价值,也就是上述第一代价,实际代价值可以理解为距离(曲线距离或直线距离),通常是路径的长度值;h是目标节点到脱困位置的启发值,也就是上述第二代价,启发值通常使用欧式距离代替。对于节点i而言,如果有fi=gi+hi,节点i的一个子节点q的代价值为fq=gi+g(i,q)+qi,g(i,q)是指节点i到子节点q的实际代价值。
107.s103、将所述当前位置到所述目标节点的目标路径同所述安全宽度进行碰撞检测,得到碰撞检测结果。
108.可理解的,在上述s102的基础上,将当前位置到目标节点的目标路径同安全宽度进行碰撞检测,得到碰撞检测结果,也就是判断车辆按照目路径行驶时是否会同障碍物发生碰撞。
109.s104、在所述碰撞检测结果为无碰撞的情况下,若所述第一代价和所述第二代价的和值小于预设阈值,则根据所述当前位置、所述目标节点和所述脱困位置生成脱困轨迹。
110.可理解的,在上述s103的基础上,得到无碰撞的检测结果后,计算第一代价和第二代价的和值,也就是计算目标节点的总代价值fi=gi+hi,若总代价值小于预设阈值,则根据当前位置、目标节点和脱困位置生成脱困轨迹,脱困轨迹是指由当前位置开始,途经目标节点在有效车道上的位置,到达脱困位置的行驶轨迹。
111.可理解的,使用混合a星算法生成脱困轨迹时,使用到的地图是栅格地图,因此需要将可行驶区域的边界转换成栅格地图,便于后续混合a星算法计算脱困轨迹。
112.可理解的,若总代价值大于或等于预设阈值,则需要继续搜索出目标节点对应的多个子节点,直至生成最优的脱困轨迹。
113.其中,安全宽度包括第一安全宽度和第二安全宽度,第一安全宽度大于第二安全宽度,相应的,基于不同安全宽度进行碰撞检测会生成不同的碰撞检测结果,碰撞检测结果包括第一安全宽度对应的第一碰撞结果以及第二安全宽度对应的第二碰撞结果,无碰撞包括第一安全宽度对应的无第一碰撞以及第二安全宽度对应的无第二碰撞,有碰撞包括第一安全宽度对应的有第一碰撞以及第二安全宽度对应的有第二碰撞。
114.可选的,若上述s103得到的碰撞检测结果为有碰撞,可以通过两种方式生成脱困轨迹。
115.可选的,第一种方式具体通过如下步骤实现:
116.若所述第一代价和所述第二代价的和值大于或等于所述预设阈值,则在所述可行使区域内搜索所述目标节点对应的多个子节点;针对所述多个子节点中每个子节点,将所述目标节点到所述子节点的目标路径同所述第一安全宽度进行碰撞检测,得到第一碰撞检测结果,若所述第一碰撞检测结果为无第一碰撞,则将所述子节点确定为第一有效节点,并
将所述第一有效节点确定为目标有效节点;计算所述目标有效节点到所述目标节点的第三代价,计算所述目标有效节点到所述脱困位置的第四代价;若所述第一代价、所述第三代价和所述第四代价的和值小于所述预设阈值,则根据所述当前位置、所述目标节点、所述目标有效节点和所述脱困位置生成脱困轨迹。
117.可理解的,在可行驶区域搜索到目标节点对应的多个子节点后,针对每个子节点,优先使用第一安全宽度同目标节点到子节点的目标路径进行碰撞检测,得到第一碰撞检测结果,第一碰撞检测结果如果是目标节点到子节点的路径和第一安全宽度是无第一碰撞的,说明子节点有效,将子节点作为第一有效节点,并将第一有效节点确定为目标有效节点,该种情况是指车辆和障碍物的距离大于第一安全宽度0.5m,车辆行驶至子节点的位置时和障碍物发生碰撞的可能性极低。随后,计算目标有效节点到目标节点的第三代价,也就是子节点到目标节点的代价,计算目标有效节点到脱困位置的第四代价,计算第一代价、第三代价和第四代价的和值,若和值小于预设阈值,则根据当前位置、目标节点、目标有效节点和脱困位置生成脱困轨迹。
118.可选的,在上述实施例的基础上,若第一碰撞检测结果为有第一碰撞,也就是车辆同障碍物的距离小于第一安全宽度,需要同第二安全宽度继续进行碰撞检测,该种情况下生成脱困轨迹具体可以通过如下步骤实现:若所述第一碰撞检测结果为有第一碰撞,将所述目标节点到所述子节点的目标路径同所述第二安全宽度进行碰撞检测,得到第二碰撞检测结果,若所述第二碰撞检测结果为无第二碰撞,则将所述子节点确定为第二有效节点,并将所述第二有效节点确定为所述目标有效节点;根据所述第三代价计算得到第五代价;若所述第一代价、所述第三代价、所述第四代价和所述第五代价的和值小于所述预设阈值,则根据所述当前位置、所述目标节点、所述目标有效节点和所述脱困位置生成脱困轨迹。
119.可理解的,若第一碰撞检测结果为有第一碰撞,也就是目标路径和第一安全宽度发生碰撞,使用第二安全宽度继续进行碰撞检测,生成第二碰撞检测结果,如果此时第二碰撞检测结果为目标路径无第二碰撞,则认为子节点有效,将子节点确定为第二有效节点,并将第二有效节点确定为目标有效节点,该种情况下子节点虽然有效,但是该子节点距离障碍物比较近,因此给子节点增加一个路径惩罚代价,记为g(i,q),子节点的总代价为fq=gi+2g(i,q)+qi,该种情况是指车辆和障碍物的距离小于第一安全宽度0.5m大于第二安全宽度0.1m,说明车辆行驶至子节点的位置时,有一定可能会同障碍物发生碰撞;如果第二安全宽度下计算的目标路径还是有碰撞,就认为子节点无效,该种情况是指车辆和障碍物的距离小于第二安全宽度0.1m,说明车辆行驶至子节点的位置时,极有可能会同障碍物发生碰撞,因此出于安全性考虑可以删除子节点,继续搜索下一子节点。通过增加安全宽度的搜索方式,可以让搜索出的轨迹远离障碍物,并且在空间比较狭窄的时候,还能够在保证安全的情况下最大限度的搜索出轨迹。
120.可选的,一种可能的场景,只和第一安全宽度进行碰撞检测,得到无第一碰撞的检测结果,无需和第二安全宽度进行碰撞检测,最终生成脱困轨迹,该种场景下第二种方式具体可以通过如下步骤实现:
121.若所述第一代价和所述第二代价的和值大于或等于所述预设阈值,则在所述可行使区域内搜索所述目标节点对应的多个子节点;针对所述多个子节点中每个子节点,将所述目标节点到所述子节点的目标路径同所述第一安全宽度进行碰撞检测,得到第一碰撞检
测结果,若所述第一碰撞检测结果为无第一碰撞,则将所述子节点确定为目标有效节点;计算所述目标有效节点到所述目标节点的第三代价,计算所述目标有效节点到所述脱困位置的第四代价;若所述第一代价、所述第三代价和所述第四代价的和值小于所述预设阈值,则根据所述当前位置、所述目标节点、所述目标有效节点和所述脱困位置生成脱困轨迹。
122.可选的,另一种可能的场景,和第一安全宽度进行碰撞检测,得到有第一碰撞的检测结果,随后和第二安全宽度进行碰撞检测,得到无第二碰撞的检测结果,最终生成脱困轨迹,该种场景下第二种方式具体还可以通过如下步骤实现:
123.若所述第一代价和所述第二代价的和值大于或等于所述预设阈值,则在所述可行使区域内搜索所述目标节点对应的多个子节点;针对所述多个子节点中每个子节点,将所述目标节点到所述子节点的目标路径同所述第一安全宽度进行碰撞检测,得到第一碰撞检测结果;若所述第一碰撞检测结果为有第一碰撞,则将所述目标路径同所述第二安全宽度进行碰撞检测,得到第二碰撞检测结果,若所述第二碰撞检测结果为无第二碰撞,则将所述子节点确定为目标有效节点;计算所述目标有效节点到所述目标节点的第三代价,计算所述目标有效节点到所述脱困位置的第四代价;根据所述第三代价计算得到第五代价;若所述第一代价、所述第三代价、所述第四代价和所述第五代价的和值小于所述预设阈值,则根据所述当前位置、所述目标节点、所述目标有效节点和所述脱困位置生成脱困轨迹。
124.可理解的,生成脱困轨迹的第二种方式具体实现步骤参见上述生成脱困轨迹的第一种方式,在此不做赘述。
125.本公开实施例提供了一种车辆脱困控制方法,通过搜索算法在车辆的可行使区域搜索出目标节点,将当前位置到目标节点的目标路径同第一安全宽度进行碰撞检测,如果路径无碰撞的,说明节点有效,可以确保车辆由当前位置行驶至有效车道上目标节点所在位置的安全性和通过性,如果路径碰撞,使用第二安全宽度和路径进行碰撞检查,如果此时路径无碰撞,也认为节点有效,但是该种情况车辆在行驶过程中距离障碍物比较近,因此增加路径惩罚代价,如果第二安全宽度下计算的路径仍然有碰撞,就认为节点无效,删除节点,重新搜索新的节点,直至生成代价较低、安全性高以及可通过性强的脱困轨迹。本公开提供的基于安全宽度的搜索方式,使得搜索出的轨迹远离障碍物,并且在空间比较狭窄的时候,还能够搜索出轨迹,提高可实用性。
126.在上述实施例的基础上,参见图12,图12为本公开实施例提供的一种行驶状态确定方法的流程示意图,具体包括如图12所示的如下步骤s121至s129:
127.s121、获取车辆的当前行驶信息。
128.s122、判断车辆是否处于自动驾驶状态。
129.可理解的,若是,执行s123,若否,输出车辆处于非堵塞状态的识别结果。
130.s123、判断车辆是否完成驾驶任务。
131.可理解的,若否,执行s124,若是,输出车辆处于非堵塞状态的识别结果。
132.s124、判断当前车速是否大于0。
133.可理解的,若否,执行s125,若是,输出车辆处于非堵塞状态的识别结果。
134.s125、获取规划模块输出的规划行驶轨迹和环境信息进行障碍物检测,生成障碍物检测结果。
135.s126、根据障碍物检测结果判断车辆行驶前方是否存在障碍物。
136.可理解的,若是,执行s127,若否,输出车辆处于非堵塞状态的识别结果。
137.s127、计算车辆同障碍物检测结果中每个障碍物的目标距离。
138.s128、判断目标距离是否大于第一预设距离。
139.可理解的,若否,执行s129,若是,输出车辆处于非堵塞状态的识别结果。
140.s129、根据环境信息中车辆所在目标车道的交通灯确定车辆行驶前方是否是红灯。
141.可理解的,若否,输出车辆处于堵塞状态的识别结果,若是,输出车辆处于非堵塞状态的识别结果。可理解的,上述s121至s129的具体实现步骤参见上述实施例,在此不做赘述。
142.在上述实施例的基础上,参见图13,图13为本公开实施例提供的一种行驶状态发送方法的流程示意图,具体包括如图13所示的如下步骤s131至s136:
143.s131、获取车辆的行驶状态。
144.s132、判断车辆是否处于堵塞状态。
145.可理解的,若是,执行s133,若否,执行s136。
146.s133、确定车辆处于堵塞状态的第一时刻,并从第一时刻开始计算车辆的堵塞时间。
147.s134、判断堵塞时间是否大于预设时间。
148.可理解的,若是,执行s135,若否,执行s131。
149.s135、向云端发送堵塞状态。
150.s136、将车辆的当前时刻设置为第一时刻。
151.可理解的,上述s131至s136的具体实现步骤参见上述实施例,在此不做赘述。
152.在上述实施例的基础上,图14为本公开实施例提供的一种脱困位置确定方法的流程示意图,应用于上述脱困位置计算模块,具体包括如图14所示的如下步骤:
153.s141、判断是否接收到脱困指令。
154.可理解的,若是,执行s142,若否,执行s146。
155.s142、在多条车道中筛选出有效车道,并在有效车道上确定搜索起点。
156.s143、基于搜索起点和有效车道上的障碍物,计算车辆在有效车道上的脱困位置。
157.s144、判断脱困位置是否有效。
158.可理解的,若是,执行s145,若否,s146。
159.s145、基于当前位置和脱困位置生成脱困轨迹。
160.s146、向云端发送没有脱困位置的状态信息。
161.可理解的,上述s141至s146确定脱困位置的具体实现步骤参见上述实施例,在此不做赘述。
162.在上述实施例的基础上,图15为本公开实施例提供的一种有效车道确定方法的流程示意图,具体包括如图15所示的如下步骤s151至s157:
163.s151、获取车道的车道信息。
164.s152、根据车道信息判断车道是否是车辆所在的目标车道。
165.可理解的,若是,执行s156,若否,执行s153。
166.s153、判断车道是否是目标车道的相邻车道。
167.可理解的,若是,执行s154,若否,执行s157。
168.s154、判断车道的车道线是否是实线。
169.可理解的,若是,执行s157,若否,执行s155。
170.s155、判断车道上是否存在动态障碍物,且动态障碍物在车辆的行驶后面。
171.可理解的,若是,执行s157,若否,执行s156。
172.s156、车道为有效车道。
173.s157、车道为无效车道。
174.可理解的,上述s151至s157确定有效车道的具体实现步骤参见上述实施例,在此不作赘述。
175.在上述实施例的基础上,图16为本公开实施例提供的一种脱困轨迹生成方法的流程示意图,具体包括如图16所示的如下步骤s161至s165:
176.s161、获取脱困位置、可行驶区域和安全宽度。
177.s162、基于脱困位置、可行驶区域和安全宽度,调用轨迹生成算法生成脱困轨迹。
178.s163、判断脱困轨迹是否有效。
179.可理解的,若是,执行s164,若否,执行s165。
180.s164、向云端发送脱困轨迹。
181.s165、向云端发送轨迹生成失败信息。
182.可理解的,上述s161至s165生成脱困轨迹的具体实现步骤参见上述实施例,在此不作赘述。
183.图17为本公开实施例提供的一种车辆脱困控制装置的结构示意图。本公开实施例提供的车辆脱困控制装置可以执行车辆脱困控制方法实施例提供的处理流程,如图17所示,车辆脱困控制装置1700包括获取模块1701、确定模块1702、筛选模块1703、计算模块1704和生成模块1705,其中:
184.获取模块1701,用于获取车辆的当前行驶信息,并根据所述当前行驶信息确定所述车辆的行驶状态;
185.确定模块1702,用于在所述行驶状态是堵塞状态的情况下,根据所述当前行驶信息确定所述车辆对应的多条道路;
186.筛选模块1703,用于在所述多条道路中筛选出有效道路;
187.计算模块1704,用于计算所述车辆在所述有效道路上的脱困位置;
188.生成模块1705,用于基于所述当前行驶信息中当前位置和所述脱困位置生成脱困轨迹,并控制所述车辆基于所述脱困轨迹行驶。
189.可选的,装置1700中所述当前行驶信息包括驾驶状态、驾驶任务、当前车速、规划行驶轨迹和环境信息。
190.可选的,获取模块1701用于:
191.在所述驾驶状态是自动驾驶状态的情况下,判断所述驾驶任务是否完成;若未完成所述驾驶任务,则在所述当前车速小于或等于预设车速的情况下,根据所述规划行驶轨迹和所述环境信息进行障碍物检测,生成障碍物检测结果;在所述障碍物检测结果是所述车辆行驶前方存在障碍物的情况下,计算所述车辆同所述障碍物检测结果中每个障碍物的目标距离;若所述目标距离小于第一预设距离,且根据所述环境信息中所述车辆所在目标
车道的交通灯确定所述车辆行驶前方为允许通行,则确定所述车辆处于堵塞状态。
192.可选的,装置1700还用于:
193.确定所述车辆处于堵塞状态的第一时刻;从所述第一时刻开始计算所述车辆的堵塞时间;若所述堵塞时间大于预设时间,则将所述堵塞状态发送至云端,以使所述云端基于所述堵塞状态生成脱困指令,所述脱困指令用于指示计算所述车辆的脱困位置。
194.可选的,计算模块1704用于:
195.在所述有效车道上确定搜索起点;基于所述搜索起点和所述有效车道上的障碍物,计算所述车辆在所述有效车道上的脱困位置。
196.可选的,筛选模块1703用于:
197.针对所述多条车道中的每条车道,判断所述车道是否是所述车辆所在的目标车道,若是,则将所述车道确定为有效车道;若否,则在所述车道是所述目标车道的相邻车道、且所述车道的车道线是允许通行的情况下,确定所述车道的动态障碍物在所述车辆行驶前方的情况下,将所述车道确定为有效车道。
198.可选的,计算模块1704用于:
199.确定所述有效车道上的所有静态障碍物,并将所有静态障碍物按照同所述车辆的距离进行排序,生成障碍物列表;确定所述障碍物列表中首个障碍物的多个顶点,并将所述多个顶点中距离所述车辆最远的顶点作为目标顶点;从所述目标顶点向所述有效车道的中心线作垂线,确定所述垂线和所述中心线的交点;根据所述交点在所述有效车道上确定搜索起点。
200.可选的,计算模块1704用于:
201.基于所述搜索起点、第二预设距离和第三预设距离得到搜索点;对每个所述搜索点构建所述车辆的虚拟模型;将所述虚拟模型和所述有效车道上的静态障碍物进行碰撞检测,得到每个所述搜索点对应的碰撞检测结果;基于每个所述搜索点对应的碰撞检测结果,将所述碰撞检测结果为无碰撞对应的搜索点在所述有效车道上的位置确定为脱困位置。
202.可选的,生成模块1705用于:
203.获取所述车辆的预设可行使区域和安全宽度;计算所述当前行驶信息中当前位置到目标节点的第一代价,计算所述目标节点到所述脱困位置的第二代价,其中,所述目标节点是在所述可行使区域内搜索到的节点;将所述当前位置到所述目标节点的目标路径同所述安全宽度进行碰撞检测,得到碰撞检测结果;在所述碰撞检测结果为无碰撞的情况下,若所述第一代价和所述第二代价的和值小于预设阈值,则根据所述当前位置、所述目标节点和所述脱困位置生成脱困轨迹。
204.可选的,所述安全宽度包括第一安全宽度,所述碰撞检测结果包括第一碰撞检测结果,所述无碰撞包括无第一碰撞。
205.可选的,生成模块1705还用于:
206.若所述第一代价和所述第二代价的和值大于或等于所述预设阈值,则在所述可行使区域内搜索所述目标节点对应的多个子节点;针对所述多个子节点中每个子节点,将所述目标节点到所述子节点的目标路径同所述第一安全宽度进行碰撞检测,得到第一碰撞检测结果,若所述第一碰撞检测结果为无第一碰撞,则将所述子节点确定为第一有效节点,并将所述第一有效节点确定为目标有效节点;计算所述目标有效节点到所述目标节点的第三
代价,计算所述目标有效节点到所述脱困位置的第四代价;若所述第一代价、所述第三代价和所述第四代价的和值小于所述预设阈值,则根据所述当前位置、所述目标节点、所述目标有效节点和所述脱困位置生成脱困轨迹。
207.可选的,所述安全宽度还包括第二安全宽度,所述第二安全宽度小于所述第一安全宽度,所述碰撞检测结果还包括第二碰撞检测结果,所述无碰撞还包括无第二碰撞。
208.可选的,生成模块1705用于:
209.若所述第一碰撞检测结果为有第一碰撞,将所述目标节点到所述子节点的目标路径同所述第二安全宽度进行碰撞检测,得到第二碰撞检测结果,若所述第二碰撞检测结果为无第二碰撞,则将所述子节点确定为第二有效节点,并将所述第二有效节点确定为所述目标有效节点;根据所述第三代价计算得到第五代价;若所述第一代价、所述第三代价、所述第四代价和所述第五代价的和值小于所述预设阈值,则根据所述当前位置、所述目标节点、所述目标有效节点和所述脱困位置生成脱困轨迹。
210.可选的,所述安全宽度包括第一安全宽度,所述碰撞检测结果包括第一碰撞检测结果,所述无碰撞包括无第一碰撞。
211.可选的,生成模块1705用于:
212.若所述第一代价和所述第二代价的和值大于或等于所述预设阈值,则在所述可行使区域内搜索所述目标节点对应的多个子节点;针对所述多个子节点中每个子节点,将所述目标节点到所述子节点的目标路径同所述第一安全宽度进行碰撞检测,得到第一碰撞检测结果,若所述第一碰撞检测结果为无第一碰撞,则将所述子节点确定为目标有效节点;计算所述目标有效节点到所述目标节点的第三代价,计算所述目标有效节点到所述脱困位置的第四代价;若所述第一代价、所述第三代价和所述第四代价的和值小于所述预设阈值,则根据所述当前位置、所述目标节点、所述目标有效节点和所述脱困位置生成脱困轨迹。
213.可选的,所述安全宽度包括第一安全宽度和第二安全宽度,所述第二安全宽度小于所述第一级安全宽度,所述碰撞检测结果包括第一碰撞检测结果和第二碰撞检测结果,所述无碰撞包括无第一碰撞和无第二碰撞。
214.可选的,生成模块1705用于:
215.若所述第一代价和所述第二代价的和值大于或等于所述预设阈值,则在所述可行使区域内搜索所述目标节点对应的多个子节点;针对所述多个子节点中每个子节点,将所述目标节点到所述子节点的目标路径同所述第一安全宽度进行碰撞检测,得到第一碰撞检测结果;若所述第一碰撞检测结果为有第一碰撞,则将所述目标路径同所述第二安全宽度进行碰撞检测,得到第二碰撞检测结果,若所述第二碰撞检测结果为无第二碰撞,则将所述子节点确定为目标有效节点;计算所述目标有效节点到所述目标节点的第三代价,计算所述目标有效节点到所述脱困位置的第四代价;根据所述第三代价计算得到第五代价;若所述第一代价、所述第三代价、所述第四代价和所述第五代价的和值小于所述预设阈值,则根据所述当前位置、所述目标节点、所述目标有效节点和所述脱困位置生成脱困轨迹。
216.图17所示实施例的车辆脱困控制装置可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
217.图18为本公开实施例提供的一种电子设备的结构示意图。本公开实施例提供的电子设备可以执行上述实施例提供的处理流程,如图18所示,电子设备1800包括:处理器
1801、通讯接口1802和存储器1803;其中,计算机程序存储在存储器1803中,并被配置为由处理器1801执行如上述的车辆脱困控制方法。
218.另外,本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现上述实施例所述的车辆脱困控制方法。
219.此外,本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序或指令,该计算机程序或指令被处理器执行时实现如上所述的车辆脱困控制方法。
220.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者网关不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者网关所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者网关中还存在另外的相同要素。
221.以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
技术特征:
1.一种车辆脱困控制方法,其特征在于,包括:获取车辆的当前行驶信息,并根据所述当前行驶信息确定所述车辆的行驶状态;在所述行驶状态是堵塞状态的情况下,根据所述当前行驶信息确定所述车辆对应的多条道路;在所述多条道路中筛选出有效道路;计算所述车辆在所述有效道路上的脱困位置;基于所述当前行驶信息中当前位置和所述脱困位置生成脱困轨迹,并控制所述车辆基于所述脱困轨迹行驶。2.根据权利要求1所述的方法,其特征在于,所述当前行驶信息包括驾驶状态、驾驶任务、当前车速、规划行驶轨迹和环境信息,所述根据所述当前行驶信息确定所述车辆的行驶状态,包括:在所述驾驶状态是自动驾驶状态的情况下,判断所述驾驶任务是否完成;若未完成所述驾驶任务,则在所述当前车速小于或等于预设车速的情况下,根据所述规划行驶轨迹和所述环境信息进行障碍物检测,生成障碍物检测结果;在所述障碍物检测结果是所述车辆行驶前方存在障碍物的情况下,计算所述车辆同所述障碍物检测结果中每个障碍物的目标距离;若所述目标距离小于第一预设距离,且根据所述环境信息中所述车辆所在目标车道的交通灯确定所述车辆行驶前方为允许通行,则确定所述车辆处于堵塞状态。3.根据权利要求2所述的方法,其特征在于,所述确定所述车辆处于堵塞状态后,所述方法还包括:确定所述车辆处于堵塞状态的第一时刻;从所述第一时刻开始计算所述车辆的堵塞时间;若所述堵塞时间大于预设时间,则将所述堵塞状态发送至云端,以使所述云端基于所述堵塞状态生成脱困指令,所述脱困指令用于指示计算所述车辆的脱困位置。4.根据权利要求1所述的方法,其特征在于,所述在所述多条车道中筛选出有效车道,包括:针对所述多条车道中的每条车道,判断所述车道是否是所述车辆所在的目标车道,若是,则将所述车道确定为有效车道;若否,则在所述车道是所述目标车道的相邻车道、且所述车道的车道线是允许通行的情况下,确定所述车道的动态障碍物在所述车辆行驶前方的情况下,将所述车道确定为有效车道。5.根据权利要求1或4所述的方法,其特征在于,所述计算所述车辆在所述有效道路上的脱困位置,包括:在所述有效车道上确定搜索起点;基于所述搜索起点和所述有效车道上的障碍物,计算所述车辆在所述有效车道上的脱困位置。6.根据权利要求5所述的方法,其特征在于,所述在所述有效车道上确定搜索起点,包括:确定所述有效车道上的所有静态障碍物,并将所有静态障碍物按照同所述车辆的距离
进行排序,生成障碍物列表;确定所述障碍物列表中首个障碍物的多个顶点,并将所述多个顶点中距离所述车辆最远的顶点作为目标顶点;从所述目标顶点向所述有效车道的中心线作垂线,确定所述垂线和所述中心线的交点;根据所述交点在所述有效车道上确定搜索起点。7.根据权利要求5所述的方法,其特征在于,所述基于所述搜索起点和所述有效车道上的障碍物,计算所述车辆在所述有效车道上的脱困位置,包括:基于所述搜索起点、第二预设距离和第三预设距离得到搜索点;对每个所述搜索点构建所述车辆的虚拟模型;将所述虚拟模型和所述有效车道上的静态障碍物进行碰撞检测,得到每个所述搜索点对应的碰撞检测结果;基于每个所述搜索点对应的碰撞检测结果,将所述碰撞检测结果为无碰撞对应的搜索点在所述有效车道上的位置确定为脱困位置。8.一种车辆脱困控制装置,其特征在于,包括:获取模块,用于获取车辆的当前行驶信息,并根据所述当前行驶信息确定所述车辆的行驶状态;确定模块,用于在所述行驶状态是堵塞状态的情况下,根据所述当前行驶信息确定所述车辆对应的多条道路;筛选模块,用于在所述多条道路中筛选出有效道路;计算模块,用于计算所述车辆在所述有效道路上的脱困位置;生成模块,用于基于所述当前行驶信息中当前位置和所述脱困位置生成脱困轨迹,并控制所述车辆基于所述脱困轨迹行驶。9.一种电子设备,其特征在于,包括:存储器;处理器;以及计算机程序;其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如权利要求1至7中任一所述的车辆脱困控制方法。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一所述的车辆脱困控制方法的步骤。
技术总结
本公开涉及一种车辆脱困控制方法、装置、设备和存储介质,涉及车辆控制技术领域,车辆脱困方法包括:获取车辆的当前行驶信息,并根据当前行驶信息确定车辆的行驶状态;在行驶状态是堵塞状态的情况下,根据当前行驶信息确定车辆对应的多条道路;在多条道路中筛选出有效道路;计算车辆在有效道路上的脱困位置;基于当前行驶信息中当前位置和脱困位置生成脱困轨迹,并控制车辆基于脱困轨迹行驶。本公开提供的方法使得无人车在复杂场景中能够突破安全性约束和交通环境约束,脱离堵塞状态继续完成驾驶任务。成驾驶任务。成驾驶任务。
技术研发人员:邬杨明 郭明超 周文凯 周小成
受保护的技术使用者:驭势科技(北京)有限公司
技术研发日:2023.03.02
技术公布日:2023/6/27
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/