掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及智能驾驶技术领域,尤其涉及一种车辆控制方法及装置。

背景技术

现有城市路口的路权分配是通过在搜索树上寻找最优节点而得到最优通行顺序。

在实现本发明过程中,发明人发现现有技术中至少存在如下问题:

现有路权分配方法需要在搜索树穷举遍历所有节点,计算每个节点对应的目标函数值,从而找到最优节点对应的最优通行顺序。当在路口交通流量大且多车道的情况下,计算时间会随着车辆数量的增大呈指数级增长,导致在有限时间内无法遍历全部节点寻找到最优节点,从而无法满足实时性的要求。

发明内容

有鉴于此,本发明实施例提供一种车辆控制方法及装置,能够将满足条件的目标车辆作为蒙特卡洛树搜索算法的启发策略,根据蒙特卡洛树搜索算法确定路口控制区多个待控制车辆的通行顺序,并确定待控制车辆的行驶速度,从而控制待控制车辆通过路口控制区;由此,结合蒙特卡洛树搜索算法及启发策略,可以快速且准确地指导搜索树的遍历方向,避免了需要穷举遍历全部节点才能得到最优通行顺序的情况,提高了树搜索的效率;也避免了由于车辆和车道增多而带来的计算时间过长的问题,满足了车辆通行的实时性需求,进而提高了路口控制区车辆通行的效率。

进一步地,根据构建的时间拟合模型和速度拟合模型,确定待控制车辆的行驶速度,并根据行驶速度控制待控制车辆,实现了对车辆的合理控制,从而提高了路口控制区车辆通行的效率。

为实现上述目的,根据本发明实施例的第一方面,提供了一种车辆控制方法,包括:

确定路口控制区内的多个车道、所述多个车道对应的一个或多个冲突分区、以及多个待控制车辆;

根据所述多个待控制车辆的数量、以及目标车辆的标识,利用蒙特卡洛树搜索算法,确定所述多个待控制车辆对应于所述路口控制区的通行顺序;所述目标车辆为离所述冲突分区最近的车道中的车辆、和/或针对同一冲突分区到达时间最小的车辆;

根据所述通行顺序、所述一个或多个冲突分区在所述路口控制区的位置,确定所述待控制车辆的行驶速度;

根据所述通行顺序和所述行驶速度,控制所述待控制车辆通过所述路口控制区。

可选地,所述利用蒙特卡洛树搜索算法,确定所述多个待控制车辆对应于所述路口控制区的通行顺序,包括:

根据所述多个待控制车辆的标识及所述车辆数量,构建搜索树的根节点以及一级子节点;一个所述一级子节点对应于一个车辆标识;

根据所述目标车辆的标识,利用所述蒙特卡洛树搜索算法扩展所述搜索树的根节点,生成一个或多个叶子节点;所述叶子节点指示多个待控制车辆对应的通行顺序;

根据所述叶子节点指示的通行顺序,确定所述多个待控制车辆对应于所述路口控制区的通行顺序。

可选地,所述扩展所述搜索树的根节点,生成一个或多个叶子节点,包括:

循环执行以下步骤,直至达到预设时间:

根据蒙特卡洛树搜索的UCB算法,确定UCB值最大的一级子节点为当前子节点;

循环执行以下步骤,直至确定出的下级节点为叶子节点:

利用所述蒙特卡洛树搜索算法,根据所述UCB值和/或目标车辆的标识,确定目标节点作为所述当前子节点的下级节点,并将所述下级节点作为所述当前子节点。

可选地,所述根据所述UCB值和/或目标车辆的标识,确定目标节点作为所述当前子节点的下级节点,包括:

确定所述目标车辆对应的一级子节点中是否存在目标节点,所述目标节点非所述当前子节点的上级节点;

如果是,从所述目标节点中确定所述当前子节点的下级节点。

可选地,在存在多个目标节点的情况下,

根据所述多个目标节点的所述UCB值,将所述UCB值最大的目标节点确定为所述当前子节点的下级节点。

可选地,在确定出的下级节点为叶子节点之后,还包括:

根据所述叶子节点对应的目标函数值,利用蒙特卡洛树搜索的反向传播算法,反向更新叶子节点的多个上级节点分别对应的统计信息,所述统计信息包括累计分值以及访问次数。

可选地,所述根据蒙特卡洛树搜索的UCB算法,确定UCB值最大的一级子节点为当前子节点,包括:

针对每一个一级子节点:根据所述一级子节点的统计信息、所述根节点的统计信息以及权重参数,确定所述一级子节点的UCB值;

将UCB值最大的一级子节点作为所述当前子节点。

可选地,该方法还包括:

将同处于一个车道且离冲突分区最近的车辆作为所述目标车辆;

和/或,

从同一冲突分区对应的多辆待控制车辆中,将最快到达时间最小的对应的车辆作为所述目标车辆;所述最快到达时间指示车辆以最大车速和加速度到达所述冲突分区的时间。

可选地,所述确定所述多个待控制车辆对应于所述路口控制区的通行顺序,包括:

根据所述搜索树各个节点的统计信息,确定最优遍历路径;

确定所述最优遍历路径对应的目标叶子节点,并将所述目标叶子节点对应的通行顺序作为所述路口控制区的通行顺序。

可选地,所述确定所述待控制车辆的行驶速度,包括:

针对同一冲突分区对应的多个待控制车辆:根据所述冲突分区在所述路口控制区的位置以及所述通行顺序,确定所述多个待控制车辆到达所述冲突分区的预计到达时间;

根据所述预计到达时间、车辆状态函数及双积分动力学模型确定所述多个待控制车辆的行驶速度。

可选地,所述确定所述多个待控制车辆到达所述冲突分区的预计到达时间,包括:

构建时间拟合模型以及多个第一约束条件;所述第一约束条件包括最快时间约束、碰撞约束和冲突间隔约束;

根据所述第一约束条件,利用所述时间拟合模型拟合得到所述多个待控制车辆到达所述冲突分区分别对应的预计到达时间。

可选地,所述根据所述预计到达时间、车辆状态函数及双积分动力学模型确定所述多个待控制车辆的行驶速度,包括:

构建速度拟合模型;

针对每一个所述待控制车辆:确定所述待控制车辆的状态参数;所述状态参数包括:车辆行驶时间、车辆行驶位置、车辆最大车速、车辆最小车速、车辆恒定速度、车辆最大加速度及车辆最小加速度;

根据所述状态参数确定所述车辆状态函数;

根据所述速度拟合模型、所述预计到达时间、所述车辆状态函数、双积分动力学模型,拟合出所述待控制车辆的行驶速度。

根据本发明实施例的第二方面,提供了一种车辆控制装置,包括:确定模块、搜索模块和控制模块;其中,

所述确定模块,用于确定路口控制区内的多个车道、所述多个车道对应的一个或多个冲突分区、以及多个待控制车辆;

所述搜索模块,用于根据所述多个待控制车辆的数量、以及目标车辆的标识,利用蒙特卡洛树搜索算法,确定所述多个待控制车辆对应于所述路口控制区的通行顺序;所述目标车辆为离所述冲突分区最近的车道中的车辆、和/或针对同一冲突分区到达时间最小的车辆;

所述控制模块,用于根据所述通行顺序、所述一个或多个冲突分区在所述路口控制区的位置,确定所述待控制车辆的行驶速度;根据所述通行顺序和所述行驶速度,控制所述待控制车辆通过所述路口控制区。

根据本发明实施例的第三方面,提供了一种电子设备,包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述第一方面提供的一种车辆控制方法中任一所述的方法。

根据本发明实施例的第四方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述第一方面提供的一种车辆控制方法中任一所述的方法。

上述发明中的一个实施例具有如下优点或有益效果:能够将满足条件的目标车辆作为蒙特卡洛树搜索算法的启发策略,根据蒙特卡洛树搜索算法确定路口控制区多个待控制车辆的通行顺序,并确定待控制车辆的行驶速度,从而控制待控制车辆通过路口控制区;由此,结合蒙特卡洛树搜索算法及启发策略,可以快速且准确地指导搜索树的遍历方向,避免了需要穷举遍历全部节点才能得到最优通行顺序的情况,提高了树搜索的效率;也避免了由于车辆和车道增多而带来的计算时间过长的问题,满足了车辆通行的实时性需求,进而提高了路口控制区车辆通行的效率。

进一步地,根据构建的时间拟合模型和速度拟合模型,确定待控制车辆的行驶速度,并根据行驶速度控制待控制车辆,实现了对车辆的合理控制,从而提高了路口控制区车辆通行的效率。

上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。

附图说明

附图用于更好地理解本发明,不构成对本发明的不当限定。其中:

图1是本发明一个实施例提供的一种车辆控制方法的流程示意图;

图2是本发明一个实施例提供的多车道路口控制区的示意图;

图3是本发明一个实施例提供的单车道路口控制区的示意图;

图4是本发明一个实施例提供的通行顺序的树表达形式的示意图;

图5是本发明一个实施例提供的一种蒙特卡洛树搜索的迭代过程示意图;

图6是本发明另一个实施例提供的一种车辆控制方法的流程示意图;

图7是本发明一个实施例提供的一种车辆控制装置的结构示意图;

图8是本发明实施例可以应用于其中的示例性系统架构图;

图9是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。

具体实施方式

以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

需要指出的是,在不冲突的情况下,本发明的实施例以及实施例中的技术特征可以相互结合。

如图1所示,本发明实施例提供了一种车辆控制方法,该方法可以包括以下步骤S101至S104:

步骤S101:确定路口控制区内的多个车道、所述多个车道对应的一个或多个冲突分区、以及多个待控制车辆。

步骤S102:根据所述多个待控制车辆的数量、以及目标车辆的标识,利用蒙特卡洛树搜索算法,确定所述多个待控制车辆对应于所述路口控制区的通行顺序;所述目标车辆为离所述冲突分区最近的车道中的车辆、和/或针对同一冲突分区到达时间最小的车辆。

步骤S103:根据所述通行顺序、所述一个或多个冲突分区在所述路口控制区的位置,确定所述待控制车辆的行驶速度。

步骤S104:根据所述通行顺序和所述行驶速度,控制所述待控制车辆通过所述路口控制区。

本发明的一个应用场景是多个自动驾驶车辆在城市路口协同通行的场景。在一个多车道的复杂城市路口中,多个自动驾驶车辆可以采用无线通信和传感技术,与周围车辆及路侧设备进行交互,共享车辆的状态信息(如车辆位置、车辆速度等),并且告知系统车辆的计划通行的线路;通过智能车路协同系统,对多个自动驾驶车辆在城市路口的通行顺序进行计算,得到最优通行顺序;随后根据该最优通行顺序,通过控制车辆的行驶速度控制多个自动驾驶车辆通过该城市路口。

其中,一个多车道的城市路口的示意图可以如图2所示,路口控制区包含多个车道,行驶在路口控制区的多个车辆即为待控制车辆。不同方向的车辆在通过图中多个车道形成的多个交叉区域时可能会发生碰撞,则这多个交叉区域也即是多个冲突分区。图2中有四个方向,每个方向有三条车道,将车道进行标记,可以表示为车道1、车道2、车道3…到车道12,由此,这12个车道形成的36个冲突分区,可以根据它们在路口控制区的位置,划分为冲突分区1、冲突分区2…冲突分区36。

另外,路口控制区的待控制车辆的数量可以通过传感技术实时确定,同时可以为这些待控制车辆进行编号以得到车辆在系统中的车辆标识。当然还可以利用无线通信技术获取到的车辆关键信息(如车牌号等),作为该车辆的标识。

由于城市路口控制区多个车辆的通行效率主要取决于多个待控制车辆的通行顺序。多个通行顺序可以构成一个搜索树的解空间。而搜索树的每个节点表示一个可行的通行顺序。其中,通行顺序表示了通过同一个冲突分区的车辆之间的优先级。例如,两辆车辆将同时通过一个冲突分区,在通行顺序靠前的车辆可以优先通过。以图3所示的单路口场景为例,控制区内包含车道1、2、3、4,包含有车辆标识为A、B、C、D、E五辆车。其中,通行顺序BD表示:在通过冲突分区2时,车辆D需要让行车辆,并相应地根据车辆B到达冲突分区2的时间去调整自身到达该冲突分区的时间。但当通行顺序为BC时,由于车辆C和车辆B之间并不存在冲突,因此车辆C仍旧能以最快到达时间进入冲突分区1。换言之,通行顺序BC和CB对应的目标函数值是相同的。每辆车都会根据通行顺序尽可能地决定其最快到达冲突分区的时间。因此两辆没有冲突的车辆可以同时通过路口,通行顺序中靠后的车辆也可能比另一辆与其没有冲突的车辆先通过路口。此外,如果一个通行顺序并不包含路口控制区的所有车辆,就将该类顺序称为部分通行顺序。例如在图3中总共有5辆车,通行顺序BC就属于部分通行顺序。

以图3中通行场景为例,通行顺序的树表达形式可以如图4所示。首先,设置根节点为Root为空,然后,根节点的每一个一级子节点将由一个字符组成(A、B、C、D),表示该通行顺序中的第一辆车。之后,在此基础上,第三层的节点将是一个由两个字符组成的字符串(如CA、CB、CD、CE)。相似地,每一个子节点扩展自身的下级子节点,(如CBA、CBD、CBE、CBDA、CBDE等)直到到达搜索树的最深深度,也即到达最底层的叶子节点(如CBDAE、CBDEA等)。一个叶子节点对应的字符串的顺序(如CBDAE)也即对应一个完整的通行顺序。由此,该搜索树的所有叶子节点即代表了所有可行的通行顺序。

可以理解的是,这样的搜索树的节点数会随着车辆数量的增加成指数级的增长。为了避免完全依靠穷举遍历的方式来遍历该搜索树来寻找最优的通行顺序,提高遍历效率,可以采用本发明的一个实施例提供的以下方式来扩展搜索树:根据所述多个待控制车辆的标识及所述车辆数量,构建搜索树的根节点以及一级子节点;一个所述一级子节点对应于一个车辆标识;根据所述目标车辆的标识,利用所述蒙特卡洛树搜索算法扩展所述搜索树的根节点,生成一个或多个叶子节点;所述叶子节点指示多个待控制车辆对应的通行顺序;根据所述叶子节点指示的通行顺序,确定所述多个待控制车辆对应于所述路口控制区的通行顺序。

其中,蒙特卡洛树搜索算法的过程可以如图5所示。其每一个迭代过程可以包括选择、扩展、仿真及反传四个部分。具体地实施方式在后续实施例中进行详细解释。

可以理解的是,为了提高蒙特卡洛树搜索算法的效率,可以采用本发明一个实施例提供的以下方法作为蒙特卡洛树搜索算法的启发策略:将同处于一个车道且离冲突分区最近的车辆作为所述目标车辆;和/或,从同一冲突分区对应的多辆待控制车辆中,将最快到达时间最小的对应的车辆作为所述目标车辆;所述最快到达时间指示车辆以最大车速和加速度到达所述冲突分区的时间。

其中,所述目标车辆可以是:离所述冲突分区最近的同一车道中的车辆,也即同处于一个车道且离冲突分区最近的车辆,利用这样的启发策略,可以快速地对不合理的顺序进行剪枝。如由于同一个车道的车辆是顺序通过冲突分区的,图3中一些不合理的通行顺序,例如(EC、ED、EB、EA…等)会被修剪掉,由此图4中不会出现以E为一级子节点的情况。

另外,目标车辆还可以是:离所述冲突分区最近的多个车道中的车辆、或同一冲突分区对应的多辆待控制车辆中最快到达时间最小的车辆。在本发明的一个实施例中,启发策略可以是图5中的仿真策略,在仿真过程中更准确的找到目标车辆加入到通行顺序中,可以避免随机采样生成大量不同类型叶子节点,从而导致产生过多的通行顺序的情况,提高了蒙特卡洛树搜索的效率,进而提高了路口控制区通行的实时性。

具体的扩展所述搜索树的根节点,生成一个或多个叶子节点的过程,可以如下:循环执行以下步骤,直至达到预设时间:根据蒙特卡洛树搜索的UCB算法,确定UCB值最大的一级子节点为当前子节点;循环执行以下步骤,直至确定出的下级节点为叶子节点:利用所述蒙特卡洛树搜索算法,根据所述UCB值和/或目标车辆的标识,确定目标节点作为所述当前子节点的下级节点,并将所述下级节点作为所述当前子节点。

可以理解的是,在本发明的一个实施例中,下级节点代表的通行顺序是在当前子节点指示的通行顺序的尾部追加一个目标节点所代表的车辆标识,从而形成的一个通行顺序字符串。例如,在C的下级节点字符串为CB,CB的下级节点字符串为CBD等。

蒙特卡洛树搜索的每一次迭代中,均是从根节点作为起点,不断向下级进行扩展直到到达搜索树的最底部,也即生成叶子节点。在决定根节点的下级节点时,也即决定了从根节点的哪个一级子节点开始向下扩展,此时,可以将UCB值最大的一级子节点作为根节点的下级节点。

蒙特卡洛树搜索在构建搜索树时,每一个节点都有自身的统计信息,即累计分值和访问次数。其中,累计分值是指当前节点在多次被访问后形成的一个累计得分,访问次数则是该节点被选中为当前子节点的次数。

具体在确定搜索树中UCB值最大的一级子节点时,可以采用本发明一个实施例提供的以下方式:针对每一个一级子节点:根据所述一级子节点的统计信息、所述根节点的统计信息以及权重参数,确定所述一级子节点的UCB值;将UCB值最大的一级子节点作为所述当前子节点。

利用如下UCB公式计算UCB值:

其中,i为一个子节点,Q

以图3的路口通行场景为例,当从根节点出发,根节点为Root,其生成的一级子节点可以如图4所示,为A、B、C、D。其中E由于同一车道先后顺序的原则,不能作为一级子节点。此时,可以计算A、B、C、D四个一级子节点的UCB值。将UCB值最大的节点作为从根节点出发,下一步准备扩展的下级节点,其过程可以看作是图5中的选择过程。例如,在此轮选择中,C的UCB值最大,则将C作为根节点的一级子节点,从而进入图5中的扩展阶段。

对于从未访问过的新节点(也即当前不在搜索树中,但是有可能被加入至搜索树的节点),其访问次数是0,累计分值也为0。随着迭代的增加,在生成多个叶子节点之后,可以利用蒙特卡洛树搜索的反向传播算法更新大部分节点的统计信息,随后则可以利用上述UCB公式来计算节点自身的UCB值。

可以理解的是,搜索树的每一次遍历都是从根节点开始依次向下进行的。在针对根节点的首次迭代时,选择的一级子节点A、B、C、D由于均未被访问过,所以它们对应的访问次数均为0,其根节点的访问次数为0,根据UCB公式计算,当前子节点的A、B、C、D的UCB值都为∞(无穷大)。此时可以随机选择一个车辆标识作为下级节点,例如选择C作为待扩展的下级节点,随后对C进行继续扩展。

在为一级子节点C进行扩展时,可以采用本发明一个实施例提供的以下方式:确定所述目标车辆对应的一级子节点中是否存在目标节点,所述目标节点非所述当前子节点的上级节点;如果是,从所述目标节点中确定所述当前子节点的下级节点。在存在多个目标节点的情况下,根据所述多个目标节点的所述UCB值,将所述UCB值最大的目标节点确定为所述当前子节点的下级节点。

从一级子节点中确定目标节点,目标节点对应的通行顺序,是在当前子节点的通行顺序字符串s的尾部,追加一个该字符串s不包含的一级子节点,从而形成的一个下级节点,如图4所示。如果下级节点是叶子节点,那么该字符串s不包含的车辆标识可以是一个或多个,也即非叶子节点的下级节点代表的是部分通行顺序。可以理解的是,这些新构建的下级节点可以是搜索树中还未遍历的节点。例如,在为CB选择下级节点时,CB已经形成了CBA一个下级节点,那么可以选择CBA继续向下遍历,也可以是基于其它可通行顺序CBD、CBE而形成的下级节点。

在扩展的过程中,可以利用目标车辆(也即启发策略)不断进行仿真,直到生成一个叶子节点。以图3的通行场景为例,图5所示的扩展过程指示了对C进行扩展。其中,C为当前子节点,在A、B、D、E(一级子节点)四个车辆中根据启发策略的目标车辆,选择目标节点,如图5中B是离冲突分区最近的车辆,那么目标节点可以是B,将选择B后所对应的部分通行顺序CB,作为C的下级节点。如果此时发现目标节点为多个,如B、A都满足启发策略的条件,那么可以计算CB、CA的UCB值,将UCB值最大的作为下级节点。如果CB、CA都是新的可能加入的节点,其由于从来未被访问过,它们的UCB值均为∞(无穷大),此时可以随机选择一个。另外,对于UCB值相等的情况下,可以随机选择一个。

由此,在蒙特卡洛树搜索的仿真过程结束之后,也即在确定出的下级节点为叶子节点之后,可以采用本发明的一个实施例提供的以下方式更新多个节点的统计信息:根据所述叶子节点对应的目标函数值,利用蒙特卡洛树搜索的反向传播算法,反向更新叶子节点的多个上级节点分别对应的统计信息,所述统计信息包括累计分值以及访问次数。

其中,叶子节点对应的目标函数值可以由一个目标函数来生成,在目标函数此不做限定。其目标函数值用于评估该叶子节点对应上级节点成为最优节点的潜能。图5中的反传即是利用反向传播算法将目标函数值沿着遍历路径的反方向,依次更新该路径上的多个节点的统计信息,即累计分值Q

其中,多个上级节点可以是从叶子节点开始到根节点的这条遍历路径上的全部上级节点或部分上级节点。

使用蒙特卡洛树搜索算法的过程可以是在一个已经构建好的搜索树上进行遍历搜索的过程,也即,搜索树的全集已经构建,利用蒙特卡洛树搜索方法去寻找最优的遍历路径。那么反向传播时,则可以更新该遍历路径上的全部节点的统计信息,一直到根节点。

而多个上级节点也可以是遍历路径中的部分上级节点。可以理解的是,利用蒙特卡洛树搜索算法的过程也可是一边构建搜索树一边寻找最优遍历路径的过程。也即,每一次迭代都可以确定一个可扩展节点,基于该节点进行仿真生成叶子节点,这个仿真过程可以是一个虚拟的构建过程,仿真过程产生的多个下级节点以及叶子节点可以不在当前搜索树中存储,可以只根据叶子节点的目标函数值评估该可扩展节点以及它的多个上级节点成为最优节点的可能性;由此,则可以从可扩展节点开始,反向更新多个上级节点的统计信息,直至根节点。而该扩展节点的下级节点至叶子节点之间的多个节点由于不在当前搜索树中存储,则可以不用评估,也即可以不更新下级节点以下的多个节点的统计信息。在评估完成后可以将该仿真过程中产生的节点删除,节约存储空间。这样实现一边构建搜索树一边遍历搜索的过程,遍历的目的则是为了得到各个节点的统计信息,这样就可以动态根据已有节点的统计信息不断寻找到当前最优的遍历路径。

例如,利用图5的仿真过程,得到一个叶子节点(CBDAE),其目标函数值为10,那么可以更新图5中扩展阶段选择的CB节点、上级节点C和根节点分别对应的累积分值Q

可以理解的是,在蒙特卡洛树搜索算法的早期迭代过程,大部分节点都是未被访问的节点,UCB值都为∞(无穷大),在对一个当前子节点进行扩展时,其可选择的下级节点可以优先根据启发策略而决定;如果下级节点均不满足启发策略,则选择一个未被访问过的节点进行扩展,从而使得随之迭代次数的增多,大部分节点都被访问,且利用反向传播方法更新了大部分节点的累计分值和访问次数。而在后期迭代时,由于可以计算大部分节点的UCB值,可以更好地利用UCB值和启发策略相结合选择出值得探索的节点,可以较好的指导搜索树的遍历方向,从而在预计时间达到时得到一个较优的遍历路径。

在本发明的一个实施例中,在路口控制区的通行顺序利用蒙特卡洛树搜索进行遍历时,当前最优通行顺序会随着迭代次数的增加而变化。在已经确定多个叶子节点之后或者达到所述预设时间的情况下,如果停止当前蒙特卡洛树搜索的迭代,则可以根据当前构建的搜索树的各个节点状态来确定一个最优遍历路径,从而确定一个较合理高效的通行顺序。可以根据本发明实施例提供的以下方式确定所述多个待控制车辆对应于所述路口控制区的通行顺序:根据所述搜索树各个节点的统计信息,确定最优遍历路径;确定所述最优遍历路径对应的目标叶子节点,并将所述目标叶子节点对应的通行顺序作为所述路口控制区的通行顺序。

其中,最优遍历路径可以理解为:在每一级节点选择时,选择访问次数最多的节点,直到到达叶子节点。例如,图4中,利用蒙特卡洛树搜索算法构建搜索树后,在一级子节点中,C的访问次数最多,则选择C;在C的下一级节点CA、CB、CD、CE中,CB的访问次数最多,则选择CB;再CB的下一级节点CBDA、CBDE中,CBDA的访问次数最多,则选择CBDA,最终选择到了一个叶子节点CBDAE。此时该叶子节点对应的通行顺序则可以作为路口控制区的通行顺序。

根据蒙特卡洛树搜索算法和启发策略的结合,可以在遍历搜索树时,快速去除不合理的通行顺序(也即子节点),并且可以将子节点的潜能(UCB值)以及启发策略结合来指导搜索树的遍历方向,从而提高了搜索最优通行顺序的时间,满足了路口通行的实时性需求,提高了路口控制区的通行效率。

在确定了路口控制区的通行顺序之后,在本发明的一个实施例中,可以采用以下方式确定多个待控制车辆到达对应冲突分区的预计到达时间:根据所述冲突分区在所述路口控制区的位置以及所述通行顺序,确定所述多个待控制车辆到达所述冲突分区的预计到达时间。

本发明的一个实施例中,可以采用以下方式先确定预计到达时间:构建时间拟合模型以及多个第一约束条件;所述第一约束条件包括最快时间约束、碰撞约束和冲突间隔约束;根据所述第一约束条件,利用所述时间拟合模型拟合得到所述多个待控制车辆到达所述冲突分区分别对应的预计到达时间。

可以理解的是,路口通行的目标是最大化通行效率,相应的即可以将目标定位为最小化多个待控制车辆的通行延误时间,由此,在本发明的一个实施例中,可以构建一个时间拟合模型,使得多个待控制车辆的通行延误时间之和最小。

在构建时间拟合模型时,每辆进入路口控制区的车辆会被分配一个唯一编号V

在本发明的一个实施例中,为了简化,可以为时间拟合模型设置如下条件:每辆车通过无线通信技术与周围的车辆和路侧设备共享自身的状态信息(如位置、速度等)和路线信息,同时该通信过程是瞬时完成的,不会存在丢包和延时等问题;为保证安全,控制区内的车辆禁止换道,也即禁止车辆在经过控制区时,再同向车道之间切换;车辆通过冲突分区过程中的速度保持不变。

在构建时间拟合模型之前,可以先构建以下约束条件:最快时间约束、碰撞约束和冲突间隔约束。

由于速度约束和加速度约束等物理限制,车辆到达冲突分区的时间必定大于或等于最快到达时间,由此,最快时间约束可以如下表示:

t

其中,t

而为避免同车道上前后两车发生碰撞,要求前后车之间保持一定的安全车头时距,由此,在本发明的一个实施例中,可以构建碰撞约束如下:

t

其中,V

可以理解的是,碰撞约束要求一辆车只有在另一辆冲突车离开冲突分区后才能进入到对应的冲突分区。

而根据车辆通过冲突分区过程中的速度保持不变这个条件,可以简单地根据道路几何结构确定车辆从一个冲突分区行驶到另一个冲突分区需要花费的时间。此时,定义Δt

t

在构建完最快时间约束、碰撞约束和冲突间隔约束之后,在本发明的一个实施例中,通过引入二进制变量,构建一个时间拟合模型,如下所示:

subject to t

t

t

t

t

b

其中,n是控制区内的车辆总数,M是一个大的常数,b

在确定了预计到达时间之后,则可以控制车辆根据一定的行驶速度在预计到达时间内到达对应的冲突分区,在本发明的一个实施例中,可以使用以下方式:根据所述预计到达时间、车辆状态函数及双积分动力学模型确定所述多个待控制车辆的行驶速度。具体地确定行驶速度可以如下:构建速度拟合模型;针对每一个所述待控制车辆:确定所述待控制车辆的状态参数;所述状态参数包括:车辆行驶时间、车辆行驶位置、车辆最大车速、车辆最小车速、车辆恒定速度、车辆最大加速度及车辆最小加速度;根据所述状态参数确定所述车辆状态函数;根据所述速度拟合模型、所述预计到达时间、所述车辆状态函数、双积分动力学模型,拟合出所述待控制车辆的行驶速度。

根据车辆动力学方程,可以将车辆状态函数表示为:

x

其中,x

而使用的双积分动力学模型如下:

其中,

本发明的一个实施例构建的速度拟合模型可以如下:

subject to u

v

其中,

根据所述速度拟合模型,拟合得到每一个待控制车辆在每一个时刻的加速度,从而确定每一个待控制车辆的行驶速度,进而可以通过该行驶速度,控制所述待控制车辆在预计到达时间到达对应的第一冲突分区Z

利用时间拟合模型和速度拟合模型来实现按照最优通行顺序进行有序通行,减少了待控制车辆的通行延误时间,从而提高了路口控制区车辆通行的效率。

以一个路口控制区的通行场景为例,根据图6对本发明实施例提供的一种车辆控制方法进行详细描述,具体步骤可以包括:

步骤S601:确定路口控制区的多个冲突分区及多个待控制车辆。

步骤S602:根据多个待控制车辆的数量及标识,构建搜索树。

搜索树的根节点为Root,对应一个空节点,并生成多个一级子节点。

接下来,则可以使用蒙特卡洛树搜索算法对根节点进行扩展。

步骤S603:确定搜索树中UCB值最大的一级子节点为当前子节点。

步骤S604:根据UCB值和/或目标车辆的标识,确定目标节点作为当前子节点的下级节点。

步骤S605:判断下级节点是否为叶子节点;如果是,执行步骤S606,如果否,返回执行步骤S604。

将下级节点作为当前子节点,继续执行S604。

步骤S606:根据叶子节点的目标函数值,反向更新多个上级节点的统计信息。

步骤S607:判断是否达到预设时间;如果是,执行步骤S608;如果否,返回执行步骤S603。

当然,在未达到预设时间时,如果确定已经生成了多个叶子节点,也可以停止迭代过程。可以理解的是,在时间允许的情况下,尽可能地进行蒙特卡洛树搜索的多次迭代,这样可以有效的提高确定最优通行顺序的准确性。

步骤S608:根据搜索树各个节点的统计信息,确定最优遍历路径对应的目标叶子节点。

步骤S609:根据目标叶子节点对应的通行顺序,确定预计到达时间。

对于每一个控制车辆,即确定其将通过的第一个冲突分区的预计到达时间。

步骤S610:根据预计到达时间,确定每一个待控制车辆的行驶速度。

步骤S611:根据行驶速度和通行顺序,控制待控制车辆通过路口控制区。

根据本发明实施例提供一种车辆控制方法,能够将满足条件的目标车辆作为蒙特卡洛树搜索算法的启发策略,根据蒙特卡洛树搜索算法确定路口控制区多个待控制车辆的通行顺序,并确定待控制车辆的行驶速度,从而控制待控制车辆通过路口控制区;由此,结合蒙特卡洛树搜索算法及启发策略,可以快速且准确地指导搜索树的遍历方向,避免了需要穷举遍历全部节点才能得到最优通行顺序的情况,提高了树搜索的效率;也避免了由于车辆和车道增多而带来的计算时间过长的问题,满足了车辆通行的实时性需求,进而提高了路口控制区车辆通行的效率。

进一步地,根据构建的时间拟合模型和速度拟合模型,确定待控制车辆的行驶速度,并根据行驶速度控制待控制车辆,实现了对车辆的合理控制,从而提高了路口控制区车辆通行的效率。

如图7所示,本发明实施例提供了一种车辆控制装置700,包括:确定模块701、搜索模块702和控制模块703;其中,

所述确定模块701,用于确定路口控制区内的多个车道、所述多个车道对应的一个或多个冲突分区、以及多个待控制车辆;

所述搜索模块702,用于根据所述多个待控制车辆的数量、以及目标车辆的标识,利用蒙特卡洛树搜索算法,确定所述多个待控制车辆对应于所述路口控制区的通行顺序;所述目标车辆为离所述冲突分区最近的车道中的车辆、和/或针对同一冲突分区到达时间最小的车辆;

所述控制模块703,用于根据所述通行顺序、所述一个或多个冲突分区在所述路口控制区的位置,确定所述待控制车辆的行驶速度;根据所述通行顺序和所述行驶速度,控制所述待控制车辆通过所述路口控制区。

在本发明一个实施例中,所述确定模块701,用于将同处于一个车道且离冲突分区最近的车辆作为所述目标车辆;和/或,从同一冲突分区对应的多辆待控制车辆中,将最快到达时间最小的对应的车辆作为所述目标车辆;所述最快到达时间指示车辆以最大车速和加速度到达所述冲突分区的时间。

在本发明一个实施例中,所述搜索模块702,用于根据所述多个待控制车辆的标识及所述车辆数量,构建搜索树的根节点以及一级子节点;一个所述一级子节点对应于一个车辆标识;根据所述目标车辆的标识,利用所述蒙特卡洛树搜索算法扩展所述搜索树的根节点,生成一个或多个叶子节点;所述叶子节点指示多个待控制车辆对应的通行顺序;根据所述叶子节点指示的通行顺序,确定所述多个待控制车辆对应于所述路口控制区的通行顺序。

在本发明一个实施例中,所述搜索模块702,用于循环执行以下步骤,直至达到预设时间:根据蒙特卡洛树搜索的UCB算法,确定UCB值最大的一级子节点为当前子节点;循环执行以下步骤,直至确定出的下级节点为叶子节点:利用所述蒙特卡洛树搜索算法,根据所述UCB值和/或目标车辆的标识,确定目标节点作为所述当前子节点的下级节点,并将所述下级节点作为所述当前子节点。

在本发明一个实施例中,所述搜索模块702,用于确定所述目标车辆对应的一级子节点中是否存在目标节点,所述目标节点非所述当前子节点的上级节点;如果是,从所述目标节点中确定所述当前子节点的下级节点。

在本发明一个实施例中,所述搜索模块702,用于在存在多个目标节点的情况下,根据所述多个目标节点的所述UCB值,将所述UCB值最大的目标节点确定为所述当前子节点的下级节点。

在本发明一个实施例中,所述搜索模块702,用于在确定出的下级节点为叶子节点之后,根据所述叶子节点对应的目标函数值,利用蒙特卡洛树搜索的反向传播算法,反向更新叶子节点的多个上级节点分别对应的统计信息,所述统计信息包括累计分值以及访问次数。

在本发明一个实施例中,所述搜索模块702,用于针对每一个一级子节点:根据所述一级子节点的统计信息、所述根节点的统计信息以及权重参数,确定所述一级子节点的UCB值;将UCB值最大的一级子节点作为所述当前子节点。

在本发明一个实施例中,所述控制模块703,用于根据所述搜索树各个节点的统计信息,确定最优遍历路径;确定所述最优遍历路径对应的目标叶子节点,并将所述目标叶子节点对应的通行顺序作为所述路口控制区的通行顺序。

在本发明一个实施例中,所述控制模块703,用于针对同一冲突分区对应的多个待控制车辆:根据所述冲突分区在所述路口控制区的位置以及所述通行顺序,确定所述多个待控制车辆到达所述冲突分区的预计到达时间;根据所述预计到达时间、车辆状态函数及双积分动力学模型确定所述多个待控制车辆的行驶速度。

在本发明一个实施例中,所述控制模块703,用于构建时间拟合模型以及多个第一约束条件;所述第一约束条件包括最快时间约束、碰撞约束和冲突间隔约束;根据所述第一约束条件,利用所述时间拟合模型拟合得到所述多个待控制车辆到达所述冲突分区分别对应的预计到达时间。

在本发明一个实施例中,所述控制模块703,用于构建速度拟合模型;针对每一个所述待控制车辆:确定所述待控制车辆的状态参数;所述状态参数包括:车辆行驶时间、车辆行驶位置、车辆最大车速、车辆最小车速、车辆恒定速度、车辆最大加速度及车辆最小加速度;根据所述状态参数确定所述车辆状态函数;根据所述速度拟合模型、所述预计到达时间、所述车辆状态函数、双积分动力学模型,拟合出所述待控制车辆的行驶速度。

根据本发明实施例提供的一种车辆控制装置,能够将满足条件的目标车辆作为蒙特卡洛树搜索算法的启发策略,根据蒙特卡洛树搜索算法确定路口控制区多个待控制车辆的通行顺序,并确定待控制车辆的行驶速度,从而控制待控制车辆通过路口控制区;由此,结合蒙特卡洛树搜索算法及启发策略,可以快速且准确地指导搜索树的遍历方向,避免了需要穷举遍历全部节点才能得到最优通行顺序的情况,提高了树搜索的效率;也避免了由于车辆和车道增多而带来的计算时间过长的问题,满足了车辆通行的实时性需求,进而提高了路口控制区车辆通行的效率。

进一步地,根据构建的时间拟合模型和速度拟合模型,确定待控制车辆的行驶速度,并根据行驶速度控制待控制车辆,实现了对车辆的合理控制,从而提高了路口控制区车辆通行的效率。

图8示出了可以应用本发明实施例的一种车辆控制方法或一种车辆控制装置的示例性系统架构800。

如图8所示,系统架构800可以包括终端设备801、802、803,网络804和服务器805。网络804用以在终端设备801、802、803和服务器805之间提供通信链路的介质。网络804可以包括各种连接类型,例如有线、无线通信链路、车联网或者光纤电缆等等。

用户可以使用终端设备801、802、803通过网络804与服务器805交互,以接收或发送消息等。

终端设备801、802、803可以是具有传感器设备、无线通信设备或搭载自动驾驶控制系统的车辆。

服务器805可以是提供各种服务的服务器,例如可以是与终端设备801、802、803利用无线通信技术、传感技术等进行数据共享和数据交互的服务器;也可以是获取车辆的位置、速度、路线数据,并利用这些数据进行大数据处理和车路协同控制的服务器。服务器可以对车辆的数据及路口控制区的数据等进行分析等处理,并根据处理结果对车辆进行控制和交互等操作。

需要说明的是,本发明实施例所提供的车辆控制方法一般由服务器805执行,相应地,车辆控制装置一般设置于服务器805中。

应该理解,图8中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

下面参考图9,其示出了适于用来实现本发明实施例的终端设备的计算机系统900的结构示意图。图9示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图9所示,计算机系统900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。在RAM 903中,还存储有系统900操作所需的各种程序和数据。CPU 901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。

以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。

特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被中央处理单元(CPU)901执行时,执行本发明的系统中限定的上述功能。

需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括确定模块,搜索模块,控制模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,确定模块还可以被描述为“确定车辆的模块”。

作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:确定路口控制区内的多个车道、所述多个车道对应的一个或多个冲突分区、以及多个待控制车辆;根据所述多个待控制车辆的数量、以及目标车辆的标识,利用蒙特卡洛树搜索算法,确定所述多个待控制车辆对应于所述路口控制区的通行顺序;所述目标车辆为离所述冲突分区最近的车道中的车辆、和/或针对同一冲突分区到达时间最小的车辆;根据所述通行顺序、所述一个或多个冲突分区在所述路口控制区的位置,确定所述待控制车辆的行驶速度;根据所述通行顺序和所述行驶速度,控制所述待控制车辆通过所述路口控制区。

根据本发明实施例的技术方案,能够将满足条件的目标车辆作为蒙特卡洛树搜索算法的启发策略,根据蒙特卡洛树搜索算法确定路口控制区多个待控制车辆的通行顺序,并确定待控制车辆的行驶速度,从而控制待控制车辆通过路口控制区;由此,结合蒙特卡洛树搜索算法及启发策略,可以快速且准确地指导搜索树的遍历方向,避免了需要穷举遍历全部节点才能得到最优通行顺序的情况,提高了树搜索的效率;也避免了由于车辆和车道增多而带来的计算时间过长的问题,满足了车辆通行的实时性需求,进而提高了路口控制区车辆通行的效率。

进一步地,根据构建的时间拟合模型和速度拟合模型,确定待控制车辆的行驶速度,并根据行驶速度控制待控制车辆,实现了对车辆的合理控制,从而提高了路口控制区车辆通行的效率。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

技术分类

06120114584190