Determination of Right of Passage

JP2025522708A5Pending Publication Date: 2026-06-09ZOOX INC

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
ZOOX INC
Filing Date
2023-06-20
Publication Date
2026-06-09

AI Technical Summary

Technical Problem

Autonomous vehicles face challenges in determining the right of way at semi-controlled or uncontrolled intersections, as existing systems struggle to accurately assess and prioritize routes based on traffic signs and lane configurations.

Method used

A data structure is used to store route priorities, which are determined by analyzing map data and traffic annotations, allowing autonomous vehicles to evaluate intersection routes and their relative priorities, and make decisions based on cost analysis and potential intersections with other vehicles.

Benefits of technology

This approach enhances the safety and efficiency of autonomous vehicle navigation by reducing computational complexity and improving decision-making at intersections, ensuring proper right-of-way adherence.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

Techniques for determining the right of way to pass through an intersection are described herein. Routes passing through the intersection can be associated with respective priorities. A route associated with an uphill lane without a yield sign or a stop sign can be determined as being associated with the highest priority. Other priority hierarchies can be configured based on the number of times the routes associated with respective priorities intersect with the route associated with the highest priority. The routes and priorities are stored in a data structure, and that data structure is transmitted to an autonomous vehicle to control the autonomous vehicle passing through the intersection.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the determination of the right of way.

Background Art

[0002] This PCT international application claims the benefit of priority of U.S. Patent Application No. 17 / 850,348, filed Jun. 27, 2022, the disclosure of which is incorporated herein by reference.

[0003] The right of way through an intersection can be used to determine the order of vehicles traveling through the intersection. At a controlled intersection, generally, the right of way can be based on the order of vehicles traveling through the intersection, such as first to stop and first to go. At a semi-controlled intersection or an uncontrolled intersection, it can be more difficult to determine the right of way. A driver of a non-autonomous vehicle or a semi-autonomous vehicle can determine the right of way of the non-autonomous vehicle or semi-autonomous vehicle in real time, but it can be difficult for an autonomous vehicle to determine the right of way to pass through a semi-controlled intersection or an uncontrolled intersection.

Prior Art Documents

Patent Documents

[0004]

Patent Document 1

Brief Description of the Drawings

[0005] The detailed description is described with reference to the accompanying drawings. In the drawings, the leftmost digit of a reference number identifies the drawing in which that reference number first appears. The use of the same reference number in different drawings indicates similar or identical components or features.

[0006]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

[0007] Techniques for determining the right-of-way at a road intersection are described herein. For example, map data representing a road intersection within an environment can be received. In some examples, the map data can include traffic annotation data such as stop signs, yield signs, traffic signals, etc. In some examples, the techniques described herein use the map data and traffic annotation data to identify routes that objects such as vehicles (autonomous or otherwise), bicycles, and pedestrians can use to travel through the road intersection, and the priorities associated with those routes (e.g., right-of-way hierarchies, etc.). In some examples, the data associated with the routes and the associated priorities can be stored in a data structure and transmitted to the vehicle. Thereby, the vehicle can use the data structure to travel through the intersection while complying with the appropriate right-of-way for passing through the intersection.

[0008] In some examples, a road intersection can be a junction where two or more paths that are passable by pedestrians or vehicles meet. Examples of road intersections include, but are not limited to, junctions where an alley intersects a road, a driveway intersects a road, a four-way junction where two roads intersect, a three-way junction where one road ends at another road, a junction where a bicycle lane intersects a road, a highway on-ramp or off-ramp where one road merges with another road, etc. In some examples, a road intersection can be a controlled intersection where there are traffic signals or traffic signs (e.g., traffic lights, stop signs, yield signs, stop lines, etc.) at all the incoming traffic lanes associated with the road intersection. In some examples, a road intersection can be a semi-controlled intersection where there are traffic signals or traffic signs at fewer lanes than all the incoming traffic lanes associated with the road intersection. In some examples, a road intersection can be an uncontrolled intersection where there are no traffic signals or traffic signs at any of the incoming traffic lanes associated with the road intersection.

[0009] In some examples, the data associated with a road intersection can include map data used by a vehicle (autonomous or otherwise) to navigate the environment. In some examples, the map data can include data regarding the layout and configuration of the road intersection, including but not limited to the shape of the intersection and all the incoming and outgoing lanes associated with the intersection (e.g., lanes, pedestrian-only paths, bicycle-only paths, etc.). In some examples, the map data can further include traffic annotation data, including but not limited to the traffic signals and traffic signs (if any) associated with each incoming lane of the road intersection.

[0010] In some examples, a computer system may receive map data and use the map data to determine a route to pass through a road intersection. In various examples, such a route may include possible and / or likely routes taken by a vehicle and any number of objects (e.g., other vehicles, pedestrians, etc.) approaching the vehicle approaching the intersection. In some examples, the computer system may associate each determined route with a priority. In some examples, these priorities may be relative priorities. In some examples, these relative priorities may indicate a right-of-way hierarchy associated with driving through a road intersection. For example, a first route passing through a road intersection is associated with a first priority, a second route passing through the road intersection is associated with a second priority, a third route passing through the road intersection is associated with a third priority, the first priority has a higher relative priority than the second priority and the third priority, and the second priority may have a higher relative priority than the third priority. Such priorities may be assigned relatively (e.g., priorities are determined in pairs between a vehicle and other objects) and / or absolutely (e.g., priorities are determined for all objects including the vehicle at the intersection). In some examples, the route that a vehicle can drive through a road intersection with the highest relative priority (e.g., the first route and the first priority) may be determined first based on traffic annotation data and data associated with the uphill and downhill lanes associated with the road intersection. In some examples, other routes with lower relative priorities (e.g., the second route and the third route) passing through the road intersection may subsequently be determined using the map data. In some examples, the first priority, the second priority, and the third priority may indicate the right-of-way to pass through the road intersection.

[0011] In some examples, the first route and the first priority can be determined as the route having the highest relative priority for passing through an intersection. In some examples, if there are no traffic signals or traffic signs, such as traffic lights, stop signs, yield signs, stop lines, etc., on both the uphill traffic lane associated with the first route and the uphill traffic lane substantially parallel to the downhill traffic lane associated with the first route, the first priority can be determined as the one having the highest relative priority. In some examples, when the first priority is determined as the one having the highest relative priority, the relative priorities associated with the second priority and the third priority can be determined based on the number of times the second route and the third route intersect the first route. For example, when the second route intersects the first route once and the third route does not intersect the first route, the third route can have a higher relative priority than the second route. In this example, a vehicle traveling on the first route can have the right of way over both a second vehicle traveling on the second route and a third vehicle traveling on the third route. The second vehicle traveling on the second route needs to yield to the first vehicle but can have the right of way over the third vehicle. The third vehicle traveling on the third route needs to yield to both the first vehicle and the second vehicle.

[0012] In some examples, a computer system can generate a data structure including a first route, a second route, a third route, a first priority, a second priority, and a third priority. In some examples, the data structure can be a table including a plurality of entries. In some examples, each entry can include a subset of all the routes passing through an intersection and pairs of priorities associated therewith. For example, the first entry of the table can include the first route and the second route with the first priority and the second priority. In some examples, the computer system can transmit the data structure to an autonomous vehicle. Alternatively, receiving map data, determining routes and priorities, and generating the data structure can be performed on the autonomous vehicle rather than on a computer system external to the autonomous vehicle.

[0013] In some examples, an autonomous vehicle can use data to navigate through a road intersection. In some examples, the autonomous vehicle can determine the priority of its trajectory through the road intersection using a data structure. In some examples, the autonomous vehicle can further determine when another vehicle will pass through the road intersection. In some examples, the autonomous vehicle can use logic, simulation, or a combination of both to determine whether other vehicles and the vehicle itself will cross at the road intersection. In some examples, the autonomous vehicle can further calculate the cost associated with yielding to other vehicles or proceeding through the road intersection without yielding, where the low-cost option is selected by the autonomous vehicle. As a non-limiting example, in a scenario where an object is associated with a route having a higher priority than the route associated with the vehicle, a cost is incurred during the optimization of the trajectory determination, and a penalty can be imposed on the vehicle that determines a trajectory that does not yield to other objects.

[0014] Techniques for determining the right of way to pass through a road intersection can improve the safety of vehicle operation and the safety of passengers when the vehicle passes through the road intersection. In the context of determining the route to pass through the road intersection and the priority associated with that route, such determination helps the vehicle to determine its right of way when driving through the road intersection, and thus improves the safety of the vehicle and its passengers. In the context of a data structure, each entry, which is a subset of all pairs of routes and associated priorities, helps to reduce the computational cost that an autonomous vehicle needs to use when determining the right of way to pass through the road intersection. For example, when an autonomous vehicle determines that its trajectory intersects with the trajectory of another vehicle driving through the road intersection, the autonomous vehicle only needs to query the relevant entry in the data structure that includes a subset of the pair of its route to pass through the road intersection and the routes of other vehicles passing through the road intersection. In the context of using cost to determine whether to yield or proceed through the road intersection without yielding, it helps to rank priorities such as vehicle safety, passenger safety, and passenger comfort. In some examples, vehicle safety, passenger safety, and passenger comfort can all be factors in evaluating whether the cost of proceeding through the road intersection without yielding is high or low. For example, a vehicle may be able to drive through the road intersection at high speed. However, high speed may make the passengers uncomfortable. Therefore, the cost of passing through the road intersection without yielding may be higher than the cost of yielding due to the increased discomfort of the passengers, and the vehicle may ultimately decide to yield at the road intersection.

[0015] The methods, apparatuses, and systems described herein can be implemented in various ways. Exemplary implementations are shown below with reference to the following figures. Although described in the context of autonomous vehicles, in some examples, the methods, apparatuses, and systems described herein can be applied to various systems or vehicles and are not limited to autonomous vehicles. In another example, the methods, apparatuses, and systems can be utilized in semi-autonomous or non-autonomous vehicles.

[0016] FIG. 1 shows an exemplary process for determining the right of way at a road intersection.

[0017] In operation 102, the computer system and / or device may receive map data representing an intersection of the environment. Examples of intersections can include, but are not limited to, three-way intersections, four-way intersections, intersections between alleys and roads, intersections between driveways and roads, etc. Example 104 shows exemplary map data of an intersection. Example 104 shows traffic signs 106, a first uphill lane 110, a second uphill lane 112, and a downhill lane 114. Examples of traffic signs include, but are not limited to, traffic signals, stop signs, yield signs, stop lines, etc. In some examples, different types of traffic signs may have different relative traffic priorities. By way of non-limiting example, an uphill lane associated with a yield sign may have a higher priority than an uphill lane associated with a stop sign, but those lanes associated with a stop line and a stop sign may have the same traffic priority. In some examples, if all uphill lanes associated with an intersection are associated with a stop sign and / or a stop line, and thus have the same priority, the computer system and / or device may determine that the intersection is associated with a "first stop first go" or a first-in-first-out (FIFO) scenario. In a "first stop first go" scenario, rather than determining the priority associated with each route, the computer system and / or device may determine that vehicles traveling through the intersection travel through the intersection in the order in which they arrive at the intersection. In some examples, at a traffic signal, the side of the traffic signal displaying a yellow light may have a higher priority than the side of the traffic signal displaying a red light. In these examples where vehicles and objects meet simultaneously, the rules of the road may be encoded or, if not, determined such that, for example, the object on the right has a higher priority. Of course, other rules of the road and driving guidelines may be encoded or determined similarly.

[0018] In some examples, the first uphill lane 110, the second uphill lane 112, and the downhill lane 114 can be traffic lanes. In some examples, the second uphill lane 112 can be substantially parallel to the downhill lane 114, where the first vehicle can enter the intersection using the second uphill lane 112 in the first direction, and the second vehicle can exit the intersection using the downhill lane 114 in a second direction opposite the first direction. In some examples, the second direction can be the direction indicated by the arrow associated with the first route 108.

[0019] In operation 116, the computer system and / or device can determine a first route through the intersection. In some examples, the first route can be associated with a first priority. In some examples, the first route can be the route with the highest right-of-way priority, i.e., the first priority has the highest, possible, relative priority for passing through the intersection. An example of the first route is shown as the first route 108 in example 104. In some examples, the first route can be associated with the first uphill lane 110 and the downhill lane 114. In some examples, a vehicle can pass through the intersection from the first uphill lane 110 to the downhill lane 114 using the first route 108. In some examples, the first route 108 can be associated with a first priority.

[0020] In operation 118, the computer system and / or device may determine a first priority associated with the first route 108. In some examples, the first priority may be determined to have the highest relative priority based on the absence of traffic signs, such as traffic sign 106, in the second upstream lane 112. Alternatively, if all upstream lanes associated with the intersection are associated with traffic signs, the first priority may be determined to have the highest relative priority based on the second upstream lane 112 being associated with a traffic sign associated with the highest traffic priority (e.g., the second upstream lane 112 is associated with a yield sign, while the other upstream lanes are associated with a stop sign or a stop line). Alternatively, or additionally, if the intersection includes a dedicated bicycle lane, the dedicated bicycle lane may be associated with the highest relative priority. In such examples, the first priority may be associated with the second highest relative priority following the priority associated with the dedicated bicycle lane.

[0021] In operation 120, when the first route and the first priority are determined, the computer system and / or device may determine other routes passing through the intersection, such as the second route and the third route shown in example 122. Example 122 shows the same intersection as example 104. In some examples, the second route 124 may be a left turn through the intersection. In some examples, the third route 126 may be a right turn through the intersection in the same direction as the first route 108. In some examples, the second route 124 may be associated with a second priority. In some examples, the third route 126 may be associated with a third priority.

[0022] In operation 132, the computer system and / or device may determine the relative priorities of a second priority and a third priority. In some examples, the relative priority may be determined based on the number of times each of the second route 124 and the third route 126 intersects the first route 108. As shown in example 122, the second route 124 intersects the first route 108 once, and the third route 126 does not intersect the first route 108. Therefore, the second priority has a lower relative priority than the third priority. In this scenario, the priority ranking is such that the first priority has the highest relative priority, the third priority has the second highest relative priority, and the second priority has the lowest priority.

[0023] In some examples, this logic can be extended to roads having three or more lanes. Example 122 further includes a fourth route 128 and a fifth route 130. In some examples, since the fourth route 128 is parallel to and in the same direction as the first route 108, the fourth route 128 may also be associated with the first priority. In some examples, the fifth route 130 may be associated with a fourth priority. In some examples, since the fifth route 130 intersects the fourth route 126 and the second route 124 intersects both the first route 108 and the fourth route 126, the fourth priority has a higher relative priority than the second priority.

[0024] In operation 134, when the routes passing through the intersection and the priorities associated therewith are determined, the computer system and / or device may generate a data structure that stores the routes and the associated priorities. In some examples, the data structure may be a table (e.g., a right-of-way table). In some examples, each entry in the table may be a subset of all route and associated priority pairs. Example 136 shows an exemplary right-of-way table having three exemplary entries. Example 136 shows that the first entry (e.g., the upper left entry) may include a first route 108, a second route 124, a first priority, and a second priority. Example 136 shows that the second entry (e.g., the upper right entry) may include a third route 126, a first route 108, a third priority, and a first priority. Example 136 shows that the third entry (e.g., the lower entry) may include a third route 126, a second route 124, a third priority, and a second priority. Additionally or alternatively, the data structure may include traffic signs such as traffic sign 106 and traffic priorities associated with the traffic signs. In some examples, the table may further include data associated with a "first in, first out" scenario.

[0025] In operation 138, the computer system and / or device may send a data structure to a vehicle (autonomous or otherwise) to control the vehicle to pass through an intersection. In some examples, a planning component of an autonomous vehicle may utilize the data structure to control the vehicle to pass through an intersection. Of course, while the pre-computation has been described as being determined by a remote computing device, the technology may be similarly applied to a vehicle computing system. In at least some such examples, the priority may be determined at least in part based on a proposed trajectory or route associated with the vehicle and one or more possible transitions (e.g., all potential combinations of lane segments passing through the intersection) and / or predicted transitions (e.g., a subset of all possible transitions that may be output by a prediction model) associated with one or more objects proximate to the vehicle entering the intersection.

[0026] Figure 2 shows an exemplary right-of-way scenario 200 at a three-way intersection. Example 200 includes a first route 202, a second route 204, a third route 206, a fourth route 208, a fifth route 210, a stop line 212, a first uphill lane 214, a first downhill lane 216, a second uphill lane 218, a second downhill lane 220, a third uphill lane 222, and a third downhill lane 224. In some examples, the first route 202 may be associated with a first priority, the second route 204 may be associated with a second priority, the third route 206 may be associated with a third priority, the fourth route 208 may be associated with a fourth priority, and the fifth route 210 may be associated with a fifth priority.

[0027] In some examples, there are no traffic signs on the first uphill lane 214 and the second uphill lane 218. In some examples, the third uphill lane 222 may be associated with the stop line 212. In some examples, the first route 202 may be associated with the first uphill lane 214 and the first downhill lane 216. In some examples, the second route 204 may be associated with the second uphill lane 218 and the third downhill lane 224. In some examples, the third route 206 may be associated with the first uphill lane 214 and the third downhill lane 224. In some examples, the fourth route 208 may be associated with the second uphill lane 218 and the second downhill lane 220. In some examples, the fifth route 210 may be associated with the third uphill lane 222 and the first downhill lane 216.

[0028] In some examples, the route associated with the highest relative priority can be determined from the first route 202, the second route 204, the third route 206, the fourth route 208, the fifth route 210, and other possible routes passing through the intersection. Since the third uphill lane 222 is associated with the stop line 212, any route directly or indirectly associated with the third uphill lane 222 cannot be associated with the highest relative priority. In some examples, the fifth route 210 is directly associated with the third uphill lane 222 because the fifth route 210 uses the third uphill lane 222 to enter the intersection. In some examples, the second route 204 and the third route 206 are indirectly associated with the third uphill lane 222 because both routes use the third downhill lane 224 opposite the third uphill lane 222 to exit the intersection. In some examples, the first route 202 can be determined to have the highest relative priority because there are no traffic signs such as the stop line 212 on both the first uphill lane 214 and the second uphill lane 218 (for example, the first priority is associated with the highest relative priority). By the same logic, the fourth priority associated with the fourth route 208 can have the same highest relative priority as the first priority. In some examples, the computer system and / or device described in connection with FIG. 1 can be used to determine the route with the highest relative priority. Additional details regarding determining the highest relative priority are described in connection with FIG. 1 and throughout this disclosure.

[0029] In some examples, relative priorities associated with the second route 204, the third route 206, and the fifth route 210 (e.g., a second priority, a third priority, and a fifth priority) may be determined. In some examples, the relative priorities may be determined based on the number of times the second route 204, the third route 206, and the fifth route 210 intersect the first route 202 and / or the fourth route 208. As described in connection with FIG. 1, the priority associated with the route having the least amount of intersection with the first route 202 and / or the fourth route 208 may have the highest relative priority among the second route 204, the third route 206, and the fifth route 210. In some examples, a route associated with an uphill lane associated with a traffic sign may have a lower relative priority than a route associated with an uphill lane having no traffic signs at all. As shown in Example 200, the third priority associated with the third route 206 has a relative priority higher than the second priority associated with the second route 204 because the second route 204 intersects the first route 202 while the third route 206 does not intersect either the first route 202 or the fourth route 208. Further, the fifth priority associated with the fifth route 210 has a relative priority lower than both the second priority and the third priority because there are no traffic signs at all in both the first uphill lane 214 and the second uphill lane 218, while the third uphill lane 222 is associated with a stop line 212. In some examples, a computer system and / or device may be used to determine the relative priorities of the second route, the third route, and the fifth route as described in connection with FIG. 1. Additional details regarding determining these relative priorities are described in connection with FIG. 1 and throughout this disclosure.

[0030] Figure 3 shows an exemplary right-of-way scenario 300 at an alternative three-way intersection. Example 300 includes a first route 302, a second route 304, a third route 306, a fourth route 308, a fifth route 310, a stop line 312, a first uphill lane 314, a first downhill lane 316, a second uphill lane 318, a second downhill lane 320, a third uphill lane 322, and a third downhill lane 324. In some examples, the first route 302 may be associated with a first priority, the second route 304 may be associated with a second priority, the third route 306 may be associated with a third priority, the fourth route 308 may be associated with a fourth priority, and the fifth route 310 may be associated with a fifth priority.

[0031] In some examples, there are no traffic signs in the first uphill lane 314 and the second uphill lane 318. In some examples, the third uphill lane 322 may be associated with the stop line 212. In some examples, the first route 302 may be associated with the first uphill lane 314 and the first downhill lane 316. In some examples, the second route 304 may be associated with the second uphill lane 318 and the third downhill lane 324. In some examples, the third route 306 may be associated with the first uphill lane 314 and the third downhill lane 324. In some examples, the fourth route 308 may be associated with the second uphill lane 318 and the second downhill lane 320. In some examples, the fifth route 310 may be associated with the third uphill lane 322 and the first downhill lane 316.

[0032] In some examples, the routes associated with the highest relative priority can be determined from the first route 302, the second route 304, the third route 306, the fourth route 308, the fifth route 310, and other possible routes passing through the intersection. Since the third uphill lane 322 is associated with the stop line 312, any route directly or indirectly associated with the third uphill lane 322 cannot be associated with the highest relative priority. In some examples, the fifth route 310 is directly associated with the third uphill lane 322 because the fifth route 310 uses the third uphill lane 322 to enter the intersection. In some examples, the second route 304 and the third route 306 are indirectly associated with the third uphill lane 322 because both routes use the third downhill lane 324 opposite the third uphill lane 322 to exit the intersection. In some examples, the first route 302 can be determined to have the highest relative priority because there are no traffic signs such as the stop line 312 on both the first uphill lane 314 and the second uphill lane 318 (e.g., the first priority is associated with the highest relative priority). By the same logic, the fourth priority associated with the fourth route 308 can have the same highest relative priority as the first priority. In some examples, the computer system and / or device described in connection with FIG. 1 can be used to determine the route with the highest relative priority. Additional details regarding determining the highest relative priority are described in connection with FIG. 1 and throughout this disclosure.

[0033] In some examples, relative priorities (e.g., a second priority, a third priority, and a fifth priority) associated with the second route 304, the third route 306, and the fifth route 310 may be determined. In some examples, the relative priorities may be determined based on the number of times the second route 304, the third route 306, and the fifth route 310 cross the first route 302 and / or the fourth route 308. As described in connection with FIG. 1, the priority associated with the route having the least amount of intersection with the first route 302 and / or the fourth route 308 may have the highest relative priority among the second route 304, the third route 306, and the fifth route 310. In some examples, a route associated with an uphill lane associated with a traffic sign may have a lower relative priority than a route associated with an uphill lane having no traffic signs at all. As shown in Example 300, the third priority associated with the third route 306 has a higher relative priority than the second priority associated with the second route 304 because the second route 304 crosses the first route 302 while the third route 306 does not cross either the first route 302 or the fourth route 308. Further, the fifth priority associated with the fifth route 310 has a lower relative priority than both the second priority and the third priority because there are no traffic signs at all in both the first uphill lane 314 and the second uphill lane 318, while the third uphill lane 322 is associated with a stop line 312. In some examples, computer systems and / or devices may be used to determine the relative priorities of the second route 304, the third route 306, and the fifth route 310 as described in connection with FIG. 1. Additional details regarding determining these relative priorities are described in connection with FIG. 1 and throughout this disclosure.

[0034] Figure 4 shows an example 400 of an autonomous vehicle exercising the right of way at a four-way intersection. Example 400 includes autonomous vehicle 402 and vehicle 404. While vehicle 404 has a left-turn trajectory passing through the intersection that intersects the trajectory of autonomous vehicle 402, autonomous vehicle 402 has a straight-ahead trajectory passing through the intersection. In example 400, the trajectory associated with vehicle 404 has a higher priority than the trajectory associated with autonomous vehicle 402 because there are no traffic signs on that trajectory and there are also no traffic signs on the uphill lane opposite the downhill lane associated with that trajectory (e.g., the uphill lane that autonomous vehicle 402 uses to enter the intersection). Additional details regarding determining these relative priorities are described in connection with FIG. 1 and throughout this disclosure. In addition to determining the relative priorities of the vehicle trajectories, vehicle 402 is further capable of determining whether to yield to vehicle 404 based on logic, simulation, or a combination of logic and simulation, and the cost of yielding and the cost of proceeding through the intersection without yielding. Additional details regarding determining whether to yield to vehicle 404 are described in connection with FIG. 5 and throughout this disclosure.

[0035] Figure 5 shows an exemplary process 500 of an autonomous vehicle operationally determining its right of way at a road intersection. FIG. 5 shows an exemplary process according to an example of the present disclosure. This exemplary process is shown in a logical flow diagram, and each operation represents a series of operations that can be implemented in hardware, software, or a combination thereof. In a software context, an operation represents computer-executable instructions stored on one or more computer-readable storage media that, when executed by one or more processors, perform the described operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, etc. that perform a particular function or implement a particular abstract data type. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described operations can be omitted, or combined in any order and / or in parallel, to implement the process.

[0036] In operation 502, the autonomous vehicle may receive sensor data representing an object approaching an intersection. For example, as shown in FIG. 4, the autonomous vehicle 402 may receive sensor data representing a vehicle 404 approaching an intersection. In some examples, operation 502 may include receiving data from sensors disposed on the vehicle or sensors remote from the vehicle (e.g., remote sensors, another vehicle, etc.).

[0037] In operation 504, the autonomous vehicle may receive a priority associated with a relevant route. In some examples, the planning component of the autonomous vehicle may receive the priority from an entry in a data structure that includes relevant routes associated with the trajectory of the autonomous vehicle and the trajectories associated with the objects. For example, referring to FIG. 4, the entry may include a first route associated with the trajectory of vehicle 404, a second route associated with the trajectory of autonomous vehicle 402, a first priority associated with the first route, a second priority associated with the second route, and a traffic priority associated with traffic signs associated with the first route and / or the second route. Additional details regarding the autonomous vehicle receiving data from the data structure are described in connection with FIG. 5 and throughout this disclosure.

[0038] In operation 506, the autonomous vehicle may evaluate its behavior related to the object. In some examples, the autonomous vehicle may evaluate its behavior based on a data structure that includes various priorities and traffic priorities. In some examples, the autonomous vehicle may evaluate its behavior using logic. In some examples, the logic may include, but is not limited to, determining whether the object is within a threshold distance, whether the trajectory associated with the object has a higher priority than the trajectory of the autonomous vehicle, whether two trajectories intersect, whether the speed of the object is greater than a threshold speed, and the like. In some examples, the autonomous vehicle may evaluate its behavior based on the results from a simulation. In some examples, the autonomous vehicle may evaluate its behavior based on a combination of logic and simulation.

[0039] In operation 508, the autonomous vehicle may determine a cost. In some examples, the autonomous vehicle may be able to determine a first cost associated with yielding to the object and a second cost associated with proceeding through the intersection without yielding. Factors contributing to each cost may include, but are not limited to, whether the trajectory associated with the autonomous vehicle has a higher priority than the trajectory associated with the object, whether the evaluation of the autonomous vehicle's behavior in operation 506 emphasizes yielding or proceeding, the comfort of the passengers, and the like. For example, operation 506 may indicate that the autonomous vehicle can safely proceed through the intersection without yielding, but the speed required for the autonomous vehicle to safely proceed through the intersection without yielding may be higher than a speed comfortable for the passengers. As a result, considering the comfort of the passengers, the first cost associated with yielding may be low, and the second cost associated with proceeding may be high.

[0040] In operation 510, the autonomous vehicle may determine whether the second cost associated with proceeding is greater than the first cost associated with yielding. If so, the autonomous vehicle proceeds to operation 512 and yields to the object before passing through the intersection. If not, the autonomous vehicle proceeds to operation 514 and passes through the intersection without yielding to the object.

[0041] Of course, operations 510 to 514 are depicted as a simple decision process for illustrative purposes, but the use of priorities in trajectory generation can be more subtle and complex. For example, the cost determined in operation 508 can be one of several costs, such as a progress cost (e.g., a cost incurred when deviating from the target position), a safety cost (penalties are imposed for getting too close to approaching objects), a comfort cost, etc. All such costs can be jointly evaluated when determining the optimal trajectory for the vehicle to follow, as described herein and as disclosed in Patent No. 11,161,502 entitled "Cost-Based Route Determination" filed on August 13, 2019, which is hereby incorporated by reference in its entirety.

[0042] FIG. 6 shows an exemplary data structure 600. In example 600, the data structure can be a right-of-way table 602. The right-of-way table 602 can be similar or identical to the data structure described in relation to FIG. 1. In some examples, the right-of-way table 602 can include multiple entries. In some examples, each entry among the multiple entries can include a subset of all route and associated priority pairs. In some examples, the priorities include relative priority data for each priority. The subset of pairs for each entry is shown within each of the nine entries. Although only nine entries are shown in the right-of-way table 602, it can be understood that the right-of-way table 602 can include dozens, hundreds, or thousands of the number of entries necessary to show all possible pairings of routes passing through intersections and all semantic information (such as bicycle lane markings, traffic signals and control devices, presence of crosswalks, etc.) associated with various combinations.

[0043] FIG. 7 shows an exemplary computing environment 700 used to implement a driving simulation system according to the techniques described herein. The computing environment 700 can include a computing device 736 and a vehicle control system 702. In this example, the computing device 736 can determine a route through an intersection and associated priorities, generate a data structure including the route and associated priorities, and assist an autonomous vehicle in determining the right of way through an intersection as described in process 100. The components of the computing device 736 can be implemented within a single computing system as in this example, or in separate computer systems.

[0044] The vehicle control system 702 can include various software-based and / or hardware-based components of an autonomous vehicle and can be used to control an autonomous vehicle traveling in a physical environment and / or a simulated vehicle operating within a virtual and / or log-based driving simulation. The vehicle control system 702 can be similar or identical to the vehicle control system of the autonomous vehicle 402, as well as the control systems of any simulated autonomous vehicles in the simulation.

[0045] In this example, the vehicle control system 702 and the computing device 736 are shown as separate computing systems communicating via one or more networks 734, but in other implementations, the functions of each of the systems 702, 736 can be executed in the same computing environment. As a non-limiting example, the software that executes the functions of the vehicle control system 702 can be uploaded to, otherwise incorporated into, the computing device 736, and / or the software that executes the computing device 736 can be uploaded to, otherwise incorporated into, the vehicle control system 702.

[0046] The vehicle control system 702 can be a hardware-based and / or software-based controller for a driverless vehicle, such as an autonomous vehicle configured to operate according to a Level 5 classification issued by the National Highway Traffic Safety Administration, which describes a vehicle capable of performing all safety-critical functions for the entire trip without the expectation that a driver (or occupant) will constantly control the vehicle. In some cases, the vehicle control system 702 can operate within a real-world relevant vehicle, such as a fully or partially autonomous vehicle having any other level or classification. In some cases, the techniques described herein can be usable in a non-autonomous vehicle. Additionally and / or alternatively, the vehicle control system 702 can operate independently of any vehicle, for example, as a hardware and software-based controller of a simulated vehicle executed in a computing environment during the development, testing, and validation processes of the vehicle control system 702. Further, implementations of the vehicle control system 702 described herein can include simulating a control system for an autonomous vehicle, a semi-autonomous vehicle, or a non-autonomous vehicle, although some of the techniques can be executed in a simulated environment using a simulated vehicle.

[0047] The vehicle control system 702 can be used in any configuration of a real or simulated vehicle, such as a van, sports utility vehicle, crossover vehicle, truck, bus, agricultural vehicle, and construction vehicle. For example, the vehicle associated with the vehicle control system 702 can be powered by one or more internal combustion engines, one or more electric motors, hydrogen energy, any combination thereof, and / or any other suitable power source. The associated vehicle can have four wheels, but the vehicle control system 702 and the techniques described herein can incorporate vehicles with fewer or more wheels and / or tires. The vehicle control system 702 can control a vehicle having four-wheel steering and generally can operate with equivalent or similar performance characteristics in all directions. For example, when the vehicle is traveling in a first direction, the first end of the vehicle becomes the front end of the vehicle, and when the vehicle is traveling in the opposite direction, the first end of the vehicle becomes the rear end of the vehicle. Similarly, when the vehicle is traveling in a second direction, the second end of the vehicle becomes the front end of the vehicle, and when the vehicle is traveling in the opposite direction, the second end of the vehicle becomes the rear end of the vehicle. These exemplary characteristics can improve maneuverability in confined or congested environments such as parking lots and / or urban areas.

[0048] The vehicle control system 702 can include a computing device 704, one or more sensor systems 706, one or more emitters 708, one or more communication connections 710 (also referred to as communication devices and / or modems), at least one direct connection 712 (e.g., physically coupled to the vehicle to exchange data and / or provide power), and one or more drive systems 714. One or more sensors 706 can be configured to capture sensor data associated with the environment.

[0049] The sensor system 706 can include a time-of-flight sensor, a position sensor (e.g., GPS, compass, etc.), an inertial sensor (e.g., an inertial measurement unit (IMU), an accelerometer, a magnetometer, a gyroscope, etc.), a lidar sensor, a radar sensor, a sonar sensor, an infrared sensor, a camera (e.g., RGB, IR, grayscale, depth, etc.), a microphone sensor, an environmental sensor (e.g., a temperature sensor, a humidity sensor, a light sensor, a pressure sensor, etc.), an ultrasonic transducer, a wheel encoder, and the like. The sensor system 706 can include multiple instances of each of these, or other types of sensors. For example, the time-of-flight sensor can include individual time-of-flight sensors arranged at the corners, front, rear, sides, and / or top of an actual or simulated vehicle associated with the vehicle control system 702. As another example, the camera sensor can include multiple cameras arranged at various positions about the outside and / or inside of an associated actual or simulated vehicle. The sensor system 706 can provide inputs to the computing device 704.

[0050] The vehicle control system 702 can also include one or more emitters 708 for controlling the emission of light and / or sound via a real or simulated vehicle associated with the vehicle control system 702. The one or more emitters 708 in this example include internal audio and visual emitters that communicate with the vehicle occupants. By way of example and not limitation, the internal emitters can include speakers, lights, signs, display screens, touch screens, tactile emitters (e.g., vibration and / or force feedback), mechanical actuators (e.g., seatbelt tensioners, seat positioners, headrest positioners, etc.), and the like. The one or more emitters 708 in this example also include external emitters. By way of example and not limitation, the external emitters in this example include light for signaling the direction of travel or other indicators of vehicle action (e.g., indicator lights, signs, light arrays, etc.), and one or more of which may be equipped with acoustic beam steering technology, and one or more audio emitters (e.g., speakers, speaker arrays, horns, etc.) for communicating with pedestrians or other nearby vehicles audibly.

[0051] The vehicle control system 702 can also include a communication connection 710 that enables communication between the vehicle control system 702 and one or more other local or remote computing devices (e.g., a remote teleoperation computing device) or remote services. For example, the communication connection 710 can facilitate communication with other local computing devices and / or drive systems 714 on the associated real or simulated vehicle. The communication connection 710 can also enable the vehicle to communicate with other nearby computing devices (e.g., other nearby vehicles, traffic signals, etc.).

[0052] The communication connection 710 can include a physical and / or logical interface for connecting the computing device 704 to another computing device or one or more external networks 734 (e.g., the Internet). For example, the communication connection 710 can support Wi-Fi-based communication via frequencies defined by the IEEE 802.11 standards, short-range radio frequencies such as Bluetooth®, cellular communication (e.g., 2G, 3G, 4G, 4G LTE, 5G, etc.), satellite communication, dedicated short-range communication (DSRC), or any suitable wired or wireless communication protocol that enables each computing device to interface with other computing devices. In at least some examples, the communication connection 710 can include one or more of the modems described in detail above.

[0053] In at least one example, the vehicle control system 702 can include one or more drive systems 714. In some examples, a real or simulated vehicle associated with the vehicle control system 702 can have a single drive system 714. In at least one example, if the vehicle has multiple drive systems 714, the individual drive systems 714 can be arranged at opposite ends of the associated vehicle (e.g., front and rear, etc.). In at least one example, the drive system 714 can include one or more sensor systems 706 for detecting the state of the drive system 714 and / or the surroundings of the vehicle. By way of example and not limitation, the sensor system 706 can include one or more wheel encoders (e.g., rotary encoders) for sensing the rotation of the wheels of the drive system, inertial sensors (e.g., inertial measurement units, accelerometers, gyroscopes, magnetometers, etc.) for measuring the orientation and acceleration of the drive system, cameras or other image sensors, ultrasonic sensors for acoustically detecting objects in the vicinity of the drive system, lidar sensors, radar sensors, and the like. Some sensors, such as wheel encoders, can be specific to the drive system 714. In some cases, the sensor system 706 on the drive system 714 can overlap or supplement the corresponding system of the vehicle control system 702 (e.g., the sensor system 706).

[0054] The drive system 714 can include a high-voltage battery, a motor that propels the vehicle, an inverter that converts direct current from the battery to alternating current for use in other vehicle systems, a steering system including a steering motor and a steering rack (which can be electric), a braking system including a hydraulic or electric actuator, a suspension system including hydraulic and / or pneumatic components, a stability control system for brake force distribution that reduces traction loss and maintains control, an HVAC system, lighting (e.g., headlight / tail light lighting that illuminates the outer perimeter of the vehicle), and one or more other systems (e.g., other electrical components such as a cooling system, a safety system, an on-vehicle charging system, a DC / DC converter, a high-voltage junction, a high-voltage cable, a charging system, a charging port). Also, the drive system 714 can receive and preprocess data from the sensor system 706 and can include a drive system controller for controlling the operation of various vehicle systems. In some examples, the drive system controller can include one or more processors and a memory communicatively coupled to the one or more processors. The memory can store one or more modules for performing various functions of the drive system 714. Further, the drive system 714 can also include one or more communication connections that enable communication of each drive system with one or more other local or remote computing devices.

[0055] The computing device 704 within the vehicle control system 702 can include one or more processors 716 and a memory 718 communicatively coupled to the one or more processors 716. In the example shown, the memory 718 of the computing device 704 stores a perception component 720, a localization component 722, a prediction component 724, a planning component 726, a map data component 728, a right-of-way data component 730, and one or more system controllers 732. Although depicted as being present within the memory 718 for illustrative purposes, the perception component 720, the localization component 722, the prediction component 724, the planning component 726, the map data component 728, the right-of-way data component 730, and the one or more system controllers 732 can additionally or alternatively be accessible to the computing device 704 (e.g., stored in different components of the vehicle control system 702), and / or stored remotely and accessible to the vehicle control system 702.

[0056] In the memory 718 of the computing device 704, the perception component 720 can include functions for performing object detection, segmentation, and / or classification. In some examples, the perception component 720 can provide processed sensor data indicative of the presence and / or entity type (e.g., automobile, pedestrian, bicyclist, building, tree, road surface, curb, sidewalk, unknown, etc.) of entities proximate to a real or simulated vehicle associated with the vehicle control system 702. In additional or alternative examples, the perception component 720 can provide processed sensor data indicative of one or more characteristics associated with the detected entity and / or the real or simulated environment in which the entity is located. In some examples, characteristics associated with the entity can include, but are not limited to, an x-position (global position), a y-position (global position), a z-position (global position), a direction, an entity type (e.g., classification, etc.), a speed of the entity, a range (size) of the entity, etc. Characteristics associated with the environment can include, but are not limited to, the presence of another entity in the environment, the state of another entity in the environment, time, day of the week, season, weather conditions, darkness / light indication, etc.

[0057] The perception component 720 can include a function of storing the perception data generated by the perception component 720. In some cases, the perception component 720 can determine a track corresponding to an object classified as an object type. For illustrative purposes only, using the sensor system 706, the perception component 720 can capture one or more images of a real or simulated environment. The sensor system 706 can capture an image of an environment including objects such as pedestrians. A pedestrian can be at a first position at time T and at a second position at time T+t (e.g., movement during a span of time t after time T). In other words, the pedestrian can move from the first position to the second position during this period. Such movement can be recorded in a log, for example, as stored perception data associated with the object.

[0058] In some examples, the stored perception data can include fused perception data captured by a vehicle. The fused perception data can include the fusion or other combination of sensor data from a sensor system 706, such as an image sensor, a lidar sensor, a radar sensor, a time-of-flight sensor, a sonar sensor, a global positioning system sensor, an internal sensor, and / or any combination thereof. The stored perception data can additionally or alternatively include classification data including a semantic classification of an object (e.g., a pedestrian, a vehicle, a building, a road surface, etc.) represented by the sensor data. The stored perception data can additionally or alternatively include track data (position, direction, sensor characteristics, etc.) corresponding to the movement of an object classified as a dynamic object through the environment. The track data can include tracks of multiple different objects over time. This track data can be mined to identify images of a particular type of object (e.g., a pedestrian, an animal, etc.) when the object is stopped (e.g., stationary) or moving (e.g., walking, driving, etc.). In this example, the computing device determines a track corresponding to a pedestrian.

[0059] The localization component 722 may include the function of receiving data from the sensor system 706 and determining the position of a real or simulated vehicle associated with the vehicle control system 702. For example, the localization component 722 may include, for example, a three-dimensional map of a real or simulated environment and / or be able to request / receive and continuously determine the position of the autonomous vehicle within the map. In some cases, the localization component 722 may use SLAM (Simultaneous Localization and Mapping), CLAMS (Calibration, Localization, and Mapping simultaneously) to receive time-of-flight data, image data, lidar data, radar data, sonar data, IMU data, GPS data, wheel encoder data, or any combination thereof, etc., and accurately determine the position of the autonomous vehicle. In some cases, the localization component 722 may provide data to various components of the vehicle control system 702 to determine the initial position of the autonomous vehicle for generating a trajectory as described herein.

[0060] The prediction component 724 is capable of generating one or more probability maps representing the predicted probabilities of the possible positions of one or more objects in a real or simulated environment. For example, the prediction component 724 is capable of generating one or more probability maps regarding vehicles, pedestrians, animals, etc. within a threshold distance from the vehicle associated with the vehicle control system 702. In some cases, the prediction component 724 may measure the tracks of the objects and generate a discretized predicted probability map, a heat map, a probability distribution, a discretized probability distribution, and / or a trajectory for the trajectory / object based on the observed and predicted behaviors. In some cases, the one or more probability maps may be capable of representing the intentions of one or more objects in the environment.

[0061] The planning component 726 enables the vehicle control system 702 to determine a route for guiding a real or simulated vehicle within an environment. For example, the planning component 726 can determine various routes and paths as well as various levels of detail. In some cases, the planning component 726 can determine a route for traveling from a first location (e.g., the current location) to a second location (e.g., a target location). For the purposes of this description, a route can be a series of waypoints for traveling between two locations. As a non-limiting example, waypoints can include roads, intersections, Global Positioning System (GPS) coordinates, and the like. Further, the planning component 726 can generate instructions for guiding an autonomous vehicle along at least a portion of a route from a first location to a second location. In at least one example, the planning component 726 can determine how to guide an autonomous vehicle from a first waypoint of a series of waypoints to a second waypoint of the series of waypoints. In some examples, the instructions can be a route or a portion of a route and / or various positions, orientations, speeds, directions, steering angles, accelerations, torques, etc. associated with one or more waypoints. In some examples, multiple routes can be generated substantially simultaneously (e.g., within the technical tolerance) according to a receding horizon technique. A single one of the multiple routes at the receding data horizon having the highest confidence level can be selected for operating the vehicle.

[0062] In other examples, the planning component 726 can alternatively or additionally use data from the perception component 720 to determine a route for a real or simulated vehicle associated with the vehicle control system 702 to travel through the environment. For example, the planning component 726 can receive data from the perception component 720 regarding objects associated with the environment. Using this data, the planning component 726 can determine a route to travel from a first location (e.g., the current location) to a second location (e.g., the target location) to avoid objects within the environment. In at least some examples, such a planning component 726 can determine that there is no such collision-free route and then provide a route that guides the vehicle to a safe stop that avoids all collisions and / or otherwise reduces damage.

[0063] In some examples, the planning component 726 can further use map data from the map data component 728 and right-of-way data from the right-of-way data component 730 to determine whether the vehicle 702 has the right-of-way to pass through an intersection, as related to FIGS. 1 through 5 and as described throughout this disclosure. In some examples, the map data component 728 and the right-of-way data component 730 can be transmitted by the computing device 736 using the network 734 from the map data component 742 and the right-of-way data component 744.

[0064] Computing device 736 may include one or more processors 738 and a memory 740 communicatively coupled to the one or more processors 738. In the example shown, the memory 740 of computing device 736 stores a map data component 742 and a right-of-way data component 744. In some examples, the map data component 742 and the right-of-way data component 744 may include the same data as the map data component 728 and the right-of-way data component 730, respectively. In some examples, computing device 736 may use the map data from the map data component 742 to generate the right-of-way data of the right-of-way data component 744, as described in connection with FIGS. 1-4 and throughout this disclosure. In FIG. 7, for illustrative purposes, it is depicted as being present within the memory 740, but the system and components 742 and 744 may additionally and / or alternatively be stored remotely and accessible to computing device 736 via network 734.

[0065] The processor 716 of computing device 704 and the processor 738 of computing device 736 can be any suitable processor capable of processing data and executing instructions for performing operations, as described herein. By way of example and not limitation, processors 716 and 738 can include one or more central processing units (CPUs), a graphics processing unit (GPU), or any other device or portion of a device capable of processing electronic data and converting the electronic data into other electronic data that can be stored in registers and / or memory. In some examples, integrated circuits (e.g., ASICs, etc.), gate arrays (e.g., FPGAs, etc.), and other hardware devices can also be considered processors as long as they are configured to implement the encoded instructions.

[0066] The memories 718 of the computing device 704 and the memory 740 of the computing device 736 are examples of non-transitory computer-readable media. The memories 718 and 740 can store an operating system and one or more software applications, instructions, programs, and / or data that implement the functions resulting from the methods and various systems described herein. In various implementations, the memories 718 and 740 can be implemented using any suitable memory technology such as static random access memory (SRAM), synchronous dynamic RAM (SDRAM), non-volatile / flash type memory, or any other type of memory capable of storing information. The architectures, systems, and individual elements described herein can include many other logical, programmatic, and physical components, and those shown in the accompanying drawings are merely examples relevant to the description herein.

[0067] In some cases, some or all aspects of the components described herein can include any model, algorithm, and / or machine learning algorithm. For example, some or all of the components within the memories 718 and the memory 740 can be implemented as a neural network.

[0068] Exemplary clause A: One or more processors and, when executed, cause the one or more processors to receive map data representing a road intersection in an environment having an uphill traffic lane and a downhill traffic lane, wherein the map data includes traffic annotation data, determine a first route and a second route passing through the road intersection based at least in part on the map data, determine the number of times the second route intersects the first route, determine a relative priority between the first route and the second route based at least in part on the number and the traffic annotation data, store in a data structure a relationship between the first route, the second route, the traffic annotation data, and the relative priority, and transmit the data structure to the autonomous vehicle to control the autonomous vehicle passing through the road intersection based at least in part on a cost determined based on the data structure. One or more non-transitory computer-readable media storing computer-executable instructions for performing the operations.

[0069] B: Further comprising, based at least in part on the map data, determining a third route passing through the road intersection, determining an additional number of times the first route intersects the third route, determining an additional relative priority between the first route and the third route based at least in part on the additional number and the traffic annotation data, and storing in the data structure a relationship between the first route, the third route, the traffic annotation data, and the additional relative priority. The system according to item A.

[0070] C: The autonomous vehicle is controlled to pass through the road intersection based at least in part on: determining a route of the vehicle to pass through the road intersection; receiving sensor data representing an object approaching the road intersection; determining a route of the object based at least in part on the sensor data; determining a priority of the route of the object based at least in part on the route of the object and the route of the vehicle; determining a cost based at least in part on the priority of the route of the object; and controlling the autonomous vehicle based at least in part on the cost. The system according to item A or B.

[0071] D: Determining the relative priority includes determining that there is no at least one of a traffic signal, a stop sign, a yield sign, or a stop line on the uphill lane, and the first priority associated with the first route is greater than or equal to the second priority associated with the second route. The system according to any one of items A to C.

[0072] E: The traffic annotation data includes at least one of a traffic signal, a stop sign, a yield sign, or a stop line. The system according to any one of items A to D.

[0073] F: When executed, it causes one or more processors to receive map data representing intersections in the environment, where the intersections include uphill lanes and downhill lanes, and based at least in part on the uphill lanes and the downhill lanes, determine a first route passing through the intersection, where the first route is associated with a first priority, determine a second route passing through the intersection based on the map data, determine the number of times the second route intersects the first route, determine a second priority associated with the second route based at least in part on the number of times, and store in a data structure the first route, the second route, and the relationship between the first priority and the second priority. One or more non-transitory computer-readable media storing computer-executable instructions for performing the operations including the above are provided.

[0074] G: The one or more non-transitory computer-readable media according to item F, where the map data further includes traffic annotation data including at least one of a traffic signal, a stop sign, a yield sign, or a stop line.

[0075] H: Determining the first priority includes determining that there is no traffic signal, stop sign, yield sign, or stop line in the uphill lane, and the first priority is equal to or higher than the second priority. The one or more non-transitory computer-readable media according to item F or G.

[0076] I: The ascending lane is a first ascending lane, the intersection further includes a second ascending lane, and the operation further includes determining, at least partially based on the second ascending lane, a third route associated with a third priority level that is at least partially based on the second ascending lane being associated with at least one of a traffic signal, a stop sign, a yield sign, or a stop line; and determining that the first priority level is higher than the third priority level, at least partially based on there being no traffic signal, stop sign, yield sign, or stop line in the first ascending lane and the second ascending lane being associated with a traffic signal, stop sign, yield sign, or stop line. One or more non-transitory computer-readable media according to item G.

[0077] J: The ascending lane is substantially parallel to the descending lane, a first vehicle enters the intersection using the ascending lane in a first direction, and a second vehicle exits the intersection using the descending lane in a second direction opposite to the first direction. One or more non-transitory computer-readable media according to any one of items F to I.

[0078] K: The data structure further includes a plurality of entries, and an entry among the plurality of entries includes a combination of a pair of two routes and associated priority levels. One or more non-transitory computer-readable media according to any one of items F to I.

[0079] L: The operation further includes transmitting the data structure to an autonomous vehicle configured to be controlled at least in part based on the data structure, the autonomous vehicle determining a route of the vehicle to pass through the intersection, receiving sensor data representing an object approaching the intersection, determining a route of the object at least in part based on the sensor data, determining a priority of the route of the object at least in part based on the route of the object and the route of the vehicle, determining a cost at least in part based on the priority of the route of the object, and controlling the autonomous vehicle at least in part based on the cost, and being controlled to pass through the intersection, one or more non-transitory computer-readable media according to item G.

[0080] M: The operation further includes determining a third route to pass through the intersection based on the map data, determining a second number of times the third route intersects the first route, determining a third priority associated with the third route at least in part based on the second number of times, and storing in the data structure additional associations among the first route, the second route, the third route, the first priority, the second priority, and the third priority, one or more non-transitory computer-readable media according to any one of items F to L.

[0081] N: The number of times is a first number of times, the first number of times is less than the second number of times, and the operation further includes determining that the second priority is higher than the third priority based on the first number of times being less than the second number of times, one or more non-transitory computer-readable media according to item M.

[0082] O: The intersection further includes a dedicated bicycle lane, and the operation is to determine a fourth route passing through the intersection associated with the dedicated bicycle lane, wherein the fourth route associated with a fourth priority is higher than the first priority and the second priority. One or more non-transitory computer-readable media according to any one of clauses F to N, including this.

[0083] P: Receiving map data representing intersections in the environment, wherein the intersections include an uphill lane and a downhill lane, and determining a first route passing through the intersection based at least in part on the uphill lane and the downhill lane, wherein the first route is associated with a first priority; determining a second route passing through the intersection based on the map data; determining the number of times the second route intersects the first route; determining a second priority associated with the second route based at least in part on the number of times; and storing in a data structure the relationship between the first route, the second route, the first priority, and the second priority. A method comprising this.

[0084] Q: The method according to clause P, wherein the map data further includes traffic annotation data including at least one of a traffic signal, a stop sign, a yield sign, or a stop line.

[0085] R: further comprising transmitting the data structure to an autonomous vehicle configured to be controlled at least in part based on the data structure, the autonomous vehicle determining a route of the vehicle to pass through the intersection, receiving sensor data representing an object approaching the intersection, determining a route of the object at least in part based on the sensor data, determining a priority of the route of the object at least in part based on the route of the object and the route of the vehicle, determining a cost at least in part based on the priority of the route of the object, and controlling the autonomous vehicle at least in part based on the cost, the method according to item Q, wherein the autonomous vehicle is controlled to pass through the intersection.

[0086] S: further comprising determining a third route to pass through the intersection based on the map data, determining a second number of times the third route intersects the first route, determining a third priority associated with the third route at least in part based on the second number of times, and storing in the data structure additional associations between the first route, the second route, the third route, the first priority, the second priority, and the third priority, the method according to any one of items P to R.

[0087] T: further comprising determining a third route to pass through the intersection based on the map data, determining a second number of times the third route intersects the first route, determining a third priority associated with the third route at least in part based on the second number of times, and storing in the data structure additional associations between the first route, the second route, the third route, the first priority, the second priority, and the third priority, the method according to item S.

[0088] Although the exemplary clauses described above relate to one particular implementation, it should be understood that, in the context of this specification, the content of the exemplary clauses can also be implemented via methods, devices, systems, computer-readable media, and / or other implementations. Further, any of Examples A-T can be implemented alone or in combination with any one or more of the other Examples A-T.

[0089] Conclusion Although one or more examples of the techniques described herein have been described, various changes, additions, substitutions, and their equivalents are included within the scope of the techniques described herein.

[0090] In the description of the examples, reference is made to the accompanying drawings that form a part thereof and that illustrate specific examples of the claimed subject matter. It is to be understood that other examples may be used and that changes or alterations, such as structural changes, may be made. Such examples, changes, or alterations are not necessarily departures from the scope of the claimed subject matter as intended. While the steps described herein may be presented in a particular order, in some cases the ordering can be changed so that particular inputs are provided at different times or in a different order without changing the function of the systems and methods described, and the disclosed procedures can be executed in a different order. Further, the various calculations herein need not be performed in the order disclosed, and other examples using alternative orders of calculation can be readily implemented. In addition to being reordered, the calculations can also be broken into sub-calculations with the same result.

[0091] The subject matter has been described in language specific to structural features and / or methodological acts, but it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as illustrative forms of implementing the claims.

[0092] The components described herein represent instructions that may be stored on any type of computer-readable medium and implemented in software and / or hardware. All of the methods and processes described above may be embodied in software code modules and / or computer-executable instructions executed by one or more computers or processors, hardware, or some combination thereof, through which they may be fully automated. Some or all of the methods may alternatively be embodied in dedicated computer hardware.

[0093] In particular, conditional language such as “may,” “could,” “might,” or “may” is understood, within the context, to indicate that a particular instance includes a particular feature, element, and / or step and not other instances, unless otherwise specified. Thus, such conditional language is generally not intended to imply that a particular feature, element, and / or step is required by any means, or that one or more instances necessarily include a theory for determining whether a particular feature, element, and / or step should be included in or executed in any particular instance, with or without user input or prompting.

[0094] Conjunctive language such as “at least one of X, Y, or Z” should be understood, unless specifically stated otherwise, to present that items, terms, etc. may be any of X, Y, or Z, or any combination of the respective elements thereof that includes more than one. Unless explicitly stated as singular, “a” means singular and plural.

[0095] Any description, element, or block in a flowchart described in this specification and / or shown in the accompanying drawings should be understood as potentially representing a module, segment, or portion of code that includes one or more computer-executable instructions for implementing a particular logical function or element in a routine. Alternative implementations are included within the scope of the examples described herein, and elements or functions may be executed or removed in an order different from that illustrated or described, including substantially synchronously, in reverse order, with additional acts, or with acts omitted, depending on the functions involved as would be understood by one of ordinary skill in the art.

[0096] Numerous variations and modifications may be made to the above examples, and the elements thereof should be understood as being among other acceptable examples. All such modifications and variations are intended to be included herein within the scope of this disclosure and protected by the following claims.

Claims

1. One or more processors, When executed, one or more of the processors will Receiving map data representing an intersection in the environment, wherein the intersection includes an uphill lane and a downhill lane. Determining a first route through the intersection based at least partially on the aforementioned uphill and downhill lanes, wherein the first route is associated with a first priority, Based on the aforementioned map data, a second route passing through the aforementioned intersection is determined, The number of times the second route intersects the first route, Based at least in part on the number of times, a second priority associated with the second route is determined, The data structure stores the relationships between the first route, the second route, the first priority, and the second priority. One or more non-temporary computer-readable media that store computer-executable instructions that cause an operation including, A system equipped with these features.

2. The data in the aforementioned map is Traffic lights, stop sign, Concession marker, or, stop line, Further including traffic annotation data that includes at least one of the following: The system according to claim 1.

3. Determining the first priority includes determining that the uphill lane lacks at least one of the following: a traffic light, a stop sign, a yield sign, or a stop line, and the first priority is equal to or greater than the second priority. The system according to claim 1 or 2.

4. The aforementioned uphill lane is a first uphill lane, the intersection further includes a second uphill lane, and the aforementioned operation is Based at least partially on the second uphill lane, The aforementioned second uphill lane, Traffic lights, stop sign, Concession marker, or, stop line, Determining a third route associated with a third priority that is at least partially based on being associated with at least one of the following, The determination that the first priority is higher than the third priority is based at least in part on the fact that the first uphill lane does not have at least one of the following: a traffic light, a stop sign, a yield sign, or a stop line, and that the second uphill lane is associated with a traffic light, a stop sign, a yield sign, or a stop line. Further including, The system according to claim 3.

5. The aforementioned uphill lane is substantially parallel to the aforementioned downhill lane, and a first vehicle enters the intersection using the uphill lane in a first direction, while a second vehicle exits the intersection using the downhill lane in a second direction opposite to the first direction. The system according to claim 1.

6. The data structure further includes a plurality of entries, each of which includes a combination of two routes and their associated priority pairs. The system according to claim 1.

7. The operation further includes transmitting the data structure to an autonomous vehicle configured to be controlled at least in part on the data structure, The aforementioned autonomous vehicle To determine the route for vehicles to pass through the aforementioned intersection, The system receives sensor data representing an object approaching the aforementioned intersection, The route of the object is determined based at least partially on the aforementioned sensor data, The priority of the object's route is determined, at least partially based on the object's route and the vehicle's route. The cost is determined at least partially based on the priority of the object's root, Controlling the autonomous vehicle based at least in part on the aforementioned costs, Based on this, it is controlled to pass through the aforementioned intersection. The system according to claim 1.

8. The aforementioned number of times is the first number of times, and the aforementioned operation is, Based on the aforementioned map data, a third route passing through the aforementioned intersection is determined, The second number of times the third route intersects the first route, Determining a third priority associated with the third route based at least in part on the second number of times, Based on the fact that the first number of occurrences is less than the second number of occurrences, it is determined that the second priority is higher than the third priority, The data structure stores additional relationships between the first route, the second route, the third route, the first priority, the second priority, and the third priority. Further including, The system according to claim 1.

9. The aforementioned intersection further includes a dedicated bicycle path, and the aforementioned operation is, Determining a fourth route that passes through the intersection associated with the bicycle path, wherein the fourth route associated with the fourth priority is higher than the first priority and the second priority, The system according to claim 1.

10. Receiving map data representing an intersection in the environment, wherein the intersection includes an uphill lane and a downhill lane. Determining a first route through the intersection based at least partially on the aforementioned uphill and downhill lanes, wherein the first route is associated with a first priority, Based on the aforementioned map data, a second route passing through the aforementioned intersection is determined, The number of times the second route intersects the first route, Based at least in part on the number of times, a second priority associated with the second route is determined, The data structure stores the relationships between the first route, the second route, the first priority, and the second priority. A method for providing this.

11. The data in the aforementioned map is Traffic lights, stop sign, Concession marker, or, stop line, Further including traffic annotation data that includes at least one of the following: The method according to claim 10.

12. The further includes transmitting the data structure to an autonomous vehicle configured to be controlled at least partially based on the data structure, The aforementioned autonomous vehicle To determine the route for vehicles to pass through the aforementioned intersection, The system receives sensor data representing an object approaching the aforementioned intersection, The route of the object is determined based at least partially on the aforementioned sensor data, The priority of the object's route is determined, at least partially based on the object's route and the vehicle's route. The cost is determined at least partially based on the priority of the object's root, Controlling the autonomous vehicle based at least in part on the aforementioned costs, Based on this, it is controlled to pass through the aforementioned intersection. The method according to claim 10 or 11.

13. Based on the aforementioned map data, a third route passing through the aforementioned intersection is determined, The second number of times the third route intersects the first route, Determining a third priority associated with the third route based at least in part on the second number of times, The data structure stores additional relationships between the first route, the second route, the third route, the first priority, the second priority, and the third priority. The method according to claim 10, further comprising:

14. One or more non-temporary computer-readable media that, when executed, store computer-executable instructions causing one or more processors to perform an operation that implements the method according to claim 10.