控制车辆的方法和装置,及由车辆执行的控制方法和车辆
技术领域
本公开涉及互联网技术领域,更具体地,涉及一种控制车辆的方法和装置,及由车辆执行的控制方法和车辆。
背景技术
随着人工智能、自动控制、通信和互联网技术的快速发展,智能车辆被越来越多地应用于物流、运输及日常生活等诸多领域。其中,在智能车辆的发展过程中,对大规模的智能车辆的控制技术尤为重要。目前,在大规模车辆的协同控制上一般采用“中心化控制”和“去中心化控制”(也称为分布式控制)两种方案。
在实现本公开构思的过程中,发明人发现现有技术中至少存在如下问题:无论是“中心化控制”方案还是“去中心化控制”方案,在实际的使用过程中,都不可避免产生局部区域车辆交通拥堵的问题。如果拥堵问题不能得到快速有效的处理,后果往往是越来越严重的。现有解决方案中,当发生交通拥堵时,各个车辆都不停的请求路线规划,如果能规划出新的路线,请求成功的车辆就按照新规划出来的路线行驶。但是在遇到多个车辆发生互为目的点,或是拥堵过于严重并已经产生相互死锁的情况时,现有的解决方案无法根本性的解决问题。即使某个车辆暂时规划出了新的路线,但是按照新的规划路线行驶时,仍有可能出现二次拥堵现象。
发明内容
有鉴于此,本公开提供了一种能够有效解决拥堵问题的控制车辆的方法和装置,及由车辆执行的控制方法和车辆。
本公开的一个方面提供了一种控制车辆的方法,该方法包括:获得预定区域内多个车辆的行驶信息;根据多个车辆的行驶信息,确定预定区域的路况信息;在路况信息表征预定区域内存在拥堵事件的情况下,根据多个车辆的行驶信息,确定预定区域中的拥堵区域以及多个车辆中处于拥堵状态的m个车辆,该m个车辆位于拥堵区域中;以及根据第一预定规则,控制m个车辆中的n个车辆移动至预定区域中除拥堵区域外的其他区域,以使得预定区域内不存在拥堵事件。其中,m、n均为自然数,且m≥4,n<m。
根据本公开的实施例,上述行驶信息包括当前行驶路线,上述方法还包括:在第一车辆的当前行驶路线包括位于拥堵区域的路线的情况下,确定是否存在与第一车辆匹配的第一行驶路线。其中,在存在与第一车辆匹配的第一行驶路线的情况下,控制第一车辆根据第一行驶路线移动。在不存在与第一车辆匹配的第一行驶路线的情况下,增加第一车辆在拥堵区域的移动成本,并确定第一车辆的行驶路线为第二行驶路线。其中,第一车辆包括多个车辆中除m个车辆外的车辆,第一行驶路线不包括位于拥堵区域的路线,第二行驶路线包括位于拥堵区域的路线。
根据本公开的实施例,上述行驶信息包括状态信息和位置信息。根据多个车辆的行驶信息,确定多个车辆中处于拥堵状态的m个车辆包括:在状态信息表征第二车辆不存在故障、且第二车辆的停止时长大于第一预设时长的情况下,确定第二车辆为处于拥堵状态的车辆,得到m个车辆。并且/或者,根据多个车辆的行驶信息,确定预定区域中的拥堵区域包括:根据m个车辆的位置信息,确定m个车辆中每个车辆所在的第一区域;以及确定m个车辆所在的第一区域为拥堵区域。
根据本公开的实施例,上述根据第一预定规则,控制m个车辆中的n个车辆移动至预定区域中除拥堵区域外的其他区域包括:循环执行以下操作,直至预定区域内不存在拥堵事件:获得处于拥堵状态的车辆中每个车辆的拥堵系数,该拥堵系数表征以位置信息表征的位置为中心的预定范围内的车辆个数;将处于拥堵状态的车辆中拥堵系数满足第一预定条件的第三车辆确定为需要移动至其他区域的车辆;获得第三车辆的中转点集,中转点集包括位于其他区域的至少一个中转点;向第三车辆分配中转点;以及控制第三车辆移动至分配得到的中转点,并确定第三车辆处于非拥堵状态。
根据本公开的实施例,上述在至少一个中转点包括多个中转点的情况下,向第三车辆分配中转点包括:获得多个中转点中每个中转点的使用频率;将多个中转点根据使用频率自低至高排列,得到中转点序列;以及将中转点序列中满足第二预定条件的中转点分配给第三车辆。
根据本公开的实施例,上述根据第一预定规则,控制m个车辆中的n个车辆移动至预定区域中除拥堵区域外的其他区域包括:循环执行以下操作,直至预定区域内不存在拥堵事件:随机选择处于拥堵状态的车辆中的一个第四车辆;获得第四车辆的中转点集,该中转点集包括位于其他区域的至少一个中转点;确定是否存在自第四车辆的位置信息表征的位置到至少一个中转点的第三行驶路线;在确定存在第三行驶路线的情况下,向第四车辆分配第三行驶路线包括的中转点,并确定第四车辆处于非拥堵状态,在确定不存在第三行驶路线的情况下,重新选择第四车辆。
根据本公开的实施例,上述方法还包括:控制m个车辆中的第i个车辆处于休眠状态,直至第i个车辆分配得到中转点,或第i个车辆所在的拥堵区域内不存在拥堵事件。其中,i为自然数,且i≤m,休眠状态包括不能获取新的行驶路线的状态。
本公开的另一个方面提供了一种由车辆执行的控制方法。该方法包括:获得车辆的行驶信息及预定区域内多个其他车辆的行驶信息;根据车辆的行驶信息及多个其他车辆的行驶信息,确定预定区域的路况信息;在路况信息表征预定区域内存在拥堵事件的情况下,根据车辆的行驶信息及多个其他车辆的行驶信息,确定预定区域中的拥堵区域以及处于拥堵状态的m个车辆,该m个车辆位于所述拥堵区域中;以及在车辆处于拥堵状态的情况下,根据第二预定规则,确定车辆是否需要移动至预定区域中除拥堵区域外的其他区域;以及在确定车辆需要移动至其他区域的情况下,控制车辆移动至其他区域,其中,m为自然数,且m≥4。
根据本公开的实施例,上述行驶信息包括当前行驶路线,上述方法还包括:在车辆处于非拥堵状态,且车辆的当前行驶路线包括位于拥堵区域的路线的情况下,确定是否存在与车辆匹配的第一行驶路线。其中,在存在与车辆匹配的第一行驶路线的情况下,控制车辆根据第一行驶路线移动;或者,在不存在与第一车辆匹配的第一行驶路线的情况下,增加车辆在拥堵区域的移动成本,并确定车辆的行驶路线为第二行驶路线,其中,第一行驶路线不包括位于拥堵区域的路线,第二行驶路线包括位于拥堵区域的路线。
根据本公开的实施例,上述行驶信息包括状态信息和位置信息。上述根据车辆的行驶信息及多个其他车辆的行驶信息,确定处于拥堵状态的m个车辆包括:根据车辆的行驶信息,确定车辆的拥堵信息;根据多个其他车辆的行驶信息,确定多个其他车辆的拥堵信息;以及根据车辆的拥堵信息和多个其他车辆的拥堵信息,确定处于拥堵状态的m个车辆。其中,拥堵信息根据状态信息得到,在状态信息表征第二车辆不存在故障、且第二车辆的停止时长大于第一预设时长的情况下,拥堵信息表征第二车辆处于拥堵状态。
根据本公开的实施例,上述根据车辆的行驶信息及其他车辆的行驶信息,确定预定区域的拥堵区域包括:根据m个车辆的位置信息,确定m个车辆中每个车辆所在的第一区域;以及确定m个车辆所在的第一区域为拥堵区域。
根据本公开的实施例,上述根据第二预定规则,确定车辆是否需要移动至预定区域中除拥堵区域外的其他区域包括:循环执行以下操作,直至所述车辆分配得到中转点或所述车辆所在的拥堵区域内不存在拥堵事件:获得处于拥堵状态的车辆中每个车辆的拥堵系数,该拥堵系数表征以车辆的位置信息表征的位置为中心的预定范围内的车辆个数;在车辆的拥堵系数满足第一预定条件的情况下,获得车辆的中转点集,该中转点集包括位于其他区域的至少一个中转点;以及向车辆分配中转点,并确定车辆处于非拥堵状态。其中,在确定车辆需要移动至其他区域的情况下,控制车辆移动至分配得到的中转点。
根据本公开的实施例,上述在至少一个中转点包括多个中转点的情况下,向车辆分配中转点包括:获得多个中转点中每个中转点的使用频率;将多个中转点根据使用频率自低至高排列,得到中转点序列;以及将中转点序列中满足第二预定条件的中转点分配给车辆。
根据本公开的实施例,上述确定车辆是否需要移动至预定区域中除拥堵区域外的其他区域包括:循环执行以下操作,直至车辆分配得到中转点或所述车辆所在的拥堵区域内不存在拥堵事件:获得车辆的中转点集,该中转点集包括位于其他区域的至少一个中转点;确定是否存在自车辆的位置信息表征的位置到至少一个中转点的第三行驶路线;在确定存在第三行驶路线的情况下,向车辆分配第三行驶路线包括的中转点。其中,在车辆分配得到中转点的情况下,确定车辆需要移动至其他区域;在车辆未分配得到中转点、且所述车辆所在的拥堵区域内不存在拥堵事件的情况下,确定车辆不需要移动至其他区域。在确定车辆需要移动至其他区域的情况下,控制车辆根据第三行驶路线移动至分配得到的中转点。
本公开的另一个方面提供了一种控制车辆的装置,该装置包括第一行驶信息获取模块、第一路况信息确定模块、第一拥堵车辆及区域确定模块和第一移动控制模块。第一行驶信息获取模块用于获得预定区域内多个车辆的行驶信息。第一路况信息确定模块用于根据多个车辆的行驶信息,确定预定区域的路况信息。第一拥堵车辆及区域确定模块用于在路况信息表征预定区域内存在拥堵事件的情况下,根据多个车辆的行驶信息,确定预定区域中的拥堵区域以及多个车辆中处于拥堵状态的m个车辆,该m个车辆位于所述拥堵区域中。第一移动控制模块用于根据第一预定规则,控制m个车辆中的n个车辆移动至预定区域中除拥堵区域外的其他区域,以使得预定区域内不存在拥堵事件。其中,m、n均为自然数,且m≥4,n<m。
本公开的另一个方面提供了一种车辆,该车辆包括车辆本体、通信装置和控制装置。其中,通信装置用于与预定区域内的多个其他车辆通信,以获得多个其他车辆的行驶信息。控制装置与通信装置连接,具体包括第二行驶信息获取模块、第二路况信息确定模块、第二拥堵车辆及区域确定模块、移动确定模块和第二移动控制模块。第二行驶信息获取模块用于获得车辆的行驶信息。第二路况信息确定模块用于根据车辆的行驶信息及多个其他车辆的行驶信息,确定预定区域的路况信息。第二拥堵车辆及区域确定模块用于在路况信息表征预定区域内存在拥堵事件的情况下,根据车辆的行驶信息及多个其他车辆的行驶信息,确定预定区域中的拥堵区域以及处于拥堵状态的m个车辆,该m个车辆位于所述拥堵区域中。移动确定模块用于在车辆处于拥堵状态时,根据第二预定规则确定车辆是否需要移动至预定区域中除拥堵区域外的其他区域。第二移动控制模块用于在车辆需要移动至其他区域的情况下,控制车辆本体移动至其他区域。其中,m为自然数,且m≥4。
本公开的另一个方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的控制车辆的方法或由车辆执行的控制方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的控制车辆的方法或由车辆执行的控制方法。
根据本公开的实施例,可以至少部分地解决现有技术中无法有效解决交通拥堵的缺点,并因此可以通过确定拥堵区域及需要移动的车辆,将需要移动的车辆移出拥堵区域的技术方案,在一定程度上有效解决拥堵事件,并因此提高车辆控制效率。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的控制车辆的方法和装置、以由车辆执行的控制方法和车辆的应用场景;
图2示意性示出了根据本公开第一实施例的控制车辆的方法的流程图;
图3示意性示出了根据本公开第二实施例的控制车辆的方法的流程图;
图4示意性示出了根据本公开第一实施例的控制车辆移动至其他区域的操作流程图;
图5A示意性示出了根据本公开第二实施例的控制车辆移动至其他区域的操作流程图;
图5B示意性示出了根据本公开实施例的向第三车辆分配中转点的操作流程图;
图6示意性示出了根据本公开第三实施例的控制车辆的方法的流程图;
图7示意性示出了根据本公开第一实施例的由车辆执行的控制方法的流程图;
图8示意性示出了根据本公开第二实施例的由车辆执行的控制方法的流程图;
图9示意性示出了根据本公开第一实施例的确定车辆是否需要移动至其他区域的操作流程图;
图10示意性示出了根据本公开第二实施例的确定车辆是否需要移动至其他区域的操作流程图;
图11示意性示出了根据本公开实施例的控制车辆的装置的结构框图;
图12示意性示出了根据公开实施例的车辆中控制装置的结构框图;以及
图13示意性示出了根据本公开实施例的适于实现控制车辆的方法或实现由车辆执行的控制方法的控制装置的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
本公开的实施例提供了一种用于解决车辆拥堵事件的控制车辆的方法和装置、及由车辆执行的控制方法和车辆。其中,控制车辆的方法包括:获得预定区域内多个车辆的行驶信息;根据多个车辆的行驶信息,确定预定区域的路况信息;在路况信息表征预定区域内存在拥堵事件的情况下,根据多个车辆的行驶信息,确定预定区域中的拥堵区域以及多个车辆中处于拥堵状态的m个车辆,该m个车辆位于所述拥堵区域中;以及根据第一预定规则,控制m个车辆中的n个车辆移动至预定区域中除拥堵区域外的其他区域,以使得预定区域内不存在拥堵事件。其中,m、n均为自然数,且m≥4,n<m。
图1示意性示出了根据本公开实施例的控制车辆的方法和装置、以由车辆执行的控制方法和车辆的应用场景100。可以理解的是,图1所示仅为可以应用本公开实施例的应用场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的应用场景100可以包括车辆行驶区域110,该车辆行驶区域内包括有多个车辆111及无线网络112。
其中,该车辆行驶区域110例如可以是物品存储区域或者可以是实际的交通道路。其中,物品存储区域例如可以是存储货架的区域,该货架上放置有多件物品。
其中,多个车辆111为能够连接无线网络112,并能够通过无线网络112相互通信的车辆。该多个车辆111具体可以是自动驾驶轿车、货车、或者自动搬运小车(AutomatedGuided Vehicle,AGV)。以下,以多个车辆为AGV、车辆行驶区域110为存储货架的区域为例对本公开进行表述。
其中,多个车辆111例如可以包括图1中的车辆1~车辆24,该多个车辆用于自动将货架从货架所在位置搬运至用户所在位置,以便于用户从货架上挑拣物品。此种情况下,多个车辆例如可以沿着图1中的各个格子113直线运动或者旋转90°后再直线运动。
考虑到多个车辆111为自动行驶的车辆,当该多个车辆111在车辆行驶区域110中行驶时,不可避免的会发生交通拥堵事件。例如,当图1中车辆1的需要移动至车辆2所在的位置,车辆2需要移动至车辆3所在的位置,车辆3需要移动至车辆4所在的位置及车辆4需要移动至车辆1所在的位置的情况下,由于车辆1~4的行驶路线围成了闭环结构(“死锁”结构),则需要分别移动至车辆1、车辆2、车辆3和车辆4所在位置的车辆13、车辆10、车辆18和车辆17则无法正常行驶。相应地,需要移动至该车辆13、车辆10、车辆18和车辆17所在位置的其他车辆也无法正常行驶,依次类推,导致图1中的车辆5~车辆20均无法正常行驶,并因此形成交通拥堵。如果该交通拥堵问题不能得到快速有效的处理,后果往往越来越严重,内层的车辆出不来,外层的车辆进不去。例如,若拥堵区域恰好还是热点区域(比如畅销物品的货架存放区),驶入的车辆还在不断增加,如此陷入一个恶性循环状态,最后会导致整个搬运系统瘫痪。
因此,为了快速有效的解决拥堵问题,参考图1中的各个车辆例如可以设置有通信装置,以通过无线网络112相互通信,便于各个车辆了解其所在环境的其他车辆的行驶信息。再者,参考图1中的各个车辆中的至少一个车辆例如还集成有控制装置,该控制装置应该具有处理功能,以用于根据与其他车辆通信得到的其他车辆的行驶信息,并通过与其他车辆的相互通信来确定解决拥堵问题的方案,控制处于拥堵状态的车辆移动至不存在拥堵的区域,例如图1中的格子A、格子B和格子C的位置。其中,对于图1所示的场景100,为了解决拥堵问题,由于车辆1~4形成了闭环结构,则例如需要将该车辆1~4中的至少一个车辆移动至不存在拥堵的区域。
根据本公开的实施例,该应用场景100例如还可以包括有信号基站120和终端设备130,该信号基站120与无线网络及终端设备130均通过网络连接,以实现终端设备130与处于无线网络112环境的多个车辆之间的通信。
其中,终端设备130可以是具有处理及控制功能的各种电子设备,例如可以包括服务器、台式计算机、便携式计算机、平板电脑或智能手机等。则该多个车辆例如也可以将各自的行驶信息通过网络发送给终端设备130,由终端设备130根据多个车辆的行驶信息确定车辆行驶区域110中拥堵事件的解决方案,并控制处于拥堵状态的部分车辆移动至不存在拥堵的区域。
需要说明的是,本公开实施例所提供的控制车辆的方法一般可以由终端设备130执行。相应地,本公开实施例所提供的控制车辆的装置一般可以设置于终端设备130中。本公开实施例提供的由车辆执行的方法一般可以由车辆1~24中任一个车辆执行。相应地,本公开实施例提供的车辆可以是车辆1~24中的任一个车辆。
应该理解,图1中的车辆和终端设备的类型和数目仅仅是示意性的。根据实现需要,可以具有任意类型和数目的车辆和终端设备。
图2示意性示出了根据本公开第一实施例的控制车辆的方法的流程图。
如图2所示,本公开实施例的控制车辆的方法包括操作S210~操作S240。该方法具体应用于多个车辆的中心化控制方案中,则该方法可以由图1中的终端设备130执行。
在操作S210,获得预定区域内多个车辆的行驶信息。
其中,预定区域例如可以是参考图1中的车辆行驶区域110,该车辆行驶区域110具体可以是一个货架仓库、或者通过划分一个货架仓库得到的多个区域中的一个区域。上述操作S210获得的行驶信息具体可以是各个车辆通过网络发送给终端设备130的。
其中,每个车辆的行驶信息例如可以包括有总行驶时长、当前行驶路线、出发点、目的地、车辆编号、车辆型号、行驶速度、表征当前状态的状态信息、处于当前状态的时长及表征当前位置的位置信息等。以便于终端设备130唯一的确定每个车辆以及该每个车辆所处的环境并为每个车辆规划行驶路线。
在操作S220,根据多个车辆的行驶信息,确定预定区域的路况信息。
该操作S220具体可以是根据该多个车辆的行驶信息中的状态信息来确定预定区域的路况信息。路况信息例如可以包括行驶畅通的信息、行驶缓慢的信息或行驶拥堵的信息等,则该路况信息可以表征预定区域内是否存在拥堵事件。例如,当相邻的较多车辆的状态信息表征该较多车辆处于停止状态的时间大于第一预定时长,则可以确定该预定区域的路况信息为行驶拥堵,即该路况信息表征该预定区域内存在拥堵事件。
在操作S230,在路况信息表征预定区域内存在拥堵事件的情况下,根据多个车辆的行驶信息,确定预定区域中的拥堵区域以及多个车辆中处于拥堵状态的m个车辆,该m个车辆位于拥堵区域中。
其中,上述操作S230中,确定多个车辆中处于拥堵状态的m个车辆的操作例如可以通过以下操作实现:第二车辆的停止时长大于第一预设时长的情况下,确定该第二车辆为处于拥堵状态的车辆,从而得到m个车辆。即具体为,根据每个车辆的行驶信息,确定处于停止状态的车辆,并判断该处于停止状态的车辆处于停止状态的时长,当某个车辆处于停止状态的时长大于第一预设时长时,即可确定该某个车辆处于拥堵状态。其中,第一预设时长例如可以为1min、5min、10min等,该第一预设时长具体可以根据实际需求进行设定,本公开对此不作限定。其中,m为自然数。考虑到一般只有存在如图1中的车辆1~车辆4围成的闭环结构的情况下才会发生拥堵事件,则上述m具体为大于等于4的自然数。
根据本公开的实施例,车辆的行驶信息中的状态信息例如还可以表征该车辆是否为存在故障的状态。则考虑到车辆处于停止状态的时长较长也有可能是由于该车辆存在故障情况,上述确定处于拥堵状态的车辆时,还可以根据状态信息确定车辆是否存在故障,只有在第二车辆的状态信息表征车辆不存在故障、且车辆处于停止状态的时长(即停止时长)大于第一预设时长的情况下,才确定该车辆为处于拥堵状态的车辆。其中,第二车辆为多个车辆中的任意一个车辆。
其中,上述操作S230中,确定预定区域中的拥堵区域的操作具体可以实现为:先根据m个车辆的位置信息,确定m个车辆中每个车辆所在的第一区域,然后再确定m个车辆所在的第一区域为拥堵区域。
根据本公开的实施例,每个车辆所在的第一区域例如可以是以每个车辆的位置信息表征的位置为中心、预定半径范围内的区域。例如,若图1中的车辆1的当前位置为(xa,ya),则可以将图1中车辆行驶区域110中坐标为(xa+u,ya+v)的格子113组成的区域作为车辆1的第一区域。其中,u,v∈{-k,-k+1,……,0,……,k-1,k},k为正整数参数,表示预定半径。可以理解的是,对于不同的车辆,上述的预定半径可以取相同或不同的值。且每个车辆所在的第一区域的确定方法仅作为示例以利于理解本公开,不同车辆的第一区域的确定方法可以相同或不同,本公开对此不作限定。其中,拥堵区域即为处于拥堵状态的车辆的第一区域组成的区域。考虑到预定区域内有可能存在多起拥堵事件,则通过上述方法确定的拥堵区域可以为一个或多个。例如,图1中处于拥堵状态的车辆包括车辆1~20,则构成的拥堵区域可以为虚线框围成的区域。
在操作S240,根据第一预定规则,控制m个车辆中的n个车辆移动至预定区域中除拥堵区域外的其他区域,以使得预定区域内不存在拥堵事件。
根据本公开的实施例,上述拥堵区域外的其他区域具体例如可以为车辆行驶区域110中除虚线框围成的区域外的其他区域。该第一预定规则例如可以将m个车辆中拥堵情况不严重的车辆移动至其他区域。其中,拥堵情况的严重程度具体可以根据每个车辆周边的车辆数量来确定,周边的车辆数量越多,则拥堵情况越严重。
其中,上述操作S240具体可以包括:先确定m个车辆中需要移动的n个车辆,然后控制n个车辆移动至其他区域,最后再将n个车辆移动至其他区域后,再次通过类似于上述操作S210~操作S220的方法,确定预定区域内不存在拥堵事件。其中,n为自然数,且n小于m。具体地,该操作S240的实现方式可参见后续图4~图5B描述的方法,在此不再详述。
在通过上述操作S210~操作S240后,还可以根据移出拥堵区域的n个车辆的目的地来为该n个车辆重新规划路线,以使得该n个车辆能够到达目的地。
综上可知,本公开实施例的控制车辆的方法,由于可以根据处于拥堵状态的车辆来确定拥堵区域,并控制处于拥堵区域中的部分车辆移出拥堵区域后重新规划路线来解决拥堵问题。因此可对处于拥堵状态的车辆统一管理,相较于各个车辆不断请求新的行驶线路的现有技术,可以有效解决拥堵问题,并在一定程度上提高拥堵事件的解决效率。
图3示意性示出了根据本公开第二实施例的控制车辆的方法的流程图。
本公开实施例中,在通过操作S230确定出拥堵区域后,为了避免该拥堵区域外的车辆进入该拥堵区域而加重拥堵情况。则如图3所示,控制车辆的方法除了图2描述的操作S210~操作S240外,还可以包括操作S350~操作S380。该操作S350~操作S380可以在操作S230之后执行,可以与操作S240同时执行,或者在操作S240之前执行。
在操作S350,确定第一车辆的当前行驶路线是否包括位于拥堵区域的路线。其中,第一车辆具体可以是多个车辆中除m个车辆外的任意一个车辆。该操作具体可以是:根据图1中每个第一车辆(车辆21~车辆24中的每个车辆)的行驶信息中的当前行驶路线,确定每个第一车辆在根据当前行驶路线行驶的过程中需要经过的多个格子,然后判断该多个格子中是否包括属于拥堵区域的格子。
当确定在第一车辆的当前行驶路线包括位于拥堵区域的路线的情况下,则执行操作S360,确定是否存在与第一车辆匹配的第一行驶路线。该第一行驶路线具体是与第一车辆的当前行驶路线的目的地相同的行驶路线,且该第一行驶路线具体不包括位于拥堵区域的路线,即第一行驶路线中经过的多个格子不包括属于拥堵区域的格子。
若确定存在第一行驶路线,则执行操作S370,控制第一车辆根据第一行驶路线移动,从而可以防止拥堵区域外的第一车辆进入拥堵区域,避免拥堵区域内拥堵程度的加重。该拥堵区域内的拥堵程度可以根据拥堵区域内包括的处于拥堵状态的车辆来确定,若包括的处于拥堵状态的车辆多,则拥堵区域内的拥堵程度严重。其中,若操作S360中确定存在多个第一行驶路线时,则可以根据多个第一行驶路线中每个行驶路线的总行驶长度,选择行驶长度最短的行驶路线作为最终控制第一车辆移动的第一行驶路线。
若确定不存在第一行驶路线,则可以执行操作S380,增加第一车辆在拥堵区域的移动成本,并确定第一车辆的行驶路线为第二行驶路线。其中,第二行驶路线包括位于拥堵区域的路线。即第二行驶路线中经过的多个格子包括属于拥堵区域的格子。根据本公开的实施例,该第二行驶路线也是与第一车辆匹配的路线,即该第二行驶路线的目的地与当前行驶路线相同。上述操作S380具体即为,先增加第一车辆在拥堵区域内的格子中移动的成本,然后确定多个第二行驶路线,并确定最终的行驶路线为移动成本最小的路线。其中,若第一车辆在非拥堵区域的每个格子中移动的成本为1时,则在拥堵区域内的每个格子中移动的成本可以为大于1的值,具体例如可以为1.5。每个第二行驶路线的移动成本则为该路线包括的多个格子中每个格子的移动成本的和。通过此方式,可以使得最终确定的第二行驶路线经过的多个格子中尽可能少的包括属于拥堵区域的格子,并因此可以在一定程度上避免拥堵程度的过度加重。
综上可知,本公开的实施例,可以在一定程度上避免拥堵区域外的车辆移动到拥堵区域内,从而可以有效避免拥堵事件的进一步恶化。
图4示意性示出了根据本公开第一实施例的控制车辆移动至其他区域的操作流程图。
如图4所示,图2中的操作S240可以包括循环执行的操作S441~操作S445,直至预定区域内不存在拥堵事件。
其中,在操作S441,随机选择处于拥堵状态的车辆中的一个第四车辆。在操作S442,获得第四车辆的中转点集,该中转点集包括位于其他区域的至少一个中转点。在操作S443,确定是否存在自第四车辆的位置信息表征的位置到至少一个中转点的第三行驶路线。若存在第三路线,则执行操作S444,向第四车辆分配第三行驶路线包括的中转点,并确定第四车辆处于非拥堵状态。然后再确定第四车辆处于非拥堵状态后,执行操作S445。而若不存在第三行驶路线,则直接执行操作S445。在操作S445,确定预定区域内是否还存在拥堵区域,若还存在,则返回操作S441重新选择第四车辆。若预定区域内不再存在拥堵区域,则说明已解决拥堵问题,则结束循环。
根据本公开的实施例,上述第四车辆的中转点集具体包括有位于其他区域的至少一个中转点,每个中转点具体可以是其他区域中第四车辆可以到达的最近的不超过M个的未被出库等任务预占的格子(具体可以是一侧放置有货架的储位)。
根据本公开的实施例,上述操作S441~操作S445具体还可以是自处于拥堵状态的车辆中随机选择一个车辆,为其规划自当前位置到中转点集中各个中转点的行驶路线,若到各个中转点的行驶路线中具有行驶畅通的路线时,则确定该行驶畅通的路线为第三路线,为随机选择的车辆分配中转点为该第三路线的目的地。则随后即可控制该车辆按照第三路线移动至为其分配的中转点。若未规划到行驶畅通的路线,则将该车辆的编号放入失败队列,并继续自剩余的处于拥堵状态的车辆中随机选择一个车辆,依次循环,直至预定区域内不再存在拥堵事件。
根据本公开的实施例,若存在多个第三路线时,则可以从该多个第三行驶路线中选择行驶长度最短的行驶路线包括的中转点作为操作S444分配的中转点。
图5A示意性示出了根据本公开第二实施例的控制车辆移动至其他区域的操作流程图,图5B示意性示出了根据本公开实施例的向第三车辆分配中转点的操作流程图。
如图5A所示,图2中的操作S240可以包括循环执行的操作S541~操作S546,直至预定区域内不再存在拥堵事件。
在操作S541,获得处于拥堵状态的车辆中每个车辆的拥堵系数,拥堵系数表征以所述位置信息表征的位置为中心的预定范围内的车辆个数。具体地,上述预定范围具体例如是与图1中某个车辆所在格子相邻格子围成的范围。例如在预定范围内包围车辆1的车辆分别包括车辆2、车辆3、车辆4、车辆11、车辆7、车辆12、车辆13和车辆5,则该车辆1的拥堵系数即为8;类似地,可以确定车辆2的拥堵系数为6。该操作S541具体即为,采用上述方法确定处于拥堵状态的车辆中每个车辆的拥堵系数。可以理解的是,上述确定车辆的拥堵系数的方法仅作为示例以利于理解本公开,本公开对此不作限定。
然后在操作S542,将处于拥堵状态的车辆中拥堵系数满足第一预定条件的第三车辆确定为需要移动至所述其他区域的车辆。根据本公开的实施例,考虑到拥堵系数越小说明被包围的车辆越少,因此也就越容易规划出移出拥堵区域的行驶路线,因此该第一预定条件可以是拥堵系数最小。则该操作S542具体可以包括:比较操作S541中得到的各个车辆的拥堵系数,确定最小的拥堵系数,并确定该最小的拥堵系数对应的车辆为需要移动至其他区域的车辆。
根据本公开的实施例,当拥堵系数最小的车辆不止一个时,还可以再确定该多个拥堵系数最小的车辆距离拥堵区域边缘的距离,并从中选择距离拥堵区域边缘的距离最短的车辆为第三车辆。若此时仍不能择一的确定第三车辆,例如还可以根据车辆当前位置到目的地的距离来择一的确定第三车辆等。可以理解的是,上述确定第三车辆的方法和规则仅作为示例以利于理解本公开,本公开对此不作限定。
在操作S543,获得第三车辆的中转点集,该中转点集包括位于其他区域的至少一个中转点。其中,该第三车辆的中转点集与图4中第四车辆的中转点集类似,在此不再赘述。
在操作S544,向第三车辆分配中转点;以及在操作S545,控制第三车辆移动至分配得到的中转点,并确定第三车辆处于非拥堵状态。根据本公开的实施例,在第三中转点集中包括多个中转点时,如图5B所示,该操作S544具体可以通过操作S5441~操作S5443来实现。在操作S5441,获得多个中转点中每个中转点的使用频率;在操作S5442,将多个中转点根据使用频率自低至高排列,得到中转点序列;在操作S5443,将中转点序列中满足第二预定条件的中转点分配给第三车辆。
根据本公开的实施例,对于多个车辆为AGV的应用场景,例如可以定时(例如每天)统计一段时间内(比如当前日期之前的一周内)各个储位上货架的出库频率,并以该出库频率作为各个储位的使用频率。为了尽可能避免在将第三车辆移至分配得到的中转点时,第三车辆与行驶路径中包括该中转点的其他车辆产生冲突的情况发生,可以向该第三车辆分配使用频率低于预定频率的中转点,则上述第二预定条件即为使用频率低于预定频率(该预定频率例如可以是小于0.5的值)。为了更好的避免冲突的产生,该第二预定条件还可以是使用频率最低。
则在通过操作S545将第三车辆移至其他区域后,还可以执行操作S546,判断预定区域内是否还存在拥堵事件。该操作S546具体可以通过实时获取的处于该拥堵区域内的多个车辆的行驶信息来确定,即具体可以采用操作S210~操作S230的方法来确定,在此不再赘述。在确定预定区域内不存在拥堵事件的情况下,就说明拥堵事件已被解决,则结束循环。若确定拥堵区域内还存在拥堵事件,则返回执行操作S541~操作S546,直至拥堵区域内不再存在拥堵事件。
图6示意性示出了根据本公开第三实施例的控制车辆的方法的流程图。
根据本公开的实施例,考虑到在车辆处于拥堵状态时,理论上若不将拥堵区域的部分车辆移至其他区域,处于拥堵状态的车辆是不具备规划出新的行驶路线的条件的。此时若该处于拥堵状态的车辆仍然向终端设备发送重新规划路线的请求时,是得不到反馈信息的,因此会不断的发送请求,这无疑会导致网络通信资源的浪费。若处于拥堵状态的m个车辆中的每个车辆均不断的请求新的行驶路径,则会导致大量并发的网络通信资源的浪费。
为了解决上述问题,如图6所示,本公开实施例的控制车辆的方法除了操作S210~操作S240外,还可以包括操作S690,控制处于拥堵状态的m个车辆中的第i个车辆处于休眠状态,直至该第i个车辆通过图4或图5A的方法分配得到了中转点,或者该第i个车辆所在的拥堵区域内不存在拥堵事件。其中,i为小于等于m的自然数。其中,操作S690在操作S230与操作S240之间执行。
根据本公开的实施例,为了避免因各个车辆处于休眠状态而导致终端设备无法获取各个车辆的状态信息,上述的休眠状态例如可以包括不能获取新的行驶路线的状态。或者,该休眠状态例如可以是仅禁止各个车辆获取新的行驶路线,而其他功能均可以正常执行。
综上可知,本公开实施例的控制车辆的方法,通过控制处于拥堵状态的车辆处于休眠状态,可以有效避免大量并发的网络通信资源的浪费。
图7示意性示出了根据本公开第一实施例的由车辆执行的控制方法的流程图。
如图7所示,本公开实施例的由车辆执行的控制方法包括操作S710~操作S750。该方法具体应用于分布式控制方案中,则该方法可以由1中的多个车辆111中的任意一个车辆执行。
在操作S710,获得车辆的行驶信息及预定区域内多个其他车辆的行驶信息。根据本公开的实施例,图1中的多个车辆之间例如可以通过无线网络112相互通信,以互相发送自己的行驶信息,确认各自的位置和状态等。例如,每个车辆例如可以通过无线网络112广播自己的行驶信息,以供位于预定区域的其他车辆接收。其中,预定区域与行驶信息与图2中操作S210描述的行驶信息相同或相似,在此不再赘述。
在操作S720,根据车辆的行驶信息及多个其他车辆的行驶信息,确定预定区域的路况信息。该操作S720与图2中的操作S220相同或相似,在此不再赘述。
其中,该多个车辆中的任一个车辆若在行驶过程中遇到其他的车辆(即存在冲突),则在原地等待其他车辆通过。然后在第一预定时间Tw后确定是否还存在冲突,若还存在冲突,则重新规划新的行驶路线,并将其自身状态标注为“尝试重新规划中”。若规划得到新的行驶线路,则按新的行驶路线行驶。若没有规划得到新的行驶路线,则在每隔第一预定时间Tw后重新尝试规划路线。若在尝试预定次数Nl次后还未找到新的行驶路线,则将其自身状态标注为“死锁”状态。则在确定预定区域的路况信息时,则可以根据多个车辆中处于“死锁”状态的车辆的个数来确定预定区域的路况信息。若处于“死锁”状态的车辆个数大于4,则确定该预定区域的路况信息为行驶拥堵,则该路况信息表征预定区域内存在拥堵事件。
其中,由于车辆在尝试预定次数Ni后还未找到新的行驶路线,才将其自身状态标注为“死锁”状态。因此,该操作S720还可以通过判断车辆处于“尝试重新规划中”的状态的时长是否大于第一预定时长,若处于“尝试重新规划中”状态的时长大于第一预定时长的车辆个数大于4,则确定该预定区域的路况信息为行驶拥堵,该路况信息表征预定区域内存在拥堵事件。上述的行驶信息例如可以包括有状态信息,该状态信息例如可以包括有各个车辆标注的状态及处于该标注的状态的时长。
在操作S730,在路况信息表征预定区域内存在拥堵事件的情况下,根据车辆的行驶信息及多个其他车辆的行驶信息,确定预定区域中的拥堵区域以及处于拥堵状态的m个车辆。该m个车辆位于拥堵区域中。其中,所述m为自然数,且m≥4。
根据本公开的实施例,该操作S730确定处于拥堵状态的m个车辆的方法具体可以包括:根据车辆的行驶信息,确定车辆的拥堵信息;根据多个其他车辆的行驶信息,确定多个其他车辆的拥堵信息;以及根据车辆的拥堵信息和多个其他车辆的拥堵信息,确定处于拥堵状态的m个车辆,其中,拥堵信息根据状态信息得到,在状态信息表征车辆不存在故障、且车辆的停止时长大于第一预设时长的情况下,拥堵信息表征车辆处于拥堵状态。
根据本公开的实施例,该操作S730确定处于拥堵状态的m个车辆的方法具体可以是将处于“死锁”状态的车辆确定为处于拥堵状态的车辆,或者将处于“尝试重新规划中”状态的时长大于第一预定时长的车辆确定为拥堵状态的车辆,并根据处于拥堵状态的车辆的位置信息确定拥堵区域。
其中,上述操作S730根据车辆的行驶信息及其他车辆的行驶信息,确定预定区域的拥堵区域包括:根据m个车辆的位置信息,确定m个车辆中每个车辆所在的第一区域;以及确定m个车辆所在的第一区域为拥堵区域。根据本公开的实施例,该操作S730中拥堵区域具体例如可以通过类似于操作S230中确定拥堵区域的方法来确定,在此不再赘述。
在操作S740,在车辆处于拥堵状态的情况下,根据第二预定规则,确定车辆是否需要移动至预定区域中除拥堵区域外的其他区域;在操作S750,在确定车辆需要移动至其他区域的情况下,控制车辆移动至其他区域。
其中,操作S740的实现方式可参见后续图9~图10描述的方法,在此不再详述。在车辆通过操作S710~操作S750移动到其他区域后,该车辆还可以根据自己的目的地重新规划路线,以使得该车辆能够到达目的地。
图8示意性示出了根据本公开第二实施例的由车辆执行的控制方法的流程图。
当车辆处于非拥堵状态的情况下,在通过操作S730确定出拥堵区域后,为了避免处于拥堵区域外的车辆进入该拥堵区域而加重拥堵的情况。则如图8所示,由车辆执行的控制方法除了图7描述的操作S710~操作S750外,还可以包括操作S860~操作S890。该操作S860~操作S890可以在操作S730之后执行,可以与操作S740同时执行,或者在操作S740之前执行。
在操作S860,在车辆处于非拥堵状态的情况下,确定该车辆的当前行驶路线是否包括位于拥堵区域的路线。在确定车辆的当前行驶路线包括位于拥堵区域的路线的情况下,则执行操作S870,确定是否存在与车辆匹配的第一行驶路线。其中,该第一行驶路线是不包括位于拥堵区域的路线。若存在与车辆匹配的第一行驶路线,则执行操作S880,控制车辆根据第一行驶路线移动。若不存在与车辆匹配的第一行驶路线,则执行操作S890,增加车辆在拥堵区域的移动成本,并确定车辆的行驶路线为第二行驶路线,该第二行驶路线包括位于拥堵区域的路线。
根据本公开的实施例,上述操作S860~操作S890中车辆执行的控制方法的具体实现方式类似于图3中对第一车辆的控制方法,区别仅在于图3中的操作S350~操作S380由终端设备执行,而操作S860~操作S890由车辆实现。上述第一行驶路线与第二行驶路线与图3中描述的第一行驶路线、第二行驶路线相似,在此不再赘述。
图9示意性示出了根据本公开第一实施例的确定车辆是否需要移动至其他区域的操作流程图。
如图9所示,图7中的操作S740可以包括循环执行的操作S941~操作S944,直至该车辆分配得到中转点或该车辆所在的拥堵区域内不存在拥堵事件。
在操作S941,获得车辆的中转点集,该中转点集包括位于其他区域的至少一个中转点。在操作S942,判断是否存在自车辆的位置信息表征的位置到至少一个中转点的第三行驶路线。若存在第三行驶路线,则执行操作S943,向车辆分配第三行驶路线包括的中转点。其中,在车辆分配得到中转点的情况下,确定该车辆需要移动至其他区域。在车辆未分配得到中转点、且车辆所在的拥堵区域内不存在拥堵事件的情况下,确定车辆不需要移动至其他区域。在确定车辆需要移动至其他区域的情况下,则执行图7所示的操作S750,控制车辆根据第三行驶路线移动至分配得到的中转点。若操作S942确定不存在第三行驶路线的情况下,则执行操作S944,判断车辆所在的拥堵区域内是否存在拥堵事件,其中,预定区域存在拥堵事件即可以说明确定的拥堵区域存在拥堵事件。若还存在拥堵事件,则在第二预定时间Tn后返回重新执行操作S941~操作S944,直至该车辆分配得到中转点,或该车辆所在的拥堵区域内不存在拥堵事件。若不存在拥堵事件,则说明该车辆的行驶不会受到其他车辆的影响,则结束循环。
根据本公开的实施例,为了避免不同车辆的中转点集中具有相同的中转点的情况下,重新规划得到的行驶路线存在冲突。在执行该操作S941的同时,该车辆还可以将自身标注的状态由“死锁”状态更改为“尝试重新规划中”的状态,并在确定了第三行驶路线后,将自身标注的状态由“尝试重新规划中”的状态更改为“绕路”状态。并将其标注的“绕路”状态的信息及第三行驶路线广播给其他车辆,以使得其他车辆知道其将根据第三行驶路线行驶,并在重新规划路线时,尽可能避开该第三行驶路线包括的中转点。同理,该车辆在执行操作S941~操作S944的过程中,若收到其他车辆广播的“绕路”状态的信息,则在操作S942中,确定存在的第三行驶路线应该是与其他车辆重新规划的行驶路线不冲突的行驶路线。
根据本公开的实施例,上述第三行驶路线与图4中描述的第三行驶路线相同或相似,且该操作S941~操作S943的具体实现方法与图4中操作S442~操作S444的实现方法类似,区别在于该操作S941~操作S943由车辆执行,而操作S442~操作S444由终端设备执行,在此不再赘述。
图10示意性示出了根据本公开第二实施例的确定车辆是否需要移动至其他区域的操作流程图。
如图10所示,图7中的操作S740可以包括循环执行的操作S1041~操作S1045,直至该车辆分配得到中转点或该车辆所在的拥堵区域内不存在拥堵事件。
在操作S1041,获得处于拥堵状态的车辆中每个车辆的拥堵系数,该拥堵系数表征以车辆的位置信息表征的位置为中心的预定范围内的车辆个数,该拥堵系数的确定方法与图5A描述的拥堵系数相同或相似,在此不再赘述。
在操作S1042,判断车辆的拥堵系数是否满足第一预定条件。该第一预定条件与图5A中操作S542描述的第一预定条件相同或类似,该操作S1042的实现方式与操作S542中确定第三车辆的方法相同或类似,在此不再赘述。
若车辆的拥堵系数满足第一预定条件,则执行操作S1043~操作S1044。在操作S1043,获得车辆的中转点集,该中转点集包括位于其他区域的至少一个中转点。在操作S1044,向车辆分配中转点,并确定车辆处于非拥堵状态。其中,在操作S1044后,可以执行操作S750,控制车辆移动至分配得到的中转点。
其中,操作S1044具体可以包括:获得多个中转点中每个中转点的使用频率;将多个中转点根据使用频率自低至高排列,得到中转点序列;以及将中转点序列中满足第二预定条件的中转点分配给该车辆。上述操作S1043~操作S1044的实现方法类似与图5A中操作S543~操作S544的实现方法,操作S1044具体可以通过图5B描述的操作S5441~操作S5443来实现。区别仅在于,该操作S1043~操作S1044由车辆来执行,而操作S543~操作S544由终端设备执行,在此不再赘述。
若车辆的拥堵系数不满足第一预定条件,则执行操作S1045,判断预定区域内是否还存在拥堵事件。若还存在拥堵事件,则在第二预定时间Tn后返回重新执行操作S1041~操作S1045,直至该车辆分配得到中转点,或该车辆所在的拥堵区域内不存在拥堵事件。若不存在拥堵事件,则说明该车辆的行驶不会受到其他车辆的影响,则结束循环。
综上可知,本公开实施例提供的由车辆执行的控制方法,通过多个车辆之间的相互通信及各个车辆对自身的控制,可以有效解决拥堵事件。
图11示意性示出了根据本公开实施例的控制车辆的装置的结构框图。
如图11所示,本公开的另一个方面提供了一种控制车辆的装置1100,该装置1100包括第一行驶信息获取模块1110、第一路况信息确定模块1120、第一拥堵车辆及区域确定模块1130和第一移动控制模块1140。
其中,第一行驶信息获取模块1110用于获得预定区域内多个车辆的行驶信息(操作S210)。第一路况信息确定模块1120用于根据多个车辆的行驶信息,确定预定区域的路况信息(操作S220)。第一拥堵车辆及区域确定模块1130用于在路况信息表征预定区域内存在拥堵事件的情况下,根据多个车辆的行驶信息,确定预定区域中的拥堵区域以及多个车辆中处于拥堵状态的m个车辆(操作S230),该m个车辆位于所述拥堵区域中。第一移动控制模块1140用于根据第一预定规则,控制m个车辆中的n个车辆移动至预定区域中除拥堵区域外的其他区域,以使得预定区域内不存在拥堵事件(操作S240)。其中,m、n均为自然数,且m≥4,n<m。
根据本公开的实施例,上述行驶信息包括当前行驶路线,上述控制车辆的装置1100还可以包括第一行驶路线规划模块1150,用于在第一车辆的当前行驶路线包括位于拥堵区域的路线的情况下,确定是否存在与第一车辆匹配的第一行驶路线(操作S350~操作S360)。具体地,在确定存在与第一车辆匹配的第一行驶路线的情况下,第一移动控制模块1140还用于控制第一车辆根据该第一行驶路线移动(操作S370)。在确定不存在与第一车辆匹配的第一行驶路线的情况下,上述第一行驶路线规划模块1150还用于增加第一车辆在拥堵区域的移动成本,并确定第一车辆的行驶路线为第二行驶路线(操作S380)。则第一移动控制模块1140还用于控制第一车辆根据第二行驶路线移动。其中,第一车辆包括多个车辆中除m个车辆外的车辆,第一行驶路线不包括位于拥堵区域的路线,第二行驶路线包括位于拥堵区域的路线。
根据本公开的实施例,上述行驶信息包括状态信息和位置信息。上述第一拥堵车辆及区域确定模块1130包括第一拥堵车辆确定子模块1131和第一拥堵区域确定子模块1132。上述第一拥堵车辆确定子模块1131用于在状态信息表征第二车辆不存在故障、且第二车辆的停止时长大于第一预设时长的情况下,确定第二车辆为处于拥堵状态的车辆,得到m个车辆。上述第一拥堵区域确定子模块1132用于根据m个车辆的位置信息,确定m个车辆中每个车辆所在的第一区域;以及确定m个车辆所在的第一区域为拥堵区域。
根据本公开的实施例,上述第一移动控制模块1140包括第一拥堵系数获取子模块1141、移动车辆确定子模块1142、第一中转点集获取子模块1143、第一中转点分配子模块1144和移动控制子模块1145。第一拥堵系数获取子模块1141用于获得处于拥堵状态的车辆中每个车辆的拥堵系数,该拥堵系数表征以位置信息表征的位置为中心的预定范围内的车辆个数(操作S541)。移动车辆确定子模块1142用于将处于拥堵状态的车辆中拥堵系数满足第一预定条件的第三车辆确定为需要移动至其他区域的车辆(操作S542)。第一中转点集获取子模块1143用于获得第三车辆的中转点集,该中转点集包括位于其他区域的至少一个中转点(操作S543)。第一中转点分配子模块1144用于向第三车辆分配中转点(操作S544)。移动控制子模块1145用于控制第三车辆移动至分配得到的中转点,并确定第三车辆处于非拥堵状态(操作S545)。
根据本公开的实施例,上述第一中转点分配子模块1144包括第一获取单元11441、第一排列单元11442和第一分配单元11443。第一获取单元11441用于获得多个中转点中每个中转点的使用频率(操作S5441)。第一排列单元11442用于将所述多个中转点根据使用频率自低至高排列,得到中转点序列(操作S5442)。第一分配单元11443用于将中转点序列中满足第二预定条件的中转点分配给第三车辆(操作S5443)。
根据本公开的实施例,上述第一移动控制模块1140可以包括车辆选择子模块1141’、第二中转点集获取子模块1142’、第一路线确定子模块1143’、第二中转点分配子模块1144’。车辆选择子模块1141’用于随机选择处于拥堵状态的车辆中的一个第四车辆(操作S441)。第二中转点集获取子模块1142’用于获得第四车辆的中转点集,该中转点集包括位于其他区域的至少一个中转点(操作S442)。第一路线确定子模块1143’用于确定是否存在自第四车辆的位置信息表征的位置到至少一个中转点的第三行驶路线(操作S443)。第二中转点分配子模块1144’用于在确定存在第三行驶路线的情况下,向第四车辆分配第三行驶路线包括的中转点,并确定第四车辆处于非拥堵状态(操作S444)。上述车辆选择子模块1141’还用于在确定不存在第三行驶路线的情况下,重新选择第四车辆。
根据本公开的实施例,上述控制车辆的装置1100还包括状态控制模块1160,用于控制m个车辆中的第i个车辆处于休眠状态(操作S690),直至第i个车辆分配得到中转点,或第i个车辆所在的拥堵区域内不存在拥堵事件。其中,i为自然数,且i≤m;休眠状态包括不能获取新的行驶路线的状态。
图12示意性示出了根据公开实施例的车辆中控制装置的结构框图。
本公开实施例还提供了一种车辆,该车辆包括车辆本体、通信装置和控制装置。其中,通信装置用于与预定区域内的多个其他车辆通信,以获得多个其他车辆的行驶信息。该通信装置具体例如可以通过图1中的无线网络112与其他车辆的通信装置通信。
控制装置与通信装置连接,如图12所示,控制装置1200具体包括第二行驶信息获取模块1210、第二路况信息确定模块1220、第二拥堵车辆及区域确定模块1230、移动确定模块1240和第二移动控制模块1250。
其中,第二行驶信息获取模块1210用于获得车辆的行驶信息。根据本公开的实施例,该第二行驶信息获取模块1210和通信装置可以共同用于执行图7中的操作S710,在此不再赘述。
第二路况信息确定模块1220用于根据车辆的行驶信息及多个其他车辆的行驶信息,确定预定区域的路况信息(操作S720)。第二拥堵车辆及区域确定模块1230用于在路况信息表征预定区域内存在拥堵事件的情况下,根据车辆的行驶信息及多个其他车辆的行驶信息,确定预定区域中的拥堵区域以及处于拥堵状态的m个车辆(操作S730),该m个车辆位于所述拥堵区域中。移动确定模块1240用于在车辆处于拥堵状态时,根据第二预定规则确定车辆是否需要移动至预定区域中除拥堵区域外的其他区域(操作S740)。第二移动控制模块1250用于在车辆需要移动至其他区域的情况下,控制车辆本体移动至其他区域(操作S750)。其中,m为自然数,且m≥4。
根据本公开的实施例,上述行驶信息包括当前行驶线路,上述控制装置1200还可以包括第二行驶路线规划模块1260,该第二行驶路线规划模块1260用于在车辆处于非拥堵状态、且车辆的当前行驶路线包括位于拥堵区域的路线的情况下,确定是否存在与车辆匹配的第一行驶路线(操作S860~操作S870)。具体地,在存在与车辆匹配的第一行驶路线的情况下,上述第二移动控制模块1250还用于控制车辆根据第一行驶路线移动(操作S880)。在不存在与第一车辆匹配的第一行驶路线的情况下,上述第二行驶路线规划模块1260还用于增加车辆在拥堵区域的移动成本,并确定车辆的行驶路线为第二行驶路线(操作S890)。相应地,上述第二移动控制模块1250用于控制车辆根据该第二行驶路线移动。其中,第一行驶路线不包括位于拥堵区域的路线,第二行驶路线包括位于拥堵区域的路线。
根据本公开的实施例,行驶信息包括状态信息和位置信息。上述第二拥堵车辆及区域确定模块1230包括第二拥堵车辆确定子模块1231和第二拥堵区域确定子模块1232。其中,第二拥堵车辆确定子模块1231用于根据车辆的行驶信息,确定车辆的拥堵信息;根据多个其他车辆的行驶信息,确定多个其他车辆的拥堵信息;以及根据车辆的拥堵信息和多个其他车辆的拥堵信息,确定处于拥堵状态的m个车辆。其中,拥堵信息根据状态信息得到,在状态信息表征第二车辆不存在故障、且第二车辆的停止时长大于第一预设时长的情况下,拥堵信息表征第二车辆处于拥堵状态。第二拥堵区域确定子模块1232用于根据m个车辆的位置信息,确定m个车辆中每个车辆所在的第一区域;以及确定m个车辆所在的第一区域为拥堵区域。
根据本公开的实施例,上述移动确定模块1240包括第二拥堵系数获取子模块1241、第三中转点集获取子模块1242和第三中转点分配子模块1243。其中,第二拥堵系数获取子模块1241用于获得处于拥堵状态的车辆中每个车辆的拥堵系数,该拥堵系数表征以车辆的位置信息表征的位置为中心的预定范围内的车辆个数(操作S1041)。第三中转点集获取子模块1242用于在车辆的拥堵系数满足第一预定条件的情况下,获得车辆的中转点集,该中转点集包括位于其他区域的至少一个中转点(操作S1042~操作S1043)。第三中转点分配子模块1243用于向车辆分配中转点,并确定车辆处于非拥堵状态(操作S1044)。其中,在确定所述车辆需要移动至其他区域的情况下,上述第二移动控制模块1250用于控制车辆移动至分配得到的中转点。
根据本公开的实施例,第三中转点分配子模块1243可以包括第二获取单元12431、第二排列单元12432和第二分配单元12433。其中,第二获取单元12431用于获得多个中转点中每个中转点的使用频率。第二排列单元12432用于将多个中转点根据使用频率自低至高排列,得到中转点序列。第二分配单元12433用于将中转点序列中满足第二预定条件的中转点分配给车辆。
根据本公开的实施例,上述移动确定模块1240可以包括第四中转点集获取子模块1241’、第二路线确定子模块1242’和第四中转点分配子模块1243’。其中,第四中转点集获取子模块1241’用于获得车辆的中转点集,该中转点集包括位于其他区域的至少一个中转点(操作S941)。第二路线确定子模块1242’用于确定是否存在自车辆的位置信息表征的位置到至少一个中转点的第三行驶路线(操作S942)。第四中转点分配子模块1243’用于在确定存在第三行驶路线的情况下,向车辆分配第三行驶路线包括的中转点(操作S943)。其中,上述移动确定模块1240用于在车辆分配得到中转点的情况下,确定车辆需要移动至其他区域;在车辆未分配得到中转点、且所述车辆所在的拥堵区域内不存在拥堵事件的情况下,确定车辆不需要移动至其他区域。上述第二移动控制模块1250用于在确定车辆需要移动至其他区域的情况下,控制车辆根据第三行驶路线移动至分配得到的中转点。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,第一行驶信息获取模块1110、第一路况信息确定模块1120、第一拥堵车辆及区域确定模块1130、第一移动控制模块1140、第一行驶路线规划模块1150、状态控制模块1160、第一拥堵车辆确定子模块1131、第一拥堵区域确定子模块1132、第一拥堵系数获取子模块1141、移动车辆确定子模块1142、第一中转点集获取子模块1143、第一中转点分配子模块1144、移动控制子模块1145、车辆选择子模块1141’、第二中转点集获取子模块1142’、第一路线确定子模块1143’、第二中转点分配子模块1144’、第一获取单元11441、第一排列单元11442以及第一分配单元11443中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一行驶信息获取模块1110、第一路况信息确定模块1120、第一拥堵车辆及区域确定模块1130、第一移动控制模块1140、第一行驶路线规划模块1150、状态控制模块1160、第一拥堵车辆确定子模块1131、第一拥堵区域确定子模块1132、第一拥堵系数获取子模块1141、移动车辆确定子模块1142、第一中转点集获取子模块1143、第一中转点分配子模块1144、移动控制子模块1145、车辆选择子模块114]’、第二中转点集获取子模块1142’、第一路线确定子模块1143’、第二中转点分配子模块1144’、第一获取单元11441、第一排列单元11442以及第一分配单元11443中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一行驶信息获取模块1110、第一路况信息确定模块1120、第一拥堵车辆及区域确定模块1130、第一移动控制模块1140、第一行驶路线规划模块1150、状态控制模块1160、第一拥堵车辆确定子模块1131、第一拥堵区域确定子模块1132、第一拥堵系数获取子模块1141、移动车辆确定子模块1142、第一中转点集获取子模块1143、第一中转点分配子模块1144、移动控制子模块1145、车辆选择子模块1141’、第二中转点集获取子模块1142’、第一路线确定子模块1143’、第二中转点分配子模块1144’、第一获取单元11441、第一排列单元11442以及第一分配单元11443中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,第二行驶信息获取模块1210、第二路况信息确定模块1220、第二拥堵车辆及区域确定模块1230、移动确定模块1240、第二移动控制模块1250、第二行驶路线规划模块1260、第二拥堵车辆确定子模块1231、第二拥堵区域确定子模块1232、第二拥堵系数获取子模块1241、第三中转点集获取子模块1242、第三中转点分配子模块1243、第四中转点集获取子模块1241’、第二路线确定子模块1242’、第四中转点分配子模块1243’、第二获取单元12431、第二排列单元12432以及第二分配单元12433中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第二行驶信息获取模块1210、第二路况信息确定模块1220、第二拥堵车辆及区域确定模块1230、移动确定模块1240、第二移动控制模块1250、第二行驶路线规划模块1260、第二拥堵车辆确定子模块1231、第二拥堵区域确定子模块1232、第二拥堵系数获取子模块1241、第三中转点集获取子模块1242、第三中转点分配子模块1243、第四中转点集获取子模块1241’、第二路线确定子模块1242’、第四中转点分配子模块1243’、第二获取单元12431、第二排列单元12432以及第二分配单元12433中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第二行驶信息获取模块1210、第二路况信息确定模块1220、第二拥堵车辆及区域确定模块1230、移动确定模块1240、第二移动控制模块1250、第二行驶路线规划模块1260、第二拥堵车辆确定子模块1231、第二拥堵区域确定子模块1232、第二拥堵系数获取子模块1241、第三中转点集获取子模块1242、第三中转点分配子模块1243、第四中转点集获取子模块1241’、第二路线确定子模块1242’、第四中转点分配子模块1243’、第二获取单元12431、第二排列单元12432以及第二分配单元12433中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图13示意性示出了根据本公开实施例的适于实现控制车辆的方法或实现由车辆执行的控制方法的控制装置的方框图。图13示出的控制装置仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图13所示,根据本公开实施例的控制装置1300包括处理器1301,其可以根据存储在只读存储器(ROM)1302中的程序或者从存储部分1308加载到随机访问存储器(RAM)1303中的程序而执行各种适当的动作和处理。处理器1301例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器1301还可以包括用于缓存用途的板载存储器。处理器1301可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 1303中,存储有装置1300操作所需的各种程序和数据。处理器1301、ROM1302以及RAM 1303通过总线1304彼此相连。处理器1301通过执行ROM 1302和/或RAM 1303中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 1302和RAM 1303以外的一个或多个存储器中。处理器1301也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,控制装置1300还可以包括输入/输出(I/O)接口1305,输入/输出(I/O)接口1305也连接至总线1304。控制装置1300还可以包括连接至I/O接口1305的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1306;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1307;包括硬盘等的存储部分1308;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1309。通信部分1309经由诸如因特网的网络执行通信处理。驱动器1310也根据需要连接至I/O接口1305。可拆卸介质1311,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1310上,以便于从其上读出的计算机程序根据需要被安装入存储部分1308。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1309从网络上被下载和安装,和/或从可拆卸介质1311被安装。在该计算机程序被处理器1301执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 1302和/或RAM 1303和/或ROM 1302和RAM 1303以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。