Determining access right
By analyzing map data and traffic marking data, autonomous vehicles can identify vehicle routes and their priorities at intersections, solving the problem of determining the right of way in the absence of traffic signals or signs, and improving safety and operational efficiency.
Patent Information
- Application Number
- CN202380049980.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-06-27
- Filing Date
- 2023-06-20
- Publication Date
- 2025-02-14
AI Technical Summary
The difficulty of autonomous vehicles in determining the right of way at semi-controlled or uncontrolled intersections, especially in the absence of traffic signals or signs.
By receiving and analyzing map data and traffic annotation data, possible routes of vehicles, bicycles and pedestrians and their associated priorities are identified and stored in the data structure for reference by the vehicle to determine its right of way.
It improves the operational safety and passenger safety of autonomous vehicles at road intersections, reduces calculation costs, and helps vehicles make reasonable pass decisions in complex intersection scenarios.
Smart Images

Figure CN119451876A_ABST
Abstract
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This PCT international patent application claims the benefit of priority to U.S. patent application No. 17 / 850,348, filed on June 27, 2022, the disclosure of which is incorporated herein by reference. Background Art
[0002] The right of way through an intersection may be used to determine the order in which vehicles traverse the intersection. At a controlled intersection, the right of way may generally be based on the order in which vehicles traverse the intersection, e.g., first stop, first go. At a semi-controlled or uncontrolled intersection, the right of way may be more difficult to determine. While the driver of a non-autonomous or semi-autonomous vehicle may be able to determine the right of way of a non-autonomous or semi-autonomous vehicle in real time, it may be difficult for an autonomous vehicle to determine its right of way through a semi-controlled or uncontrolled intersection. BRIEF DESCRIPTION OF THE DRAWINGS
[0003] The detailed description is described with reference to the accompanying drawings. In the drawings, the left-most digit(s) of a reference number identifies the drawing in which the reference number first appears. The use of the same reference number in different drawings indicates similar or identical components or features.
[0004] Figure 1 is a pictorial flow chart of an example process for determining right-of-way at a road intersection.
[0005] Figure 2 is an illustration of an example right-of-way scenario at a three-way intersection.
[0006] Figure 3 is an illustration of an example right-of-way scenario at an alternative three-way intersection.
[0007] Figure 4 is an illustration of an example of an autonomous vehicle operating a right-of-way scenario at a four-way intersection.
[0008] Figure 5 is an example process by which an autonomous vehicle operationally determines its right of way at a road intersection.
[0009] Figure 6 is a diagram of an example data structure.
[0010] Figure 7 A block diagram of an example architecture of a vehicle control system and computing system for determining right-of-way as described herein is included. DETAILED DESCRIPTION
[0011] This article discusses techniques for determining the right of way at a road intersection. For example, map data representing a road intersection in 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 can use map data and traffic annotation data to identify objects such as (autonomous or otherwise) vehicles, bicycles, and pedestrians that may be used to cross the road intersection and the priorities (e.g., right of way hierarchy) associated with these routes. In some examples, data associated with the routes and associated priorities can be stored in a data structure and sent to the vehicle. Accordingly, the vehicle can use the data structure to cross the intersection while observing the appropriate right of way through the intersection.
[0012] In some examples, a road intersection may be a junction where two or more paths that can be crossed by pedestrians or vehicles meet. Examples of road intersections may include, but are not limited to, a junction where a side street meets a road, a junction where a lane meets 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 path meets a road, a junction of a highway such as an entrance ramp or an exit ramp where one road merges with another road, etc. In some examples, a road intersection may be a controlled intersection, where all inbound lanes associated with the road intersection have traffic signals or traffic signs (e.g., traffic lights, stop signs, yield signs, stop lines, etc.). In some examples, a road intersection may be a semi-controlled intersection, where less than all inbound lanes associated with the road intersection have traffic signals or traffic signs. In some examples, a road intersection may be an uncontrolled intersection, where all inbound lanes associated with the road intersection do not contain traffic signals or traffic signs.
[0013] In some examples, data associated with a road intersection may be included in map data used by a vehicle (autonomous or otherwise) to traverse an environment. In some examples, the map data may include data about the layout and geometry of the road intersection, including, but not limited to, the shape of the intersection and all incoming and outgoing lanes (e.g., vehicle lanes, pedestrian paths, bicycle lanes, etc.) associated with the intersection. In some examples, the map data may also include traffic annotation data, including, but not limited to, traffic signals and traffic signs (if any) associated with each incoming lane of the road intersection.
[0014] In some examples, a computer system may receive map data and use the map data to determine a route through a road intersection. In various examples, such a route may include all possible and / or likely routes that will be taken by a vehicle and any number of objects (e.g., other vehicles, pedestrians, etc.) near 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 represent the right-of-way level associated with crossing a road intersection. For example, a first route through a road intersection may be associated with a first priority, a second route through a road intersection may be associated with a second priority, and a third route through a road intersection may be associated with a third priority, wherein the first priority may have 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 relatively assigned (e.g., priorities are determined in pairs between vehicles and other objects) and / or absolutely assigned (e.g., priorities are determined relative to all objects including vehicles at the intersection). In some examples, the route that a vehicle can take through a road intersection with the highest relative priority (e.g., a first route and a first priority) can be first determined based on traffic annotation data and data associated with an incoming lane and an outbound lane associated with the road intersection. In some examples, the map data can then be used to determine other routes (e.g., a second route and a third route) with lower relative priorities through the road intersection. In some examples, the first priority, the second priority, and the third priority can indicate the right of way through the road intersection.
[0015] In some examples, the first route and the first priority may be determined as the route that passes through the road intersection with the highest relative priority. In some examples, when both the incoming lane associated with the first route and the incoming lane substantially parallel to the outgoing lane associated with the first route do not have a traffic signal or traffic sign (such as but not limited to a traffic light, a stop sign, a yield sign, a stop line, etc.), the first priority may be determined to have the highest relative priority. In some examples, once the first priority is determined to have the highest relative priority, the relative priority associated with the second priority and the third priority may be determined based on the number of times the second route and the third route intersect with the first route. For example, the second route may intersect with the first route once, and the third route may not intersect with the first route, so the third route will have a higher relative priority than the second route. In this example, a vehicle passing through the first route will have the right of way over a second vehicle passing through the second route and a third vehicle passing through the third route. The second vehicle passing through the second route will need to yield to the first vehicle and will have the right of way over the third vehicle. A third vehicle traversing the third route will need to yield to both the first vehicle and the second vehicle.
[0016] In some examples, a computer system may generate a data structure comprising 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 may be a table comprising a plurality of entries. In some examples, each entry may include a paired subset of all routes through a road intersection and their associated priorities. For example, a first entry of the table may include a first route and a second route and a first priority and a second priority. In some examples, the computer system may send the data structure to an autonomous vehicle. Alternatively, receiving map data, determining routes and priorities, and generating a data structure may be performed on the autonomous vehicle, rather than on a computer system external to the autonomous vehicle.
[0017] In some examples, the autonomous vehicle can use the data structure to pass through the road intersection. In some examples, the autonomous vehicle can use the data structure to determine the priority of its trajectory through the road intersection. In some examples, the autonomous vehicle can also determine that another vehicle is also passing through the road intersection. In some examples, the autonomous vehicle can use logic, simulation or a combination of the two to determine whether other vehicles and itself will intersect at the road intersection. In some examples, the autonomous vehicle can also calculate the cost associated with giving way to other vehicles, or continue to move forward through the road intersection without giving way, wherein the option with lower cost is the option taken by the autonomous vehicle. As a non-limiting example, in a scene where an object is associated with a route with a higher priority than the route associated with the vehicle, a cost may be generated during the optimization determined for the trajectory, which will be detrimental to the vehicle determining the trajectory of not giving way to other objects.
[0018] The technology for determining the right of way through a road intersection can improve the safety of vehicle operation and passenger safety when the vehicle passes through the road intersection. In the context of determining the route through the road intersection and the priority associated with the route, such a determination assists the autonomous vehicle in determining its right of way when passing through the road intersection, and thus increases the safety of the autonomous vehicle and its passengers. In the context of the data structure, each entry is a paired subset of all routes and associated priorities to assist in reducing the computational cost that the autonomous vehicle needs to use when determining its right of way through the road intersection. For example, when the autonomous vehicle determines that its trajectory intersects with the trajectory of another vehicle passing through the road intersection, the autonomous vehicle only needs to query the relevant entry in the data structure, which contains the paired subset of its route through the intersection and the route of the other vehicle through the road intersection. In the context of using cost to determine whether to give way or continue through the road intersection without giving way, it can assist in prioritizing vehicle safety, passenger safety, passenger comfort, etc. In some examples, vehicle safety, passenger safety, and passenger comfort can all be factors for evaluating whether the cost of continuing through the road intersection without giving way is high or low. For example, a vehicle may be able to safely pass through a road intersection at a high speed. However, the high speed may cause discomfort to passengers. Therefore, due to the increased discomfort of the passengers, the cost of continuing through the intersection without yielding may be higher than the cost of yielding, and the vehicle finally determines to yield at the road intersection.
[0019] The methods, devices, and systems described herein can be implemented in a variety of ways. Example implementations are provided below with reference to the following figures. Although discussed in the context of autonomous vehicles, in some examples, the methods, devices, and systems described herein can be applied to various systems or vehicles and are not limited to autonomous vehicles. In another example, these methods, devices, and systems can be used for semi-autonomous or non-autonomous vehicles.
[0020] Figure 1 An example process 100 for determining right-of-way at a road intersection is shown.
[0021] At operation 102, a computing system and / or device may receive map data representing an intersection in an environment. Examples of intersections may be, but are not limited to, three-way road intersections, four-way road intersections, intersections between lanes and roads, intersections between lanes and roads, etc. Example 104 illustrates example map data for an intersection. Example 104 illustrates a traffic sign 106, a first entry lane 110, a second entry lane 112, and an exit lane 114. Examples of traffic signs may 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. As a non-limiting example, an entry lane associated with a yield sign may have a higher priority than those lanes associated with a stop sign, and those lanes associated with a stop line and a stop sign may have the same traffic priority. In some examples, if all the lanes of entry associated with the intersection are associated with stop signs and / or stop lines, thus having the same priority, the computer system and / or device can determine that the intersection is associated with a "stop first, go first" or first-in, first-out (FIFO) scenario. In the "stop first, go first" scenario, the computer system and / or device can determine that the vehicles crossing the intersection will cross the intersection in the order in which they arrive at the intersection, rather than determining the priority associated with each route. In some examples, in a traffic signal, the side of the traffic signal that displays a yellow light can have a higher priority than the side of the traffic signal that displays a red light. In those examples where vehicles and objects meet at the same time, the road rules can be encoded or otherwise determined so that, for example, the object on the right has a higher priority. Of course, any other road rules or driving policies can be similarly encoded or determined.
[0022] In some examples, the first oncoming lane 110, the second oncoming lane 112, and the outgoing lane 114 may be driving lanes. In some examples, the second oncoming lane 112 may be substantially parallel to the outgoing lane 114, wherein a first vehicle may use the second oncoming lane 112 to enter the intersection in a first direction, and a second vehicle may use the outgoing lane 114 to exit the intersection in a second direction opposite to the first direction. In some examples, the second direction may be a direction indicated by an arrow associated with the first route 108.
[0023] At operation 116, the computer system and / or device may determine a first route through the intersection. In some examples, the first route may be associated with a first priority. In some examples, the first route may be a route with the highest priority right of way, that is, the first priority has the highest relative priority of all possible routes through the intersection. An example first route is shown in example 104 as first route 108. In some examples, first route 108 may be associated with first entry lane 110 and exit lane 114. In some examples, a vehicle may use first route 108 to cross the intersection from first entry lane 110 to exit lane 114. In some examples, first route 108 may be associated with a first priority.
[0024] At operation 118, the computer system and / or device can determine the first priority associated with the first route 108. In some examples, the first priority can be determined as having the highest relative priority based on the absence of any traffic sign (such as traffic sign 106) in the second incoming lane 112. Alternatively, in the case where all incoming lanes associated with the intersection are associated with traffic signs, the first priority can be determined as having the highest relative priority based on the second incoming lane 112 being associated with a traffic sign associated with the highest traffic priority (e.g., the second incoming lane 112 is associated with a yield sign, and other incoming lanes are associated with a stop sign or a stop line). Alternatively or additionally, if the intersection contains a bicycle lane, the bicycle lane can be associated with the highest relative priority. In such an example, the first priority can be associated with the second highest relative priority after the priority associated with the bicycle lane.
[0025] At operation 120, once the first route and the first priority are determined, the computer system and / or device may determine other routes through the intersection, such as the second route 124 and the third route 126 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.
[0026] At operation 132, the computer system and / or device may determine a relative priority of the second priority and the 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 priority than the third priority. In this scenario, the ranking of the priorities is 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 relative priority.
[0027] In some examples, this logic can be extended to roads with three or more lanes. Example 122 also includes a fourth route 128 and a fifth route 130. In some examples, since the fourth route 128 is parallel to the first route 108 and in the same direction as the first route 108, the fourth route 128 can also be associated with the first priority. In some examples, the fifth route 130 can be associated with the fourth priority. In some examples, since the fifth route 130 intersects with the fourth route 126 and the second route 124 intersects with both the first route 108 and the fourth route 126, the fourth priority has a higher relative priority than the second priority.
[0028] At operation 134, once the routes through the intersection and their associated priorities are determined, the computer system and / or device can generate a data structure storing the routes and associated priorities. In some examples, the data structure can be a table (e.g., a right of way table). In some examples, each entry of the table can be a paired subset of all routes and associated priorities. Example 136 shows an example right of way table with three example entries. Example 136 shows that the first entry (e.g., the upper left entry) can include the first route 108, the second route 124, the first priority and the second priority. Example 136 shows that the second entry (e.g., the upper right entry) can include the third route 126, the first route 108, the third priority and the first priority. Example 136 shows that the third entry (e.g., the bottom entry) can include the third route 126, the second route 124, the third priority and the second priority. Additionally or alternatively, the data structure can include traffic signs (such as traffic signs 106) and traffic priorities associated with these traffic signs. In some examples, the table can also include data associated with a "stop first, go first" scenario.
[0029] At operation 138, the computer system and / or device may send the data structure to the vehicle (autonomous or otherwise) to control the vehicle through the intersection. In some examples, the planning component of the autonomous vehicle may utilize the data structure to control the autonomous vehicle through the intersection. Of course, although the above discussion of pre-calculation being determined by a remote computing device has been discussed, these techniques may also be applied to vehicle computing systems. In at least some such examples, the priority may be determined at least in part based on one or more possible turns (e.g., all potential combinations of lane segments through the intersection) and / or predicted turns (e.g., a subset of all possible turns that can be output by a prediction model) associated with a proposed trajectory or route associated with the vehicle and one or more objects approaching the vehicle entering the intersection.
[0030] Figure 2 An example right-of-way scenario 200 for a three-way intersection is shown. 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 entry lane 214, a first exit lane 216, a second entry lane 218, a second exit lane 220, a third entry lane 222, and a third exit lane 224. In some examples, the first route 202 can be associated with a first priority, the second route 204 can be associated with a second priority, the third route 206 can be associated with a third priority, the fourth route 208 can be associated with a fourth priority, and the fifth route 210 can be associated with a fifth priority.
[0031] In some examples, the first incoming lane 214 and the second incoming lane 218 do not have traffic signs. In some examples, the third incoming lane 222 can be associated with the stop line 212. In some examples, the first route 202 can be associated with the first incoming lane 214 and the first outgoing lane 216. In some examples, the second route 204 can be associated with the second incoming lane 218 and the third outgoing lane 224. In some examples, the third route 206 can be associated with the first incoming lane 214 and the third outgoing lane 224. In some examples, the fourth route 208 can be associated with the second incoming lane 218 and the second outgoing lane 220. In some examples, the fifth route 210 can be associated with the third incoming lane 222 and the first outgoing lane 216.
[0032] In some examples, a 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 through the intersection. Since the third entry lane 222 is associated with the stop line 212, any route directly or indirectly associated with the third entry lane 222 cannot be associated with the highest relative priority. In some examples, the fifth route 210 is directly associated with the third entry lane 222 because the fifth route 210 uses the third entry lane 222 to enter the intersection. In some examples, the second route 204 and the third route 206 are indirectly associated with the third entry lane 222 because both routes use the third exit lane 224 opposite to the third entry lane 222 to leave the intersection. In some examples, the first route 202 can be determined to have the highest relative priority (e.g., the first priority is associated with the highest relative priority) because neither the first entry lane 214 nor the second entry lane 218 has a traffic sign (such as the stop line 212). Following the same logic, the fourth priority associated with the fourth route 208 will have the same highest relative priority as the first priority. Figure 1 The computer systems and / or devices described in connection with the invention may be used to determine the route having the highest relative priority. Figure 1 and discussed throughout this disclosure.
[0033] In some examples, relative priorities (e.g., second priority, third priority, and fifth priority) associated with the second route 204, the third route 206, and the fifth route 210 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. Figure 1As described in connection with, a priority associated with a route having the least amount of intersections 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 entry lane associated with a traffic sign may have a lower relative priority than a route associated with an entry lane without any traffic sign. As shown in example 200, a third priority associated with the third route 206 has a higher relative priority than a second priority associated with the second route 204 because the third route 206 intersects neither the first route 202 nor the fourth route 208, while the second route 204 intersects the first route 202. In addition, a fifth priority associated with the fifth route 210 has a lower relative priority relative to both the second priority and the third priority because the third entry lane 222 is associated with the stop line 212, while neither the first entry lane 214 nor the second entry lane 218 has any traffic sign. In some examples, as shown in example 200, a third priority associated with the third route 206 has a higher relative priority than a second priority associated with the second route 204 because the third route 206 intersects neither the first route 202 nor the fourth route 208, while the second route 204 intersects the first route 202. In addition, a fifth priority associated with the fifth route 210 has a lower relative priority relative to both the second priority and the third priority because the third entry lane 222 is associated with the stop line 212, while neither the first entry lane 214 nor the second entry lane 218 has any traffic sign. Figure 1 The computer system and / or device described in connection with the present invention may be used to determine the relative priorities of the second route, the third route, and the fifth route. Additional details on determining these relative priorities are provided in conjunction with Figure 1 and discussed throughout this disclosure.
[0034] Figure 3 An example right-of-way scenario 300 is shown at an alternating 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 entry lane 314, a first exit lane 316, a second entry lane 318, a second exit lane 320, a third entry lane 322, and a third exit lane 324. In some examples, first route 302 may be associated with a first priority, second route 304 may be associated with a second priority, third route 306 may be associated with a third priority, fourth route 308 may be associated with a fourth priority, and fifth route 310 may be associated with a fifth priority.
[0035] In some examples, the first incoming lane 314 and the second incoming lane 318 do not have traffic signs. In some examples, the third incoming lane 322 can be associated with the stop line 312. In some examples, the first route 302 can be associated with the first incoming lane 314 and the first outgoing lane 316. In some examples, the second route 304 can be associated with the second incoming lane 318 and the third outgoing lane 324. In some examples, the third route 306 can be associated with the first incoming lane 314 and the third outgoing lane 324. In some examples, the fourth route 308 can be associated with the second incoming lane 318 and the second outgoing lane 320. In some examples, the fifth route 310 can be associated with the third incoming lane 322 and the first outgoing lane 316.
[0036] In some examples, the route 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 through the intersection. Since the third entry lane 322 is associated with the stop line 312, any route directly or indirectly associated with the third entry lane 322 cannot be associated with the highest relative priority. In some examples, the fifth route 310 is directly associated with the third entry lane 322 because the fifth route 310 uses the third entry lane 322 to enter the intersection. In some examples, the second route 304 and the third route 306 are indirectly associated with the third entry lane 322 because both routes use the third exit lane 324 relative to the third entry lane 322 to leave the intersection. In some examples, the first route 302 can be determined to have the highest relative priority (e.g., the first priority is associated with the highest relative priority) because the first entry lane 314 and the second entry lane 318 do not have traffic signs (such as stop lines 312). Following the same logic, the fourth priority associated with the fourth route 308 will have the same highest relative priority as the first priority. Figure 1 The computer systems and / or devices described in connection with the invention may be used to determine the route having the highest relative priority. Figure 1 and discussed throughout this disclosure.
[0037] In some examples, relative priorities (e.g., second priority, third priority, and 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 intersect the first route 302 and / or the fourth route 308. Figure 1As described in connection with, a priority associated with a route having the least amount of intersections 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 entry lane associated with a traffic sign may have a lower relative priority than a route associated with an entry lane without any traffic sign. As shown in example 300, a third priority associated with the third route 306 has a higher relative priority than a second priority associated with the second route 304 because the third route 306 intersects neither the first route 302 nor the fourth route 308, while the second route 304 intersects the first route 302. In addition, a fifth priority associated with the fifth route 310 has a lower relative priority than the second and third priorities because the third entry lane 322 is associated with the stop line 312, while the first entry lane 314 and the second entry lane 318 do not have any traffic signs. In some examples, as shown in example 300, a third priority associated with the third route 306 has a higher relative priority than a second priority associated with the second route 304 because the third route 306 intersects neither the first route 302 nor the fourth route 308, while the second route 304 intersects the first route 302. In addition, a fifth priority associated with the fifth route 310 has a lower relative priority than the second and third priorities because the third entry lane 322 is associated with the stop line 312, while neither the first entry lane 314 nor the second entry lane 318 has any traffic signs. Figure 1 The computer systems and / or devices described in connection with the present invention may be used to determine the relative priorities of the second route 304, the third route 306, and the fifth route 310. Additional details regarding determining these relative priorities may be provided in conjunction with Figure 1 and discussed throughout this disclosure.
[0038] Figure 4 Example 400 of an autonomous vehicle operating a right-of-way scenario at a four-way intersection is shown. Example 400 includes autonomous vehicle 402 and vehicle 404. Autonomous vehicle 402 has a trajectory that goes straight through the intersection, while vehicle 404 has a left-turn trajectory through the intersection that intersects the trajectory of autonomous vehicle 402. In example 400, the trajectory associated with vehicle 404 has a higher priority than the trajectory associated with autonomous vehicle 402 because the entry lane associated with the trajectory does not have any traffic signs and the entry lane opposite the exit lane associated with the trajectory (e.g., the entry lane that autonomous vehicle 402 uses to enter the intersection) also does not have any traffic signs. Additional details about determining these relative priorities are provided in conjunction with Figure 1 In addition to determining the relative priority of the vehicle trajectories, vehicle 402 can also determine whether to yield to vehicle 404 based on logic, simulation, or a combination of logic and simulation, and the cost of yielding versus the cost of continuing through the intersection without yielding. Additional details on determining whether to yield to vehicle 404 are provided in conjunction with Figure 5 and discussed throughout this disclosure.
[0039] Figure 5 An example process 500 is shown in which an autonomous vehicle operationally determines that it has the right of way at an intersection. Figure 5An example process according to an example of the present disclosure is shown. The example process is shown as a logical flow chart, each operation of which represents a sequence of operations that can be implemented in hardware, software, or a combination thereof. In the context of software, an operation represents a computer-executable instruction stored on one or more computer-readable storage media that, when executed by one or more processors, performs the described operation. Typically, computer-executable instructions include routines, programs, objects, components, data structures, etc. that perform specific functions or implement specific abstract data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described operations may be omitted or combined in any order and / or in parallel to implement the process.
[0040] At operation 502, the autonomous vehicle may receive sensor data indicating that an object is approaching an intersection. Figure 4 As shown in , autonomous vehicle 402 can receive sensor data indicating that vehicle 404 is approaching an intersection. In some examples, operation 502 can include receiving data from a sensor placed on the vehicle or remote to the vehicle (e.g., from a remote sensor, another vehicle, etc.).
[0041] At operation 504, the autonomous vehicle may receive a priority associated with the associated route. In some examples, a planner component of the autonomous vehicle may receive a priority from an entry of a data structure that includes associated routes associated with a track associated with the autonomous vehicle and a track associated with an object. For example, referring to Figure 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 a traffic sign associated with the first route and / or the second route. Additional details about autonomous vehicles receiving data from data structures are combined Figure 1 and discussed throughout this disclosure.
[0042] At operation 506, the autonomous vehicle may evaluate its behavior with respect to the object. In some examples, the autonomous vehicle may evaluate its behavior based on a data structure including various priorities and traffic priorities. In some examples, the autonomous vehicle may use logic to evaluate its behavior. In some examples, the logic may include decisions such as, but limited to, determining whether the object is within a threshold distance, whether the track associated with the object takes precedence over the track of the autonomous vehicle and whether the two tracks intersect, whether the speed of the object is greater than a threshold speed, etc. In some examples, the autonomous vehicle may evaluate its behavior based on results from simulations. In some examples, the autonomous vehicle may evaluate its behavior based on a combination of logic and simulations.
[0043] At operation 508, the autonomous vehicle may determine a cost. In some examples, the autonomous vehicle may determine a first cost associated with yielding to an object and a second cost associated with continuing 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 takes precedence over the trajectory associated with the object, whether the behavior of the autonomous vehicle is evaluated at operation 506 to favor yielding or continuing forward, passenger comfort, etc. For example, operation 506 may indicate that the autonomous vehicle can safely continue through the intersection without yielding; however, the speed at which the autonomous vehicle needs to safely continue through the intersection without yielding may be faster than the speed at which the passengers are comfortable. Therefore, for the comfort of the passengers, the first cost associated with yielding may be low, while the second cost associated with continuing forward may be high.
[0044] At operation 510, the autonomous vehicle can determine whether the second cost associated with continuing is greater than the first cost associated with yielding. If so, the autonomous vehicle proceeds to operation 512 and yields to the object before continuing through the intersection. If not, the autonomous vehicle proceeds to operation 514 and continues through the intersection without yielding to the object.
[0045] Of course, for illustrative purposes, although depicted as a simple determination process in operations 510 to 514, the use of priorities in trajectory generation may be more subtle and complex. For example, the cost determined in operation 508 may be one of several costs, including development costs (e.g., costs incurred for deviations from a desired position), safety costs (penalizing objects that are too close), comfort costs, etc. All such costs may be jointly evaluated in determining an optimized trajectory for a vehicle to follow, as discussed herein and disclosed in U.S. Patent No. 11,161,502, filed on August 13, 2019, entitled “Cost-Based Path Determination,” the entire contents of which are incorporated herein by reference.
[0046] Figure 6 An example data structure 600 is shown. In example 600, the data structure may be a right of way table 602. The right of way table 602 may be associated with Figure 1The data structures of the associated descriptions are similar or identical. In some examples, the right-of-way table 602 may include multiple entries. In some examples, each of the multiple entries may include paired subsets of all routes and their associated priorities. In some examples, the priorities include relative priority data for each of the priorities. The paired subsets of each entry are shown in each of the 9 entries. Although the right-of-way table 602 only shows 9 entries, it will be understood that the right-of-way table 602 may include many, hundreds or thousands of entries or as many entries as needed to show all possible pairings of routes through the intersection, as well as all semantic information associated with the various combinations (e.g., bicycle lane indications, traffic signals and control devices, the presence of crosswalks, etc.).
[0047] Figure 7 An example computing environment 700 is shown that can be 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, and generate a data structure containing the route and associated priorities to assist an autonomous vehicle in determining the correct path through the intersection, such as those described in process 100. The components of the computing device 736 can be implemented within a single computing system as in this example, or can be implemented in separate computer systems.
[0048] Vehicle control system 702 may include various software-based and / or hardware-based components of an autonomous vehicle and may be used to control an autonomous vehicle traversing a physical environment and / or a simulated vehicle operating in a virtual and / or log-based driving simulation. Vehicle control system 702 may be similar or identical to the vehicle control system of autonomous vehicle 402 and any simulated autonomous vehicles in a simulation.
[0049] In this example, the vehicle control system 702 and the computing device 736 are shown as separate computing systems that communicate over one or more networks 734, although in other implementations, the functionality of each of the systems 702, 736 may be performed in the same computing environment. By way of non-limiting example, software that performs the functionality of the vehicle control system 702 may be uploaded to or otherwise incorporated into the computing device 736 and / or software that performs the computing device 736 may be uploaded to or otherwise made incorporated into the vehicle control system 702.
[0050] The vehicle control system 702 can be a hardware-based and / or software-based controller for an unmanned vehicle, for example, 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 throughout the entire journey, where the driver (or occupant) is not expected to control the vehicle at any time. In some cases, the vehicle control system 702 can be operated in a real associated vehicle, for example, a fully or partially autonomous vehicle with any other level or classification. In some cases, the techniques described herein can also be used for non-autonomous vehicles. Additionally and / or alternatively, the vehicle control system 702 can operate independently of any vehicle, for example, as a hardware- and software-based controller for a simulated vehicle executed in a computing environment during the development, testing, and verification of the vehicle control system 702. In addition, although the implementation of the vehicle control system 702 described herein may include a control system that simulates an autonomous vehicle, a semi-autonomous vehicle, or a non-autonomous vehicle, some of the techniques may use a simulated vehicle in a simulated environment.
[0051] The vehicle control system 702 can be used for real or simulated vehicles of any configuration, such as, for example, vans, sport utility vehicles, crossovers, trucks, buses, agricultural vehicles, and / or construction vehicles. For example, the associated vehicle for the vehicle control system 702 can be powered by one or more internal combustion engines, one or more electric motors, hydrogen power, any combination thereof, and / or any other suitable power source. Although the associated vehicle can have four wheels, the vehicle control system 702 and associated technologies described herein can be incorporated into wheels and / or tires with fewer or more numbers. The vehicle control system 702 can control a vehicle with four-wheel steering and can operate in all directions with substantially the same or similar performance characteristics, for example, so that when traveling in a first direction, the first end of the vehicle is the front end of the vehicle, and so that when traveling in a relative direction, the first end becomes the rear end of the vehicle. Similarly, when traveling in a second direction, the second end of the vehicle is the front end of the vehicle, and so that when traveling in a relative direction, the second end becomes the rear end of the vehicle. These example features may facilitate greater maneuverability, for example, in tight spaces or crowded environments, such as parking lots and / or urban areas.
[0052] The vehicle control system 402 may include computing device(s) 704, one or more sensor systems 706, one or more transmitters 708, one or more communication connections 710 (also referred to as communication devices and / or modems), at least one direct connection 712 (e.g., for physically coupling with the vehicle to exchange data and / or provide power), and one or more drive systems 714. The one or more sensor systems 706 may be configured to capture sensor data associated with the environment.
[0053] The sensor system 706 may 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, intensity, 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, etc. The sensor system 706 may include multiple instances of each of these or other types of sensors. For example, the time-of-flight sensor may include separate time-of-flight sensors located at the corners, front, rear, sides, and / or top of a real or simulated vehicle associated with the vehicle control system 702. As another example, a camera sensor may include multiple cameras disposed at various locations around the exterior and / or interior of an associated real or simulated vehicle. The sensor system 706 may provide input to the computing device 704.
[0054] The vehicle control system 702 may also include one or more transmitters 708 for controlling the emission of light and / or sound via a real or simulated vehicle associated with the vehicle control system 704. The one or more transmitters 708 in this example include internal audio and visual transmitters that communicate with passengers of the vehicle. By way of example and not limitation, the internal transmitters may include speakers, lights, signs, display screens, touch screens, tactile transmitters (e.g., vibration and / or force feedback), mechanical actuators (e.g., seat belt tensioners, seat positioners, headrest positioners, etc.), etc. The one or more transmitters 708 in this example also include external transmitters. By way of example and not limitation, the external transmitters in this example include lights that indicate the direction of travel or other indicators of vehicle motion (e.g., indicator lights, signs, light arrays, etc.), and one or more audio transmitters (e.g., speakers, speaker arrays, horns, etc.) to audibly communicate with pedestrians or other nearby vehicles, one or more of which may include acoustic beam steering technology.
[0055] The vehicle control system 702 may also include one or more communication connections 710 that enable communication between the vehicle control system 702 and one or more other local or remote computing devices (e.g., a teleoperation computing device) or remote services. For example, the communication connection 710 may facilitate communication with other local computing devices and / or drive systems 714 on an associated real or simulated vehicle and / or drive system 714. Moreover, the communication connection 710 may allow the vehicle to communicate with other nearby computing devices (e.g., other nearby vehicles, traffic lights, etc.).
[0056] The communication connection 710 may include a physical interface and / or a 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 may enable communication such as Wi-Fi-based communication via frequencies defined by the IEEE 802.11 standard, short-range wireless 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 respective computing devices to interact with other computing devices. In at least some examples, the communication connection 710 may include one or more modems as described in detail above.
[0057] In at least one example, the vehicle control system 702 may include one or more drive systems 714. In some examples, a real or simulated vehicle associated with the vehicle control system 702 may have a single drive system 714. In at least one example, if the vehicle has multiple drive systems 714, the individual drive systems 714 may be positioned at opposite ends (e.g., front and rear, etc.) of the associated vehicle. In at least one example, the drive system 714 may include one or more sensor systems 706 to detect conditions of the drive system 714 and / or the surrounding environment of the vehicle. By way of example and not limitation, the sensor system 706 may include: one or more wheel encoders (e.g., rotary encoders) to sense the rotation of the wheels of the drive system, inertial sensors (e.g., inertial measurement units, accelerometers, gyroscopes, magnetometers, etc.) to measure the orientation and acceleration of the drive system, cameras or other image sensors, ultrasonic sensors to acoustically detect objects in the surrounding environment of the drive system, lidar sensors, radar sensors, etc. Some sensors (such as wheel encoders) may be unique to the drive system 714. In some cases, sensor system 706 on drive system 714 may overlap or supplement a corresponding system (eg, sensor system 706 ) of vehicle control system 702 .
[0058] The drive system 714 may include many of the vehicle systems, including: a high voltage battery, a motor for propelling the vehicle, an inverter for converting direct current from the battery into alternating current for use by other vehicle systems, a steering system including a steering motor and a steering rack (which may be electric), a braking system including a hydraulic actuator or an electric actuator, a suspension system including a hydraulic component and / or a pneumatic component, a stability control system for distributing braking force to mitigate loss of traction and maintain control, an HVAC system, lighting (e.g., lighting such as head / tail lights for illuminating the external surroundings of the vehicle), and one or more other systems (e.g., a cooling system, a safety system, an onboard charging system, other electrical components (e.g., a DC / DC converter, a high voltage connector, a high voltage cable, a charging system, a charging port), etc.). In addition, the drive system 714 may include a drive system controller that may receive and pre-process data from the sensor system 706 and control the operation of various vehicle systems. In some examples, the drive system controller may include one or more processors and a memory communicatively coupled to the one or more processors. The memory may store one or more modules to perform various functions of the drive system 714. Additionally, the drive systems 714 may also include one or more communication connections that enable the respective drive systems to communicate with one or more other local or remote computing devices.
[0059] The computing device 704 within the vehicle control system 702 may 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 in the memory 718 for illustrative purposes, it is contemplated that 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 may additionally or alternatively be accessible by the computing device 704 (e.g., stored in a different component of the vehicle control system 702 and / or stored remotely and accessible by the vehicle control system 702).
[0060] In the memory 718 of the computing device 704, the perception component 720 may include functionality for performing object detection, segmentation, and / or classification. In some examples, the perception component 720 may provide processed sensor data indicating the presence of an entity near a real or simulated vehicle associated with the vehicle control system 702 and / or a classification of the entity as an entity type (e.g., car, pedestrian, cyclist, building, tree, pavement, curb, sidewalk, unknown, etc.). In additional and / or alternative examples, the perception component 720 may provide processed sensor data indicating 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, the characteristics associated with the entity may include, but are not limited to, x position (global position), y position (global position), z position (global position), orientation, entity type (e.g., classification), speed of the entity, range (size) of the entity, etc. The characteristics associated with the environment may include, but are not limited to, the presence of another entity in the environment, the state of another entity in the environment, the time of day, the day of the week, the season, the weather condition, an indication of darkness / light, etc.
[0061] The perception component 720 may include functionality to store perception data generated by the perception component 720. In some cases, the perception component 720 may determine a track corresponding to an object that has been classified as an object type. For purposes of illustration only, the perception component 720 may capture one or more images of a real or simulated environment using the sensor system 706. The sensor system 706 may capture images of an environment including an object such as a pedestrian. The pedestrian may be at a first location at time T, and at a second location at time T+t (e.g., movement during a time span t after time T). In other words, the pedestrian may move from a first location to a second location during this time span. Such movement may, for example, be recorded as stored perception data associated with the object.
[0062] In some examples, the stored perception data may include fused perception data captured by the vehicle. The fused perception data may include a fusion or other combination of sensor data from a sensor system 706 (e.g., 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 of these sensors). The stored perception data may additionally or alternatively include classification data, which includes semantic classifications of objects (e.g., pedestrians, vehicles, buildings, roads, etc.) represented in the sensor data. The stored perception data may additionally or alternatively include trace data (position, orientation, sensor features, etc.), which corresponds to the movement of objects classified as dynamic objects through the environment. The trace data may include multiple traces of multiple different objects over time. The trace data may be mined to identify images of certain types of objects (e.g., pedestrians, animals, etc.) when the objects are stationary (e.g., standing still) or moving (e.g., walking, running, etc.). In this example, the computing device determines the trace corresponding to the pedestrian.
[0063] The positioning component 722 may include functionality to receive data from the sensor system 706 to determine the location of a real or simulated vehicle associated with the vehicle control system 702. For example, the positioning component 722 may include and / or request / receive a three-dimensional map of a real or simulated environment, and may continuously determine the location of the autonomous vehicle within the map. In some cases, the positioning component 722 may use SLAM (simultaneous localization and mapping) or CLAMS (simultaneous calibration, localization and mapping) 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., to accurately determine the location of the autonomous vehicle. In some cases, the positioning component 722 may provide data to various components of the vehicle control system 702 to determine the initial location of the autonomous vehicle for generating a trajectory, as discussed herein.
[0064] Prediction component 724 can generate one or more probability maps, which represent the predicted probabilities of the possible locations of one or more objects in a real or simulated environment. For example, prediction component 724 can generate one or more probability maps for vehicles, pedestrians, animals, etc. within a threshold distance from a vehicle associated with vehicle control system 702. In some cases, prediction component 724 can measure the traces of objects and generate discrete predicted probability maps, heat maps, probability distributions, discrete probability distributions, and / or tracks / tracks of objects based on observed and predicted behaviors. In some cases, one or more probability maps can represent the intentions of one or more objects in an environment.
[0065] The planning component 726 can determine the path that the vehicle control system 702 guides the real or simulated vehicle through the environment. For example, the planning component 726 can determine various routes and paths and various levels of details. In some cases, the planning component 726 can determine the route from a first location (e.g., current location) to a second location (e.g., target location). For the purpose of this discussion, a route can be a sequence of waypoints for traveling between two locations. As a non-limiting example, waypoints include streets, intersections, global positioning system (GPS) coordinates, etc. In addition, the planning component 726 can generate instructions for guiding the autonomous vehicle along at least a portion of the route from the first location to the second location. In at least one example, the planning component 726 can determine how to guide the autonomous vehicle from the first waypoint in the waypoint sequence to the second waypoint in the waypoint sequence. In some examples, the instruction can be a path or a portion of a path, and / or various positions, orientations, speeds, headings, steering angles, accelerations, torques, etc. associated with one or more waypoints. In some examples, multiple paths can be generated substantially simultaneously (ie, within technical tolerances) based on the fallback level technique. A single path with the highest confidence level among the multiple paths in the fallback data level can be selected to operate the vehicle.
[0066] In other examples, planning component 726 can alternatively or additionally use data from perception component 720 to determine a path for a real or simulated vehicle associated with vehicle control system 702 to follow through an environment. For example, planning component 726 can receive data about objects associated with the environment from perception component 720. Using this data, planning component 726 can determine a route to travel from a first location (e.g., current location) to a second location (e.g., target location) to avoid objects in the environment. In at least some examples, such planning component 726 can determine that no such collision-free path exists, and thereby provide a path that brings the vehicle to a safe stop, avoids all collisions, and / or otherwise mitigates damage.
[0067] In some examples, planning component 726 may also use map data from map data component 728 and right-of-way data from right-of-way data component 730 to determine whether vehicle 702 has the right-of-way to pass through the intersection, such as with Figure 1-Figure 5 In some examples, map data component 728 and right-of-way data component 730 can be sent from map data component 742 and right-of-way data component 744 by computing device 736 using network 734 .
[0068] Computing device 736 may include one or more processors 738 and a memory 740 communicatively coupled to one or more processors 738. In the example shown, memory 740 of computing device 736 stores a map data component 742 and a right-of-way data component 744. In some examples, map data component 742 and right-of-way data component 744 may include the same data as map data component 728 and right-of-way data component 730, respectively. In some examples, computing device 736 may use map data from map data component 742 to generate right-of-way data for right-of-way data component 744, such as with Figure 1-Figure 4 For illustrative purposes, although Figure 7 740 , it is contemplated that some or all of systems and components 742 and 744 may additionally and / or alternatively be stored remotely and accessible via network 734 to computing device 736 .
[0069] The processor 716 of the computing device 704 and the processor 738 of the computing device 736 can be any suitable processor capable of executing instructions to process data and perform operations as described herein. By way of example and not limitation, the processor 716 and the processor 738 can include one or more central processing units (CPUs), graphics processing units (GPUs), or any other device or portion of a device that processes electronic data to convert 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, to the extent that they are configured to implement encoded instructions.
[0070] The memory 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 to implement the methods described herein and the functions attributed to various systems. 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 memory, or any other type of memory capable of storing information. The architectures, systems, and individual elements described herein may include many other logical, programmed, and physical components, of which those shown in the drawings are merely examples relevant to the discussion herein.
[0071] In some cases, aspects of some or all of the components discussed herein may include any model, algorithm, and / or machine learning algorithm. For example, any or all components within memory 718 and memory 740 may be implemented as a neural network. Sample Clauses
[0072] A: A system, comprising: one or more processors; and one or more non-transitory computer-readable media storing computer-executable instructions, which, when executed, cause the one or more processors to perform operations including the following: receiving map data representing a road intersection in an environment, the road intersection having an entry lane and an exit lane, the map data including traffic annotation data; determining a first route and a second route through the road intersection based at least in part on the map data; determining a number of times the second route intersects the first route; determining a relative priority between the first route and the second route based at least in part on the number and the traffic annotation data; storing an association between the first route, the second route, the traffic annotation data, and the relative priority in a data structure; and sending the data structure to an autonomous vehicle to control the autonomous vehicle to cross the road intersection based at least in part on a cost determined according to the data structure.
[0073] B: In the system described in paragraph A, the operation also includes: determining a third route passing through the road intersection based at least in part on the map data; 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 of times and the traffic annotation data; and storing an additional association between the first route, the third route, the traffic annotation data, and the additional relative priority in the data structure.
[0074] C: A system as described in paragraphs A or B, wherein the autonomous vehicle is controlled to traverse the road intersection based at least in part on: determining a vehicle route through the road intersection; receiving sensor data indicating an object approaching the road intersection; determining the object route based at least in part on the sensor data; determining an object route priority based at least in part on the object route and the vehicle route; determining the cost based at least in part on the object route priority; and controlling the autonomous vehicle based at least in part on the cost.
[0075] D: A system as described in any of paragraphs AC, wherein determining the relative priority includes determining that the incoming lane does not have at least one of the following: a traffic light, a stop sign, a yield sign, or a stop line, and wherein a first priority associated with the first route is greater than or equal to a second priority associated with the second route.
[0076] E: A system as described in any of paragraphs AD, wherein the traffic annotation data includes at least one of the following items: a traffic light; a stop sign; a yield sign; or a stop line.
[0077] F: One or more non-transitory computer-readable media storing computer-executable instructions that, when executed, cause one or more processors to perform operations including: receiving map data representing an intersection in an environment, wherein the intersection includes an entry lane and an exit lane; determining a first route through the intersection based at least in part on the entry lane and the exit lane, the first route being associated with a first priority; determining a second route through the intersection based on the map data; determining a 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; and storing an association between the first route, the second route, the first priority, and the second priority in a data structure.
[0078] G: One or more non-transitory computer-readable media as described in paragraph F, wherein the map data also includes traffic annotation data, and the traffic annotation data includes at least one of the following items: a traffic light, a stop sign, a yield sign, or a stop line.
[0079] H: One or more non-transitory computer-readable media as described in paragraphs F or G, wherein determining the first priority includes determining that the incoming lane does not have at least one of the following: a traffic light, a stop sign, a yield sign, or a stop line, and wherein the first priority is higher than or equal to the second priority.
[0080] I: One or more non-transitory computer-readable media as described in paragraph G, wherein the incoming lane is a first incoming lane, and wherein the intersection also includes a second incoming lane, and the operation further includes: determining a third route associated with a third priority based at least in part on the second incoming lane, the third priority being based at least in part on the second incoming lane being associated with at least one of the following items: a traffic light; a stop sign; a yield sign; or a stop line; and determining that the first priority is higher than the third priority based at least on the fact that the first incoming lane does not have at least one of the traffic light, the stop sign, the yield sign, or the stop line and the second incoming lane is associated with the traffic light, the stop sign, the yield sign, or the stop line.
[0081] J: One or more non-transitory computer-readable media as described in any of paragraphs FI, wherein the entry lane is substantially parallel to the exit lane, wherein a first vehicle uses the entry lane to enter the intersection in a first direction, and a second vehicle uses the exit lane to exit the intersection in a second direction opposite to the first direction.
[0082] K: One or more non-transitory computer-readable media as described in any of paragraphs FJ, wherein the data structure further includes a plurality of entries, wherein an entry of the plurality of entries includes a pair-wise combination of two routes and an associated priority.
[0083] L: One or more non-transitory computer-readable media as described in paragraph G, the operation also including sending the data structure to an autonomous vehicle, the autonomous vehicle being configured to be controlled based at least in part on the data structure, wherein the autonomous vehicle is controlled to traverse the intersection based on: determining a vehicle route through the intersection; receiving sensor data indicating an object approaching the intersection; determining the object route based at least in part on the sensor data; determining an object route priority based at least in part on the object route and the vehicle route; determining a cost based at least in part on the object route priority; and controlling the autonomous vehicle based at least in part on the cost.
[0084] M: One or more non-transitory computer-readable media as described in any of paragraphs FL, the operation also including: determining a third route 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 based at least in part on the second number; and storing additional associations between the first route, the second route, the third route, the first priority, the second priority, and the third priority in the data structure.
[0085] N: One or more non-transitory computer-readable media as described in paragraph M, wherein the number is a first number and the first number is less than the second number, and the operation also includes: determining that the second priority is higher than the third priority based on the first number being less than the second number.
[0086] O: One or more non-transitory computer-readable media as described in any of paragraphs FN, wherein the intersection also includes a bicycle lane, and the operation includes: determining a fourth route through the intersection associated with the bicycle lane, the fourth route associated with a fourth priority being higher than the first priority and the second priority.
[0087] P: A method comprising: receiving map data representing an intersection in an environment, wherein the intersection includes an entry lane and an exit lane; determining a first route through the intersection based at least in part on the entry lane and the exit lane, the first route being associated with a first priority; determining a second route through the intersection based on the map data; determining a 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; and storing an association between the first route, the second route, the first priority, and the second priority in a data structure.
[0088] Q: A method as described in paragraph P, wherein the map data also includes traffic annotation data, and the traffic annotation data includes at least one of the following items: a traffic light, a stop sign, a yield sign or a stop line.
[0089] R: The method described in paragraph Q also includes: sending the data structure to an autonomous vehicle, the autonomous vehicle being configured to be controlled at least in part based on the data structure, wherein the autonomous vehicle is controlled to cross the intersection based on: determining a vehicle route through the intersection; receiving sensor data indicating an object approaching the intersection; determining the object route based at least in part on the sensor data; determining an object route priority based at least in part on the object route and the vehicle route; determining a cost based at least in part on the object route priority; and controlling the autonomous vehicle based at least in part on the cost.
[0090] S: The method as described in any one of paragraphs PR also includes: determining a third route passing 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 based at least in part on the second number of times; and storing additional associations between the first route, the second route, the third route, the first priority, the second priority and the third priority in the data structure.
[0091] T: The method described in paragraph S also includes: determining a third route passing 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 based at least in part on the second number of times; and storing additional associations between the first route, the second route, the third route, the first priority, the second priority, and the third priority in the data structure.
[0092] Although the above example clauses are described with respect to a specific implementation, it should be understood that in the context of this document, the content of the example clauses may also be implemented via a method, device, system, computer-readable medium, and / or another implementation. Additionally, any one of the example ATs may be implemented alone or in combination with any other one or more of the example ATs. in conclusion
[0093]
[00136] While one or more examples of the techniques described herein have been described, various alterations, additions, permutations, and equivalents thereof are included within the scope of the techniques described herein.
[0094] In the description of the examples, reference is made to the accompanying drawings forming a part thereof, which illustrate specific examples of the claimed subject matter by way of illustration. It should be understood that other examples may be used, and changes or modifications such as structural changes may be made. Such examples, changes or modifications do not necessarily deviate from the scope of the subject matter claimed with respect to the intent. Although the steps herein may be presented in a certain order, in some cases, the ordering may be changed so that certain inputs are provided at different times or in different orders without changing the functionality of the described systems and methods. The disclosed processes may also be performed in different orders. Additionally, it is not necessary to perform the various calculations herein in the order disclosed, and other examples using alternative orders of calculations may be easily implemented. In addition to being reordered, calculations may also be decomposed into sub-calculations with the same results.
[0095] Although the subject matter has been described in language specific to structural features and / or methodological acts, 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 example forms of implementing the claims.
[0096] The components described herein represent instructions that can be stored in any type of computer-readable medium and can be implemented in software and / or hardware. All methods and processes described above can be embodied in software code modules and / or computer-executable instructions executed by one or more computers or processors, hardware or some combination thereof and fully automated via them. Some or all methods can alternatively be embodied in specialized computer hardware.
[0097] Unless expressly stated otherwise, conditional language such as "may," "can," "could," or "might" is understood in context to mean that certain examples include certain features, elements, and / or steps, while other examples do not. Thus, such conditional language is generally not intended to imply that certain features, elements, and / or steps are in any way required for one or more examples, or that one or more examples must include logic for making decisions, with or without user input or prompting, whether certain features, elements, and / or steps are included or will be performed in any particular example.
[0098] Unless expressly stated otherwise, connective language such as the phrase "at least one of X, Y, or Z" should be understood to mean that the item, term, etc. can be X, Y, or Z, or any combination thereof, including multiples of each element. Unless expressly described as singular, "a" and "an" refer to both the singular and the plural.
[0099] Any routine description, element or box in the flowcharts described herein and / or depicted in the accompanying drawings should be understood to potentially represent a module, segment or portion of code, which includes one or more computer executable instructions for implementing specific logical functions or elements in the routine. Alternative implementations are included within the scope of the examples described herein, in which elements or functions may be deleted, or performed out of the order shown or discussed, including substantially synchronously, in reverse order, with additional operations or omitted operations, depending on the functions involved, as understood by those skilled in the art.
[0100] Many changes and modifications may be made to the examples described above, the elements of which will be understood to be in other acceptable examples. All such modifications and variations are intended to be included herein within the scope of the present disclosure and protected by the accompanying claims.
Claims
1. A system comprising: one or more processors; One or more non-transitory computer-readable media storing computer-executable instructions that, when executed, cause the one or more processors to perform operations including: Receiving map data representing an intersection in an environment, wherein the intersection includes an entry lane and an exit lane; determining a first route through the intersection based at least in part on the incoming lane and the outgoing lane, the first route being associated with a first priority; determining a second route 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; and An association between: the first route, the second route, the first priority, and the second priority is stored in a data structure.
2. The system of claim 1, wherein: The map data further includes traffic annotation data, and the traffic annotation data includes at least one of the following items: Traffic lights, stop sign, Yield sign, or Stop line.
3. The system of any one of claims 1 or 2, wherein: Determining the first priority includes: determining that the incoming lane does not have at least one of the following: a traffic light, a stop sign, a yield sign, or a stop line; and The first priority is higher than or equal to the second priority.
4. The system of claim 3, wherein: The incoming lane is a first incoming lane, and wherein the intersection further includes a second incoming lane, the operation further includes: Determining a third route associated with a third priority based at least in part on the second incoming lane, the third priority being based at least in part on the second incoming lane being associated with at least one of: Traffic lights; Stop sign; a yield sign; or stop lines; and The first priority is determined to be higher than the third priority based at least on the fact that the first incoming lane does not have at least one of the traffic light, the stop sign, the yield sign, or the stop line and the second incoming lane is associated with the traffic light, the stop sign, the yield sign, or the stop line.
5. The system according to any one of claims 1 to 4, wherein: The oncoming lane is substantially parallel to the offcoming lane, wherein a first vehicle uses the oncoming lane to enter the intersection in a first direction and a second vehicle uses the offcoming lane to exit the intersection in a second direction opposite to the first direction.
6. The system according to any one of claims 1 to 5, wherein: The data structure also includes a plurality of entries, wherein an entry in the plurality of entries includes a pair-wise combination of two routes and an associated priority.
7. The system of any of claims 1-6, the operations further comprising sending the data structure to an autonomous vehicle, the autonomous vehicle being configured to be controlled based at least in part on the data structure, in, The autonomous vehicle is controlled to traverse the intersection based on: determining a vehicle route through the intersection; receiving sensor data indicating an object approaching the intersection; determining a route of an object based at least in part on the sensor data; determining an object route priority based at least in part on the object route and the vehicle route; determining a cost based at least in part on the object route priority; as well as The autonomous vehicle is controlled based at least in part on the cost.
8. The system of any one of claims 1 to 7, wherein: The number of times is a first number, and the operations further include: determining a third route 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 based at least in part on the second number; determining that the second priority is higher than the third priority based on the first number being less than the second number; and An additional association between: the first route, the second route, the third route, the first priority, the second priority, and the third priority is stored in the data structure.
9. The system of any one of claims 1 to 8, wherein: The intersection also includes a bicycle lane, and the operation includes: A fourth route associated with the bicycle lane through the intersection is determined, the fourth route being associated with a fourth priority that is higher than the first priority and the second priority.
10. A method comprising: Receiving map data representing an intersection in an environment, wherein the intersection includes an entry lane and an exit lane; determining a first route through the intersection based at least in part on the incoming lane and the outgoing lane, the first route being associated with a first priority; determining a second route 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; and An association between: the first route, the second route, the first priority, and the second priority is stored in a data structure.
11. The method of claim 11, wherein: The map data further includes traffic annotation data, and the traffic annotation data includes at least one of the following items: Traffic lights, stop sign, Yield sign, or Stop line.
12. The method according to any one of claims 11 or 12, further comprising: transmitting the data structure to an autonomous vehicle, the autonomous vehicle being configured to be controlled based at least in part on the data structure, wherein the autonomous vehicle is controlled to traverse the intersection based on: determining a vehicle route through the intersection; receiving sensor data indicating an object approaching the intersection; determining a route of an object based at least in part on the sensor data; determining an object route priority based at least in part on the object route and the vehicle route; determining a cost based at least in part on the object route priority; and The autonomous vehicle is controlled based at least in part on the cost.
13. The method according to any one of claims 11 to 13, further comprising: determining a third route 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 based at least in part on the second number; as well as An additional association between: the first route, the second route, the third route, the first priority, the second priority, and the third priority is stored in the data structure.
14. The method of claim 14, further comprising: determining a third route 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 based at least in part on the second number; as well as An additional association between: the first route, the second route, the third route, the first priority, the second priority, and the third priority is stored in the data structure.
15. One or more non-transitory computer-readable media storing computer-executable instructions that, when executed, cause one or more processors to perform operations that implement the method of any one of claims 10-14.