CN117425808A - 动态选择穿过对向交通的转弯的车辆路线规划 - Google Patents
动态选择穿过对向交通的转弯的车辆路线规划 Download PDFInfo
- Publication number
- CN117425808A CN117425808A CN202280040338.2A CN202280040338A CN117425808A CN 117425808 A CN117425808 A CN 117425808A CN 202280040338 A CN202280040338 A CN 202280040338A CN 117425808 A CN117425808 A CN 117425808A
- Authority
- CN
- China
- Prior art keywords
- link
- traffic
- route
- vehicle
- head
- 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.)
- Pending
Links
- 238000012384 transportation and delivery Methods 0.000 claims abstract description 146
- 238000000034 method Methods 0.000 claims abstract description 120
- 230000004044 response Effects 0.000 claims abstract description 28
- 238000011161 development Methods 0.000 claims abstract description 9
- 230000006870 function Effects 0.000 claims description 52
- 230000001934 delay Effects 0.000 claims description 17
- 238000012545 processing Methods 0.000 description 67
- 230000008569 process Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 16
- 238000004364 calculation method Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 238000007781 pre-processing Methods 0.000 description 6
- 230000003416 augmentation Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 230000001413 cellular effect Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 241000699670 Mus sp. Species 0.000 description 2
- 206010039203 Road traffic accident Diseases 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000000137 annealing Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013497 data interchange Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000002243 precursor Substances 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
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/34—Route searching; Route guidance
- G01C21/3453—Special cost functions, i.e. other than distance or default speed limit of road segments
- G01C21/3492—Special cost functions, i.e. other than distance or default speed limit of road segments employing speed data or traffic data, e.g. real-time or historical
-
- 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/3407—Route searching; Route guidance specially adapted for specific applications
- G01C21/343—Calculating itineraries, i.e. routes leading from a starting point to a series of categorical destinations using a global route restraint, round trips, touristic trips
-
- 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/3407—Route searching; Route guidance specially adapted for specific applications
- G01C21/3415—Dynamic re-routing, e.g. recalculating the route when the user deviates from calculated route or after detecting real-time traffic data or accidents
-
- 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/3453—Special cost functions, i.e. other than distance or default speed limit of road segments
- G01C21/3461—Preferred or disfavoured areas, e.g. dangerous zones, toll or emission zones, intersections, manoeuvre types, segments such as motorways, toll roads, ferries
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0214—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with safety or protection criteria, e.g. avoiding hazardous areas
-
- G—PHYSICS
- G08—SIGNALLING
- G08G—TRAFFIC CONTROL SYSTEMS
- G08G1/00—Traffic control systems for road vehicles
- G08G1/01—Detecting movement of traffic to be counted or controlled
- G08G1/0104—Measuring and analyzing of parameters relative to traffic conditions
- G08G1/0125—Traffic data processing
- G08G1/0133—Traffic data processing for classifying traffic situation
-
- G—PHYSICS
- G08—SIGNALLING
- G08G—TRAFFIC CONTROL SYSTEMS
- G08G1/00—Traffic control systems for road vehicles
- G08G1/20—Monitoring the location of vehicles belonging to a group, e.g. fleet of vehicles, countable or determined number of vehicles
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Chemical & Material Sciences (AREA)
- Analytical Chemistry (AREA)
- Aviation & Aerospace Engineering (AREA)
- Navigation (AREA)
Abstract
本文提出了用于其中动态选择穿过对向交通的转弯的车辆路线调度和导航的系统、方法和其它实施例。在一个实施例中,一种方法包括在开发从到达链路通过表示道路网络的图的节点的车辆路线期间,对于出发链路,确定车辆从到达链路到出发链路的路径与迎面交通相交,以及响应于确定车辆的路径与迎面交通相交,将用于出发链路的附加的延迟添加到表示车辆路线的路线目标函数;选择包括与迎面交通相交的路径的路线作为第一位置与第二位置之间的最优路线;将该最优路线包括在车辆的递送时间表中;以及传输递送时间表以供执行。
Description
背景技术
穿过迎面而来的车辆的转弯会造成延迟并增加碰撞的风险。因而,递送车队的运营商在其车辆路线规划、导航和递送调度系统中实现针对交叉交通转弯的“硬”规则。但是,此类针对交叉交通转弯的不灵活的“硬”规则引入了不必要的复杂性并降低了车辆路线规划、导航和递送调度的灵活性。
因此期望在交叉交通转弯有利的情况下智能地允许交叉交通转弯的系统和方法。
发明内容
在一个实施例中,提出了一种包括存储在其上的计算机可执行指令的非暂态计算机可读介质,指令在至少由计算机的处理器执行时使得计算机:在开发从到达链路通过表示道路网络的图的节点的车辆路线期间,对于出发链路,确定车辆从到达链路到出发链路的路径与迎面交通相交,并且响应于确定车辆的路径与迎面交通相交,将用于出发链路的附加的估计延迟添加到表示车辆路线的路线目标函数;选择包括与迎面交通相交的路径的路线作为第一位置与第二位置之间的最优路线;包括该最优路线以作为车辆的递送时间表的一部分;以及传输递送时间表以供执行。
在一个实施例中,非暂态计算机可读介质,其中使得计算机对于出发链路确定车辆从到达链路到出发链路的路径与迎面交通相交的指令包括使得计算机执行以下操作的指令:检索适用于图的道路的驾驶侧的指示;检索与节点的每个传入和传出链路的罗盘航向,每个传入和传出链路包括到达链路和出发链路;确定到达链路的罗盘航向和出发链路的罗盘航向指示路径是与道路的驾驶侧相反的方向的转弯;以及确定进入节点的第一链路和离开节点的第一链路的第一罗盘航向与到达链路的罗盘航向相反。
在一个实施例中,非暂态计算机可读介质,其中指令还使计算机:确定迎面交通是否畅通;以及将附加的估计延迟(i)在迎面交通畅通的情况下控制为预先配置的标准延迟,以及(ii)在迎面交通不畅通的情况下控制为基于估计的交通密度动态生成的延迟的度量。
在一个实施例中,非暂态计算机可读介质,其中使得计算机添加用于出发链路的附加的估计延迟的指令包括使得计算机执行以下任一操作的指令:(i)检索用于交叉交通转弯的预先配置的标准延迟作为估计延迟,或者(ii)至少部分地基于迎面交通的速度限制和历史速度来计算附加的估计延迟。
在一个实施例中,非暂态计算机可读介质还包括指令,指令在至少由处理器执行时使得计算机响应于确定车辆的路径与迎面交通相交,将用于出发链路的附加成本添加到表示车辆路线的路线目标函数。
在一个实施例中,非暂态计算机可读介质,其中用于传输递送时间表以供执行的指令包括用于以下操作的指令:将装载计划传输到仓库计算系统,以选择并装载要递送到递送车辆上的物品;以及将递送路线传输到与递送车辆相关联的移动设备,以使递送路线被显示给驾驶员并使得驾驶员操作车辆穿过迎面交通。
在一个实施例中,非暂态计算机可读介质,其中用于传输递送时间表以供执行的指令包括用于以下操作的指令:将递送时间表传输到自主递送车辆,以使自主递送车辆根据递送时间表穿过迎面交通前往递送停车站。
在一个实施例中,一种计算机实现的方法,包括:在开发从到达链路通过表示道路网络的图的节点的车辆路线期间,对于出发链路,确定车辆从到达链路到出发链路的路径与迎面交通相交,并且响应于确定车辆的路径与迎面交通相交,将用于出发链路的附加的估计延迟添加到表示车辆路线的路线目标函数;选择包括与迎面交通相交的路径的路线作为第一位置与第二位置之间的最优路线;包括该最优路线以作为车辆的递送时间表的一部分;以及传输递送时间表以供执行。
在一个实施例中,计算机实现的方法还包括操作自主递送车辆以通过车辆从到达链路到出发链路的穿过迎面交通的路径到达递送停车站。
在一个实施例中,计算机实现的方法,其中添加用于出发链路的附加的估计延迟包括至少部分地在基于车辆路线到达节点的一天中的时间内构成迎面交通的一个或多个链路的历史交通速度来计算估计延迟。
在一个实施例中,计算机实现的方法,还包括,响应于确定车辆的路径与迎面交通相交,将用于出发链路的附加成本添加到表示车辆路线的路线目标函数。
在一个实施例中,计算机实现的方法,其中对于出发链路确定车辆从到达链路到出发链路的路径与迎面交通相交包括:检索适用于图的道路的驾驶侧的指示;检索与节点的每个传入和传出链路的罗盘航向,每个传入和传出链路包括到达链路和出发链路;确定到达链路的罗盘航向和出发链路的罗盘航向指示路径是与道路的驾驶侧相反的方向的转弯;以及确定进入节点的第一链路和离开节点的第一链路的第一罗盘航向与到达链路的罗盘航向相反。
在一个实施例中,一种计算系统,包括:处理器;可操作地连接到处理器的存储器;由处理器控制的自主车辆;非暂态计算机可读介质,可操作地连接到处理器和存储器并存储计算机可执行指令,指令在至少由计算机的处理器执行时使得计算系统:在开发自主车辆从到达链路通过表示道路网络的图的节点的路线期间,对于出发链路,确定自主车辆从到达链路到出发链路的路径与迎面交通相交,并且响应于确定路径与迎面交通相交,将用于出发链路的附加的估计延迟添加到表示路线的路线目标函数;选择包括与迎面交通相交的路径的路线作为第一位置与第二位置之间的最优路线;以及通过从到达链路到出发链路的穿过迎面交通的路径操作自主车辆。
在一个实施例中,计算系统,其中指令还使得计算系统:确定迎面交通是否畅通;以及将附加的估计延迟(i)在迎面交通畅通的情况下控制为预先配置的标准延迟,以及(ii)在迎面交通不畅通的情况下控制为基于估计的交通密度动态生成的延迟的度量。
在一个实施例中,计算系统,其中使得计算系统对于出发链路确定自主车辆从到达链路到出发链路的路径与迎面交通相交的指令包括使得计算系统执行以下操作的指令:检索适用于图的道路的驾驶侧的指示;检索与节点的每个传入和传出链路的罗盘航向,每个传入和传出链路包括到达链路和出发链路;确定到达链路的罗盘航向和出发链路的罗盘航向指示路径是与道路的驾驶侧相反的方向的转弯;以及确定进入节点的第一链路和离开节点的第一链路的第一罗盘航向与到达链路的罗盘航向相反。
附图说明
结合在本说明书中并构成其一部分的附图图示了本公开的各种系统、方法和其它实施例。将认识到的是,图中所图示的元件边界(例如,框、框的组,或者其它形状)表示边界的一个实施例。在一些实施例中,一个元件可以被实现为多个元件,或者多个元件可以被实现为一个元件。在一些实施例中,示为另一个元件的内部组件的元件可以被实现为外部组件,并且反之亦然。此外,元件可能不是按比例绘制的。
图1图示了与其中动态选择穿过对向交通的转弯的车辆路线调度和导航相关联的计算系统的一个实施例。
图2图示了表示与其中动态选择穿过对向交通的转弯的车辆路线调度和导航相关联的道路地图的示例图,包括图的详细区段。
图3图示了与其中动态选择穿过对向交通的转弯的车辆路线调度和导航相关联的方法的一个实施例。
图4图示了用于确定从到达链路到出发链路的与迎面交通相交的路径的方法的实施例,该方法与其中动态选择穿过对向交通的转弯的车辆路线调度和导航相关联。
图5A图示了通过四路交叉路口的交叉交通转弯路线的示例图。
图5B图示了通过T字路口的非交叉交通转弯路线的示例图。
图5C图示了通过具有多个行驶车道的四路交叉路口的交叉交通转弯路线的示例图。
图5D图示了通过四路交叉路口的非交叉交通转弯路线的示例图。
图5E图示了通过T字路口的交叉交通转弯路线的示例图。
图5F图示了通过涉及单向道路的交叉路口的非交叉交通转弯路线的示例图。
图5G图示了通过四路交叉路口的交叉交通U形转弯路线的示例图。
图6图示了示例自主车辆控制系统,该系统被配置和/或编程为根据本文描述的系统和方法中的一个或多个和/或等同物进行操作。
图7图示了利用本文描述的系统和方法中的一个或多个和/或等同物来配置和/或编程的示例移动设备。
图8图示了被配置和/或编程为具有本文描述的示例系统和方法中的一个或多个和/或等同物的专用计算设备的示例计算系统。
具体实施方式
本文描述了提供其中动态选择穿过对向交通的转弯的车辆路线调度和导航的系统和方法。例如,由本文描述的系统和方法生成的车辆路线规划智能地结合了穿过对向(或迎面)交通的转弯,其中交叉交通转弯比避开交叉交通转弯的路线规划选项更有利。在一个实施例中,本文描述了用于路线调度和导航的系统和方法,该路线调度和导航提供解决具有交叉交通转弯的多旅行推销员问题(MTSP)。
向MTSP求解器(零售递送、公用事业)提供准确行驶时间所需的可用道路网络历史行驶时间没有结合转弯产生的附加延迟。在繁忙的道路上穿过迎面交通的转弯可能引起严重的延迟和发生事故的风险。因此,可以期望重新安排运输作业以最小化交叉交通转弯和/或在作业之间改变车辆路线以避开此类转弯的总体需求。在解决运输问题时考虑这些隐藏的延迟既减少了总行程时间,又减小了事故发生的机会。如本文参考交通所使用的,术语“对向”和“迎面”是同义的。
在一个实施例中,本文描述的系统和方法在计算路线时识别交叉交通转弯,并且针对此类转弯指派估计的延迟。附加的延迟被传递到路线规划和调度目标函数,从而使求解器以“穿过对向交通的”转弯的影响被最小化的方式来调整所得到的时间表。但是,在所有情况下针对交叉交通转弯的“硬”规则也可能增加不必要的复杂性并向车辆路线增加伴随的延迟。因而,仅在适当的情形下—例如,当对向交通畅通且因此几乎不会造成延迟或风险增加时,或者当对向交通较多但不存在具有更低目标成本的其它路线规划选项时—生成结合交叉交通转弯的路线的系统和方法可以是期望的。
在本文描述的系统和方法的一个实施例中,动态模型考虑了转弯时间很大程度上受交通密度影响的事实。例如,在这个动态模型中:(1)用其罗盘航向来标记链路,从而允许路线规划算法快速确定通过节点的候选路径是否穿过对向交通;(2)链路被标记为住宅区或者非住宅区—穿过住宅区交通的转弯通常不会引起延迟;以及(3)用速度限制来标记链路—转弯延迟可以根据速度限制与历史速度之间的比率来估计。
穿过对向交通的转弯是延迟和事故的源,其无法被商业MTSP求解器使用的当前交通模型捕获。通过包括这种延迟源,本文描述的系统和方法重新组织MTSP解决方案,以通过重新安排车辆之间的工作以减少缓慢转弯的数量,或者通过规划车辆的路线绕过它们,最小化缓慢的、有风险的“穿过对向交通的”转弯的总数。结果是现实世界的更准确的模型,该模型允许求解器生成实际行驶时间更短且安全性增加的解决方案。值得注意的是,本文的系统和方法不应用交叉交通转弯的“硬”避免。代替地,本文的系统和方法使得能够动态避开交叉交通转弯:仅当可以找到更好的替代方案时才避开交叉交通转弯。
在一个实施例中,本文的系统和方法实现预处理阶段,准备用作最短路径求解器算法(诸如Dijkstra算法)的输入的图,该最短路径求解器算法在路线计算阶段生成路线。在一个实施例中,预处理阶段根据源道路数据计算“住宅区”标志,并存储每个链路的标志。在一个实施例中,预处理阶段从源道路数据获得速度限制,并存储每个链路的速度限制。在一个实施例中,在构建图时的预处理阶段中,预处理阶段获得每个链路的终点坐标,并使用这些坐标来用罗盘航向标记每个链路。
在一个实施例中,本文的系统和方法通过执行路径求解器算法以生成路线来实现路线计算阶段。在一个实施例中,在路线计算阶段期间,当开发或处理到达节点的链路时,计算阶段针对每个出发链路检查非住宅区的到达道路是否与穿过交叉路口的车辆路径交叉。如果是,那么计算阶段计算估计的延迟,并将该延迟添加到目标函数。当减少交通事故非常重要时,还可以将进一步的数值费用(numerical toll)与延迟一起添加到目标函数。
本文描述或要求保护的任何动作或功能都不是由人类思维执行的。任何动作或功能都可以在人类思维中执行的解释与本公开不一致且相反。
—示例环境—
图1图示了与其中动态选择穿过对向交通的转弯的车辆路线调度和导航相关联的计算系统100的一个实施例。
在一个实施例中,系统100包括通过互联网110(或另一个合适的通信网络或网络的组合)连接到企业网络115的调度、分派和路线规划系统105。在一个实施例中,调度、分派和路线规划系统105可以是实时调度器(Real-Time Scheduler,RTS)、/>路上集成优化和导航(On-Road Integrated Optimization and Navigation,ORION)、或被配置为执行用于其中动态选择穿过对向交通的转弯的车辆路线调度和导航的方法的其它系统。在一个实施例中,调度、分派和路线规划系统105包括各种系统和组件,其包括动态交叉交通转向组件120、其它系统组件125、(一个或多个)数据存储库130以及web接口服务器135。
在一个实施例中,动态交叉交通转弯组件120包括一个或多个组件,该一个或多个组件被配置用于通过求解具有交叉交通转弯的MTSP来实现本文描述的与路线调度和导航相关联的方法、功能和特征。动态交叉交通转弯组件120可以包括路线生成引擎170,其被配置为根据本文描述的系统和方法开发道路网络图的节点之间的动态地包括路线中的交叉交通转弯的最短路径。最短路径不一定在行驶距离上是最短的。在一个实施例中,最短路径求解器操作以基于目标成本函数找到具有最小行驶目标成本的“最短”路径。目标成本函数可以包括行驶时间、行驶距离、交叉交通转弯或其它交通危险、或构成沿着路径行驶的总体负担的其它物品的输入。动态交叉交通转弯组件120可以包括路线生成引擎170,其识别表示为图的道路网络中的地理点之间的最低成本路线。动态交叉交通转弯组件120可以包括调度引擎173,其确定哪些递送物品被指派给哪些路线,以及那些物品的递送次序。动态交叉交通转弯组件120可以包括地图增强(预处理)模块,以生成由本文描述的用于将交叉交通转弯动态地包括在车辆路线规划中的系统和方法使用的信息,并且将这个信息插入到表示道路网络的图中以供使用。动态交叉交通转弯组件120可以包括地图数据库180,地图数据库180存储表示道路网络的一个或多个图,道路网络可以被配置为支持在车辆路线规划中动态包括交叉交通转弯。
调度、分派和路线规划系统105的每个组件由逻辑配置为执行该组件被描述为执行的功能。在一个实施例中,调度、分派和路线规划系统105的组件各自可以被实现为由专门配置用于这种执行的一个或多个计算设备执行的一个或多个软件模块的集合。在一个实施例中,调度、分派和路线规划系统105的组件在通过数据网络互连的一个或多个硬件计算设备或主机上实现。例如,调度、分派和路线规划系统105的组件可以由一个或多个计算硬件形状(诸如中央处理单元(CPU)或通用形状、密集输入/输出(I/O)形状、图形处理单元(GPU)形状和高性能计算(HPC)形状)的网络连接的计算设备执行。在一个实施例中,调度、分派和路线规划系统105的组件各自由一个或多个专用计算设备实现。在一个实施例中,调度、分派和路线规划系统105的几个或全部组件由共用(或共享)计算设备实现,虽然在图1中被表示为离散单元。在一个实施例中,调度、分派和路线规划系统105的组件可以跨多个计算设备来实现。在一个实施例中,调度、分派和路线规划系统105可以被实现为云基础设施上的服务。在一个实施例中,调度、分派和路线规划系统105可以由专用第三方托管,例如在基础设施即服务(IAAS)、平台即服务(PAAS)或软件即服务(SAAS)体系架构中托管。在一个实施例中,调度、分派和路线规划系统105可以在内部部署的基础设施上实现,诸如通过企业网络115内专用于调度、分派和路线规划系统105的操作的一个或多个服务器的集合实现。
在一个实施例中,调度、分派和路线规划系统105的组件通过电子消息或信号相互通信。这些电子消息或信号可以被配置为对访问组件的特征或数据的功能或过程的调用,诸如例如应用编程接口(API)调用。在一个实施例中,这些电子消息或信号以与传输控制协议/互联网协议(TCP/IP)或其它计算机联网协议兼容的格式在主机之间发送。调度、分派和路线规划系统105的每个组件可以(i)生成或编写电子消息或信号以向另一个组件发出命令或请求,(ii)使用调度、分派和路线规划系统105向其它组件传输消息或信号,以及(iii)解析接收到的电子消息或信号以识别该组件可以执行的命令或请求,并且响应于识别出命令,该组件将自动执行命令或请求。
API调用可以包括对数据库的查询。在对图执行查询的情况下,查询可以例如在特性图查询语言(Property Graph Query Language,PGQL)及其相关联的运行时、GraphQL及其相关联的运行时或其它适当的图查询环境中被编写并执行。
企业网络115可以与业务相关联,诸如递送服务或运营车队的其它实体。为了解释的简单和清楚起见,企业网络115由一个或多个个人计算机145或服务器150可操作地连接到的现场局域网140、以及通过互联网110连接到企业网络115的一个或多个远程用户计算机155、移动设备160、手持式递送信息终端161或者自主或自动驾驶车辆165表示。每个个人计算机145、远程用户计算机155、移动设备160或手持式递送信息终端161一般专用于特定的最终用户,诸如与业务相关联的员工或承包商,但是这种专用不是必需的。个人计算机145和远程用户计算机155可以是例如台式计算机、膝上型计算机、平板计算机或具有连接到局域网140或互联网110的能力的其它设备。移动设备160可以是例如智能电话、平板计算机、移动电话或具有通过无线网络(诸如蜂窝电话网络、Wi-Fi或蓝牙)连接到局域网140或互联网110的能力的其它手持式便携计算设备。手持式递送信息终端161可以是例如便携式组合条形码/QR/其它条码扫描设备、递送信息访问设备和GPS导航设备(诸如移动递送设备(MDD)、/>递送信息获取设备(DIAD)或其它类似设备)。
企业网络115的用户跨互联网110(或另一个合适的通信网络或网络的组合)与调度、分派和路线规划系统105对接。在一个实施例中,远程计算系统(诸如企业网络115的远程计算系统,包括自主车辆165)可以通过web接口服务器135访问由调度、分派和路线规划系统105提供的信息或应用。在一个实施例中,远程计算系统可以向web接口服务器135发送请求以及从web接口服务器135接收响应。在一个示例中,对信息或应用的访问可以通过使用个人计算机145、远程用户计算机155、移动设备160或自主车辆165上的web浏览器来实现。在一个示例中,对信息或应用的访问可以通过使用特定于在个人计算机145、远程用户计算机155、移动设备160或自主车辆165上执行的调度、分派和路线规划系统105的专用客户端应用来实现。例如,企业网络115的这些计算设备145、155、160、161可以请求在图形用户界面中显示(全部或部分)递送时间表。在一个示例中,通信可以在web接口服务器135与个人计算机145、服务器150、远程用户计算机155或移动设备160之间交换,并且可以采用如下形式:使用JavaScript对象表示法(JSON)的远程表征状态转移(REST)请求作为例如数据互换格式,或者发送至XML服务器或来自XML服务器的简单对象访问协议(SOAP)请求。例如,企业网络110的计算机145、150、155可以请求递送时间表。
在一个实施例中,数据存储库160包括一个或多个数据库,包括被配置为存储和提供地图的地图数据库180,以及被配置为存储和提供(serve)路线、装载计划、运货信息、货物清单、车辆或服务人员或者由调度、分派和路线规划系统105使用的其它信息的其它数据库。在一个实施例中,本文使用的数据库是数据库。在一些示例配置中,(一个或多个)数据存储库160可以使用一个或多个/> Exadata计算形状、网络附加存储(NAS)设备和/或其它专用服务器设备来实现。
在一个实施例中,一个或多个自主车辆165的路线可以由调度、分派和路线规划系统105控制。自主车辆165可以部分或者完全自动驾驶。自主车辆165可以是递送车辆、货运车辆、建筑车辆、垃圾收集车辆、工作人员运输车辆、公共交通车辆、拼车或出租车车辆、个人运输车辆或其它自推进车辆。
—图、节点和链路—
在一个实施例中,图数据结构可以将道路网络或道路地图表示为互连的节点和链路的集合。在表示道路网络的图数据结构中,节点是表示可以进行转弯的地理位置的数据结构,该地理位置诸如道路中的交叉路口或弯道。在表示道路网络的图数据结构中,链路(或有向边)是一种数据结构,其表示相邻的或者图中彼此远离不超过一个链路的节点(交叉路口、弯道或其它地理位置)之间的交通路线。注意的是,链路是有向的。
在一个实施例中,道路网络被表示为图数据库中的图数据结构,其中描述地图(或图)、交通路线(或链路)和交叉路口(或节点)的特征的伴随道路源数据存储在描述那些组件的数据结构中。例如,地图数据库180可以是以这种形式存储一个或多个道路网络(或地图)的图数据库。可以在图、链路和节点的数据结构中提供附加数据字段以适应本文描述的方法和系统所使用的特定信息。
图2图示了表示与其中动态选择穿过对向交通的转弯的车辆路线调度和导航相关联的示例道路网络的示例图形200,包括叠加在示例道路网络215的对应部分的可视化之上的图形200的部分210的放大视图205。图形200由表示示例道路网络215中的特定交叉路口225(或弯道或其它地理特征)的节点220和表示示例道路网络215中的特定有向路段235的链路230组成。在一个实施例中,节点220还可以表示沿着道路网络的递送取货、卸货或服务位置,例如特定地址。参考交叉路口对节点的讨论也可以被理解为参考道路中的弯道、特定地址位置以及由图表示的道路网络的其它地理特征。
在示例图形200中,节点220可以被表示为描述底层交叉路口225的节点数据结构,诸如节点数据结构240。在一个实施例中,诸如节点数据结构240之类的节点数据结构被配置为包括诸如节点标识符(nodeID)字段之类的数据结构或用于存储与节点唯一地相关联的值的其它数据结构;坐标(nodeCoordinates)字段或用于存储由节点表示的底层交叉路口225的地理位置的坐标值(诸如纬度和经度)的其它数据结构;传入(nodeIncomingLinks)和传出(nodeOutgingLinks)链路的列表;到图中所有其它节点的最低成本(最快/最短)路线(nodeRoutes)以及相关联的特性,诸如每条路线的行驶时间和行驶距离(或从原始节点到达该节点的其它成本);以及表示节点的其它特征的其它数据结构。
在示例图形200中,链路230可以被表示为描述底层交通路线(或路段)235的链路数据结构,诸如链路数据结构245。在一个实施例中,诸如链路数据结构245之类的链路数据结构被配置为包括描述底层交通路线235的特定特征的数据结构。链路数据结构245可以被配置为包括链路标识符(linkID)字段或其它数据结构。链路标识符数据结构的值与图中的链路唯一地相关联。链路数据结构245可以被配置为包括“来自(from)”节点ID(nodeA_ID)字段或指示链路源自的节点的其它数据结构、以及“去往”节点ID(nodeB_ID)字段或指示作为链路的目的地的节点的其它数据结构。“来自”节点ID和“去往”节点ID数据结构一起分别描述由沿着路段的链路表示的交通行驶的原点和目的地。链路数据结构245可以被配置为包括速度限制(linkSpeedLimit)字段或指示沿着由链路表示的路段的合法速度限制的其它数据结构。链路数据结构245可以被配置为包括方向(linkDirection)字段或指示沿着由链路表示的路段行驶的罗盘航向的其它数据结构。链路数据结构245可以被配置为包括住宅区街道(linkResidential)标志或指示由链路表示的路段是否被认为仅具有“住宅区”交通的其它数据结构。假设沿着住宅区街道的交通总体上畅通,从而在穿过迎面交通的转弯时几乎不会造成延迟,则住宅区标志指示沿着链路行驶的交通是畅通(住宅区)还是不畅通(非住宅区)。链路数据结构245可以被配置为包括费用(linkToll)字段或其它数据结构。如本文所使用的,“费用”是与沿着由给定链路表示的路段行驶相关联的惩罚。链路数据结构245可以被配置为包括表示链路的其它特征的附加数据结构。
—示例方法—
在一个实施例中,本文描述的计算机实现的方法的每个步骤可以由一个或多个计算设备的处理器(诸如参考图8所示和描述的处理器810)来执行,该处理器(i)访问存储器(诸如存储器815和/或参考图8示出和描述的其它计算设备组件)和(ii)配置有使系统执行该方法的步骤的逻辑(参考图8示出和描述的这种动态交叉交通转弯车辆路线调度和导航逻辑830)。例如,处理器访问存储器并从存储器读取或写入存储器以执行本文描述的计算机实现的方法的步骤。这些步骤可以包括(i)检索任何必要的信息,(ii)计算、确定、生成、分类或以其它方式创建任何数据,以及(iii)存储计算、确定、生成、分类或以其它方式创建的任何数据以供后续使用。对存储装置或存储的引用指示作为计算设备的存储器或存储装置/盘中的数据结构的存储(诸如参考图8中示出和描述的计算设备805的存储器815、或存储装置/盘835或远程计算机865,或在参考图1示出和描述的数据存储库130中)。
在一个实施例中,方法的每个后续步骤响应于解析接收到的信号或检索到的存储的数据而自动开始,该信号或数据指示前一步骤已经至少执行到后续步骤开始所需的程度。一般而言,接收到的信号或检索到的存储的数据指示前一步骤的完成。
图3图示了与其中动态选择穿过对向交通的转弯的车辆路线调度和导航相关联的方法300的一个实施例。在一个实施例中,方法300的步骤由调度和分派系统105执行,并且至少部分地由(如参考图1所示和描述的)动态交叉交通转弯组件120执行。在一个实施例中,动态交叉交通转弯组件120由配置有动态交叉交通转弯车辆路线调度和导航逻辑的专用计算设备(诸如计算设备805)来实现。在一个实施例中,动态交叉交通转弯组件120是配置有逻辑830的专用计算设备的一个或多个模块。
在一个实施例中,方法300可以基于各种触发被自动发起,诸如响应于通过网络接收到信号或解析所存储的数据而被自动发起,该信号或所存储的数据指示(i)调度、分派和路线规划系统105的用户(或管理员)已经发起方法300,(ii)方法300被调度以定义的时间或时间间隔—例如,每天、在将物品装载到车辆上进行递送之前——被发起,(iii)调度、分派和路线规划系统105的系统组件已经基于组件的内部逻辑自动发起方法300。在一个实施例中,方法300一旦被发起就重复运行,连续评估替代路线规划场景以寻求比当前最佳路线更好的路线,并确定用于替代路线的行驶时间,如本文所述。该方法每秒可以评估数百个替代路线场景。因此,本文描述的方法和系统使得能够在实时替代路线评估中对交叉交通转弯进行动态评估,并且使得能够在实况车辆导航中使用动态包括的交叉交通转弯。响应于解析接收到的信号或检索到的存储数据并确定该信号或存储的数据指示方法300应当开始,方法300在开始框305处开始。处理继续到处理框310。
在一个实施例中,处理框310、315和320的操作在开发期间由从到达链路通过表示道路网络的图的节点的车辆路线的路线生成引擎执行。在一个实施例中,车辆路线的开发(或生成或创建)包括执行最短路径求解器的步骤以处理图的链路或节点以包括(或不包括)到节点之间的路线中。在一个实施例中,路线生成引擎是动态交叉交通转弯组件120的模块,诸如路线生成引擎170。在一个实施例中,路线生成引擎170执行针对处理框310、315和320描述的功能。在一个实施例中,路线生成引擎执行用于寻找图中节点之间的最短路径的算法。在一个实施例中,路线生成引擎执行Dijkstra算法。在一个实施例中,路线生成引擎执行A*算法、广度优先搜索、Floyd-Warshall算法、Bellman-Ford算法、Johnson算法或者执行另一个算法来确定图中的节点之间的最短路径。在一个实施例中,路线生成引擎操作以寻找图中每对节点之间的最短路径。
在处理框310处,处理器对于出发链路确定车辆从到达链路到出发链路的路径与迎面交通相交。
到达链路是表示车辆到达由节点表示的交叉路口的路段的链路。到达链路是从由路线生成引擎170包括在路线中的紧邻前一节点指向当前节点的链路。出发链路是表示车辆从由节点表示的交叉路口出发的路段的链路。在开发出通过节点到出发链路的路径的交叉交通转弯特征之后,出发链路将被路线生成引擎170包括在路线中。迎面交通是从与从到达链路表示的路段进入交叉路口的交通大致相反的罗盘方向穿过由节点表示的交叉路口的交通。
图4图示了用于确定从到达链路到出发链路的路径穿过迎面交通的方法400的一个实施例,该方法与其中动态选择穿过对向交通的转弯的车辆路线调度和导航相关联。在一个实施例中,方法400的步骤至少部分地由路线生成引擎170执行,如由配置有动态交叉交通转弯车辆路线调度和导航逻辑830的专用计算设备(诸如计算设备805)执行以执行这些步骤。方法400可以基于各种触发被自动发起,诸如响应于通过网络接收到信号或解析所存储的数据被自动发起,该信号或所存储的数据指示(i)方法300的处理框310已被发起,(ii)调度、分派和路线规划系统的用户(或管理员)已经发起方法300,(iii)路线生成引擎170正在评估通过交叉路口的路线以便包括在从道路网络中的一个交叉路口到另一个交叉路口的路线中;或者(iv)方法400被调度为以定义的时间或时间间隔发起。响应于解析接收到的信号或检索到的所存储的数据并确定该信号或存储的数据指示方法400应当开始,方法400在“开始”框405处发起。处理继续到处理框410。
在处理框410处,处理器检索适用于图的道路的驾驶侧的指示。
在双向交通中,道路的驾驶侧是允许向前驾驶的道路一侧。在一些管辖区,诸如在美国,道路的驾驶侧是道路的右侧。在一些管辖区,诸如在澳大利亚,道路的驾驶侧是道路的左侧。因此,在右侧交通管辖区,交叉交通转弯(或穿过迎面交通的转弯)是左转,而在左侧交通管辖区,交叉交通转弯是右转。
每个图与交通管辖区内的位置(诸如城市)相关联。在一个实施例中,道路的规则(交通的左行或右行)在图的数据结构中被存储为表示道路网络的图的特性。道路特性的这个规则可以用作道路的驾驶侧的指示。在道路的规则未包括在图中的情况下,道路的规则可以由管理员例如在动态交叉交通转弯组件120当中设置为调度、分派和路线规划系统105的通用特性。在一个实施例中,处理器可以编写并执行查询以从地图数据库180中的图(在适用的情况下)或者从系统105(在适用的情况下)检索道路的驾驶侧的指示。然后,处理器可以将道路的驾驶侧的指示存储在存储器或存储装置中以供后续处理。
一旦处理器因此完成检索适用于图的道路的驾驶侧的指示,处理框410处的处理就完成,并且处理继续到处理框415。
在处理框415处,处理器检索与节点的每个传入和传出链路的罗盘航向,每个传入和传出链路包括到达链路和出发链路。
罗盘航向是定义地球上的方向的向量。在一个实施例中,例如由如本文所述的地图增强模块175向图中的每个链路指派指示沿着由该链路表示的路段的交通流方向的罗盘航向。在一个实施例中,罗盘航向被存储为链路数据结构内的数据结构,例如,如参考图2所示和描述的。传入链路是指向节点的链路,其表示沿着路段流入由节点表示的交叉路口的交通。传出链路是指向远离节点的链路,其表示沿着路段流出由节点表示的交叉路口的交通。到达链路属于该节点的传入链路的集合,并且出发链路属于该节点的传出链路的集合。在一个实施例中,处理器可以编写并执行查询以检索节点的链路的集合,包括传入和传出链路。然后,处理器将该链路的集合保持在存储器中以供后续处理。然后,对于集合中的每个链路,处理器编写并执行查询以检索罗盘航向,并将它们保持在存储器或存储装置中以供后续处理。
一旦处理器由此完成检索与节点的每个传入和传出链路(包括到达链路和出发链路)的罗盘航向,处理框415处的处理完成,并且处理继续到判定框420。
在判定框420处,处理器确定到达链路的罗盘航向和出发链路的罗盘航向是否指示该路径是在与道路的驾驶侧相反的方向上的转弯。
在一个实施例中,处理器从存储器或存储装置检索到达链路的罗盘航向和出发链路的罗盘航向,并将它们彼此比较以确定它们沿着从到达链路到出发链路通过交叉路口的路径的罗盘方向是指示顺时针旋转(180度内)还是逆时针旋转。然后,处理器解释罗盘航向改变以确定转弯方向。顺时针罗盘航向改变指示右转。逆时针罗盘航向改变指示左转。然后,处理器将转弯方向与道路的驾驶侧进行比较。
如果转弯方向与道路的驾驶侧相匹配(右转、右侧驾驶,或左转、左侧驾驶),那么通过交叉路口的路径不是与道路的驾驶侧相反方向上的转弯。处理器将这个确定存储在存储器或存储装置中以供后续处理。当处理器因此确定到达链路的罗盘航向和出发链路的罗盘航向不指示该路径是在与所完成的道路的驾驶侧相反的方向上的转弯时(420:否),判定框420处的处理完成,并且处理继续到处理框425。
如果转弯方向与道路的驾驶侧不匹配(右转、左侧行驶,或左转、右侧行驶),那么通过交叉路口的路径是与道路的驾驶侧相反方向上的转弯。处理器将这个确定存储在存储器或存储装置中以供后续处理。当处理器因此确定到达链路的罗盘航向和出发链路的罗盘航向确实指示该路径是在与所完成的道路的驾驶侧相反方向上的转弯时(420:是),判定框420处的处理完成,并且处理继续到判定框430。
在特殊情况下,当到达链路和出发链路的罗盘航向大致彼此相反时,U形转弯可以被识别为交叉交通转弯。当到达链路与出发链路的罗盘航向大致相反时,处理器确定通过交叉路口的路径是与道路的驾驶侧相反方向上的转弯。处理器将这个确定存储在存储器或存储装置中以供后续处理。当处理器因此确定到达链路的罗盘航向和出发链路的罗盘航向确实指示该路径是在与所完成的道路的驾驶侧相反方向上的转弯时(420:是),判定框420处的处理完成,并且处理继续到判定框430。
在判定框430处,处理器确定进入节点的第一链路(或者离开的第一链路,或者进入的第一链路和离开的第一链路两者)的第一罗盘航向是否与到达链路的罗盘航向相反。
在一个实施例中,处理器检索每个传入链路和每个传出链路的罗盘航向。处理器将到达链路的罗盘航向与节点的每个其它传入链路的罗盘航向进行比较,以确定传入链路是否具有与到达链路的罗盘航向大致相反的罗盘航向。这种传入链路在本文中可以被称为对向交通到达链路。处理器将到达链路的罗盘航向与节点的每个传出链路(在一个实施例中不包括出发链路)的罗盘航向进行比较,以确定传出链路是否具有与到达链路的罗盘航向大致相反的罗盘航向。这种传出链路在本文中可以被称为对向交通出发链路。然后,处理器确定对向交通到达链路和对向交通出发链路的任何对是否具有与到达链路的罗盘航向近似相反的罗盘航向。处理器存储该确定的结果以供后续处理和存储。对向交通到达链路和对向交通出发链路两者的存在指示对向交通的存在。对向交通到达链路和对向交通出发链路两者都不存在指示对向交通不存在。
在一个实施例中,当罗盘航向与一个方向的任一侧成45度以内时,罗盘航向“近似”是该方向。距该方向低至0度的更窄范围也可以是合适的。该近似允许从链路的“来自”节点和“去往”节点的坐标导出每个链路的罗盘航向,而不是确切地匹配交叉路口处的基础路段的物理布置。该近似还允许非完美直角的交叉路口。可以存在边缘情况的交叉路口,其中由于这种简单的近似,交叉交通转弯将无法被正确识别。可以实现附加逻辑来改进识别。
一旦处理器因此完成确定进入节点的第一链路和离开节点的第一链路的第一罗盘航向不与到达链路的罗盘航向相反(430:否),判定框430处的处理完成,并且处理继续到处理框425。一旦处理器因此完成确定进入节点的第一链路和离开节点的第一链路的第一罗盘航向与到达链路的罗盘航向相反(430:是),判决框430处的处理就完成,并且处理继续到处理框435。
在处理框435处,处理器例如通过将这个结果写入存储器或存储装置以供后面检索并在后续处理中使用来注册通过交叉路口的路径是交叉交通转弯的确定。然后处理框435处的处理完成,并且处理继续到“结束”框440,在此处理400结束。
在处理框425处,处理器例如通过将这个结果写入存储器或存储装置以供后面检索并在后续处理中使用来注册通过交叉路口的路径不是交叉交通转弯的确定。然后处理框425处的处理完成,并且处理继续到“结束”框440,在此处理400结束。
再次参考图3中的方法300的处理框310,一旦处理器因此完成对于出发链路确定车辆从到达链路到出发链路的路径与迎面交通相交,处理框310处的处理就完成,并且处理继续到处理框320。
图5A-图5F示出了可以应用方法400的通过交叉路口的示例路线的选择。所选择的路线不是详尽的,并且方法400可以应用于最常见的交叉路口类型。可以存在边缘情况的交叉路口,其可能需要附加的逻辑来确定转弯是否穿过迎面交通。在图5A-图5F中,道路的驾驶侧是右侧,并且北面朝着页面的顶部。
图5A图示了通过四路交叉路口504的交叉交通转弯路线502的示例图500,包括示出表示交叉路口504的节点506和表示进出交叉路口504的路段的链路的图部分。该图部分示出了路线到达链路508、路线出发链路510、对向交通到达链路512和对向交通出发链路514以及进入或离开节点的其它链路。
根据方法400,到达链路508的罗盘航向是北,而出发链路510的罗盘航向是西,即逆时针90度,这指示通过交叉路口504的路径502是左转。左转的“左”与右侧驾驶的“右”不匹配,并且路径502可能会与迎面交通相交,因此检查其它链路的罗盘航向。对向交通到达链路512和对向交通出发链路514的罗盘航向都是南,其与到达链路508的北航向相反。因此,路线502被识别为与迎面交通相交—交叉交通转弯。
图5B图示了通过T形交叉路口519的非交叉交通转弯路线517的示例图515,包括示出表示T形交叉路口519的节点521和表示进出T形交叉路口519的路段的链路的图部分。该图部分示出了路线到达链路523、路线出发链路525和对向交通出发链路527以及进入或离开节点的其它链路。不存在对向交通到达链路,因为没有交通以与路线到达链路523相反的方向进入交叉路口519。
到达链路523的罗盘航向是北,而出发链路525的罗盘航向是西,即逆时针90度,这指示通过交叉路口519的路径517是左转。左转的“左”与右侧驾驶的“右”不匹配,并且路径517可能会与迎面交通相交,因此检查其它链路的罗盘航向。虽然对向交通出发链路527具有与到达链路523相反的罗盘航向,但不存在对向交通到达链路。因而,路线517被识别为不与迎面交通相交。
图5C图示了通过具有多个行驶车道的四路交叉路口534的交叉交通转弯路线532的示例图530,包括示出表示交叉路口534的节点536和表示进出交叉路口534的路段的链路的图部分。该图部分示出了路线到达链路538、路线出发链路540、对向交通到达链路542和对向交通出发链路544以及进入或离开节点的其它链路。
多车道双向街道无需特殊考虑。与图5A中的示例图500类似,到达链路538的罗盘航向是北,而出发链路540的罗盘航向是西,即逆时针90度,这指示通过交叉路口534的路径532是左转。左转的“左”与右侧驾驶的“右”不匹配,并且路径532可能会与迎面交通相交,因此检查其它链路的罗盘航向。对向交通到达链路542和对向交通出发链路544的罗盘航向都是南,其与到达链路538的北航向相反。因此,路线532被识别为与迎面交通相交—交叉交通转弯。如果存在表示多车道双向街道的每个车道的链路,而不是表示交通流的方向的链路,那么方法400也将类似地执行。例如,即使对向交通到达链路542和对向交通出发链路544加倍,方法400也仍将识别一对对向交通到达和出发链路具有与到达链路538相反的航向,从而导致识别出交叉交通转弯。
图5D图示了通过四路交叉路口549的非交叉交通转弯路线547的示例图545,包括示出表示交叉路口549的节点551和表示进出交叉路口549的路段的链路的图部分。该图部分示出了路线到达链路553、路线出发链路555、对向交通到达链路557和对向交通出发链路559以及进入或离开节点的其它链路。
到达链路553的罗盘航向是北,而出发链路555的罗盘航向是东,即顺时针旋转90度,这指示通过交叉路口549的路径547是右转。右转的“右”与右侧驾驶的“右”相匹配,因此路径547不可能与迎面交通相交。因此,路线547被识别为不与迎面交通相交。
图5E图示了通过T形交叉路口564的交叉交通转弯路线562的示例图560,包括示出表示交叉路口564的节点566和表示进出交叉路口564的路段的链路的图部分。该图部分示出了路线到达链路568、路线出发链路570、对向交通到达链路572和对向交通出发链路574以及进入或离开节点的其它链路。
T形交叉路口564与图5B的T形交叉路口519的不同之处在于到达链路568相对于其它链路的位置。到达链路568的罗盘航向是北,而出发链路570的罗盘航向是西,即逆时针90度,这指示通过交叉路口564的路径562是左转。左转的“左”与右侧驾驶的“右”不匹配,并且路径562可能会与迎面交通相交,因此检查其它链路的罗盘航向。对向交通到达链路572和对向交通出发链路574的罗盘航向都是南,与到达链路568的北航向相反。因此,路线562被识别为与迎面交通相交—交叉交通转弯。缺少朝东链路对确定没有影响。
图5F图示了通过涉及单向道路的交叉路口579的非交叉交通转弯路线577的示例图575,包括示出表示交叉路口579的节点581和表示进出交叉路口579的路段的链路的图部分。该图部分示出了路线到达链路583和路线出发链路585以及进入或离开节点的其它链路。因为到达链路583的道路是单向道路,所以不存在对向交通到达或出发链路。
到达链路583的罗盘航向是北,出发链路585的罗盘航向是西,即逆时针90度,这指示通过交叉路口579的路径577是左转。左转的“左”与右侧驾驶的“右”不匹配,路径577可能会与迎面交通相交,因此检查其它链路的罗盘航向。但是,不存在对向交通出发链路或对向交通到达链路。因而,路线577被识别为不与迎面交通相交。
图5G图示了通过具有多个行驶车道的四路交叉路口592的交叉交通U形转弯路线591的示例图590,包括示出表示交叉路口592的节点593和表示进出交叉路口592的路段的链路的图部分。该图部分示出了路线到达链路594、对向交通到达链路595以及联合路线出发链路和对向交通出发链路596,以及进入或离开节点的其它链路。
路线到达链路594的罗盘航向是北,并且联合路线到达链路和对向交通出发链路596的罗盘航向是南。这是指示U形转弯的特殊情况。U形转弯可能干扰迎面交通,因此被视为交叉交通转弯。因此,路线591被识别为交叉交通转弯。
再次参考图3中的方法300,在处理框320处,处理器响应于确定车辆的路径与迎面交通相交,将用于出发链路的附加的估计延迟添加到表示车辆路线的路线目标函数。(如本文所讨论的,还可以应用针对交叉交通转弯的进一步费用或交叉成本,以劝阻交叉交通转弯。)
在一个实施例中,由路线生成引擎执行的最短路径求解器(诸如,Dijkstra算法)(至少部分地)基于行驶时间进行操作,从而寻找节点之间在最短时间内完成的路径。每个链路都包括行驶时间权重,其表示行驶由从起始交叉路口(由链路的“来自”节点表示)到结束交叉路口(由链路的“去往”节点表示)的链路表示的路段的预期时间量。行驶时间作为值存储在链路数据结构中。用于链路的行驶时间可以是从链路的道路源数据导出的行驶时间的历史平均值。行驶时间可以基于沿着链路行驶的一天中的时间和/或一周中的星期几而变化。例如,可以为一天中的每个小时提供链路的预期行驶时间,并且处理器对于车辆将沿着链路行驶的一天中的时间将使用该预期行驶时间。这可以通过在车辆从路线开始时间(即,车辆开始在路线上行驶的时间)进入链路的时间加上正在开发的路线的总行驶时间来确定。
在一个实施例中,路线或路线段的目标函数是原点节点与图中任何给定节点之间的链路的累积成本(在一个实施例中,表达为行驶时间、行驶距离、交叉交通转弯延迟和交叉交通转弯危险成本的函数)。到任何给定节点的路线的这个目标函数也可以被称为该节点的成本或到达该节点的成本。
当处理器确定车辆通过交叉路口到达由链路表示的路段的路径包括穿过迎面交通的转弯时,处理器将附加的估计延迟添加到链路的估计行驶时间中,从而增加沿着链路的预期行驶时间量,以考虑执行交叉交通转弯的时间。这个附加的估计延迟(按时间测得的成本)包括在遵循该链路的所有后续节点的目标函数中。由附加的估计延迟添加到估计行驶时间的时间也可以起到对即使在交通畅通的情况下的低风险、低延迟交叉畅通交通的转弯进行劝阻的作用。这种劝阻与出于劝阻交叉交通转弯的特定目的而明确添加到成本中的费用是分开的。
在一个实施例中,除了对于出发链路确定车辆从到达链路到出发链路的与迎面交通相交的路径之外,处理器还确定迎面交通是否畅通,并将附加的估计延迟(i)在迎面交通畅通的情况下控制为预先配置的标准延迟,以及(ii)在迎面交通不畅通或繁忙的情况下控制为基于估计的交通密度动态生成的延迟的度量。
在一个实施例中,当迎面交通的每日交通量低于每天1000辆车的阈值时,迎面交通被认为是“畅通”或“住宅区”。平均而言,每分钟迎面而来的车辆少于一辆,从而允许有足够的时间完成交叉交通转弯,并且一般是令人满意的阈值。还可以基于使用本文的系统和方法的车辆完成交叉交通转弯所需的预期时间来选择阈值的更高或更低的值,该预期时间可以基于特定车辆而显著变化。例如,牵引拖车可能要求15秒或更长时间才能从完全停止完成交叉交通转弯,而较小的递送车辆可能只需5秒即可完成相同的转弯。在一个实施例中,处理器可以例如从道路源数据计算或检索迎面交通的交通量,并将其与阈值进行比较,低于该阈值,则交通被认为畅通,而超过该阈值,则交通被认为不畅通。
可替代地,可以基于道路的层次结构中由对向交通链路表示的道路的位置来推断交通是否畅通:表示当地街道的链路被假设为“畅通”或“住宅区”交通,而集散道路和主干道被认为是“不畅通”或“非住宅区交通”。一般而言,由于禁止在此类路线上进行交叉交通转弯,因此不考虑限制通行高速公路,但限制通行高速公路也将被视为具有“不畅通”或“非住宅区”交通。在一个实施例中,处理器可以例如从道路源数据检索道路的层次结构中承载有迎面交通的(一个或多个)路段的位置,并且确定(i)如果路段是本地街道,那么交通畅通,以及(ii)如果路段是交通量较高的路线,诸如集散道路、主干道或限制通行高速公路,那么交通不畅通。
关于沿着由链路表示的路段的交通是否是“住宅区”或“畅通”的这些确定的结果可以被记录为链路的数据结构中的指示。因此,在一个实施例中,基于构成迎面交通的一个或多个链路中的一个或多个链路的交通畅通的指示,认为迎面交通畅通。例如,可以存在包括在链路的数据结构中的这种指示,这样将链路的(本文参考图2描述的)“住宅区”标志设置为“真”值。“住宅区”标志还可以被设置为“假”值,从而指示沿着由链路表示的路段的交通是“非住宅区”或“不畅通”(或繁忙)。处理器可以在图上执行查询以检索“住宅区”标志的值并接受检索到的值作为关于链路的流量是否被认为是“住宅区”或“畅通”的确定。
一旦处理器由此完成对于迎面交通畅通的确定,处理器随后就将附加的估计延迟(i)在迎面交通畅通的情况下控制为预先配置的标准延迟,以及(ii)在迎面交通不畅通或繁忙的情况下控制为基于估计的交通密度动态生成的延迟的度量。在一个实施例中,处理器通过使用不同的过程基于交通量是否畅通来选择附加的估计延迟来控制附加的估计延迟。
在一个实施例中,用于出发链路的附加的估计延迟可以是由系统接收和存储的针对交叉交通转弯的预先配置的标准延迟。例如,处理器可以接收由系统的管理员录入的作为标准延迟的值,例如30秒或60秒。处理器将其存储在存储装置或存储器中以供以后使用。然后,当需要附加的估计延迟时(当路线中包括住宅区交叉交通转弯时),处理器检索标准延迟的值,并在计算中使用该值作为附加的估计延迟的值。因此,在一个实施例中,响应于确定迎面交通畅通(或是住宅区的),处理器从存储器中检索预先配置的标准延迟并将其提供为附加的估计延迟,从而控制附加的估计延迟的值。
在一个实施例中,至少部分地基于迎面交通的速度限制和历史速度来计算用于出发链路的附加的估计延迟。例如,在迎面交通不畅通的情况下,生成并应用针对较繁忙迎面交通的动态生成的估计延迟。观察到的低于法定速度限制的历史速度可以指示交通更密集,这增加交叉交通转弯的延迟,而观察到的历史速度等于(或甚至高于)法定速度限制可以指示更畅通的交通,这减少交叉交通转弯的延迟。因此,观察到的速度与法定速度限制的比率可以被用于修改标准延迟以更接近地适应交叉路口处的状况。例如,处理器可以接收、存储和检索如上面所讨论的标准延迟。然后,处理器可以将标准延迟(D)除以历史平均速度(H)与法定速度限制(L)的比率以产生经调整的延迟(A)。较低的历史平均速度增加经调整的延迟,而较高的历史平均速度减少经调整的延迟。可以可选地将正乘数(M)应用于H与L的比率,以改变该比率对经调整的延迟的影响的量值。在一个实施例中,处理器执行等式1以产生经调整的延迟:
处理器从存储装置中检索管理员设置的D和M的值。处理器从与对向交通出发链路和/或对向交通到达链路相关联的数据结构中检索H和L的值。然后,处理器计算经调整的延迟A。经调整的延迟A因此是作为估计的交通密度的函数的动态生成的延迟的度量。因此,在一个实施例中,响应于确定迎面交通不畅通(或是非住宅区的),处理器从存储器中检索预先配置的标准延迟(D)、历史平均速度(H)、法定速度限制(L)和乘数(M)的值,如本文所描述的那样计算经调整的延迟(A),并且提供经调整的延迟作为附加的估计延迟,从而控制附加的估计延迟的值。
在一个实施例中,用于出发链路的附加的估计延迟至少部分地基于在车辆路线到达节点时的一天中的时间内构成迎面交通的一个或多个链路的历史交通速度来计算。历史交通速度可以被分解成一天中不同时间块的速度的集合,例如,分解成24个一小时块的集合。因此,在一个实施例中,处理器确定将发生交叉交通转弯的一天中的时间,并在计算A的值之前为包括该一天中的时间的块选择H的值。
一旦处理器因此响应于确定车辆的路径与迎面交通相交而完成将用于出发链路的附加的估计延迟添加到表示车辆路线的路线目标函数,处理框320处的处理就完成,并且处理继续进行到处理框325。
在一个实施例中,交叉路口可以具有涉及交叉交通转弯的多个出发链路。例如,可以存在k形交叉路口,其中两条或更多条道路在交叉路口的单侧连接到交叉路口,或者可以存在其中多于四条道路接近交叉路口的交叉路口,从而形成星形交叉路口。因而,在一个实施例中,对于除了出发链路以外离开节点的每个附加的出发链路:处理器将该附加的出发链路识别为具有或者缺少从到达链路到穿过畅通迎面交通的附加出发链路的车辆的离开路径;以及将用于附加出发链路的估计延迟添加到表示车辆路线的路线目标函数中。例如,除了出发链路之外,处理器还识别节点的每个离开链路,确定从到达链路到该链路的路径是否与迎面交通相交,并且如果是,那么确定该交通是否畅通,并且最后通过检索标准延迟并且将其用作估计延迟或者使用它来计算经调整的延迟并使用经调整的延迟作为估计延迟来添加估计延迟。
具有交叉交通转弯的路径中产生的附加延迟提供了针对交叉交通转弯的偏差的基线水平。在一个实施例中,进一步不赞成交叉交通转弯超过所产生的延迟的策略可以结合到本文的系统和方法的操作中。可以实施这样的策略来减少交叉交通转弯中固有的交通事故的可能性。例如,可以将标准费用(或交叉成本)添加到用于每个交叉交通转弯的目标函数中,以使结合交叉交通转弯的路线成本更高。费用不是基于沿着由给定链路表示的路段操作车辆的成本,而是为了劝阻使用由给定链路表示的路段而施加的惩罚。如本文所使用的,费用作为交叉成本或使交叉交通转弯进入给定链路的危险惩罚成本而施加。这种费用、交叉成本或惩罚量化了策略不赞成采用交叉交通转弯的程度。在一个实施例中,费用反映了进行交叉交通转弯的危险或风险的程度。
在一个实施例中,响应于确定车辆的路径与迎面交通相交,处理器将用于出发链路的附加成本添加到表示车辆路线的路线目标函数。处理器可以如本文参考添加附加延迟所描述的那样确定车辆穿过迎面交通,例如参考处理框310-320所示出和描述的。然后,处理器从存储器或存储装置中检索费用的值,并使用该值作为费用。费用的值可以由系统的管理员设置。费用越高,针对交叉交通转弯的策略就越严厉。费用越高,从一个节点到另一个节点的最短路线中将包括交叉交通转弯的可能性就越小。
在处理框325处,处理器通过路线生成引擎将包括穿过迎面交通的路径的路线选择为第一位置和第二位置之间的最优(最低成本)路线。
在一个实施例中,处理器确定图中的每个节点已被访问。这向处理器指示从图中的第一位置到图中的每个其它位置的每条路线都是最优的,从而涉及到达的行驶时间的最低成本。作为响应,处理器然后保留(存储以供以后检索和使用)路线,包括包含穿过迎面交通的路径的路线。例如,处理器可以将从图中的第一位置到另一个位置的每条路线写入到与第一位置相关联的数据结构中,诸如写入到与表示第一位置的节点相关联的到所有节点的路线数据结构中。包括穿过迎面交通的路径的路线以第一位置开始,并以第二位置结束,并且被存储在到所有节点的路线数据结构中与第二位置相关联的位置中。
在一个实施例中,从图中的一个节点到每个其它节点的最优或最低成本路线被存储在图中的每个节点中。在一个实施例中,从图的每个节点到每个其它节点的最优或最低成本路线的集合被存储为存储器或存储装置中的数据结构。在一个实施例中,每条路线的行驶时间和每条路线的行驶距离作为数据结构与路线相关联地存储在存储器或存储装置中。最低成本路线可以包括包含住宅区交叉交通转弯的一条或多条路线。
一旦处理器由此完成由路线生成引擎选择包括穿过迎面交通的路径的路线作为第一位置和第二位置之间的最优路线,处理框325处的处理就完成,并且处理继续到处理框330。
在处理框330处,处理器通过调度引擎将最优路线包括为车辆的递送时间表的一部分。在一个实施例中,调度引擎173执行MTSP求解器。当由处理器执行时,MTSP求解器接受递送地点的集合、可用递送车辆的车队、从每个节点到每个其它节点的所有路线的集合以及与那些路线相关联的行驶时间和行驶距离作为输入。MTSP求解器根据这些输入生成用于递送地点的集合的递送时间表。
在一个实施例中,递送时间表描述哪些递送由哪些车辆递送,以及车辆进行递送的次序。递送时间表描述从仓库经过一系列递送地点并返回仓库的车辆路线的集合,这些车辆路线仅总体上访问(以进行卸货、取货或其它服务)每个递送地点一次。MTSP从图中每个节点到每个其它节点的最优或最低成本路线集中选择从每个节点(表示仓库或递送地点)到指派的递送地点的序列的下一个节点的最优路线。取决于所选择的路线,MTSP可以选择包括一个或多个住宅区交叉交通转弯的路线。
MTSP在车辆路线之间分布递送地点(以及相关联的递送),以便最小化针对所有车辆路线上的递送成本的递送目标函数。在一个实施例中,递送目标函数可以表示行驶距离、行驶时间和财务成本中的一个或多个。在一个实施例中,递送目标函数包括行驶距离和行驶时间的加权和。在一个实施例中,递送目标函数包括其它加权输入,诸如车辆装载时间。当从递送地点到下一个递送地点的最优路线是具有住宅区交叉交通转弯的路线时,处理器因此将该最优路线包括在递送时间表中。处理器将完成的递送时间表写入存储器或存储装置。
调度引擎173可以基于递送车辆的(递送地点的)递送路线生成递送车辆的装载计划,并且将装载计划包括在递送时间表中。装载计划至少包括要递送到递送地点的递送物品的列表。装载计划还可以指示装载递送物品的次序,从而使得递送物品能够按照它们被调度递送的次序来访问。装载计划还可以指定递送车辆内放置递送物品的位置。
在一个实施例中,时间表适应特定的递送时间窗口,在该时间窗口期间必须在递送地点进行递送。在一个实施例中,MTSP服务器可以训练并使用机器学习模型来基于输入识别更好的递送时间表。
一旦处理器因此已经完成通过调度引擎包括最优路线以作为针对车辆的递送时间表的一部分,处理框330处的处理就完成,并且处理继续到处理框335。
在处理框335处,处理器传输递送时间表以供执行。在一个实施例中,处理器检索递送时间表,编写包括递送时间表的诸如REST请求之类的消息,并且将递送时间表传输到诸如计算设备145、155、160、161之类的远程计算机。在一个实施例中,该消息使得递送时间表的全部或一部分显示在远程计算机的图形用户界面上。在一个实施例中,处理器将递送路线传输到与递送车辆相关联的移动设备,以使递送路线显示给驾驶员并使驾驶员操作车辆穿过迎面交通。在一个实施例中,处理器将递送时间表传输到手持式递送信息终端161,以在GPS导航GUI中显示车辆路线,并在递送终端GUI中呈现递送物品(例如,包裹)信息。
在一个实施例中,处理器将装载计划传输到仓库计算系统,用于选择和装载要递送到递送车辆上的物品。在一个实施例中,传输使用户手动执行装载指令以将正确的递送物品放置在车辆上。在另一个实施例中,处理器将递送时间表传输到远程计算机以自动操作机器人装载装备来执行装载计划。
在一个实施例中,递送时间表与用户对递送时间表的批准、拒绝或修改的输入选项一起被显示。此类用户反馈可以被用于训练MTSP求解器中的ML模型,以生成更好的递送时间表。
在一个实施例中,处理器将递送时间表传输到自主递送车辆,以使自主递送车辆根据递送时间表穿过迎面交通前往递送停车站。在一个实施例中,处理器检索递送时间表,编写消息,诸如包括递送时间表的全部或一部分的REST请求,以及对自主递送车辆执行包括在递送时间表中的特定车辆路线的递送的指令。响应于将递送时间表传输到自主递送车辆,这些指令使自主递送车辆根据递送时间表穿过迎面交通前往递送停车站。在一个实施例中,本文描述的系统和方法通过向自主车辆提供递送路线和沿着路线完成递送的指令来操作自主递送车辆通过从到达链路穿过迎面交通到出发链路的车辆路径到达递送停车站。
一旦处理器因此完成传输递送时间表以供执行,处理框335处的处理就完成,并且处理继续到“结束”框340,在那里处理300结束。
在一个实施例中,方法300取决于可能不存在于图或用于图的道路源数据中的值的可用性。在一个实施例中,地图增强模块(诸如地图增强模块175)可以根据道路源数据生成用于图的这些值并将它们存储在地图数据库中的节点和链路的数据结构中。在一个实施例中,地图增强模块175的功能由配置有动态交叉交通转弯车辆路线调度和导航逻辑830的专用计算设备(诸如计算设备805)执行。
在一个实施例中,对于图的每个链路,处理器基于道路源数据(诸如可以由交通/道路数据源195不时地提供或更新)来确定沿着该链路的交通是畅通/住宅区还是不畅通/非住宅区,并将沿着链路的交通是畅通还是不畅通的确定存储在描述链路的数据结构中。在一个实施例中,这个确定基于与图分离的道路源数据数据库。在一个实施例中,道路源数据被包括在图中,例如在链路和节点数据结构中。
在一个实施例中,对于图的每个链路,处理器从道路源数据检索该链路的速度限制并将该链路的速度限制存储在描述该链路的数据结构中。
在一个实施例中,对于图的每个链路,处理器获取该链路的起点坐标和终点坐标,根据该链路的起点坐标和终点坐标计算该链路的罗盘航向;以及将该链路的罗盘航向存储在描述该链路的数据结构中。
—示例伪代码—
在一个实施例中,Dijkstra算法是由路线生成引擎170执行的最短路径求解器算法。在较高层面上,Dijkstra算法通过高估从原点节点到达图的每个其它节点的成本,并访问每个节点及其邻居节点以查看是否存在到每个邻居节点的成本更低的路线段(或子路径)。Dijkstra算法可以根据本文的系统和方法进行修改,以启用交叉交通转弯的动态成本加权,以基于迎面交通是否畅通(或住宅区)而包括在由该算法开发的最低成本路线中。被修改以使得能够基于车辆路线中迎面交通的繁忙程度而动态包括交叉交通转弯的Dijkstra算法的示例实施方式的伪代码在表1中示出:
表1
/>
/>
表1的算法找到图中从起始节点到每个其它节点的最低目标成本路线或路径,其中交叉交通转弯被动态地包括在迎面交通畅通的路线中,而在根据交通密度迎面交通不畅通的情况下动态地不赞成交叉交通转弯,并且在没有更低目标成本解决方案的情况下交叉交通转弯仍然包括在路线中。“成本”不是财务成本,而是对地理位置之间行驶负担的度量,用于考虑诸如行驶时间、行驶距离以及交叉交通转弯不被赞成的程度之类的因素来寻找“最可接受”的路线。在一个实施例中,成本以时间来表达,并且交叉交通转弯的危险成本以时间来表达,即使它们表示行驶时间以外的因素—碰撞的风险。
表1的第03-11行包括表1的算法的初始化步骤。在第03-07行,对于图中的每个节点(n),从原点到达该节点的成本(cost[n],本文中也称为节点的成本)被初始化为无穷大,从原点到达该节点的行驶时间(travelTime[n])被初始化为无穷大,并且从原点到该节点的最优路径中的前一个节点(previous[n])被设置为未定义。在第08行,到达原点的成本(cost[origin])被设置为零,因为当已经处于原点时,没有到达原点的成本。在第09行,图中所有节点的集合被放置在数组Q中,图中未检查的节点的集合。在第10行,设置了住宅区/畅通交通交叉交通转弯的恒定估计延迟时间(estimatedDelayTime)。在一个实施例中,这是基于观察到的历史住宅区交叉交通转弯的延迟时间的用于所有住宅区交叉交通转弯的平均延迟时间。在一个示例中,估计的延迟时间可以是例如30秒,如第10行所示。在第10行,设置附加的费用常量(crossingCost)。这个费用是附加成本,表示系统的管理员一般希望劝阻交叉交通转弯的程度。在表1的示例中,费用被设置为0,指示不劝阻住宅区交叉交通转弯。费用水平的提高指示住宅区交叉交通转弯的劝阻的更高级别。在一个实施例中,估计的延迟成本和/或费用可以基于转弯发生的一天中的时间而变化。这可以基于从路线的开始时间到达节点所经过的行驶时间。
表1的第17-60行是while循环,用于检查图中的所有节点,当Q中仍然存在未检查的节点时,该循环会重复。在第18和19行,从未检查的节点的集合Q中提取当前正在考虑的节点(u)。当前考虑的节点是成本最小的节点。因此,在while的第一次迭代中,从Q中提取的第一个节点将是原点节点,因为它的成本为0,而所有其它节点的成本为无穷大。在第20-59行,对于所考虑的当前节点(u)的每个未访问的邻居节点(n),处理器确定通过u到n的路径是否是交叉交通转弯,例如如本文参考图4所示和描述的。如果通过u到n的路径是交叉交通转弯,那么将执行第22-50行。如果通过u到n的路径不是交叉交通转弯,那么将执行第51-58行的else情况。
当通过u到n的路径是交叉交通转弯时,在第22行,确定交叉交通是否畅通。在交叉交通畅通的情况下,在第23-24行计算临时成本(tempCost),它是当前考虑的节点的成本(cost[u])、从u到达n的行驶时间(TravelBetween(u,n))、估计的延迟时间(estimatedDelayTime)和费用(crossingCost)之和。在第25行,将临时成本(tempCost)与邻居节点n的成本(cost[n])进行比较。如果临时成本(tempCost)小于邻居节点n的成本(cost[n]),那么(i)在第26行,邻居节点n的成本(cost[n])被替换为较小的临时成本(tempCost);(ii)在第27-29行,到邻居节点n的行驶时间(travelTime[n])被设置为到达当前节点u的行驶时间(travelTime[u])、当前节点u和邻居节点n之间的行驶时间(travelBetween(u,n))以及估计的延迟时间(estimatedDelayTime)之和;(iii)在第30行,到达邻居节点(n)的路径中的前一个节点被设置为所考虑的当前节点(u)。在交叉交通不畅通的情况下,在第37-40行,计算临时成本(tempCost),它是到达当前考虑的节点的成本(cost[u])、从u到达n的行驶时间(travelBetween(u,n))、估计的延迟时间(estimatedDelayTime)、费用(crossingCost)以及动态生成的交通密度成本(densityCost())之和。在第42行,将临时成本(tempCost)与邻居节点n的成本(cost[n])进行比较。如果临时成本(tempCost)小于邻居节点n的成本(cost[n]),那么(i)在第43行,邻居节点n的成本(cost[n])被替换为较小的临时成本(tempCost);(ii)在第44-46行,到邻居节点n的行驶时间(travelTime[n])被设置为到达当前节点u的行驶时间(travelTime[u])、当前节点u和邻居节点n之间的行驶时间(travelBetween(u,n))以及估计的延迟时间(estimatedDelayTime)之和;以及(iii)在第47行,到达邻居节点(n)的路径中的前一个节点被设置为所考虑的当前节点(u)。在一个实施例中,密度成本是由当前节点(u)表示的交叉路口处的估计的交通密度的函数,例如如本文参考等式1所示和描述的。
在通过u到n的路径不是交叉交通转弯(例如,直接穿过交叉路口或进行不穿过交通的转弯)的情况下,在第52行计算临时成本(tempCost),它是所考虑的当前节点的成本(cost[u])、从u到达n的行驶时间(travelBetween(u,n))之和。在第53行,将临时成本(tempCost)与邻居节点n的成本(cost[n])进行比较。如果临时成本(tempCost)小于邻居节点n的成本(cost[n]),那么(i)在第54行,邻居节点n的成本(cost[n])被替换为较小的临时成本(tempCost);(ii)在第55行,到达邻居节点n的行驶时间(travelTime[n])被设置为到达当前节点u的行驶时间(travelTime[u])与当前节点u和邻居节点n之间的行驶时间(travelBetween(u,n))之和;以及(iii)在第56行,到达邻居节点(n)的路径中的前一个节点被设置为所考虑的当前节点(u)。
一旦未检查节点的集合Q被耗尽并且图中的每个节点都被检查,while循环就终止,并且在第63行,返回图的节点的所有先前节点(或前驱)的集合。从先前节点的这个集合中,可以组装从原点到图的所有其它节点的成本最低(最优)路线的集合。另外,记录到达图的每个节点的成本,包括任何估计的延迟成本和/或为包括住宅区交叉交通转弯而强加的费用。不修剪任何潜在路线-非住宅区(或繁忙)交叉交通被视为潜在路线。最终路线是基于最低成本来选择的,并且可以包括畅通交通或者甚至繁忙交通的交叉交通转弯,其中这样的转弯被包括在成本最低的路线中。还可以记录到节点的路线的附加度量。例如,无论算法中的成本函数的依据如何,都可以记录路线的总行驶时间和路线的总距离。到图的所有其它节点的成本最低的路线以及相关联的成本、行驶时间和路线的距离可以被存储为与原点节点的数据结构相关联的(一个或多个)数据结构。在一个实施例中,针对被设置为原点的图的每个节点执行表1的算法,从而开发从图的每个节点到每个其它节点的成本最低路线的完整集合。成本最低路线的集合及其相关联的成本、行驶时间和距离由此可用于由多旅行推销员求解器/优化器(诸如由调度引擎173执行的求解器/优化器)检索和使用。在一个实施例中,调度引擎173采用使用模拟退火的连续优化—通过基于路线的目标函数和逐渐减小的退火参数在时间表的替代变化之间进行概率选择以接近地图内的全局最优路线集合。
—所选择的优点—
本文描述的系统和方法提高了具有交叉交通转弯的行驶路线的安全性。
这里克服的一项挑战特别是利用道路网络的图表示进行数字导航和路线规划。这些图不包括用于评估交叉交通转弯是否合适的信息。例如,道路网络的图表示并不指示来自到达链路的交通位于道路的哪一侧。本文描述的系统和方法允许在道路网络的图表示中进行交叉交通转弯评估,该图表示不指示来自到达链路的交通位于道路的哪一侧。这使得计算机能够根据迎面交通的性质来评估交叉交通转弯的可行性,以及是否将交叉交通转弯包括在行驶路线中,而计算机以前是不可能这样做的。因此,本文的系统和方法通过在为车辆进行路线规划时实现交叉交通转弯的有条件、动态评估来改进数字导航技术。
另外,通过一般地在交通畅通时允许具有标称、标准延迟的交叉交通转弯,而在交通较繁忙时动态生成延迟的度量以应用于交叉交通转弯,安全性被维持在同一水平,避免过度的交叉交通转弯,以与实现“硬的”无交叉交通转弯规则相同的方式提高安全性,同时为车辆提供比“硬的”无交叉交通转弯规则更多样化的路线规划选项。这使得系统能够获得类似的安全性益处,同时仍然使包括偶尔的交叉交通转弯的更快的路线可用。
—软件模块实施例—
一般而言,软件指令被设计为由一个或多个适当编程的处理器访问存储器来执行,诸如通过访问CPU或GPU资源执行。这些软件指令可以包括例如计算机可执行代码和可以被编译成计算机可执行代码的源代码。这些软件指令还可以包括以诸如脚本语言之类的解释性编程语言编写的指令。
在复杂系统中,此类指令可以被布置为程序模块,其中每个这样的模块执行特定任务、过程、功能或操作。模块的整个集合可以在其操作中由用于系统的主程序、操作系统(OS)或其它形式的组织平台控制或协调。
在一个实施例中,本文描述的组件中的一个或多个被配置为存储在非暂态计算机可读介质中的模块。模块配置有存储的软件指令,指令在由访问存储器或存储装置的至少一个处理器执行时使计算设备执行如本文所述的(一个或多个)对应功能。
—云或企业实施例—
在一个实施例中,本系统(诸如调度、分派和路线规划系统105)是一种计算/数据处理系统,其包括计算应用或分布式计算应用的集合,以供与企业相关联的、通过网络(诸如网络110)与本系统通信的其它客户端计算设备(诸如企业网络115的客户端设备145、150、155、160、161和165)访问和使用。应用和计算系统可以被配置为与基于云的网络计算系统、基础设施即服务(IAAS)、平台即服务(PAAS)或软件即服务(SAAS)体系架构或其它类型的联网计算解决方案一起操作或实现为它们。在一个实施例中,本系统提供本文公开的功能中的至少一个或多个以及访问和操作这些功能的图形用户界面。
—自主车辆实施例—
图6图示了示例自主车辆控制系统605,其被配置和/或编程为根据本文描述的系统和方法中的一个或多个和/或等同物进行操作。自主车辆165可以由自主车辆控制系统605操作。在一个实施例中,自主车辆控制系统605包括可操作地连接到自主车辆165的系统的车辆车载计算设备610,诸如示例计算系统800。在一个实施例中,自主车辆控制系统605包括车辆传感器615。车辆传感器可以包括全球定位系统(GPS)接收器、单目或双目相机、雷达传感器、激光雷达传感器、超声传感器、加速度计、陀螺仪、温度计、光电检测器、雨水传感器、确定车轮速度、车轮打滑和/或车辆速度的转速计、扭矩传感器,以及驾驶员输入传感器617。驾驶员输入传感器617包括用于检测对转向、制动、油门、换档或信令系统的驾驶员输入的传感器。自主车辆控制系统605可以通过无线或(间歇性)有线通信网络(诸如网络110)访问外部数据源620(诸如调度、分派和路线规划系统105以及交通/道路数据源195)。自主车辆控制系统605包括车辆致动器625,其被配置为响应于自主驾驶逻辑630的控制而引起自主车辆165的运动或其它动作。
自主驾驶逻辑630检索或接受具有根据本文描述的系统和方法生成的交叉交通转弯635、地图640和来自车辆传感器615的输入的路线,并且将控制信号发送到车辆致动器625以控制、引导或操作自主车辆165沿着通过交叉交通转弯的路线到达一个或多个目的地。此外,自主驾驶逻辑630检索或接受当前交通数据645以告知其控制决策。具有交叉交通转弯635的路线可以包括沿着路线的目的地的递送时间表。路线635、地图640和交通数据可以由车辆车载计算设备610从外部数据源620连续地或间隔地检索,并且被存储为本地数据结构车辆车载计算设备610以供自主驾驶逻辑630快速访问。
诸如自主车辆165之类的自主车辆可以是全尺寸的、合法上路的车辆,或者可以是被配置为沿着人行道行驶的紧凑型车辆。在一个实施例中,自主车辆165可以配备有递送/取回装备650,其可以被用于存放递送物、授予对递送物的访问权、接受递送物或取回递送物。响应于由自主驾驶逻辑发送的控制信号,车辆致动器625可以使得递送/取回设备650操作。递送/取回装备650可以包括被配置为允许诸如包裹之类的递送物品进出自主车辆165的自动操作门,以及被配置为抓取和/或操纵递送物品进出自主车辆165的机械臂和传送设备。递送/取回装备650可以被用于在沿着具有交叉交通转弯的路线行驶之前装载递送物品,或者用于在沿着具有交叉交通转弯的路线行驶之后完成递送。
在一个实施例中,车辆车载计算设备610被配置为执行本文描述的方法,诸如方法300或方法400,以通过动态交叉交通转弯车辆路线调度和导航逻辑655来生成具有交叉交通转弯635的路线。车辆车载计算设备610可以响应于被提供用于递送或拾取物品的一个或多个目的地的列表或时间表来这样做。可替代地,可以直接从调度、分派和路线规划系统105提供具有交叉交通转弯635的预先生成的路线。在一个实施例中,当自主车辆165远离“基地”位置时,可以通过无线网络向车辆车载计算设备610提供目的地或路线635的列表,这对于物品拾取活动可以特别有用。
通过实现本文的系统和方法,允许进行交叉交通转弯的自主车辆的碰撞风险显著降低,因为所开发的路线仅包括在交通畅通时的更安全、低风险转弯的左转。避免交通繁忙时的交叉交通转弯。
—移动设备实施例—
现在参考图7,图示了用本文描述的系统和方法中的一个或多个和/或等同物来配置和/或编程的示例移动设备700。在一个示例中,移动设备700可以包括动态交叉交通转弯车辆路线调度和导航逻辑705,该逻辑705被配置为促进与参考图1至图6所示和描述的逻辑、系统和方法类似的动态选择穿过对向交通的转弯的车辆路线调度和导航。移动设备700可以包括蜂窝天线710。示例实施例可以实现信号处理和/或控制电路,其在图7中总体上被识别为720。在一些实施方式中,移动设备700包括麦克风730、诸如扬声器和/或音频输出插孔之类的音频输出端740、显示器750,和/或诸如小键盘、定点设备、触摸屏、语音致动和/或其它输入设备之类的输入设备760。移动设备700中的信号处理和/或控制电路720和/或其它电路(未示出)可以处理数据、执行编码和/或加密、执行计算、格式化数据和/或执行其它蜂窝电话功能。
移动设备700可以与海量数据存储装置770通信,海量数据存储装置770以非易失性方式存储数据,诸如存储在包括例如HDD和/或DVD的光和/或磁存储设备中。HDD可以是迷你HDD,其包括一个或多个盘片,盘片的直径小于近似1.8英寸。蜂窝电话700可以连接到诸如RAM、ROM之类的存储器780、诸如闪存存储器之类的低时延非易失性存储器和/或其它合适的电子数据存储装置。移动设备700还可以支持经由WLAN网络接口790与WLAN的连接。移动设备700可以包括WLAN天线795。在这个示例实施例中,示例系统和方法可以使用这个WLAN网络接口790来实现,但是其它布置也是可能的。
在一个实施例中,移动设备700可以是手持式递送信息终端,并且包括附加硬件组件,诸如条形码/QR/其它条码扫描设备、签名输入设备和GPS接收器。被配置为手持式递送终端的移动设备700可以包括用于在显示器750上呈现递送信息(诸如用于在特定位置递送、取货或服务的订单的时间表,以及订单细节)的专用软件。被配置为手持式递送终端的移动设备700可以包括专门的GPS导航软件,用于在显示器750上呈现时间表上的位置之间的路线,以引导用户从一个递送、取货或服务位置到下一个位置。
—计算设备实施例—
图8图示了示例计算系统800,该系统800被配置和/或编程为具有本文描述的示例系统和方法中的一个或多个和/或等同物的专用计算设备。示例计算设备可以是计算机805,其包括通过总线825可操作地连接的处理器810、存储器815和输入/输出端口820。在一个示例中,计算机805可以包括动态交叉交通转弯车辆路线调度和导航逻辑830,该逻辑830被配置为促进类似于参考图1-图6所示和描述的逻辑、系统和方法的动态选择穿过对向交通的转弯的车辆路线调度和导航。在不同的示例中,动态交叉交通转弯车辆路线调度和导航逻辑830可以以硬件、具有存储的指令的非暂态计算机可读介质、固件和/或其组合来实现。虽然动态交叉交通转弯车辆路线调度和导航逻辑830被示为附接到总线825的硬件组件,但是应该认识到的是,在其它实施例中,动态交叉交通转弯车辆路线调度和导航逻辑830可以在处理器810中实现、存储在存储器815中、或者存储在计算机可读介质837上的盘835中。
在一个实施例中,动态交叉交通转弯车辆路线调度和导航逻辑830或计算系统800是用于执行所描述的动作的部件(诸如结构:硬件、非暂态计算机可读介质、固件)。在一些实施例中,计算设备可以是在云计算系统中操作的服务器、以软件即服务(SaaS)体系架构配置的服务器、智能电话、膝上型计算机、平板计算设备等。
该部件可以被实现为例如被编程为执行其中动态选择穿过对向交通的转弯的车辆路线调度和导航的ASIC,如本文所示和描述的。该部件还可以被实现为存储的计算机可执行指令,该指令作为数据840呈现给计算机805,数据840暂时存储在存储器815中并且然后由处理器810执行。
动态交叉交通转弯车辆路线调度和导航逻辑830还可以提供用于执行其中动态选择穿过对向交通的转弯的车辆路线调度和导航的部件(例如,硬件、存储可执行指令的非暂态计算机可读介质、固件)。
一般地描述计算机805的示例配置,处理器810可以是各种不同的处理器,包括双微处理器和其它多处理器体系架构。存储器815可以包括易失性存储器和/或非易失性存储器。非易失性存储器可以包括例如ROM、PROM、EPROM、EEPROM等。易失性存储器可以包括例如RAM、SRAM、DRAM等。存储盘835可以通过例如输入/输出(I/O)接口(例如,卡或设备)845和输入/输出端口820可操作地连接到计算机805,输入/输出接口845和输入/输出端口820由至少一个输入/输出(I/O)控制器847控制。盘835可以是例如磁盘驱动器、固态盘驱动器、软盘驱动器、带驱动器、Zip驱动器、闪存卡、记忆棒等。此外,盘835可以是CD-ROM驱动器、CD-R驱动器、CD-RW驱动器、DVD ROM等。例如,存储器815可以存储被格式化为一个或多个数据结构的处理850和/或数据840。盘835和/或存储器815可以存储控制和分配计算机805的资源的操作系统。计算机805可以经由输入/输出(I/O)控制器847、I/O接口845和输入/输出端口820与输入/输出(I/O)设备交互、控制输入/输出(I/O)设备和/或被输入/输出(I/O)设备控制。输入/输出设备包括一个或多个显示器870、打印机872(诸如喷墨、激光或3D打印机),以及音频输出设备874(诸如扬声器或耳机)、文本输入设备880(诸如键盘)、定点和选择设备882(诸如鼠标、轨迹球、触摸板、触摸屏、操纵杆、指点杆、手写笔鼠标)、音频输入设备884(诸如麦克风)、视频输入设备886(诸如摄像机和静态相机)、视频卡(未示出)、盘835、网络设备855、自主车辆890、物联网传感器(未示出)等等。输入/输出端口820可以包括例如串行端口、并行端口和USB端口。
计算机805可以在网络环境中操作并且因此可以经由I/O接口845和/或I/O端口820连接到网络设备855。通过网络设备855,计算机805可以与网络860交互。通过网络860,计算机805可以逻辑地连接到远程计算机865、远程移动设备或远程计算机可控硬件,诸如自主车辆890。计算机805可以与之交互的网络包括但不限于LAN、WAN和其它网络。
—定义和其它实施例—
在另一个实施例中,所描述的方法和/或它们的等同物可以用计算机可执行指令来实现。因此,在一个实施例中,非瞬态计算机可读/存储介质被配置为具有存储的算法/可执行应用的计算机可执行指令,当该指令由(一个或多个)机器执行时使该(一个或多个)机器(和/或相关联的组件)执行所述方法。示例机器包括但不限于处理器、计算机、在云计算系统中操作的服务器、用软件即服务(SaaS)体系架构配置的服务器、智能电话等等。在一个实施例中,计算设备用被配置为执行任何所公开的方法的一个或多个可执行算法来实现。
在一个或多个实施例中,所公开的方法或它们的等同物由以下任一项执行:被配置为执行所述方法的计算机硬件;或者,存储在非瞬态计算机可读介质中的模块中体现的计算机指令,其中指令被配置为可执行算法,可执行算法被配置为在由计算设备的至少一个处理器执行时执行所述方法。
虽然为了简化说明的目的,图中图示的方法被示出和描述为算法的一系列框,但是应该认识到的是,这些方法不受框的顺序的限制。一些框可以以与所示出和描述的不同的顺序出现和/或与其它框同时出现。而且,可以使用比全部图示的框少的框来实现示例方法。框可以被组合或分成多个动作/组件。此外,附加的和/或替代的方法可以采用未在框中图示的附加动作。
以下包括本文所采用的所选择术语的定义。定义包括属于术语的范围并且可以用于实现的组件的各种示例和/或形式。示例并不旨在是限制性的。术语的单数和复数形式都可以在定义之内。
对“一个实施例”、“实施例”、“一个示例”、“示例”等的引用指示如此描述的(一个或多个)实施例或(一个或多个)示例可以包括特定的特征、结构、特性、性质、元素或限制,但并非每个实施例或示例都必须包括该特定的特征、结构、特性、性质、元素或限制。此外,短语“在一个实施例中”的重复使用不一定指代相同的实施例,但是它可以指代相同的实施例。
ASIC:专用集成电路。
CD:光盘。
CD-R:可刻录CD。
CD-RW:可重写CD。
CPU:中央处理单元。
DVD:数字多功能盘和/或数字视频盘。
GPS:全球定位系统。
GPU:图形处理单元。
HDD:硬盘驱动器。
HTTP:超文本传输协议。
IAAS:基础设施即服务。
LAN:局域网。
MTSP:多旅行推销员问题。
PAAS:平台即服务。
PCI:外围组件互连。
PCIE:PCI Express。
RAM:随机存取存储器。
DRAM:动态RAM。
SAAS:软件即服务。
SRAM:同步RAM。
ROM:只读存储器。
PROM:可编程ROM。
EPROM:可擦除PROM。
EEPROM:电可擦除PROM。
SQL:结构化查询语言。
OQL:对象查询语言。
USB:通用串行总线。
XML:可扩展标记语言。
WAN:广域网。
如本文所使用的,“数据结构”是计算系统中存储在存储器、存储设备或其它计算机化系统中的数据的组织。数据结构可以是例如数据字段、数据文件、数据阵列、数据记录、数据库、数据表、图、树、链表等中的任何一个。数据结构可以由许多其它数据结构形成以及包含许多其它数据结构(例如,数据库包括许多数据记录)。根据其它实施例,数据结构的其它示例也是可能的。
如本文所使用的,“计算机可读介质”或“计算机存储介质”是指存储被配置为当被执行时执行所公开的功能中的一个或多个功能的指令和/或数据的非瞬态介质。在一些实施例中,数据可以用作指令。计算机可读介质可以采取包括但不限于非易失性介质和易失性介质的形式。非易失性介质可以包括例如光盘、磁盘等。易失性介质可以包括例如半导体存储器、动态存储器等。计算机可读介质的常见形式可以包括但不限于软盘、柔性盘、硬盘、磁带、其它磁性介质、专用集成电路(ASIC)、可编程逻辑器件、光盘(CD)、其它光学介质、随机存取存储器(RAM)、只读存储器(ROM)、存储器芯片或卡、记忆棒、固态存储设备(SSD)、闪存驱动器、以及计算机、处理器或其它电子设备可以利用其工作的其它介质。如果每种类型的介质在一个实施例中被选择用于实现,则其可以包括被配置为执行所公开的和/或所要求保护的功能中的一个或多个功能的算法的存储指令。
如本文所使用的,“逻辑”表示利用计算机或电气硬件、具有存储的可执行应用或程序模块的指令的非瞬态介质和/或这些的组合实现的组件,以执行如本文公开的任何功能或动作,和/或使得来自另一逻辑、方法和/或系统的功能或动作如本文所公开的那样被执行。等效逻辑可以包括固件、利用算法编程的微处理器、离散逻辑(例如,ASIC)、至少一个电路、模拟电路、数字电路、编程的逻辑器件、包含算法的指令的存储器设备等,其中任何一个可以被配置为执行所公开的功能中的一个或多个功能。在一个实施例中,逻辑可以包括一个或多个门、门的组合、或者被配置为执行所公开的功能中的一个或多个功能的其它电路组件。在描述多个逻辑的情况下,有可能将多个逻辑合并到一个逻辑中。类似地,在描述单个逻辑的情况下,有可能在多个逻辑之间分配该单个逻辑。在一个实施例中,这些逻辑中的一个或多个是与执行所公开的和/或所要求保护的功能相关联的对应结构。选择实现哪种类型的逻辑可以基于期望的系统条件或规范。例如,如果考虑更高的速度,则将选择硬件来实现功能。如果考虑更低的成本,则将选择存储的指令/可执行应用来实现功能。
“可操作的连接”或实体通过其“可操作地连接”的连接是可以发送和/或接收信号、物理通信和/或逻辑通信的连接。可操作的连接可以包括物理接口、电接口和/或数据接口。可操作的连接可以包括足以允许可操作的控制的接口和/或连接的不同组合。例如,两个实体可以可操作地连接,以直接或者通过一个或多个中间实体(例如,处理器、操作系统、逻辑、非瞬态计算机可读介质)彼此传送信号。逻辑和/或物理通信信道可以被用于创建可操作的连接。
如本文所使用的,“用户”包括但不限于一个或多个人、计算机或其它设备、或者这些的组合。
虽然已经相当详细地图示和描述了所公开的实施例,但并不旨在将所附权利要求的范围限制或以任何方式限定到这样的细节。当然,不可能为了描述主题的各个方面而描述组件或方法的每种预期的组合。因此,本公开不限于所示出和描述的特定细节或说明性示例。因此,本公开旨在涵盖落入所附权利要求范围内的变更、修改和变化。
就术语“包含”或“包括”在具体实施方式或权利要求中被采用的程度而言,它旨在以类似于当术语“包括”作为过渡词在权利要求中被采用时所解释的方式是包含性的。
就术语“或”在具体实施方式或权利要求中被采用的程度而言(例如,A或B),其旨在意味着“A或B或两者”。当申请人旨在指示“仅A或B但不是两者”时,那么将使用短语“仅A或B但不是两者”。因此,术语“或”在本文的使用是包含性的,而不是排他性使用。
Claims (15)
1.一种包括存储在其上的计算机可执行指令的非暂态计算机可读介质,指令在至少由计算机的处理器执行时使得计算机:
在开发从到达链路通过表示道路网络的图的节点的车辆路线期间,对于出发链路,确定车辆从到达链路到出发链路的路径与迎面交通相交,以及
响应于确定车辆的路径与迎面交通相交,将用于出发链路的附加的估计延迟添加到表示车辆路线的路线目标函数;
选择包括与迎面交通相交的路径的路线作为第一位置与第二位置之间的最优路线;
包括该最优路线以作为车辆的递送时间表的一部分;以及
传输递送时间表以供执行。
2.如权利要求1所述的非暂态计算机可读介质,其中指令还使得计算机:
确定迎面交通是否畅通;以及
将附加的估计延迟(i)在迎面交通畅通的情况下控制为预先配置的标准延迟,以及(ii)在迎面交通不畅通的情况下控制为基于估计的交通密度动态生成的延迟的度量。
3.如权利要求1所述的非暂态计算机可读介质,其中使得计算机添加用于出发链路的附加的估计延迟的指令包括使得计算机执行以下任一操作的指令:(i)检索用于交叉交通转弯的预先配置的标准延迟作为估计延迟,或者(ii)至少部分地基于迎面交通的速度限制和历史速度来计算附加的估计延迟。
4.如权利要求1、权利要求2或权利要求3所述的非暂态计算机可读介质,还包括指令,指令在至少由处理器执行时使得计算机响应于确定车辆的路径与迎面交通相交,将用于出发链路的附加成本添加到表示车辆路线的路线目标函数。
5.如权利要求1、权利要求2、权利要求3或权利要求4所述的非暂态计算机可读介质,其中用于传输递送时间表以供执行的指令包括用于以下操作的指令:
将装载计划传输到仓库计算系统,以选择并装载要递送到递送车辆上的物品;以及
将递送路线传输到与递送车辆相关联的移动设备,以使递送路线显示给驾驶员并使得驾驶员操作车辆穿过迎面交通。
6.如权利要求1、权利要求2、权利要求3或权利要求4所述的非暂态计算机可读介质,其中用于传输递送时间表以供执行的指令包括用于以下操作的指令:
将递送时间表传输到自主递送车辆以使自主递送车辆根据递送时间表穿过迎面交通前往递送停车站。
7.如权利要求1、权利要求2、权利要求3、权利要求4、权利要求5或权利要求6所述的非暂态计算机可读介质,其中使得计算机对于出发链路确定车辆从到达链路到出发链路的路径与迎面交通相交的指令包括使得计算机执行以下操作的指令:
检索适用于图的道路的驾驶侧的指示;
检索与节点的每个传入链路和传出链路的罗盘航向,所述每个传入链路和传出链路包括到达链路和出发链路;
确定到达链路的罗盘航向和出发链路的罗盘航向指示路径是与道路的驾驶侧相反的方向的转弯;以及
确定进入节点的第一链路和离开节点的第一链路的第一罗盘航向与到达链路的罗盘航向相反。
8.一种计算机实现的方法,包括:
在开发从到达链路通过表示道路网络的图的节点的车辆路线期间,对于出发链路,确定车辆从到达链路到出发链路的路径与迎面交通相交,以及
响应于确定车辆的路径与迎面交通相交,将用于出发链路的附加的估计延迟添加到表示车辆路线的路线目标函数;
选择包括与迎面交通相交的路径的路线作为第一位置与第二位置之间的最优路线;
包括该最优路线以作为车辆的递送时间表的一部分;以及
传输递送时间表以供执行。
9.如权利要求8所述的计算机实现的方法,还包括操作自主递送车辆,以通过车辆从到达链路到出发链路的穿过迎面交通的路径到达递送停车站。
10.如权利要求8或权利要求9所述的计算机实现的方法,其中添加用于出发链路的附加的估计延迟包括至少部分地基于在车辆路线到达节点的一天中的时间内构成迎面交通的一个或多个链路的历史交通速度来计算估计延迟。
11.如权利要求8、权利要求9或权利要求10所述的计算机实现的方法,还包括,响应于确定车辆的路径与迎面交通相交,将用于出发链路的附加成本添加到表示车辆路线的路线目标函数。
12.如权利要求8、权利要求9、权利要求10或权利要求11所述的计算机实现的方法,其中对于出发链路确定车辆从到达链路到出发链路的路径与迎面交通相交包括:
检索适用于图的道路的驾驶侧的指示;
检索与节点的每个传入链路和传出链路的罗盘航向,所述每个传入链路和传出链路包括到达链路和出发链路;
确定到达链路的罗盘航向和出发链路的罗盘航向指示路径是与道路的驾驶侧相反的方向的转弯;以及
确定进入节点的第一链路和离开节点的第一链路的第一罗盘航向与到达链路的罗盘航向相反。
13.一种计算系统,包括:
处理器;
存储器,可操作地连接到处理器;
自主车辆,由处理器控制;
非暂态计算机可读介质,可操作地连接到处理器和存储器并存储计算机可执行指令,指令在至少由计算机的处理器执行时使得计算系统:
在开发自主车辆从到达链路通过表示道路网络的图的节点的路线期间,
对于出发链路,确定自主车辆从到达链路到出发链路的路径与迎面交通相交,以及
响应于确定路径与迎面交通相交,将用于出发链路的附加的估计延迟添加到表示路线的路线目标函数;
选择包括与迎面交通相交的路径的路线作为第一位置与第二位置之间的最优路线;以及
操作自主车辆通过从到达链路到出发链路的穿过迎面交通的路径。
14.如权利要求13所述的计算系统,其中指令还使得计算系统:
确定迎面交通是否畅通;以及
将附加的估计延迟(i)在迎面交通畅通的情况下控制为预先配置的标准延迟,以及(ii)在迎面交通不畅通的情况下控制为基于估计的交通密度动态生成的延迟的度量。
15.如权利要求13或权利要求14所述的计算系统,其中使得计算系统对于出发链路确定自主车辆从到达链路到出发链路的路径与迎面交通相交的指令包括使得计算系统执行以下操作的指令:
检索适用于图的道路的驾驶侧的指示;
检索与节点的每个传入链路和传出链路的罗盘航向,所述每个传入链路和传出链路包括到达链路和出发链路;
确定到达链路的罗盘航向和出发链路的罗盘航向指示路径是与道路的驾驶侧相反的方向的转弯;以及
确定进入节点的第一链路和离开节点的第一链路的第一罗盘航向与到达链路的罗盘航向相反。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/369,074 | 2021-07-07 | ||
US17/369,074 US20230019662A1 (en) | 2021-07-07 | 2021-07-07 | Vehicle routing with dynamic selection of turns across opposing traffic |
PCT/US2022/031719 WO2023282997A1 (en) | 2021-07-07 | 2022-06-01 | Vehicle routing with dynamic selection of turns across opposing traffic |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117425808A true CN117425808A (zh) | 2024-01-19 |
Family
ID=82156581
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280040338.2A Pending CN117425808A (zh) | 2021-07-07 | 2022-06-01 | 动态选择穿过对向交通的转弯的车辆路线规划 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230019662A1 (zh) |
EP (1) | EP4352460A1 (zh) |
CN (1) | CN117425808A (zh) |
CA (1) | CA3217472A1 (zh) |
WO (1) | WO2023282997A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230086061A1 (en) * | 2021-09-22 | 2023-03-23 | Uber Technologies, Inc. | Dynamic event-triggered updates for network-based services |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5359529A (en) * | 1992-05-15 | 1994-10-25 | Zexel Corporation | Route guidance on/off-route state filter |
US5504482A (en) * | 1993-06-11 | 1996-04-02 | Rockwell International Corporation | Automobile navigation guidance, control and safety system |
US6704645B1 (en) * | 2001-12-11 | 2004-03-09 | Garmin Ltd. | System and method for estimating impedance time through a road network |
JP4185956B2 (ja) * | 2007-02-27 | 2008-11-26 | トヨタ自動車株式会社 | 旅行時間演算サーバ、車両用旅行時間演算装置及び旅行時間演算システム |
JP2010531430A (ja) * | 2007-04-03 | 2010-09-24 | ヒューマン・ネットワーク・ラブズ・インコーポレーテッド | ローカル位置を取得し、情報をオーバーレイするための方法および装置 |
GB0822893D0 (en) * | 2008-12-16 | 2009-01-21 | Tele Atlas Bv | Advanced speed profiles - Further updates |
JP5892004B2 (ja) * | 2012-08-29 | 2016-03-23 | アイシン・エィ・ダブリュ株式会社 | 経路探索システム、経路探索装置、経路探索方法及びコンピュータプログラム |
WO2014099680A2 (en) * | 2012-12-17 | 2014-06-26 | United States Postal Service | System and method of coordinating distribution of an item |
US11235777B2 (en) * | 2015-10-15 | 2022-02-01 | Harman International Industries, Incorporated | Vehicle path prediction and target classification for autonomous vehicle operation |
US20190120640A1 (en) * | 2017-10-19 | 2019-04-25 | rideOS | Autonomous vehicle routing |
JP7135699B2 (ja) * | 2018-10-12 | 2022-09-13 | トヨタ自動車株式会社 | 経路探索システムおよび経路探索プログラム |
US11473917B2 (en) * | 2020-07-14 | 2022-10-18 | Argo AI, LLC | System for augmenting autonomous vehicle perception using smart nodes |
US11946749B2 (en) * | 2021-03-12 | 2024-04-02 | Motional Ad Llc | Driving data guided spatial planning |
US11731630B2 (en) * | 2021-04-27 | 2023-08-22 | Ford Global Technologies, Llc | Methods and systems for asserting right of way for traversing an intersection |
-
2021
- 2021-07-07 US US17/369,074 patent/US20230019662A1/en active Pending
-
2022
- 2022-06-01 CN CN202280040338.2A patent/CN117425808A/zh active Pending
- 2022-06-01 EP EP22732845.7A patent/EP4352460A1/en active Pending
- 2022-06-01 CA CA3217472A patent/CA3217472A1/en active Pending
- 2022-06-01 WO PCT/US2022/031719 patent/WO2023282997A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CA3217472A1 (en) | 2023-01-12 |
US20230019662A1 (en) | 2023-01-19 |
EP4352460A1 (en) | 2024-04-17 |
WO2023282997A1 (en) | 2023-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11415427B2 (en) | Providing traffic warnings to a user based on return journey | |
JP6602352B2 (ja) | 自律走行車用の計画フィードバックに基づく決定改善システム | |
US10330482B2 (en) | Dynamically determining origin and destination locations for a network system | |
US11747808B2 (en) | Systems and methods for matching an autonomous vehicle to a rider | |
JP7459276B2 (ja) | ナビゲーション方法および装置 | |
CN114255606B (zh) | 辅助驾驶提醒、地图辅助驾驶提醒方法、装置和地图 | |
CN107228676A (zh) | 来自连接的车辆队列的地图更新 | |
US11859990B2 (en) | Routing autonomous vehicles using temporal data | |
CN113692373B (zh) | 自动驾驶车辆服务的滞留和范围分析 | |
CN112598916B (zh) | 导航提醒方法、装置、电子设备及存储介质 | |
US11829135B2 (en) | Tuning autonomous vehicle dispatch using vehicle performance | |
JP7163851B2 (ja) | 自動運転配達システム | |
CN117425808A (zh) | 动态选择穿过对向交通的转弯的车辆路线规划 | |
JP6909048B2 (ja) | 情報処理サーバ | |
US20210097587A1 (en) | Managing self-driving vehicles with parking support | |
US20200320876A1 (en) | Traffic redirection for autonomous vehicles | |
JV | Final project report-AVCP: Autonomous Vehicle Coordination Protocol |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |