Determining dynamic route data
Patent Information
- Application Number
- CN202580024256.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-03-29
- Filing Date
- 2025-03-14
- Publication Date
- 2026-10-30
Smart Images

Figure CN123022927A_ABST
Abstract
Description
Cross-reference to related applications
[0001] This PCT international application claims priority to U.S. Patent Application No. 18 / 622,094, filed March 29, 2024, entitled “Determining Dynamic Route Data,” the entire contents of which are incorporated herein by reference. Background Technology
[0002] Autonomous vehicles, such as autonomous vehicles, can navigate along designated routes. In some examples, autonomous vehicles may encounter various types of static and / or dynamic objects, as well as traffic, construction zones, etc. Upon detecting such events, the vehicle can determine an updated route guiding it along different driving lanes and / or road segments included in the original route. However, in some cases, the technology used to determine the updated route and / or control the vehicle based on the updated route may lead to system malfunctions or inaccurate or insufficient data output by such systems. Attached Figure Description
[0003] Specific embodiments are described with reference to the accompanying drawings. In the drawings, the leftmost numeral of the reference numeral indicates the drawing in which the reference numeral first appears. The same reference numerals are used in different drawings to indicate similar or identical parts or features.
[0004] Figure 1 This is an illustrated flowchart based on one or more examples of the present disclosure, which illustrates example techniques for determining and / or utilizing routing data.
[0005] Figure 2 An example computing system including a dynamic routing component is shown according to one or more examples of this disclosure. The dynamic routing component is configured to generate a colored top-down representation of one or more candidate routes that can be used to control vehicles.
[0006] Figure 3 An example environment comprising multiple driving lanes and / or having tables representing overlapping and / or cost data associated with the multiple driving lanes, according to one or more examples of this disclosure, is described.
[0007] Figure 4 The present disclosure illustrates the determination of multiple top-down representations according to one or more examples, each of which is associated with a single driving lane.
[0008] Figure 5 A single top-down representation of a determination including multiple driving lanes is shown according to one or more examples of this disclosure.
[0009] Figure 6The present disclosure illustrates the determination of multiple top-down representations according to one or more examples, each top-down representation being associated with a type of rating metric and including multiple driving lanes.
[0010] Figure 7 A block diagram of an example system for implementing the various techniques described herein is shown.
[0011] Figure 8 This is a flowchart illustrating an example process for determining a path to a destination, determining a map including driving lanes, determining the overlap between the path and the driving lanes in the map, determining a color based on the overlap, determining a top-down representation of the coloring of the driving lane based on the color, and controlling a vehicle based on the top-down representation of the coloring of the driving lane, according to one or more examples of this disclosure. Detailed Implementation
[0012] This document describes techniques for generating vehicle routing data. As described below, a top-down representation of colored driving lanes and / or candidate routes can be used to predict and / or plan systems to control a vehicle. In some examples, the vehicle (such as an autonomous vehicle) may receive a destination representing the location the vehicle wants to navigate to. The vehicle may generate a path to the destination (e.g., a spatial representation of the route to the destination, covering one or more laterally adjacent driving lanes, etc.). Additionally, the vehicle may generate a local map including one or more driving lanes (e.g., a portion extending the distance from the vehicle to the destination). Based on the generated path and local map, the vehicle may determine overlap data indicating the distance by which the path overlaps with (one or more) driving lanes in the local map. The vehicle may utilize the overlap data to determine a value associated with the driving lane, which may be represented and discussed as "color" throughout this disclosure. Thus, based on the determined color value(s), the vehicle may generate a colored image(s) of (one or more) driving lanes(s) (in some examples, which may include a top-down perspective image) and use such data to control the vehicle. As a non-limiting example, such images can be fed into machine learning models to determine trajectories, perform reinforcement learning, determine costs (including learning costs), etc., for vehicle control. As described in more detail below, the techniques described herein can improve vehicle safety and driving efficiency by enabling dynamic routing and increasing the ability to send accurate representations of various candidate driving lanes and / or routes near the vehicle, thereby allowing the vehicle to perform safer and more efficient driving maneuvers.
[0013] When instructing a vehicle to traverse an environment, it can be beneficial to ensure that the vehicle system can receive, process, and / or output data consistent with dynamic routing. For example, when a vehicle begins navigation to a destination, its system can determine routing information. This routing information may include a single fixed route (e.g., a high-level representation of a road network) that the vehicle will follow and that extends from the vehicle's current location to the destination. However, in some cases, the vehicle may determine that this fixed route is suboptimal and / or inefficient. In such cases, the vehicle may attempt to generate updated routes (e.g., dynamic routes) and send these routes to downstream processes for further processing. However, in some cases, the vehicle system may be constructed or otherwise configured to receive, process, and / or output data consistent with a single fixed route determined before the task begins. For example, certain prediction and / or planning models may be designed to receive and / or process a single fixed route, and may not function properly unless such a model is provided. Therefore, inputting multiple routes into these vehicle systems may lead to system failure or inaccurate data output. Therefore, the systems and / or techniques described herein enable vehicle systems to receive and / or output dynamic route inputs.
[0014] To address these and other technical problems and inefficiencies, the systems and / or techniques described herein include dynamic routing components (which may also be referred to as "dynamic routing systems") configured to achieve dynamic routing by generating representations of the environment that can be processed by downstream vehicle systems. The technical solutions discussed herein resolve one or more technical problems associated with conventional dynamic routing techniques that lead to suboptimal system outputs.
[0015] In some examples, the dynamic routing component can receive a destination associated with a region of the environment. The vehicle can receive instructions to navigate from a starting point to an ending point (or destination) (e.g., transporting passengers, delivering items, etc.). Such instructions can be received from a fleet management system, a remote operating system, passengers or passenger devices, future passengers, and / or any other source. In some examples, the destination can be a location within the environment to which the vehicle is to navigate. That is, instructions can include a location within the environment associated with the destination (e.g., xy coordinates).
[0016] In some examples, the dynamic routing component can determine the path a vehicle follows to its destination. The path can be a spatial representation of the vehicle's potential movement. Furthermore, the path can laterally cross some or all of the lanes within a road segment (e.g., multiple lanes of equal length traveling in the same direction). In some examples, the dynamic routing component can determine the path by identifying the optimal route from the vehicle's location to its destination. For example, the dynamic routing component can receive map data representing the environment between the vehicle and its destination and identify the shortest path from the vehicle to the destination. Such operations can be performed using algorithms such as Dijkstra's algorithm, A... D One or more shortest path algorithms are used to execute the algorithm. Therefore, when executing a shortest path algorithm, the dynamic routing component can receive, determine, or otherwise identify a single path representing the shortest distance to the destination.
[0017] In some examples, the dynamic routing component can determine a local graph based on the vehicle's starting position and destination. The local graph can be a graphic or map representing these road segments (e.g., one or more lanes of equal length associated with the same direction of travel), lanes, and / or lane segments (e.g., longitudinal portions of lanes) of the physical environment, spanning or otherwise covering a smaller portion of the physical environment than the entire distance to the destination, while extending beyond the distance covered by the candidate trajectory. That is, the local graph can cover a greater distance from the vehicle than the distance covered by the candidate trajectory. The area of the physical environment covered by the local graph can define a local search range corresponding to the local graph. This local search range can be an area within which the dynamic routing component can evaluate when determining a representation of the driving lanes. The dynamic routing component can generate the local graph based on map data, such as road network data, lane segment data (e.g., lane segment size, location, shape, type, etc.), and / or any other type of data.
[0018] In some examples, the dynamic routing component can generate and / or update the local map as the vehicle travels to its destination. The dynamic routing component can generate a first instance of the local map during the vehicle's initiation phase. Furthermore, the dynamic routing component can update the local map as the vehicle traverses the environment based on the operating ticks of the planning component. An operating tick can be the frequency (e.g., 1 millisecond, 5 milliseconds, etc.) and / or duration of a processing cycle within the planning component. Thus, in some examples, the dynamic routing component can update the local map at every operating tick. However, in other examples, the local map can be updated at any other suitable frequency (e.g., every N ticks, where N is a positive integer, based on the vehicle's movement, vehicle speed, number of adjacent objects, maneuvering difficulty, proximity to the destination, etc.). Thus, based on the vehicle's movement, the updated local map can span environmental areas different from previous versions of the local map. In some examples, the dynamic routing component can generate one or more local maps based on map data and / or by modifying the local map from previous ticks; however, in other examples, the dynamic routing component can generate local maps separate from previous local maps.
[0019] As described in more detail below, the dynamic routing component can use paths and local maps to determine overlapping data and / or (one or more) cost values associated with (one or more) driving lanes (or lane segments) within the local map. In such cases, the dynamic routing component can use the overlapping data and / or (one or more) cost values to determine which (one or more) driving lanes within the local map are associated with the vehicle and generate colored top-down images of those associated driving lanes(s).
[0020] In some examples, the dynamic routing component can determine the degree of overlap between a path and one or more driving lanes (or lane segments) in a local graph. Overlap indicates how much a given driving lane (or lane segment) spatially overlaps with the path. Specifically, overlap can be a distance-based measurement, taken from the vehicle's current position, of the distance the path overlaps with the driving lane. For example, the vehicle might be located on a road segment comprising two laterally adjacent driving lanes. In this example, the first driving lane may turn right 75 meters from the vehicle, while the second driving lane extends all the way to the boundary of the local graph. Thus, since the path laterally crosses two driving lanes, the dynamic routing component can determine a first longitudinal overlap with the first driving lane and a second longitudinal overlap with the second driving lane. In this example, the path may extend all the way to the boundary of the local graph. Therefore, since the path overlaps with the first driving lane up to the point where the first driving lane turns right, the overlap of the first driving lane could be 75 meters. Furthermore, since the path overlaps with the second driving lane through the local search range, the overlap of the second driving lane could be 250 meters (e.g., the distance to the boundary of the local graph). Of course, in other examples, the local search range can be larger or smaller, which can result in greater or less overlap in the second driving lanes.
[0021] In some examples, the dynamic routing component can modify or update the overlap to account for the vehicle's position within the driving lane. That is, the dynamic routing component can subtract the distance from the start of the driving lane to the vehicle's position from the total overlap distance. For example, the dynamic routing component might determine that the driving lane is 90 meters long and the vehicle is 30 meters inside the driving lane (e.g., 30 meters from the start of the driving lane to the vehicle's position). Thus, if the path overlaps with the driving lane until its end, the overlap could be 90 meters. However, in this case, the dynamic routing component can subtract the vehicle's position (e.g., 30 meters) from this overlap (e.g., 90 meters), resulting in an updated overlap of 60 meters.
[0022] In some examples, the dynamic routing component can update overlap data as the vehicle moves through the environment. As the vehicle moves throughout the environment, additional (or new) driving lanes may appear in the local graph that were not present in previous examples of the local graph. Therefore, the dynamic routing component can update the overlap of driving lanes (e.g., new driving lanes for the local graph, previous driving lanes within the local graph, etc.) in some or all of the new instances of the local graph.
[0023] In some examples, the dynamic routing component can determine the cost of following a driving lane to a destination. This cost can be a time-based cost, taking into account the time taken to reach the destination. For example, the dynamic routing component can determine the cost of a particular driving lane by a combination of a speed limit for that lane and the distance to the destination from that lane (e.g., using Dijkstra's algorithm to determine the distance). In other examples, the cost can be modified based on the number and / or type of lane changes associated with following a driving lane (e.g., required, optional, etc.). For example, the dynamic routing component can increase the cost based on the fact that the driving lane requires a significant number of lane changes to reach the destination. Furthermore, in other examples, the cost can be based on risk data, predicted collisions, etc., which is not intended to be restrictive; in other examples, the cost can be based on speed limits and distance, excluding the number and / or type of lane changes.
[0024] In some examples, the dynamic routing component can identify (one or more) relevant driving lanes from a local map based on overlap data and / or (one or more) cost values. That is, when generating (one or more) colored top-down images, the dynamic routing component can determine that relevant driving lanes will be included in the image. Thus, the dynamic routing component can identify relevant driving lanes by ranking them based on the overlap data associated with them. In other words, driving lanes can be ranked with the highest rank corresponding to the driving lane with the highest overlap and the lowest rank corresponding to the driving lane with the lowest overlap. Based on ranking the driving lanes according to the overlap data, the dynamic routing component can select (or determine) N top (or highest-ranked) driving lanes. That is, the dynamic routing component can determine a threshold number of driving lanes and select driving lanes that meet or exceed that threshold. However, in cases where multiple driving lanes have the same degree of overlap, the dynamic routing component can rank such driving lanes (e.g., driving lanes with the same degree of overlap) based on the cost values associated with them. In such cases, the dynamic routing component can select the threshold number of optimal (or highest-ranked) driving lanes based on cost. Alternatively or additionally, if the dynamic routing component determines that the total number of driving lanes in the local map is less than a threshold number of driving lanes, the dynamic routing component may select all driving lanes. The dynamic routing component may determine that the selected driving lane can be the vehicle's relevant driving lane.
[0025] In some examples, the dynamic routing component can generate representations (e.g., one or more colored top-down representations) of the relevant driving lanes. That is, the dynamic routing component can generate one or more images (e.g., representations, top-down representations, etc.) that include some or all driving lanes, which can be sent to various downstream systems and / or trained on machine learning models to determine the actions a vehicle should follow. As described below, the dynamic routing component can generate images according to one or more techniques. A first technique may include generating multiple independently colored top-down images, each corresponding to a specific driving lane. A second technique may include generating a single colored top-down image that includes some or all (relevant) driving lanes. A third technique may include generating multiple independently colored top-down images, each including some or all (relevant) driving lanes, and each image corresponding to a specific type of metric. However, this is not limiting; in other examples, there may be more or fewer techniques and / or the dynamic routing component may use any combination of the three techniques described.
[0026] Based on the first technique, the dynamic routing component can generate multiple colored top-down images, each corresponding to a specific driving lane. In some examples, the dynamic routing component can determine a value (or color) to be associated with each of the relevant driving lanes. That is, the dynamic routing component can determine the color to be drawn for a specific driving lane. The dynamic routing component can determine the value (or color) by determining a total score as a combination of one or more sub-scores. Furthermore, this total score can be a value between 0 and 1, which maps to the color values of the driving lanes in the top-down image that can be used to draw the colored lanes. In some examples, the dynamic routing component can determine this total score based on determining one or more sub-scores. These sub-scores(s) can correspond to one or more types of metrics. For example, the dynamic routing component can determine a first sub-score based on a first type of metric, which is based on how far the vehicle is from its destination (e.g., the farther the vehicle is from its destination, the more points are deducted). That is, the first sub-score can be a value that is (linearly) scaled from .5 (or any other number) at the vehicle's location to 1 (or any other number) at the destination. The second sub-score can be based on a second type of metric, which is based on the number and / or type of lane changes associated with following the driving lane to the destination (e.g., optional, required, etc.) (e.g., penalizing staying in when a lane change is required, encouraging lane changes to the target lane, etc.). That is, if the driving lane does not lead to the destination and / or does not include adjacent lanes leading to the destination, the second sub-score can be 0. Alternatively, if the driving lane leads to the destination, the second sub-score can be 1 (or any other non-zero number). The third sub-score can be based on a third type of metric, which is distance-based and scaled from the vehicle's position to a predetermined distance (e.g., the destination, the boundary of the local map, etc.). That is, the third sub-score can be a value scaled from 0 at the vehicle's position to .25 (or any other number) at the predetermined position. The fourth sub-score can be based on a fourth type of metric, which uses the aforementioned cost value to weight the current driving lane (e.g., fourth sub-score = α). (C max – C min ) / (C max – C min C max It can be the largest of several costs associated with the relevant driving lane, and C min It can be the lowest of the multiple costs associated with the relevant driving lane.
[0027] Based on the sub-scores used to determine these four types of metrics, the dynamic routing component can use these sub-scores to determine the value associated with the driving lane and / or to draw the color of the driving lane (or the pixel associated with it). The dynamic routing component can use the following equation to determine this value and / or color: Color = T1 (T2 + T3 + T4) Equation 1 In this equation, Color It can represent the total score that can be mapped to a specific color value. T1 This can represent the first subfraction mentioned above. T2 This can represent the second subfraction mentioned above. T3 This can represent the third subfraction mentioned above. T4 This can represent the fourth sub-fraction mentioned above. In some examples, based on determining the color associated with the driving lane, the dynamic routing component can plot the color value on the pixels associated with the driving lane in a top-down image. That is, the dynamic routing component can generate a different, independent top-down image (or representation) for each of the relevant driving lanes. For example, the dynamic routing component can generate for the first driving lane... T1-T4 The system calculates scores, determines colors based on these values, generates a top-down image including the color of that driving lane, and repeats this process for the remaining driving lanes. Therefore, if four relevant driving lanes exist, the dynamic routing component can generate... T1-T4 The process is divided four times (e.g., once for each lane), determining four distinct color values (e.g., each driving lane has a unique color), and generating four distinct, independently colored top-down images (e.g., each colored top-down image includes the single driving lane associated with it).
[0028] Based on the second technique, the dynamic routing component can generate a single, colored, top-down image that includes some or all of the (relevant) driving lanes. That is, the dynamic routing component can draw some or all of the relevant driving lanes within a single top-down image. In some examples, the dynamic routing component can perform the same steps as described above regarding determining each of the relevant driving lanes. T1-T4 Similar operations to those described by fractions. However, instead of generating multiple independently colored top-down images (each containing a single driving lane), the dynamic routing component can combine each of the relevant driving lanes into a single top-down image. Therefore, since multiple driving lanes may exist in the same top-down image, the dynamic routing component can use the following equation to determine the color used to draw each pixel in the image: Paint final (x, y) = max(Paint) 1 (x, y), Paint 2 (x, y), ..., Paint n (x, y)) Equation 2 In this equation, Paint final (x, y) It can represent the color value (or the value mapped to that color value) of a pixel in a top-down image that can be used to draw the image. Paint i (x, y) This can represent the color value of the i-th driving lane determined from Equation 1. That is, the dynamic routing component can perform the operation described above with respect to Equation 1 for each of the relevant driving lanes and input the result into Equation 2, which can indicate the final color value of the associated pixel (e.g., the xy coordinates in the image frame).
[0029] Based on the third technology, the dynamic routing component can generate multiple independently colored top-down images, where each image includes some or all (related) driving lanes, and each image corresponds to the aforementioned... T1-T4 One of them. That is, the dynamic routing component can determine four colored images from top to bottom, with the first image corresponding to... T1 And the first type of metric, the second image corresponds to T2 The second type of metric, the third image corresponds to T3 And the third type of metric, and the fourth image corresponding to T4 And the fourth type of metric. For the third technique, the dynamic routing component can be determined by following the formula: T4 , T4 = α (C max – C min ) / (C max – C min + β)) , where β is used C max A weighted constant for the driving lanes. In this example, if four relevant driving lanes exist, each of the four top-to-bottom images can include those four driving lanes. The dynamic routing component can be based on... T1-T4 A score is used to determine the unique color of each pixel within an image. That is, the dynamic routing component can determine the color of each relevant driving lane. T1-T4 Scores. For example, if there are four driving lanes, the dynamic routing component can determine the first driving lane's... T1-T4Score, second driving lane T1-T4 Score, third driving lane T1-T4 Score and the fourth driving lane T1-T4 Scores. Based on these scores for each lane in the relevant driving lanes, the dynamic routing component can input these scores into Equation 2 to determine the color value for drawing the associated pixel. In some cases, if the dynamic routing component is drawing the color value corresponding to the first metric (e.g., T1 The first color value of the top-to-bottom image is used to determine the color of each of the four driving lanes. The dynamic routing component can then route the image for each of the four driving lanes. T1 The fraction is input into Equation 2 and the result is used as the color to draw the associated pixel. Additionally, if the dynamic routing component is drawing the color corresponding to the second metric (e.g., ...), T2 The second color value of the image from top to bottom is used to color the image, so the dynamic routing component can select each of the four driving lanes. T2 The fraction is input into Equation 2 and the result is used as the color to draw the associated pixel. The dynamic routing component can perform this operation when drawing driving lanes within each of the four colored, top-to-bottom images.
[0030] In some examples, based on one or more colored top-down images generated according to the first, second, and / or third techniques, the dynamic routing component can send these colored top-down images to a downstream prediction and / or planning system. Such a system can use these colored top-down images to predict object movement and / or determine future actions a vehicle will follow throughout its environment. Therefore, the system can control the vehicle based on these colored top-down images.
[0031] Alternatively, the dynamic routing component may use data associated with driving lanes and / or Equations 1 and / or 2 in the vector representation. That is, the dynamic routing component can perform operations to obtain the aforementioned data and store such data as a vector representation in the map data. In some examples, the map data may be represented as vectors and / or polylines (e.g., rather than rasterized in a top-down manner). In such examples, these techniques can be used, and a value (or color) can be associated with a single vector, sub-vectors, and / or groups of vectors. Such data can be used by prediction and / or planning systems.
[0032] Although the techniques described above have been discussed in the context of color, such techniques are not limited to this. Dynamic routing components can generate lane data and / or determine numbers that can be associated with a portion of a driving lane. These numbers can be mapped to color values, but they do not need to be represented by color by the dynamic routing components and / or any other components.
[0033] The techniques described herein can improve the functionality, safety, and efficiency of autonomous and semi-autonomous vehicles operating in various environments. Generating colored, top-down images associated with one or more driving lanes approaching the vehicle increases the ability of downstream systems to process various driving lanes and their associated data. Furthermore, because the system described herein is capable of receiving data associated with multiple candidate driving lanes and / or routes, such techniques allow the vehicle to perform dynamic routing techniques. The ability of the vehicle to perform dynamic routing can allow the vehicle to perform safer and / or more efficient driving maneuvers.
[0034] The techniques described herein can be implemented in several ways. Example implementations are provided below with reference to the accompanying drawings. Although discussed in the context of autonomous vehicles, the methods, apparatus, and systems described herein can be applied to a variety of systems and are not limited to autonomous vehicles. In another example, these techniques can be used in an aviation or marine environment or in any other system. Furthermore, the techniques described herein can be used in conjunction with (e.g., real-world data captured using sensors), (e.g., simulated data generated by a simulator), or any combination of both.
[0035] Figure 1 This is an illustrated flowchart illustrating an example process 100 for determining and / or utilizing dynamic routing data. As shown in this example, some or all of the operations in example process 100 can be performed by a perception component, a prediction component, a planning component, and / or any other component or system within the autonomous vehicle. For example, as shown in this example, example process 100 can be implemented using a dynamic routing component 102. As described in more detail below, dynamic routing component 102 may include various components such as a path determination component, a graphics generation component, an overlap determination component, a cost determination component, and / or a drawing component.
[0036] In operation 104, dynamic routing component 102 determines the path (or shortest path) the vehicle should follow. In some examples, dynamic routing component 102 may receive one or more instructions that include coordinates in the environment representing the destination the vehicle wants to navigate to. In this case, dynamic routing component 102 may use Dijkstra's algorithm (or any other shortest path technique) to identify the shortest path from the vehicle to the destination. The result of performing the shortest path calculation can be the path from the vehicle's location to the destination. For example, box 106 illustrates the path to the destination. In this example, box 106 may include multiple driving lanes. Specifically, box 106 may include driving lane 108, driving lane 110, and driving lane 112. As shown, the three driving lanes may be laterally adjacent to each other and may each belong to the same road segment (or be otherwise associated with it). As shown, driving lane 108 may include left turns, driving lane 110 may continue straight, and driving lane 112 may include right turns. However, this is not limiting; in other examples, there may be more or fewer driving lanes, and such driving lanes may include similar or different road shapes.
[0037] As shown in the figure, box 106 may include a vehicle 114 that can navigate from a starting position to an ending position. In this example, upon receiving the destination location, dynamic routing component 102 may generate a path 116 for vehicle 114 to reach the destination. As described above, path 116 may be a spatial representation of the route that vehicle 114 can follow to reach the destination. Furthermore, although box 106 shows path 116 as being within driving lane 110 and then transitioning to driving lane 112, path 116 may traverse an entire road segment. That is, path 116 may traverse all laterally adjacent lanes within the road segment (e.g., multiple driving lanes of the same length traveling in the same direction) until the path reaches the end of the road segment, which may be represented by dashed line 118. Specifically, path 116 may traverse (or overlap) all three driving lanes until path 116 reaches the end of the road segment as shown by dashed line 118. Therefore, upon reaching dashed line 118, path 116 may traverse all laterally adjacent driving lanes in the next road segment. In this example, the next road segment consists of a driving lane 108, which may be a single driving lane within that road segment. As shown in box 106, path 116 may turn left along driving lane 108.
[0038] In operation 120, dynamic routing component 102 may determine the overlap and cost for (one or more) driving lanes based on path 116. Dynamic routing component 102 may use overlap data and / or cost data to determine or otherwise identify the relevant (one or more) driving lanes for a vehicle. Based on the identification of the relevant (multiple) driving lanes, dynamic routing component 102 may generate one or more colored top-down images of such (one or more) driving lanes. Dynamic routing component 102 may determine the overlap value by determining the distance by which path 116 overlaps with the driving lane. For example, the overlap of driving lane 108 may be based on the distance by which path 116 overlaps with driving lane 108. Dynamic routing component 102 may perform such distance measurement operations for each of the (one or more) driving lanes. For example, box 122 illustrates the overlap data and / or cost data for various driving lanes. In this example, box 122 shows that the overlap of driving lane 108 can be 180 meters based on the path 116 following driving lane 108 exceeding the dashed line 118 (e.g., the end of a road segment), the overlap of driving lane 110 can be 120 meters based on the path 116 not continuing in a straight line beyond the dashed line 118, and the overlap of driving lane 112 can be 120 meters based on the path 116 not continuing in a straight line beyond the dashed line 118.
[0039] As shown in the figure, the dynamic routing component 102 can also determine a cost value associated with each of the (one or more) driving lanes. The cost value for a driving lane can be determined based on a combination of the speed limit of the driving lane, the distance to the destination following the driving lane (e.g., obtained using Dijkstra's algorithm), and / or the number and / or type of lane changes associated with following the driving lane. Box 122 illustrates that the cost associated with following driving lane 108 to the destination could be 100, the cost associated with following driving lane 110 to the destination could be 150, and the cost associated with following driving lane 112 to the destination could be 200.
[0040] At operation 124, the dynamic routing component 102 can associate a value (which may be mapped to a color value) with (one or more) driving lanes based on the overlapping data and / or the cost values. As described above, the dynamic routing component 102 can use the overlapping data and / or the cost values to identify the relevant driving lane of vehicle 114. Throughout the application and Figure 2Additional descriptions regarding the identification of relevant driving lanes are described herein, in which driving lanes 108, 110, and 112 can be considered relevant driving lanes. Therefore, the dynamic routing component 102 can generate one or more colored top-down images including one or more driving lanes. That is, the dynamic routing component 102 can generate images (e.g., colored top-down representations) according to the first, second, and / or third techniques described above. Figure 1 In this context, the dynamic routing component 102 can perform the second technique by generating a single, colored, top-down image that includes all relevant driving lanes. Further description of the first technique can be found in... Figure 2 and 4 The discussion is ongoing, and further descriptions of the third technology can be found in [the following text]. Figure 2 and 6 The discussion is ongoing.
[0041] As shown in box 126, the dynamic routing component 102 can generate a single image 128 including driving lanes 108, 110, and 112. In this example, the dynamic routing component 102 can determine the color of the driving lanes (and / or associated pixels) by using Equation 1 and / or Equation 2 described above. To use such equations, the dynamic routing component 102 can determine one or more sub-fractions (e.g., T1-T4 And input such a fraction into the equation. The dynamic routing component 102 can determine the distance from the vehicle to its destination based on the distance traveled along a specific driving lane. T1 Determining based on the number and / or type of lane changes associated with following the driving lane. T2 Determine based on the scaled distance from the vehicle to the predetermined distance T3 And based on the weighted average of the cost values as described above, the cost values are determined. T4 These sub-scores are determined. Based on these determined values, the dynamic routing component can input these scores into Equation 1 and / or Equation 2, the results of which can be values mapped to color values, which can then be used to draw pixels and / or driving lanes. As shown in the figure, driving lane 108 can be drawn with white values, driving lane 110 can be drawn with dark gray values, and driving lane 112 can be drawn with light gray values.
[0042] In operation 130, the dynamic routing component 102 can control the vehicle based on (one or more) colored driving lanes. In some examples, the dynamic routing component 102 can send image 128 to a downstream prediction and / or planning component for further processing. For example, box 132 illustrates sending image 128 to the prediction and / or planning component. In this case, the prediction and / or planning system can use image 128 to control the movement of vehicle 114.
[0043] Figure 2 An example computing system 200 is shown, which includes a dynamic routing component 202 configured to generate a colored top-down representation of candidate routes that can be used to control vehicles.
[0044] In some examples, dynamic routing component 202 may be similar to or the same as dynamic routing component 102 described above, or in any other example herein. As described above, in some cases, dynamic routing component 202 may be implemented within an autonomous vehicle. In some examples, dynamic routing component 202 may include various components configured to perform different technical functions as described below to generate a colored top-down representation of one or more driving lanes. In some examples, dynamic routing component 202 may include a path determination component 204 configured to generate or otherwise determine a path to be followed to a destination, a graphics generation component 206 configured to generate and / or update a local map, an overlap determination component 208 configured to determine overlapping data associated with one or more driving lanes and paths, a cost determination component 210 configured to generate costs associated with driving lanes to the destination, and / or a drawing component 212 configured to generate one or more colored top-down representations of one or more driving lanes.
[0045] In some examples, dynamic routing component 202 may receive a destination 214 that the vehicle wants to travel to. Dynamic routing component 202 may receive destination 214 from one or more computing systems of the vehicle and / or from one or more external systems. Destination 214 may include xy coordinates (e.g., global or local coordinate systems) representing the location of destination 214 in the environment. Destination 214 may be sent to path determination component 204.
[0046] In some examples, the dynamic routing component 202 may receive map data 216 based on destination 214. The dynamic routing component 202 may receive map data 216 of the environmental area between the vehicle's starting position and destination 214. In some examples, the dynamic routing component 202 may receive map data 216 from an external map server and / or may store map data 216 in internal storage. For example, an autonomous vehicle may request map data 216 from a remote map server based on its destination 214 and store one or more maps locally on the vehicle. In some examples, map data 216 may include any number of data structures modeled in two or more dimensions capable of providing information about the environment, such as, but not limited to, road network data, topology, intersections, streets, roads, terrain, and general environment. Map data 216 may also represent various map features within the environment along the route, including, but not limited to, roads, lanes, curbs, shoulders, crosswalks, buildings, centerlines, street signs, traffic signs, speed limits, etc. In some examples, map data 216 may be sent to a path determination component 204 within the dynamic routing component 202. Although the path determination component 204 is shown receiving map data 216, in other examples, any other component of the dynamic routing component 202 may receive map data 216.
[0047] In some examples, the dynamic routing component 202 may include a path determination component 204, which is configured to generate or otherwise determine a path to a destination. The path determination component 204 may receive map data 216 and a destination 214. In some examples, the path determination component 204 may generate a path through the environment to the destination 214. The path determination component 204 may utilize the map data 216 to identify the vehicle's starting position and the destination 214 within the map data 216. Based on the identified starting position and destination 214 in the map data 216, the path determination component 204 may perform a shortest path calculation (e.g., Dijkstra's algorithm) between the starting position and destination 214. The result of the shortest path algorithm may be a single path followed by the vehicle to reach the destination 214.
[0048] In some examples, the dynamic routing component 202 may include a graph generation component 206 configured to generate and / or update local maps. The graph generation component 206 may receive paths, map data 216, and / or destination 214 from the path determination component 204 and / or any other component. In some examples, the graph generation component 206 may generate a local map that includes road segments (e.g., combinations of driving lanes) between the starting location and the destination 214. Furthermore, the local map may extend a portion of the distance between the vehicle's location and the destination 214. Additionally or alternatively, the local map may extend a distance behind the vehicle (or in the opposite direction of the vehicle's travel) such that the vehicle can be included within the local map. Specifically, this range or local search range may be a distance greater than the trajectory search range but less than the entire distance to the destination 214. Thus, the graph generation component 206 may generate a local map that includes some or all of the driving lanes in the area near the vehicle.
[0049] In some examples, the dynamic routing component 202 may include an overlap determination component 208, configured to determine overlap data associated with (one or more) driving lanes and paths. The overlap determination component 208 may receive paths, local maps, map data 216, and / or destinations 214. In some examples, the overlap determination component 208 may determine a unique degree of overlap with a path for some or all driving lanes within a local map. Specifically, if four driving lanes exist within a local map, the overlap determination component 208 may determine a first overlap value for a first driving lane, a second overlap value for a second driving lane, a third overlap value for a third driving lane, and a fourth overlap value for a fourth driving lane.
[0050] In some examples, the overlap determination component 208 can determine the overlap value based on the distance by which the path overlaps with the driving lane. That is, the overlap determination component 208 can measure the distance along the driving lane by which the path and the driving lane overlap. Furthermore, the overlap determination component 208 can determine the modified distance by subtracting the distance from the starting point of the driving lane to the vehicle's position from the total distance measurement. If the vehicle's position is not subtracted from the total overlap value, a large overlap value may exist even if the path deviates from the route only a few meters ahead of the vehicle.
[0051] In some examples, the dynamic routing component 202 may include a cost determination component 210 configured to generate costs associated with following a driving lane to a destination. The cost determination component 210 may determine cost values for some or all driving lanes within a local graph. For example, if four driving lanes exist within a local graph, the cost determination component 210 may determine a first cost for a first driving lane, a second cost for a second driving lane, a third cost for a third driving lane, and a fourth cost for a fourth driving lane. In this case, the cost may be a time-based cost determined based on a combination of the speed limit of the driving lane and / or the distance from the driving lane to the destination. The distance from the driving lane to the destination may be determined using one or more shortest path algorithms, such as Dijkstra's algorithm.
[0052] In some examples, the dynamic routing component 202 may include a drawing component 212 configured to generate one or more colored top-down representations of driving lanes. The drawing component 212 may receive cost data, overlap data, local maps, paths, map data 216, destinations 214, and / or any other type of information. The drawing component 212 may generate one or more top-down representations (or images) of relevant driving lanes that include one or more drawn (or colored) lanes. The drawing component 212 may determine or otherwise identify relevant driving lanes by ranking these lanes and selecting the top (or subset) of a threshold number of driving lanes. For example, the drawing component 212 includes a sub-component called a ranking component 218, which may be configured to identify relevant driving lanes to include those top-down representations. The ranking component 218 may rank these driving lanes based on overlap values. Specifically, the driving lane with the highest overlap value may be the highest-ranked driving lane. In such cases, the ranking component 218 may select a subset of driving lanes. Specifically, ranking component 218 can select N highest-ranked driving lanes (e.g., where N is a positive integer greater than 0). If multiple driving lanes have the same overlap value, ranking component 218 can perform sub-ranking among these driving lanes. The sub-ranking can be based on cost values. That is, the highest-ranked driving lane can be the driving lane with the lowest cost value. In this case, ranking component 218 can select N highest-ranked driving lanes. The selected driving lanes can represent related driving lanes.
[0053] In some examples, the drawing component 212 can draw driving lanes according to one of three different techniques. As described above, the first technique can be to generate a separate, independent top-down image for each relevant driving lane, the second technique can be to generate a single top-down image that includes all relevant driving lanes, and the third technique can be to generate four independent top-down images, each of which includes all driving lanes and each of the four images is associated with a specific type of metric.
[0054] According to the first technique, the drawing component 212 can generate a unique top-down image for each relevant driving lane. Furthermore, the drawing component 212 can draw the top-down image in a specific color based on determining one or more sub-scores. The sub-scores can correspond to one or more types of metrics. Additionally, the drawing component 212 can determine a sub-score for each relevant driving lane. For example, the drawing component 212 can determine a first sub-score (e.g., from the top) based on a first type of metric. T1 The first type of metric is based on how far the vehicle is from its destination (e.g., the farther the vehicle is from its destination, the more penalty points are deducted), and the second type of metric is used to determine the second sub-score (e.g., from the above). T2 The second type of metric is based on the number and / or type of lane changes associated with following the driving lane to the destination (e.g., optional, required, etc.) (e.g., penalty suspension when a lane change is required, encouragement of lane changes to enter the target lane), and determines the third sub-score based on the third type of metric (e.g., from the above). T3 The third type of metric is distance-based and scales from the vehicle's location to a predetermined distance (e.g., destination, boundary of a local map, etc.), and a fourth sub-score is determined based on the fourth type of metric (e.g., from the above). T4) This fourth type of metric uses the aforementioned cost value to weight the current driving lane (e.g., sub-score = α). (C max – C min ) / (C max –C min C max It can be the largest of several costs associated with the relevant driving lane, and C min It can be the lowest of the multiple costs associated with the relevant driving lane.
[0055] In some examples, the drawing component 212 can draw a top-down image of the first technique based on inputting the sub-fractions determined above into Equation 1 above. The result of Equation 1 can be a value mapped to a color value, which the drawing component 212 can use to draw the pixels of the image. Figure 4 Additional descriptions regarding the operation of the first technique are discussed in the text.
[0056] According to the second technique, the drawing component 212 can combine relevant driving lanes into a single top-down image including various different colors. In this technique, the drawing component 212 can be determined as described in the first technique. T1-T4 Score. Furthermore, the drawing component 212 can assign scores to each driving lane. T1-T4 The values are input into Equation 2 as described above to determine which color to use to draw (or otherwise associate) each pixel in the image. The result of these operations can be a color that can be used to draw the associated pixels. Figure 5 Additional descriptions regarding the operation of the second technique are discussed in the text.
[0057] According to the third technique, the drawing component 212 can generate four different top-down images, one for... T1 , one for T2 , one for T3 , one for T4 In such an image, the drawing component 212 may include each relevant driving lane within each of four top-to-bottom images. In this technique, the drawing component 212 may be determined as described in the first technique. T1-T4 Scores. Based on these scores determined for each relevant driving lane, the drawing component 212 can input these scores into Equation 2 to determine the color value of the associated pixel to be drawn. That is, if the dynamic routing component 202 is drawing the color value corresponding to the first metric (e.g., T1 The first color value of the top-to-bottom image is used to colorize the image, and then the drawing component 212 can color each of the four driving lanes. T1 The fraction is input into Equation 2, and the result is used as the color to draw the associated pixels. Drawing component 212 can perform this operation on the remaining top-to-bottom image. Figure 6 Additional descriptions regarding the operation of the third technology are discussed in the text.
[0058] Based on any combination of operations performing the first, second, and / or third techniques, the mapping component 212 can send a colored top-down image 220 to one or more downstream prediction and / or planning components 222. That is, the prediction and / or planning component 222 can use the colored top-down image(s)220 to assess the environment and / or determine one or more actions the vehicle is to perform.
[0059] Figure 3 Example environment 300 depicts multiple driving lanes and / or tables containing data representing overlapping and / or cost data associated with the multiple driving lanes.
[0060] In this example, example environment 300 may include multiple driving lanes. Specifically, example environment 300 may include driving lane 302, driving lane 304, and driving lane 306, which includes a separating driving lane 318. As shown, driving lane 302 may include left turns, driving lane 304 may allow straight travel, and driving lane 306 may allow straight travel, wherein driving lane 318 branches off from driving lane 306 and includes right turns. In some cases, driving lanes 302, 304, and 306 may be associated with the same road segment (e.g., a combination of one or more driving lanes of the same length traveling in the same direction) up to the dashed line 308 marking the end of that road segment. As shown, driving lane 318 may be located outside the dashed line 308, indicating that driving lane 318 is not associated with the same road segment.
[0061] As shown in the figure, example environment 300 may include a vehicle 310 capable of navigating to a destination. In this case, one or more systems of vehicle 310 may generate a path 312 to be followed by vehicle 310. As described above, vehicle 310 may generate path 312 based on identifying the vehicle's starting position and the destination position in map data and performing a shortest path calculation. The shortest path calculation may produce a single path that can be path 312. Similar to... Figure 1 Path 312 may overlap with or cross all laterally adjacent lanes within the road segment. Therefore, path 312 may overlap with lanes 302, 304, and 306 before the end of the road segment indicated by dashed line 308. Since lane 318 is associated with lane 306 before separating to the right, lane 318 may overlap with path 312 up to dashed line 308. After dashed line 308, the path may overlap with some or all of the laterally adjacent lanes in the next road segment. In this case, the next road segment may include lane 302 as the sole lane for travel.
[0062] As shown in the figure, the example environment 300 may include a local map 314. Vehicle 310 can generate the local map 314 using map data, which may include road segment data, driving lane data, and / or various other types of data. In such a case, the local map 314 may include one or more road segments and / or driving lanes within a local search area. That is, the local search area can extend to a portion of the environment that vehicle 310 can search and / or evaluate when generating a top-down image. The boundary of the local map 314 may be indicated by a dashed circle containing driving lanes, vehicle 310, path 312, etc.
[0063] In some examples, example environment 300 may also include table 316, which includes overlap data for each driving lane. Vehicle 310 can determine the overlap value entering table 316 by determining the distance of the overlap between the driving lanes within path 312 and partial view 314. For example, vehicle 310 can determine the overlap value of driving lane 306 by determining the distance of the overlap between path 312 and driving lane 306. In this case, path 312 overlaps with driving lane 306 from the position of vehicle 310 to dashed line 308, which marks the end of the road segment associated with driving lane 304. Since driving lane 306 is not associated with the next road segment encountered by path 312, vehicle 310 can determine that the distance corresponds only to the distance between the vehicle and dashed line 308. As shown in table 316, the overlap of driving lane 306 can be 120 meters. Furthermore, the overlap value for driving lane 318 can be determined by the distance of the overlap between path 312 and driving lanes 306 and / or 318. As shown in the figure, the overlap of driving lane 318 can be 120 meters.
[0064] In some examples, vehicle 310 can determine the degree of overlap with lane 304. For instance, vehicle 310 can determine the overlap value of lane 304 by determining the distance by which path 312 and lane 304 overlap. In this case, path 312 overlaps with lane 304 at dashed line 308, which marks the end of the road segment associated with lane 304, from the position of vehicle 310. Since lane 304 is not associated with the next road segment encountered by path 312, vehicle 310 can determine that the distance corresponds only to the distance between the vehicle and dashed line 308. As shown in Table 316, the overlap of lane 304 can be 120 meters.
[0065] In some examples, vehicle 310 can determine the degree of overlap with driving lane 302. For example, vehicle 310 can determine the overlap value of driving lane 302 by determining the distance by which path 312 and driving lane 302 overlap. In this case, path 312 overlaps with driving lane 302 from the position of vehicle 310 to dashed line 308, which marks the end of the road segment associated with driving lane 302. However, since driving lane 302 is associated with the next road segment encountered by path 312, vehicle 310 can also determine the distance by which path 312 and driving lane 302 overlap in the next road segment. As shown in Table 316, the overlap of driving lane 302 can be 180 meters. In some examples, vehicle 310 can use the overlap data associated with driving lanes to identify relevant driving lanes within local map 314 to generate sub-fractions as described above, and / or generate a top-down image for controlling the coloring of vehicle 310.
[0066] Figure 4A top-down representation 400 of multiple colors is shown, where a single driving lane is associated with a top-down representation of each color. Specifically, Figure 4 The illustration shows the generation of multiple top-down images, each associated with a driving lane.
[0067] In this example, Figure 4 An example driving environment 402 may be included, which includes multiple driving lanes and vehicles 404. As shown, the example driving environment 402 may include driving lanes 406, 408, and 410. As shown, driving lane 406 may include left turns, driving lane 408 may allow straight travel, and driving lane 410 may include right turns.
[0068] As described above, vehicle 404 can generate a path 412 to reach the destination. This path 412 can be a spatial representation of the optimal path to the destination. Furthermore, as described above, vehicle 404 can determine the overlap between path 412 and the driving lanes, and use this data to identify (or recognize) the relevant driving lanes. Based on the relevant driving lanes, vehicle 404 can generate one or more colored top-down images to be sent to downstream processing. Vehicle 404 can generate one or more colored top-down images according to the first, second, and / or third techniques described above. For Figure 4 The purpose is that vehicle 404 can perform operations consistent with the first technology.
[0069] Therefore, vehicle 404 can generate multiple independently colored top-down images, each corresponding to a specific driving lane. That is, Figure 4 Multiple colored images are shown from top to bottom. For example, Figure 4 This may include image 414, which may be a top-down image of the driving lane 406; image 416, which may be a top-down image of the driving lane 408; and image 418, which may be a top-down image of the driving lane 410. (As above and...) Figure 2 As described, vehicle 404 can determine the color of the driving lane by identifying one or more sub-fractions and inputting these fractions into Equation 1 above. The result from Equation 1 can be a value mapped to a color value, which can then be associated with a pixel corresponding to that driving lane. As shown, image 414 can be drawn with white values, image 416 with dark gray values, and image 418 with light gray values. Therefore, vehicle 404 can send the colored top-down image to one or more prediction and / or planning components configured to analyze the image to determine one or more actions to be performed by vehicle 404.
[0070] Figure 5 The diagram shows a top-down representation 500 of a single colored element that includes multiple driving lanes. Specifically, Figure 5 This shows the generation of a single top-down image that includes some or all of the relevant driving lanes.
[0071] In this example, Figure 5 An example driving environment 502 may be included, which includes multiple driving lanes and vehicles 504. As shown, the example driving environment 502 may include driving lanes 506, 508, and 510. As shown, driving lane 506 may include left turns, driving lane 508 may allow straight travel, and driving lane 510 may include right turns.
[0072] As described above, vehicle 504 can generate a path 512 to reach the destination. This path 512 can be a spatial representation of the optimal path to the destination. Furthermore, as described above, vehicle 504 can determine the overlap between path 512 and the driving lanes, and use this data to determine (or identify) relevant driving lanes. Based on the relevant driving lanes, vehicle 504 can generate one or more colored top-down images to be sent to downstream processing. Vehicle 504 can generate one or more colored top-down images according to the first, second, and / or third techniques described above. For Figure 5 For the purpose of this, vehicle 504 can perform operations consistent with the second technology.
[0073] Therefore, vehicle 504 can generate a single top-down image that includes a colored representation of the driving lane. For example, Figure 5 An image 514, which can be a top-down representation of an example driving environment 502, is shown. Specifically, image 514 may include driving lanes 506, 508, and 510. As described above, vehicle 504 can determine the color of the driving lanes by determining one or more sub-scores and inputting these scores into equations 1 and / or 2, the results of which may be values mapped to color values that can be associated with pixels corresponding to the driving lanes. As shown, image 514 may include driving lane 506 drawn in white, driving lane 508 drawn in dark gray, and driving lane 510 drawn in light gray. Therefore, vehicle 504 can send this top-down colored image to one or more prediction and / or planning components configured to analyze the image to determine one or more actions to be performed by vehicle 504.
[0074] Figure 6 The diagram illustrates a top-down representation 600 of multiple colors, where multiple driving lanes are associated with each top-down representation of a color. Specifically, Figure 6The diagram shows the generation of multiple top-down images, each corresponding to a type of rating metric.
[0075] In this example, Figure 6 An example driving environment 602 may be included, which includes multiple driving lanes and vehicles 604. As shown, the example driving environment 602 may include driving lanes 606, 608, and 610. As shown, driving lane 606 may include left turns, driving lane 608 may allow straight travel, and driving lane 610 may include right turns.
[0076] As described above, vehicle 604 can generate a path 612 to reach the destination. This path 612 can be a spatial representation of the optimal path to the destination. Furthermore, as described above, vehicle 404 can determine the overlap between path 612 and the driving lanes, and use this data to determine (or identify) the relevant driving lanes. Based on the relevant driving lanes, vehicle 404 can generate one or more colored top-down images to be sent to downstream processing. Vehicle 404 can generate these colored top-down images(s) according to the first, second, and / or third techniques described above. For Figure 6 For the purpose of this, vehicle 604 can perform operations consistent with the third technology.
[0077] Therefore, vehicle 604 can generate four top-down images that include a colored representation of the driving lane and correspond to one of the sub-score metrics. As described above, when determining the color of the driving lane, the vehicle can determine four sub-scores. T1-T4 For example, vehicle 604 can determine its first sub-score based on a first type of metric based on how far the vehicle is from its destination (e.g., T1 The second sub-score is determined based on a second type of metric, which is based on the number and / or type of lane changes associated with following the driving lane to the destination. T2 The third sub-score is determined based on a third type of metric, which is distance-based and scaled from the vehicle's location to a predetermined distance. T3 ), and determine the fourth sub-score based on a fourth type of metric that weights the current driving lane using the aforementioned cost values (e.g., T4 In such cases, these images can correspond to the values determined for the type of these rating metrics.
[0078] For example, Figure 6Image 614, which may be a top-down coloring representation corresponding to a first type of metric, image 616, which may be a top-down coloring representation corresponding to a second type of metric, image 618, which may be a top-down coloring representation corresponding to a third type of metric, and image 620, which may be a top-down coloring representation corresponding to a fourth type of metric, are shown. As shown, each image may include driving lane 606, driving lane 608, and driving lane 610.
[0079] As described above, vehicle 604 can determine the color of the driving lanes by identifying one or more sub-fractions and inputting these fractions into Equations 1 and / or 2. In this example, vehicle 604 can determine the color of three driving lanes. T1- T4 A score is calculated, and for each image, the corresponding metric score is input into Equations 1 and / or 2. The results from these equations can be values mapped to color values, which can then be associated with pixels corresponding to driving lanes. As shown, image 614 may include driving lane 606 drawn in white, driving lane 608 drawn in light gray, and driving lane 610 drawn in medium gray. Image 616 may include driving lane 606 drawn in white, driving lane 608 drawn in dark gray, and driving lane 610 drawn in light gray. Image 618 may include driving lane 606 drawn in white, driving lane 608 drawn in white, and driving lane 610 drawn in light gray. Image 620 may include driving lane 606 drawn in white, driving lane 608 drawn in light gray, and driving lane 610 drawn in light gray (e.g., a light gray different from the light gray of driving lane 608). Therefore, vehicle 604 can send four colored top-down images to one or more prediction and / or planning components, which are configured to analyze these images to determine one or more actions that vehicle 604 should perform.
[0080] Figure 7 This is a block diagram of an example system 700 for implementing the techniques described herein. In at least one example, system 700 may include a vehicle, such as vehicle 702. Vehicle 702 may include one or more vehicle computing devices 704, one or more sensor systems 706, one or more transmitters 708, one or more communication connections 710, at least one direct connection 712, and one or more drive systems 714.
[0081] Vehicle computing device 704 may include one or more processors 716 and memory 718 communicatively coupled to the processors 716. In the example shown, vehicle 702 is an autonomous vehicle; however, vehicle 702 may be any other type of vehicle, such as a semi-autonomous vehicle, or any other system that has at least an image capture device (e.g., a camera-enabled smartphone). In some cases, autonomous vehicle 702 may be an autonomous vehicle configured to operate according to a Level 5 classification issued by the National Highway Traffic Safety Administration (NHTSA), which describes a vehicle capable of performing all safety-critical functions throughout the journey, where the driver (or occupant) is not expected to control the vehicle at any time. However, in other examples, autonomous vehicle 702 may be a fully or partially autonomous vehicle with any other level or classification.
[0082] In the example shown, the vehicle computing device 704's memory 718 stores a positioning component 720, a sensing component 722, a dynamic routing component 724, a prediction component 726, a planning component 728, one or more system controllers 732, and one or more maps 730 (or map data). Although for illustrative purposes... Figure 6 The system is depicted residing in memory 718, but it is conceivable that the positioning component 720, sensing component 722, dynamic routing component 724, prediction component 726, planning component 728, one or more system controllers 732, and / or one or more maps may additionally or alternatively be accessible by vehicle 702 (e.g., stored in memory remote from vehicle 702, or otherwise accessible by memory remote from vehicle 702, such as, for example, in memory 740 of one or more computing devices 736 (e.g., remote computing devices)). In some examples, memory 740 may include path determination component 742, graphics generation component 744, overlap determination component 746, cost determination component 748, and rendering component 750.
[0083] In at least one example, the positioning component 720 may include the ability to receive sensor data from the sensor system 706 to determine the position and / or orientation (e.g., one or more of x, y, z position, roll, pitch, or yaw) of the vehicle 702. For example, the positioning component 720 may include and / or request / receive a map of the environment, such as from one or more maps 730, and may continuously determine the position and / or orientation of the vehicle 702 within the environment. In some cases, the positioning component 720 may utilize SLAM (Simultaneous Localization and Mapping), CLAMS (Simultaneous Calibration, Localization, and Mapping), relative SLAM, beamforming, nonlinear least squares optimization, etc., to receive image data, lidar data, radar data, inertial measurement unit (IMU) data, GPS data, wheel encoder data, etc., to accurately determine the position of the vehicle 702. In some cases, the positioning component 720 may provide data to various components of the vehicle 702 to determine the initial position of the vehicle 702 for determining the correlation between an object and the vehicle 702, as discussed herein.
[0084] In some cases, the sensing component 722 may include functions for performing object detection, segmentation, and / or classification. In some examples, the sensing component 722 may provide processed sensor data indicating the presence of objects (e.g., entities) approaching the vehicle 702 and / or the classification of objects into object types (e.g., cars, pedestrians, cyclists, animals, buildings, trees, road surfaces, curbs, sidewalks, unknown, etc.). In some examples, the sensing component 722 may provide processed sensor data indicating the presence of stationary entities approaching the vehicle 702 and / or the classification of stationary entities into types (e.g., buildings, trees, road surfaces, curbs, sidewalks, unknown, etc.). In additional or alternative examples, the sensing component 722 may provide processed sensor data indicating one or more features associated with a detected object (e.g., a tracked object) and / or the environment in which that object exists. In some examples, the features associated with the object may include, but are not limited to, x-position (global and / or local), y-position (global and / or local), z-position (global and / or local), orientation (e.g., roll, pitch, yaw), object type (e.g., category), object velocity, object acceleration, object extent (size), etc. Features associated with the environment may include, but are not limited to, the presence of another object in the environment, the state of another object in the environment, time of day, day of week, season, weather conditions, dark / light indicators, etc.
[0085] Prediction component 726 can generate one or more probability maps representing the predicted probabilities of the possible locations of one or more objects in the environment. For example, prediction component 726 can generate one or more probability maps for vehicles, pedestrians, animals, etc., within a threshold distance of vehicle 702. In some cases, prediction component 726 can measure the trajectory of an object and generate a discretized predicted probability map, heatmap, probability distribution, discretized probability distribution, and / or trajectory of the object based on observed and predicted behavior. In some cases, the one or more probability maps can represent the intentions of one or more objects in the environment.
[0086] In some examples, prediction component 726 can generate predicted trajectories of objects in the environment (e.g., objects). For example, prediction component 726 can generate one or more predicted trajectories of an object within a threshold distance of vehicle 702. In some examples, prediction component 726 can measure the trace of the object and generate the object's trajectory based on observed and predicted behavior.
[0087] Typically, the planning component 728 can determine the path that vehicle 702 should follow to traverse the environment. For example, the planning component 728 can determine various routes and trajectories, as well as various levels of detail. For example, the planning component 728 can determine a route from a first location (e.g., the current location) to a second location (e.g., the target location). For the purposes of this discussion, the route may comprise a sequence of waypoints traveling between the two locations. As a non-limiting example, these waypoints include streets, intersections, Global Positioning System (GPS) coordinates, etc. Furthermore, the planning component 728 can generate instructions for guiding vehicle 702 along at least a portion of the route from the first location to the second location. In at least one example, the planning component 728 can determine how to guide vehicle 702 from a first waypoint in the waypoint sequence to a second waypoint in the waypoint sequence. In some examples, the instructions may be a candidate trajectory or a portion of a trajectory. In some examples, multiple trajectories may be generated substantially simultaneously using rolling time-domain techniques (e.g., within technical tolerances). The vehicle can be operated by selecting one of multiple paths with the highest confidence level from the range of backtracking data. In various examples, the planning component 728 can select the trajectory for vehicle 702.
[0088] In other examples, the planning component 728 may alternatively or additionally use data from the positioning component 720, the sensing component 722, and / or the prediction component 726 to determine the path that the vehicle 702 should follow to traverse the environment. For example, the planning component 728 may receive data (e.g., object data) from the positioning component 720, the sensing component 722, and / or the prediction component 726 regarding objects associated with the environment. In some examples, the planning component 728 receives data about relevant objects within the environment. Using this data, the planning component 728 can determine a route from a first location (e.g., the current location) to a second location (e.g., the target location) to avoid objects in the environment. In at least some examples, such a planning component 728 can determine that no such collision-free path exists and subsequently provide a path that brings the vehicle 702 to a safe stop, thereby avoiding all collisions and / or otherwise mitigating damage.
[0089] The dynamic routing component 724 can perform the above-mentioned tasks. Figure 1-6 Any technique described in any of the above, generating one or more colored top-down images to enable dynamic routing of vehicles.
[0090] In at least one example, the vehicle computing device 704 may include one or more system controllers 732, which may be configured to control the steering, propulsion, braking, safety, transmitter, communication, and other systems of the vehicle 702. The one or more system controllers 732 may communicate with and / or control corresponding systems of the drive system(s) 714 and / or other components of the vehicle 702.
[0091] The memory 718 may also include one or more maps 730, which can be used by the vehicle 702 for navigation in the environment. For the purposes of this discussion, a map can be any number of data structures modeled in two, three, or N dimensions, capable of providing information about the environment, such as, but not limited to, topology (e.g., intersections), streets, mountains, roads, terrain, and general environment. In some cases, the map(s) may include, but are not limited to: texture information (e.g., color information (e.g., RGB color information, Lab color information, HSV / HSL color information) etc.), intensity information (e.g., LiDAR information, radar information, etc.); spatial information (e.g., image data projected onto a grid, individual "surfels" (e.g., polygons associated with individual colors and / or intensities)), reflectivity information (e.g., specular reflectivity information, retroreflectivity information, BRDF information, BSSRDF information, etc.). In one example, a map may include a three-dimensional mesh of the environment. In some examples, the vehicle 702 may be controlled at least in part based on the map(s) 730(s). That is, one or more maps 730 can be used in conjunction with positioning component 720, perception component 722, prediction component 726 and / or planning component 728 to determine the position of vehicle 702, detect objects in the environment, generate routes, and determine actions and / or trajectories for navigation in the environment.
[0092] In some examples, one or more maps 730 may be stored on one or more remote computing devices (such as one or more computing devices 736) accessible via network 734. In some examples, multiple maps 730 may be stored based on characteristics such as entity type, time of day, day of week, season of year, etc. Storing multiple maps 730 may have similar memory requirements but can improve the speed of accessing data in the maps.
[0093] In some cases, aspects of some or all of the components discussed herein may include any model, technique, and / or machine learning technique. For example, in some cases, the components in memory 718 (and memory 740 as described below) may be implemented as neural networks.
[0094] As described herein, an exemplary neural network is a technique for passing input data through a series of connected layers to produce an output. Each layer in a neural network may also include another neural network, or may include any number of layers (whether convolutional or not). As will be understood in the context of this disclosure, neural networks may utilize machine learning, which can refer to techniques in which a broad range of outputs are generated based on learned parameters.
[0095] Although discussed in the context of neural networks, any type of machine learning consistent with this disclosure may be used. For example, machine learning techniques may include, but are not limited to, regression techniques (e.g., ordinary least squares regression (OLSR), linear regression, logistic regression, stepwise regression, multivariate adaptive regression splines (MARS), local estimation scatter plot smoothing (LOESS)), instance-based techniques (e.g., ridge regression, minimum absolute shrinkage and selection operator (LASSO), elastic nets, minimum angular regression (LARS)), decision tree techniques (e.g., classification and regression trees (CART), iterative bisection 3 (ID3), chi-square automatic interaction detection (CHAID), decision stumps, conditional decision trees), Bayesian techniques (e.g., Naive Bayes, Gaussian Naive Bayes, multinomial Naive Bayes, average independent dependency estimator (AODE), Bayesian belief network (BNN), Bayesian network), clustering techniques (e.g., k-means, k-median, expectation maximization (EM), hierarchical clustering), association rule processing. Learning techniques (e.g., perceptrons, backpropagation, jump-field networks, radial basis function networks (RBFN)), deep learning techniques (e.g., deep Boltzmann machines (DBM), deep belief networks (DBN), convolutional neural networks (CNN), stacked autoencoders), dimensionality reduction techniques (e.g., principal component analysis (PCA), principal component regression (PCR), partial least squares regression (PLSR), Sammon mapping, multidimensional scaling (MDS), projection tracking, linear discriminant analysis (LDA), hybrid discriminant analysis (MDA), quadratic discriminant analysis (QDA), flexible discriminant analysis (FDA)), ensemble techniques (e.g., reinforcement, bootstrap aggregation (bagging), AdaBoost, stacked generalization (hybrid), gradient boosting machine (GBM), gradient boosting regression tree (GBRT), random forest), SVM (support vector machine), supervised learning, unsupervised learning, semi-supervised learning, etc.).
[0096] Other examples of architectures include neural networks such as ResNet-50, ResNet-101, VGG, DenseNet, PointNet, Xception, ConvNeXt, etc.; visual transformers (ViTs) such as bidirectional encoders from image transformers (BEiT), visual bidirectional encoders from transformers (VisualBERT), image generation pre-trained transformers (Image GPT), data-efficient image transformers (DeiT), deep visual transformers (DeepViT), convolutional visual transformers (CvT), detection transformers (DETR), Miti-DETR, etc.; and / or general or natural language processing transformers such as BERT, GPT, GPT-2, GPT-3, etc. In some examples, the ML models discussed herein may include PointPillars, SECOND, top-down feature layers (e.g., see U.S. Patent Application No. 15 / 963,833, the entire contents of which are incorporated herein by reference for all purposes) and / or VoxelNet. Architecture latency optimization can include MobilenetV2, Shufflenet, Channelnet, Peleenet, etc. In some examples, the ML model may contain residual blocks such as Pixor.
[0097] In at least one example, sensor system 706 may include lidar sensors, radar sensors, ultrasonic transducers, sonar sensors, position sensors (e.g., GPS, compass, etc.), inertial sensors (e.g., inertial measurement units (IMUs), accelerometers, magnetometers, gyroscopes, etc.), cameras (e.g., RGB, IR, intensity, depth, time-of-flight, etc.), microphones, wheel encoders, environmental sensors (e.g., temperature sensors, humidity sensors, light sensors, pressure sensors, etc.), etc. Sensor system 706 may include multiple instances of each of these or other types of sensors. For example, lidar sensors may include individual lidar sensors located at the corners, front, rear, sides, and / or top of vehicle 702. As another example, camera sensors may include multiple cameras disposed at various locations around the exterior and / or interior of vehicle 702. Sensor system 706 may provide input to vehicle computing device 704. Alternatively or additionally, sensor system 706 may transmit sensor data to one or more computing devices 736 via one or more networks 734 at a specific frequency, near real-time, etc., after a predetermined time period has elapsed.
[0098] Vehicle 702 may also include one or more transmitters 708 for emitting light and / or sound. Transmitters 708 may include internal audio transmitters and internal visual transmitters for communicating with passengers of vehicle 702. By way of example, and not limitation, these internal transmitters may include speakers, lights, signs, displays, touchscreens, haptic transmitters (e.g., vibration and / or force feedback), mechanical actuators (e.g., seatbelt tensioners, seat positioners, headrest positioners, etc.), etc. The transmitters 708 may also include external transmitters. By way of example, and not limitation, these external transmitters may include lights (e.g., indicator lights, signs, light arrays, etc.) for signaling other indications of direction of travel or vehicle movement, and one or more audio transmitters (e.g., speakers, speaker arrays, horns, etc.) for audible communication with pedestrians or other nearby vehicles, one or more of which may include beam steering technology.
[0099] Vehicle 702 may also include one or more communication connections 710 that enable communication between vehicle 702 and one or more other local or remote computing devices. For example, communication connections 710 may facilitate communication with vehicle 702 and / or one or more other local computing devices on drive system 714. Furthermore, communication connections 710 may allow the vehicle to communicate with other nearby computing devices (e.g., computing device 736, other nearby vehicles, etc.) and / or one or more remote sensor systems for receiving sensor data. Communication connections 710 also enable vehicle 702 to communicate with remotely operated computing devices or other remote services.
[0100] Communication connection 710 may include physical and / or logical interfaces for connecting vehicle computing device 704 to another computing device or network (such as network 734). For example, communication connection 710 may enable Wi-Fi-based communication, such as via frequencies defined by the IEEE 802.11 standard, short-range wireless frequencies such as Bluetooth, cellular communication (e.g., 2G, 3G, 4G, LTE, 5G, etc.), or any suitable wired or wireless communication protocol that enables the respective computing device to connect to one or more other computing devices.
[0101] In at least one example, vehicle 702 may include one or more drive systems 714. In some examples, vehicle 702 may have a single drive system 714. In at least one example, if vehicle 702 has multiple drive systems 714, the respective drive systems 714 may be positioned at opposite ends of vehicle 702 (e.g., front and rear, etc.). In at least one example, drive system(s) 714 may include one or more sensor systems to detect the condition of the drive system(s) 714 and / or the surrounding environment of vehicle 702. By way of example and not limitation, the sensor systems(s) may include one or more wheel encoders (e.g., rotary encoders) for sensing the rotation of the wheels of the drive module, inertial sensors (e.g., inertial measurement units, accelerometers, gyroscopes, magnetometers, etc.) for measuring the orientation and acceleration of the drive module, cameras or other image sensors, ultrasonic sensors, lidar sensors, radar sensors, etc. for acoustically detecting objects in the environment surrounding the drive module. Some sensors (such as wheel encoders) may be unique to drive system 714. In some cases, the sensor system on the drive system 714 may overlap with or complement the corresponding system of the vehicle 702 (e.g., sensor system 706).
[0102] The drive system(s) 714 may include a number of vehicle systems, including a high-voltage battery, a motor propelling the vehicle, an inverter 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 hydraulic or electric actuators, a suspension system including hydraulic and / or pneumatic components, a stability control system for distributing braking force to mitigate traction loss and maintain control, an HVAC system, lighting (e.g., headlights / taillights to illuminate the vehicle's external environment), and one or more other systems (e.g., cooling systems, safety systems, charging systems, other electrical components such as DC / DC on-board converters, high-voltage connectors, high-voltage cables, charging systems, charging ports, etc.). Additionally, the drive system(s) 714 may include a drive module controller that can receive and preprocess data from the sensor(s) system(s) and control the operation of various vehicle systems. In some examples, the drive module 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. In addition, the drive system 714 may include one or more communication connections that enable the respective drive module to communicate with one or more other local or remote computing devices.
[0103] In at least one example, the direct connection 712 can provide a physical interface for coupling one or more drive systems 714 to the body of the vehicle 702. For example, the direct connection 712 can allow the transfer of energy, fluid, air, data, etc., between the drive system 714 and the vehicle 702. In some cases, the direct connection 712 can further releasably secure the drive system 714 to the body of the vehicle 702.
[0104] In at least one example, the positioning component 720, sensing component 722, dynamic routing component 724, prediction component 726, planning component 728, one or more system controllers 732, and one or more maps 730 can process sensor data as described above, and can send their respective outputs to the computing device 736 via one or more networks 734. In at least one example, the positioning component 720, sensing component 722, dynamic routing component 724, prediction component 726, planning component 728, one or more system controllers 732, and one or more maps 730 can send their respective outputs to the computing device(s) 736 at a specific frequency, after a predetermined time period, or in a near real-time manner.
[0105] In some examples, vehicle 702 may transmit sensor data to computing devices 736 via one or more networks 734. In some examples, vehicle 702 may receive sensor data from computing devices 736 and / or remote sensor systems via one or more networks 734. Sensor data may include raw sensor data and / or processed sensor data and / or representations of sensor data. In some examples, sensor data (raw or processed) may be sent and / or received as one or more log files.
[0106] Computing device 736 may include processor 738 and memory 740, which may include path determination component 742, graphics generation component 744, overlap determination component 746, cost determination component 748, and rendering component 750. In some examples, memory 740 may store one or more components similar to those stored in memory 718 of vehicle 702. In such examples, computing device 736 may be configured to perform one or more of the processes described herein with respect to vehicle 702. In some examples, path determination component 742, graphics generation component 744, overlap determination component 746, cost determination component 748, and rendering component 750 may perform functions substantially similar to dynamic routing component 724.
[0107] The processor(s) 716(s) of vehicle 702 and the processor(s) 738(s) of computing device(s) 736 can be any suitable processor capable of executing instructions to process data and perform the operations described herein. By way of example and not limitation, a processor may include one or more central processing units (CPUs), graphics processing units (GPUs), or any other device or part of a device that processes electronic data to convert that 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 may also be considered processors, provided they are configured to implement coded instructions.
[0108] Memory 718 and memory 740 are examples of non-transitory computer-readable media. Memory 718 and memory 740 may store an operating system and one or more software applications, instructions, programs, and / or data to implement the methods described herein and the functions belonging to various systems. In various implementations, these memories may 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 contain many other logical, programming, and physical components; those components shown in the accompanying figures are merely examples relevant to the discussions herein.
[0109] It should be noted that, although Figure 7 The system is illustrated as a distributed system, but in an alternative example, components of vehicle 702 may be associated with computing device(s) 736 and / or components of computing device(s) 736 may be associated with vehicle 702. That is, vehicle 702 may perform one or more of the functions associated with computing device(s) 736, and vice versa.
[0110] The methods described herein represent sequences of operations that can be implemented in hardware, software, or a combination thereof. In the context of software, these boxes represent computer-executable instructions stored on one or more computer-readable storage media that perform the operations when executed by one or more processors. Typically, 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 limiting, and any number of the described operations can be combined in any order and / or in parallel to implement the process. In some examples, one or more operations of the method may be omitted entirely. For example, operations may include determining a first action and a second action of a vehicle relative to a selected trajectory, without determining the corresponding cost of one or more of the vehicle's actions. Furthermore, the methods described herein can be combined with each other, either wholly or in part, or with other methods.
[0111] The various techniques described herein can be implemented in the context of computer-executable instructions or software (such as program modules) that are stored in a computer-readable storage device and executed by the processor of one or more computing devices (such as those shown in the figures). Typically, program modules include routines, programs, objects, components, data structures, etc., and define operational logic for performing specific tasks or implementing specific abstract data types.
[0112] Other architectures may be used to implement the described functionality and are intended to fall within the scope of this disclosure. Furthermore, although specific assignments of responsibilities have been defined above for discussion purposes, various functions and responsibilities may be distributed and divided in different ways depending on the circumstances.
[0113] Similarly, software can be stored and distributed in various ways and using different means, and the specific software storage and execution configuration described above can be changed in many different ways. Therefore, software implementing the above techniques can be distributed across various types of computer-readable media, and is not limited to the form of the memory specifically described.
[0114] Figure 8 This is a flowchart illustrating an exemplary process 800 for determining a path to a destination, determining a map including driving lanes, determining the overlap between the path and the driving lanes in the map, determining a color based on the overlap, determining a top-down representation of the coloring of the driving lane based on the color, and controlling a vehicle based on the top-down representation of the coloring of the driving lane. As described below, the exemplary process 800 can be performed by one or more computer-based components configured to implement the various functions described herein. For example, process 800 can be performed using a dynamic routing component 202.
[0115] Process 800 is shown as a set of boxes in a logic flowchart, representing a sequence of operations, some or all of which may be implemented in hardware, software, or a combination thereof. In the context of software, these boxes represent computer-executable instructions stored on one or more computer-readable media that perform the operations when executed by one or more processors. Typically, computer-executable instructions include routines, programs, objects, components, encryption, decryption, compression, recording, data structures, etc., that perform a specific function or implement a specific abstract data type. The order in which the operations are described should not be construed as limiting. Any number of the boxes may be combined in any order and / or in parallel to implement or replace the process, and it is not necessary to execute all boxes in all examples. For the purposes of discussion, the processes described herein are referred to in the examples herein, as well as the frameworks, architectures, and environments described therein; however, these processes may be implemented in a wide variety of other frameworks, architectures, or environments.
[0116] In operation 802, the dynamic routing component can receive a destination associated with the environment. The vehicle can receive instructions to navigate from the starting location to the ending location (or destination) (e.g., transporting passengers, delivering items, etc.). Such instructions can be received from a fleet management system, a remote operating system, passengers or passenger devices, future passengers, and / or any other source. In some examples, the destination can be a location within the environment to which the vehicle is to navigate. That is, the instructions can include the location (e.g., xy coordinates) within the environment associated with the destination.
[0117] In operation 804, the dynamic routing component can determine the path the vehicle should take to reach its destination. In some examples, the dynamic routing component can determine this path by identifying the optimal route from the vehicle's location to the destination. For instance, the dynamic routing component can receive map data representing the environment between the vehicle and the destination and identify the shortest path from the vehicle to the destination. Such operations can be performed using algorithms such as Dijkstra's algorithm, A... D One or more shortest path algorithms are used to execute the algorithm. Therefore, when executing a shortest path algorithm, the dynamic routing component can receive, determine, or otherwise identify a single path representing the shortest distance to the destination.
[0118] At operation 806, the dynamic routing component can determine a map including a road segment comprising multiple driving lanes. The local map can be a map or graph representing multiple road segments and / or (one or more) driving lanes of a physical environment, spanning or otherwise covering a small portion of that physical environment, rather than the entire distance to the destination, while extending beyond the distance covered by candidate trajectories. That is, the local map can cover a greater distance from the vehicle than the distance covered by these candidate trajectories. The area of the physical environment covered by the local map can define a local search range corresponding to the local map. This local search range can be an area within which the dynamic routing component can evaluate when determining a colored, top-down representation of these driving lanes. The dynamic routing component can generate the local map based on map data, such as road network data, lane segment data (e.g., lane segment size, location, shape, type, etc.), and / or any other type of data.
[0119] In operation 808, the dynamic routing component determines the degree of overlap between the path and one of the multiple driving lanes. Overlap indicates how much a given driving lane spatially overlaps with the path. Specifically, this overlap can be based on a distance-based measurement, taken from the vehicle's current position, of the distance the path overlaps with the driving lane. For example, the vehicle may be located on a road segment comprising two laterally adjacent driving lanes. In this example, the first driving lane may turn right 75 meters from the vehicle, while the second driving lane continues straight to the boundary of the local graph. Thus, since the path laterally crosses two driving lanes, the dynamic routing component can determine a first degree of overlap with the first driving lane and a second degree of overlap with the second driving lane. In this example, the path may continue straight to the boundary of the local graph. Therefore, since the path overlaps with the first driving lane up to the point where the first driving lane turns right, the overlap with the first driving lane can be 75 meters. Furthermore, since the path overlaps with the second driving lane through the local search range, the overlap with the second driving lane can be 250 meters (e.g., the distance to the boundary of the local graph). Of course, in other examples, the local search range can be larger or smaller, which can result in greater or less overlap in the second driving lanes.
[0120] In operation 810, the dynamic routing component can determine the ranking of the multiple driving lanes based on overlapping data. That is, the dynamic routing component can identify related driving lanes by ranking them within a local map. Therefore, these driving lanes can be ranked such that the highest rank corresponds to the driving lane with the highest overlap and the lowest rank corresponds to the driving lane with the lowest overlap.
[0121] In operation 812, the dynamic routing component determines whether the driving lane is among the driving lanes ranked highest by the threshold. The dynamic routing component may determine or otherwise receive a threshold number of driving lanes and select the driving lanes with the highest threshold number considered relevant. In examples where the number of lanes is less than the number to be compared, all lanes may be used. If the driving lane is not among the driving lanes ranked highest by the threshold (812: No), the dynamic routing component may not draw the driving lane. That is, at operation 814, the dynamic routing component may determine not to draw the driving lane based on the fact that the driving lane is not considered relevant to the vehicle.
[0122] Conversely, if the driving lane is among the driving lanes ranked highest by the threshold (812: yes), the dynamic routing component can determine that the driving lane is a relevant driving lane. Therefore, at operation 816, the dynamic routing component can determine the color associated with the top-down representation of the driving lane based on this overlap. The way the dynamic routing component determines the color associated with the driving lane (or its associated pixels) can be based on which of the three techniques (as described above) the dynamic routing component can utilize. Therefore, to determine these color values, the dynamic routing component can determine a total score based on determining one or more sub-scores. These sub-scores can correspond to one or more types of metrics. For example, the dynamic routing component can determine a first sub-score based on a first type of metric (e.g., T1 The first type of metric is based on how far the vehicle is from its destination (e.g., the farther the vehicle is from its destination, the more penalty points are deducted), and the second type of metric is used to determine the second sub-score (e.g., T2 The second type of metric is based on the number and / or type of lane changes associated with following the driving lane to the destination (e.g., optional, required, etc.) (e.g., penalty suspension when a lane change is required, encouragement of lane change to the target lane, etc.), and a third sub-score is determined based on the third type of metric (e.g., T3 The third type of metric is distance-based and scales from the vehicle's location to a predetermined distance (e.g., destination, boundary of a local map, etc.), and a fourth sub-score is determined based on the fourth type of metric (e.g., T4 This fourth type of metric uses cost values (e.g., fourth sub-score = α). (C) max – C min ) / (C max – C min The current driving lane is weighted. max It can be the largest of the multiple costs associated with those relevant driving lanes, and C min It can be the smallest of the multiple costs associated with those relevant driving lanes.
[0123] Based on this technology (e.g., the first, second, or third technology) and by determining these sub-scores, the dynamic routing component can... T1-T4 Fractional inputs are used for Equations 1 and / or 2, the results of which can be a value that can be mapped to a color value. This color value can be the color used to depict the pixel corresponding to the driving lane in the image.
[0124] In operation 818, the dynamic routing component can determine a top-down representation of the coloring of the driving lane based on the color. Depending on whether the dynamic routing component is using the first, second, or third technique, the dynamic routing component can use the color determined in operation 816 to generate one or more top-down images including one or more driving lanes.
[0125] In operation 820, the dynamic routing component can control the vehicle based on the colored top-down representation of the driving lane. In some examples, based on one or more colored top-down images generated according to the first, second, or third technique, the dynamic routing component can send the colored top-down images(s) ...
[0126] Example Terms A: A system comprising: one or more processors; and one or more non-transitory computer-readable media storing computer-executable instructions that, when executed, cause the system to perform operations including: receiving a destination associated with an environment; determining a path to the destination followed by a vehicle; determining a plurality of road segments associated with the environment in a region within the vehicle's threshold distance, wherein one of the plurality of road segments includes a driving lane; determining an amount of overlap between the path and the driving lane; determining a cost associated with navigating the driving lane to the destination based at least in part on data associated with the driving lane; determining a value associated with a top-down representation of the driving lane based at least in part on the amount of overlap and the cost; generating a top-down representation of the driving lane including the value along the driving lane; and controlling the vehicle based at least in part on the top-down representation of the driving lane.
[0127] B: According to the system described in paragraph A, wherein the driving lane is a first driving lane and the top-down representation is a first top-down representation, wherein the road segment includes a second driving lane, the operation further includes: determining a second value associated with the second driving lane; determining a second top-down representation of the second driving lane based at least in part on the second value, wherein the second top-down representation is independent of the first top-down representation; and controlling the vehicle based at least in part on the first top-down representation and the second top-down representation.
[0128] C: According to the system described in paragraph A, wherein the driving lane is a first driving lane and the top-down representation is a first top-down representation, wherein the road segment includes a second driving lane, the operation further includes: determining a second value associated with the second driving lane; determining a second top-down representation of the second driving lane based at least in part on the second value; combining the first top-down representation and the second top-down representation into a single top-down representation; and controlling the vehicle based at least in part on the single top-down representation.
[0129] D: According to the system described in paragraph A, the operation further includes: determining a first score for a first type of metric; determining a second score for a second type of metric different from the first type; determining a second value associated with the first score and a third value associated with the second score; determining a second top-down representation of the driving lane associated with the first type of metric based at least in part on the second value; determining a third top-down representation of the driving lane associated with the second type of metric based at least in part on the third value, the second top-down representation being independent of the third top-down representation; and controlling the vehicle based at least in part on the second top-down representation and the third top-down representation.
[0130] E: According to the system described in paragraph A, the amount of overlap is determined at least in part based on: determining the distance by which the path overlaps with the driving lane; determining a modified distance at least in part based on the position of the vehicle; and making the modified distance the amount of overlap.
[0131] F: One or more non-transitory computer-readable media storing instructions executable by one or more processors, wherein the instructions, when executed, cause a system to perform operations including: determining a path followed by a vehicle to a destination; determining a map including road segments comprising driving lanes; determining an overlap between the path and the driving lanes; determining a value associated with a representation of the driving lanes based at least in part on the overlap; and determining the representation of the driving lanes based at least in part on the value.
[0132] G: According to one or more non-transitory computer-readable media as described in paragraph F, wherein the driving lane is a first driving lane and the representation is a first representation, wherein the road segment includes a second driving lane, the operation further includes: determining a second value associated with the second driving lane; determining a second representation of the second driving lane based at least in part on the second value, wherein the second representation is independent of the first representation; and controlling the vehicle based at least in part on the first representation and the second representation.
[0133] H: According to one or more non-transitory computer-readable media as described in paragraph F, wherein the driving lane is a first driving lane and the representation is a first representation, wherein the road segment includes a second driving lane, the operation further includes: determining a second value associated with a second representation of the second driving lane; determining a second representation of the second driving lane based at least in part on the second value; combining the first representation and the second representation into a single representation; and controlling the vehicle based at least in part on the single representation.
[0134] I: According to one or more non-transitory computer-readable media as described in paragraph F, the operation further includes: determining a first score for a first type of metric; determining a second score for a second type of metric different from the first type; determining a second value associated with the first score and a third value associated with the second score; determining a second representation of the driving lane associated with the first type of metric based at least in part on the second value; determining a third representation of the driving lane associated with the second type of metric based at least in part on the third value, the second representation being independent of the third representation; and controlling the vehicle based at least in part on the second representation and the third representation.
[0135] J: According to one or more non-transitory computer-readable media as described in paragraph F, the degree of overlap is determined at least in part based on: determining the distance by which the path overlaps with the driving lane; determining a modified distance at least in part based on the position of the vehicle; and making the modified distance the degree of overlap.
[0136] K: According to one or more non-transitory computer-readable media as described in paragraph F, wherein the value is determined at least in part based on: determining the cost associated with navigating the driving lane to the destination, wherein the cost is determined at least in part based on at least one of: a speed limit associated with the driving lane, or the distance between the vehicle and the destination.
[0137] L: According to one or more non-transitory computer-readable media as described in paragraph F, wherein the road segment comprises multiple driving lanes, and wherein the value is determined at least in part based on: determining an overlap value of the multiple driving lanes; determining a ranking of the multiple driving lanes at least in part based on the overlap value; determining a subset of the multiple driving lanes that meet or exceed a threshold at least in part based on the ranking; and determining a value associated with the driving lane at least in part based on the driving lane in the subset.
[0138] M: According to one or more non-transitory computer-readable media described in paragraph F, the operation further includes: controlling the vehicle based at least in part on a representation of the driving lane.
[0139] N: A method comprising: determining a path followed by a vehicle to a destination; determining a map including road segments, the road segments including driving lanes; determining an overlap between the path and the driving lanes; determining a value associated with a representation of the driving lanes based at least in part on the overlap; and determining a representation of the driving lanes based at least in part on the value.
[0140] O: According to the method described in paragraph N, wherein the driving lane is a first driving lane and the representation is a first representation, wherein the road segment includes a second driving lane, the method further includes: determining a second value associated with the second driving lane; determining a second representation of the second driving lane based at least in part on the second value, wherein the second representation is independent of the first representation; and controlling the vehicle based at least in part on the first representation and the second representation.
[0141] P: According to the method described in paragraph N, wherein the driving lane is a first driving lane and the representation is a first representation, wherein the road segment includes a second driving lane, the method further includes: determining a second value associated with a second representation of the second driving lane; determining a second representation of the second driving lane based at least in part on the second value; combining the first representation and the second representation into a single representation; and controlling the vehicle based at least in part on the single representation.
[0142] Q: The method described in paragraph N further includes: determining a first score for a first type of metric; determining a second score for a second type of metric different from the first type; determining a second value associated with the first score and a third value associated with the second score; determining a second representation of the driving lane associated with the first type of metric based at least in part on the second value; determining a third representation of the driving lane associated with the second type of metric based at least in part on the third value, the second representation being independent of the third representation; and controlling the vehicle based at least in part on the second representation and the third representation.
[0143] R: According to the method described in paragraph N, the degree of overlap is determined at least in part based on: determining the distance by which the path overlaps with the driving lane; determining a modified distance at least in part based on the position of the vehicle; and making the modified distance the degree of overlap.
[0144] S: According to the method described in paragraph N, the value is determined at least in part based on: determining the cost associated with navigating the driving lane to the destination, wherein the cost is determined at least in part based on at least one of: a speed limit associated with the driving lane, or the distance between the vehicle and the destination.
[0145] T: According to the method described in paragraph N, wherein the road segment comprises multiple driving lanes, and wherein determining the value is based at least in part on: determining an overlap value of the multiple driving lanes; determining a ranking of the multiple driving lanes based at least in part on the overlap value; determining a subset of the multiple driving lanes that meet or exceed a threshold based at least in part on the ranking; and determining the value associated with the driving lane based at least in part on the driving lane in the subset.
[0146] While the example clauses above have been described with respect to specific implementations, it should be understood that, in the context of this document, the content of the example clauses may be implemented via methods, devices, systems, computer-readable media, and / or other implementations. Furthermore, any of the example ATs may be implemented alone or in combination with any other one or more of the example ATs.
[0147] Conclusion Although one or more examples of the techniques described herein have been described, various modifications, additions, substitutions, and equivalents thereof are included within the scope of the techniques described herein.
[0148] In the description of the examples, reference is made to the accompanying drawings, which form part of the description, which illustratively illustrate specific examples of the claimed subject matter. It should be understood that other examples may be used, and changes or modifications, such as structural alterations, may be made. Such examples, changes, or modifications do not necessarily deviate from the scope of the intended claimed subject matter. While the steps herein may be presented in a particular order, in some cases the order may be changed so that specific inputs are provided at different times or in different orders without altering the functionality of the described system and method. The disclosed processes may also be performed in different orders. Furthermore, it is not necessary to perform the various computations herein in the disclosed order, and other examples using alternative orders of computation can be readily implemented. In addition to being reordered, computations may also be decomposed into sub-computations with the same results.
[0149] Although the subject matter has been described in language specific to structural features and / or methodological actions, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or actions described. Rather, these specific features and actions are disclosed as examples of implementing the claims.
[0150] 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 the 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 can be fully automated via these software code modules and / or computer-executable instructions. Some or all of the methods may alternatively be implemented in dedicated computer hardware.
[0151] Unless otherwise explicitly stated, conditional language such as “can,” “able,” “may,” or “possibly” is understood in context to indicate that some examples include certain features, elements, and / or steps, while other examples do not. Therefore, this conditional language is not generally intended to imply that one or more examples require certain features, elements, and / or steps in any way, or that one or more examples must include logic for determining whether or not certain features, elements, and / or steps are included or will be performed in any particular example, with or without user input or prompts.
[0152] Unless otherwise expressly stated, connective language such as the phrase “at least one of X, Y, or Z” should be understood to mean that an item, term, etc., can be X, Y, or Z, or any combination thereof, including multiples of each element. Unless explicitly stated as singular, “one” means both singular and plural.
[0153] Any routine description, element, or block depicted in the flowcharts described herein and / or in the accompanying drawings should be understood as potentially representing a module, segment, or portion of code comprising one or more computer-executable instructions for implementing a particular logical function or element in the routine. Alternative implementations are included within the scope of the examples described herein, wherein elements or functions may be omitted, or performed in a manner different from that shown or discussed, including substantially synchronously, in reverse order, utilizing additional operations, or omitting operations, depending on the functionality involved, as will be understood by those skilled in the art.
[0154] Many variations and modifications can be made to the above examples, and their elements should be understood as existing in other acceptable examples. All such modifications and variations are intended to be included within the scope of this disclosure and protected by the appended claims.
Claims
1. A system comprising: One or more processors; as well as One or more non-transitory computer-readable media storing computer-executable instructions that, when executed, cause the system to perform operations, including: Determine the route the vehicle will take to reach its destination; A map is determined that includes road segments, which include driving lanes; Determine the degree of overlap between the path and the driving lane; The value associated with the representation of the driving lane is determined at least in part based on the overlap; and The representation of the driving lane is determined at least in part based on the value.
2. The system according to claim 1, wherein, The driving lane is a first driving lane, and the representation is a first representation, wherein the road segment includes a second driving lane, and the operation further includes: Determine a second value associated with the second driving lane; A second representation of the second driving lane is determined at least in part based on the second value, wherein the second representation is independent of the first representation; and The vehicle is controlled at least in part based on the first representation and the second representation.
3. The system according to any one of claims 1 or 2, wherein, The driving lane is a first driving lane, and the representation is a first representation, wherein the road segment includes a second driving lane, and the operation further includes: Determine a second value associated with the second representation of the second driving lane; The second representation of the second driving lane is determined at least in part based on the second value; Combine the first representation and the second representation into a single representation; and The vehicle is controlled at least in part based on the single representation.
4. The system according to any one of claims 1-3, wherein the operation further comprises: For the first type of metric, determine the first score; For a second type of metric that differs from the first type, determine a second score; Determine a second value associated with the first score and a third value associated with the second score; The second representation of the driving lane associated with the first type of metric is determined at least in part based on the second value; A third representation of the driving lane associated with the second type of metric is determined at least in part based on the third value, the second representation being independent of the third representation; as well as The vehicle is controlled at least in part based on the second representation and the third representation.
5. The system according to any one of claims 1-4, wherein, The degree of overlap is determined at least in part based on: Determine the distance by which the path overlaps with the driving lane; The modified distance is determined at least in part based on the position of the vehicle; as well as This makes the modified distance the overlap.
6. The system according to any one of claims 1-5, wherein, The value is determined at least in part based on: Determine the cost associated with navigating from the driving lane to the destination, wherein the cost is determined based at least in part on at least one of the following: The speed limit associated with the driving lane, or The distance between the vehicle and the destination.
7. The system according to any one of claims 1-6, wherein, The road segment contains multiple driving lanes, and the value is determined at least in part based on: Determine the overlap value of the multiple driving lanes; The ranking of the multiple driving lanes is determined at least in part based on the overlap value; The subset of the multiple driving lanes that meet or exceed the threshold is determined at least in part based on the ranking; as well as The value associated with the driving lane is determined at least in part based on the driving lane in the subset.
8. The system according to any one of claims 1-7, wherein the operation further comprises: The vehicle is controlled at least in part based on the representation of the driving lane.
9. A method comprising: Determine the route the vehicle will take to reach its destination; A map is determined that includes road segments, which include driving lanes; Determine the degree of overlap between the path and the driving lane; The value associated with the representation of the driving lane is determined at least in part based on the degree of overlap; as well as The representation of the driving lane is determined at least in part based on the value.
10. The method according to claim 9, wherein, The driving lane is a first driving lane and the representation is a first representation, wherein the road segment includes a second driving lane, and the method further includes: Determine a second value associated with the second driving lane; A second representation of the second driving lane is determined at least in part based on the second value, wherein the second representation is independent of the first representation; and The vehicle is controlled at least in part based on the first representation and the second representation.
11. The method according to any one of claims 9 or 10, wherein, The driving lane is a first driving lane, and the representation is a first representation, wherein the road segment includes a second driving lane, and the method further includes: Determine a second value associated with the second representation of the second driving lane; The second representation of the second driving lane is determined at least in part based on the second value; Combine the first representation and the second representation into a single representation; and The vehicle is controlled at least in part based on the single representation.
12. The method according to any one of claims 9-11, further comprising: For the first type of metric, determine the first score; For a second type of metric that differs from the first type, determine a second score; Determine a second value associated with the first score and a third value associated with the second score; The second representation of the driving lane associated with the first type of metric is determined at least in part based on the second value; A third representation of the driving lane associated with the second type of metric is determined at least in part based on the third value, the second representation being independent of the third representation; as well as The vehicle is controlled at least in part based on the second representation and the third representation.
13. The method according to any one of claims 9-12, wherein, The degree of overlap is determined at least in part based on: Determine the distance by which the path overlaps with the driving lane; The modified distance is determined at least in part based on the position of the vehicle; as well as This makes the modified distance the overlap.
14. The method according to any one of claims 9-13, wherein, The value is determined at least in part based on: Determine the cost associated with navigating from the driving lane to the destination, wherein the cost is determined based at least in part on at least one of the following: Speed limits associated with the driving lane, or The distance between the vehicle and the destination.
15. One or more non-transitory computer-readable media storing instructions executable by one or more processors, wherein, When executed by one or more processors, the instructions cause the one or more processors to perform the method according to any one of claims 9-14.
Citation Information
Patent Citations
Data Segmentation Using Masks
US20190332118A1
