Extending autonomous driving capabilities into new territories
By segmenting and classifying drivable surfaces using similarity metrics, the system facilitates efficient navigation of unmapped areas for autonomous vehicles, addressing the challenges of manual data collection and verification in untested environments.
Patent Information
- Application Number
- JP2021558619
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-03-29
- Filing Date
- 2020-03-19
- Publication Date
- 2024-12-23
- Estimated Expiration
- 2040-03-19
AI Technical Summary
Autonomous vehicles face significant challenges in navigating unmapped areas, requiring extensive manual data collection and verification, which is time-consuming and costly, limiting their operational efficiency in untested environments.
A system and method for evaluating and generating map data for autonomous vehicles in new areas by comparing sensor data with verified map data, segmenting drivable surfaces, and classifying segments based on similarity metrics to determine navigable paths, thereby reducing the time and effort needed to extend autonomous driving capabilities.
Enables autonomous vehicles to navigate unmapped areas more efficiently by providing detailed map data and driving policies, improving operational efficiency and reducing the computational load for mapping new territories.
Smart Images

Figure 0007604390000001 
Figure 0007604390000002 
Figure 0007604390000003
Abstract
Description
[Background technology]
[0001] This PCT international patent application claims the benefit of priority to U.S. patent application Ser. No. 16 / 370,696, filed March 29, 2019, the disclosure of which is incorporated herein by reference in its entirety.
[0002] Vehicles are increasingly supplementing or replacing manual functions with automated control. Semi-autonomous vehicles may assist the driver with some functions, e.g., collision avoidance and braking, while fully autonomous vehicles may turn all occupants into passive participants in the shuttle to a destination. Such increased automation typically requires a detailed understanding of the vehicle's environment, e.g., in the form of detailed maps. Summary of the Invention
[0003] However, for areas that have not been mapped, e.g., areas where autonomous vehicles have not yet been tested for autonomous driving, obtaining details and understanding the environment can be very costly and time consuming, typically requiring thousands of hours and / or miles. [Brief description of the drawings]
[0004] [Figure 1] FIG. 1 illustrates an example of extending autonomous driving capabilities to new territories in accordance with an embodiment of this disclosure. [Diagram 2] FIG. 2 includes textual and visual flowcharts for describing an exemplary method for extending autonomous driving capabilities to new domains. [Diagram 3] FIG. 3 includes textual and visual flowcharts for describing another exemplary method for extending autonomous driving capabilities to new domains. [Figure 4] FIG. 4 is a block diagram illustrating an example vehicle and remote computing system for extending autonomous driving capabilities to new territories in accordance with aspects of this disclosure. [Diagram 5]FIG. 5 is a flowchart illustrating one or more processes for extending autonomous driving functionality to new territories and driving in new territories according to an embodiment of the disclosure. [Figure 6] FIG. 6 is a flowchart illustrating one or more processes for classifying road segments for use in extending autonomous driving capabilities to new territories, according to an embodiment of this disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0005] The following detailed description is directed to systems and processes for controlling an autonomous vehicle in an environment, including a new environment in which the autonomous vehicle has not previously traveled. Unlike conventional automobiles, some autonomous vehicles may not have on-board navigation controls, e.g., steering wheel, transmission control, accelerator control, and / or brake control, that allow for easy manual control. Thus, such autonomous vehicles may require a detailed map of an area, where the map may include details about drivable surfaces, e.g., extent, slope, surface type, etc., about lane and road configurations, and about traffic rules, etc. Generating such an elaborate map requires a large amount of data about the area, and obtaining such data has typically required an amount of prolonged manual driving in the area up until now. Furthermore, even if an elaborate map is generated, preparing the vehicle for autonomous driving may still require additional training of the vehicle in the newly mapped area. The techniques described herein may reduce the time and / or effort required to extend autonomous driving to new areas. For example, this disclosure provides systems and methods for evaluating new, e.g., previously unmapped geographic regions for autonomous driving and controlling an autonomous vehicle within such regions. The techniques described herein may also update and / or generate new map data for previously untested regions. Such map data may be utilized to facilitate control of the autonomous vehicle in those previously unmapped regions such that the vehicle can obtain sensor data for those regions to further update the map data.
[0006] In some examples, the techniques described herein may evaluate a new region, e.g., for potential navigation by an autonomous vehicle, by comparing map data available for the new region with map data and / or additional vehicle data for regions in which the vehicle is already operating autonomously. For example, an autonomous vehicle may be skilled at driving in some locations, e.g., a city, a portion of a city, etc., where that proficiency is based at least in part on the availability of detailed map data (e.g., as may be determined based on the ability to perform certain maneuvers, operate safely, and recognize various scenarios that may arise in the portion). For example, such map data may be obtained, generated, supplemented, and / or updated through careful exploration of the location, including utilizing sensor data acquired by sensors mounted on the vehicles as they traverse drivable surfaces in the region. For example, detailed map data of a navigable region (by an autonomous vehicle) may include information about the physical extent and location of the drivable surfaces. Such information may include the length and width of roads, the layout of intersections, the severity of surface slopes, the location and location of buildings, fire hydrants, or other fixtures, and other factors. The map data may also include information about features and conditions that affect travel on the drivable surface. For example, the map data may include information about speed limits, crosswalks, traffic lights, road signs, etc., and the impact such elements have on driving within the environment. In at least some examples, such map data may further include weather, climate, and / or other environmental features that may affect autonomous driving within such area (such as average hours of sunshine, average amount of precipitation, average temperature, any amount of snowfall or ice, etc.).
[0007] As used herein, “validated map data,” “data for a mapped area,” and / or “data for a validated area” may refer to map data associated with geographic areas or locations in which autonomous vehicles have been validated or are otherwise configured to operate, e.g., autonomously. Similarly, “mapped areas” or “validated areas” may refer to those geographic areas or locations. In contrast, “map data for new areas,” “unvalidated map data,” and similar terms may refer to map data associated with geographic areas or locations in which autonomous vehicles have not yet been validated and / or are not fully capable of operating autonomous vehicles safely and / or legally therein. Similarly, “unmapped areas,” “new areas,” and “unvalidated areas” may refer to such geographic areas or locations. Thus, while map data may be available for “unmapped,” “new,” or “unvalidated” areas, such map data may be insufficient for autonomous navigation.
[0008] In some examples, the techniques described herein can break down map data (e.g., the verified map data and / or the map data of the new region) into multiple segments of the drivable surface. For example, the techniques of this disclosure can generate segments from the map data. In some examples, the segments can include junction segments, e.g., intersections, merges, etc., or connecting road segments, e.g., the extent of the road between the junctions. The systems described herein can also associate data with each of the individual segments. For example, a junction segment can include the junction type, e.g., merge, "T", roundabout, etc.; the number of roads that meet at the junction; the relative positions of those roads, e.g., the angle between the roads that meet at the junction; information about the traffic control signal at the junction; and / or other features. Data associated with a connecting road segment can include the number of lanes, the width of those lanes, the direction of travel in each of the lanes, the identification of parking lanes, the speed limit on the road segment, and / or other features.
[0009] In examples, the techniques described herein may compare segments of drivable surfaces of the new region, e.g., identified in map data for the new region, with segments of drivable surfaces of the verified region, e.g., identified in verified map data. In implementations, map data for the new region may be obtained from many sources, including, but not limited to, three party vendors. In some examples, such map data may include 2D map data, 3D map data, satellite imagery, and / or other types of map data. In examples, any map data that provides information about drivable surfaces within the new region may be utilized.
[0010] In some examples described herein, various metrics may be determined to define how well an autonomous vehicle drives within such existing segments. By way of non-limiting examples, such metrics may include the number of occurrences over a period of time where remote intervention was required, occupant comfort (e.g., bumps, jerks, etc.), the ability of the vehicle to fully navigate the segment, the percentage of scenarios the vehicle can safely negotiate (e.g., if the segment includes an intersection with an unprotected left turn, the vehicle cannot navigate), etc. Such metrics may be utilized with the map data to indicate segments that are drivable and the level of capability associated therewith.
[0011] In some examples, the techniques described herein can group segments of drivable surfaces in a verified region, for example, according to segment classification or segment stereotype. In a non-limiting example, all junction segments that fit some range of a metric or attribute can be grouped together (e.g., using k-means, evaluating weighted distances (e.g., Euclidean) between segment parameters, or otherwise clustering such segments based on segment parameters). For example, an autonomous vehicle can be expected to do (and / or have apparently done) the same thing within the stereotype at each of the junctions. Similarly, connecting road segment stereotypes can also be grouped according to one or more similarity measures. In a non-limiting example, all two-lane road segments with speed limits within a 10 mph range can be associated with the same stereotype. In some examples, the use of stereotypes can reduce the number of comparisons that need to be made to determine similar segments.
[0012] In some examples, the techniques described herein may compare segments of the new region with segments (or stereotype classifications) of the verified region. For example, the comparison may determine whether and to what extent the segments of the new region are similar to one or more navigable segments from the mapped region. In some examples, the similarity may be expressed as a similarity metric, score, or other value. In some examples, segments in the new region having a similarity metric, value, or score equal to or greater than a threshold may be identified as (likely to be) navigable by an autonomous vehicle. In contrast, segments in the new region having a similarity metric, score, or value less than the threshold may be identified as not navigable by an autonomous vehicle. In some examples, various driving characteristics may be associated with each new segment. As a non-limiting example, complete operation in all conditions may be associated with a segment, while a single heading, weather and / or environmental condition restricted driving, etc. may be imposed on autonomous driving within such a segment. Such driving characteristics may generally be referred to as a policy (e.g., a set of expected behaviors and / or constraints on such behaviors, such as, but not limited to, a maximum speed limit, refraining from overtaking double-parked vehicles, refraining from performing additional maneuvers, etc.).
[0013] The techniques described herein may also generate updated or new map data based on the indication of drivable and non-drivable segments within the new region. For example, map data associated with individual segments may be flagged, tagged, or otherwise attached or corrected to indicate whether a segment is likely to be drivable or not (or otherwise has limited autonomous capabilities). In some examples, the map data may be uploaded or otherwise made accessible to the autonomous vehicle. The techniques described herein may include controlling a vehicle to navigate within the new region utilizing the updated or new map data.
[0014] Also, in examples, when the autonomous vehicle is controlled according to the new map data, the navigation of the vehicle can be evaluated. For example, the techniques can determine whether the vehicle operates within predefined criteria, which may be based at least in part on one or more of safety considerations, legal considerations, passenger comfort considerations, and the like. In some examples, information that the vehicle is not functioning properly within a segment determined to be drivable or navigable may update a process that determined the similarity of the segment to a verified segment. For example, the techniques described herein can determine differences between attributes of segments in the new region and attributes of a verified segment or stereotype. In some examples, the differences can be utilized to update the stereotype and / or generate a new stereotype.
[0015] The techniques described herein can improve the functionality of autonomous vehicles in many ways. For example, the techniques described herein can facilitate navigation in unmapped areas and can facilitate mapping of those unmapped areas. Additionally, the techniques described herein can improve computer functionality, for example, by reducing the amount of processing required to evaluate and / or map new areas. The techniques described herein can also enable navigation of an area prior to generating and / or otherwise acquiring a detailed map of the entire area, for example, by an autonomous vehicle. These and other improvements to the functionality of autonomous vehicles, computing systems associated with autonomous vehicles, and / or to user experience are discussed herein.
[0016] The techniques described herein can be implemented in many ways. Exemplary implementations are provided below with reference to Figures 1-6. Although discussed in the context of an autonomous vehicle, the methods, apparatus, and systems described herein can be applied to a variety of systems and are not limited to autonomous vehicles. In other examples, the techniques can be utilized in robotics, aviation, and / or marine contexts, for example to extend navigation coverage of a device.
[0017] FIG. 1 is a schematic diagram 100 of an embodiment of the disclosure. More specifically, FIG. 1 illustrates an evaluation system 102 for determining whether and / or which portions of an unverified region may be navigable (for autonomous navigation), even in the absence of the type and specific detailed map data typically required for a vehicle control system of an autonomous vehicle to navigate the region. As shown, the evaluation system 102 may be configured to receive or otherwise access map data 104 for a new region, e.g., an "unverified region," and to receive or otherwise access verified map data 106. For example, a "new region" may be a geographic region in which operation of an autonomous vehicle has not been verified. For example, a new, unverified, or unmapped region may be an area or region adjacent to an already mapped region, e.g., to extend an existing drivable region or a geofence for an autonomous vehicle, or may be an entirely new geographic region, e.g., a different city. As shown in more detail herein, the map data 104 for the new region may take any form of data that may collect aspects of the drivable surface in the new region. For example, the map data 104 for the new region may include any two-dimensional or three-dimensional map data that provides information about the new region, such as satellite imagery, manually generated maps, and the like, including, but not limited to, available map data from third parties. In contrast, the validated map data 106 may be map data of one or more geographic regions for which operation of the autonomous vehicle has been validated. The validated map data 106 may include detailed maps that are utilized by one or more autonomous vehicles to navigate within the region, for example, using simultaneous localization and mapping (SLAM) techniques. For example, the validated map data 106 may include a 3D mesh of the environment, including drivable surfaces and information about aspects of the drivable surfaces, including, but not limited to, the extent of the drivable surfaces, road sign information, traffic control information, and the like. In at least some examples, the map data 104 for the new region and / or the validated map data 106 may include simulated map data.In such examples, approximate road parameters (gradient, width, etc.) and / or actual road parameters (speed limit, number of lanes, etc.) may be utilized to generate such synthetic segments that approximate real road segments. For example, simulated map data may be utilized to test aspects of the implementations described herein and / or aspects of an autonomous vehicle. Thus, as used herein, new and / or unverified areas may refer to, for example, geographic areas for which map data and / or driving data (e.g., verified map data 106) exist that may be utilized by an autonomous vehicle to navigate the area autonomously.
[0018] The rating system 102 can utilize the map data 104 for the new region and the verified map data 106 to generate a rating for the new region. The rating 108 can identify non-drivable segments or regions 110 and drivable segments or regions 112 within the new region. In some examples, the rating system 102 can determine a similarity or similarity of road segments in the new region to road segments in the mapped region to determine the non-drivable regions 110 and drivable regions 112. For example, the non-drivable regions 110 can be regions that the rating system 102 determines are unlikely to be navigable by an autonomous vehicle, e.g., below some similarity metric threshold, while the drivable regions 112 can be regions that the rating system 102 determines are likely to be navigable by an autonomous vehicle, e.g., above some similarity metric threshold.
[0019] More specifically, the evaluation system 102 may include one or more computing devices 114 configured to receive and / or otherwise access the map data 104 and the verified map data 106 for the new region. Generally, in some examples, the computing device 114 may include various elements that perform various processes and / or operations on the map data and the verified map data 108 for the new region 106. For example, the computing device 114 may include a map segmentation element 116, a segment analysis element, and an evaluation / mapping element 120.
[0020] The map segmentation element 116 can include functionality to identify segments of map data that correspond to discontinuous portions of a drivable surface within a geographic region. In some examples, the discontinuous portions can include road junctions and connecting road segments. A road junction can be the confluence of two or more connecting road segments, and a connecting road segment can be a portion of a road that extends between two junctions. In other examples, the discontinuous portions can be segments of a road junction and / or a connecting road segment. For example, the map segmentation element 116 can identify individual lanes or groupings of two or more lanes at either a road junction or a connecting road segment. Similarly, the map segmentation element 116 can include functionality to identify portions of a junction, for example, the junction of two road segments at a four-way intersection. As can be appreciated, a drivable surface can include many physical portions, and segments should not be limited to those specifically discussed herein. In some examples, the map segments can define location, extent, and semantic information associated with the map segments. As described further herein, the map segmentation component 116 may include functionality for identifying segments within the map data 104 and the verified map data 106 for new regions.
[0021] The map segmentation component 116 can implement many techniques to recognize segments in the map data 104 for the new region and / or the verified map data 106. By way of non-limiting example, when the map data includes image data, the map segmentation component 116 can implement feature recognition techniques, including but not limited to edge detection techniques, to determine the extent of the drivable surface and / or lane boundaries on the drivable surface. In other examples, the map segmentation component 116 can implement segmentation and / or classification techniques on the map data, for example, to identify portions of the sensor data associated with different classifications. In some examples, the drivable surface can be a classification identified using semantic segmentation. In at least some examples, various clustering-based algorithms can be utilized to identify certain lane segments (e.g., k-means, k-modiods, DBSCAN, etc.) based on any one or more road parameters. Other techniques can also be utilized.
[0022] The map segmentation element 116 can also associate features or attributes, e.g., non-physical features / attributes, with the identified physical segments. For example, the map segmentation element 116 can also associate traffic control information for the associated drivable surface portion with the segment. In non-limiting examples, the traffic control information can include information about speed limits, about direction of travel, about traffic control devices, e.g., stop signs, yield signs, traffic lights. Additional traffic control information can include information about crosswalks, parking zones, non-parking zones, bike lanes, HOV information, etc. In an implementation, the map segmentation element 116 can identify physical drivable surface segments and associate any and all information that can affect safe and legal travel within such segments.
[0023] Further, in at least some examples, the map segmentation component 116 may utilize previously recorded driving data from one or more vehicles associated with each segment to provide a level of autonomy associated with each segment. As a non-limiting example, various segments may be identified as having the capability to drive fully autonomously in all environmental conditions with limited autonomy (speed limits, maneuvering limitations, etc.) and not having the capability to have full autonomy.
[0024] The segment analysis element 118 may include functionality to compare segments identified by the map segmentation element 116 and determine their similarity. For example, the segment analysis element 118 may identify segments from the map data 104 for the new region that are similar or the same as segments from the verified map data 106. In some examples, the segment analysis element 118 may compare individual segments from the map data 104 for the new region to individual segments from the verified map data 106 to find similarities. Such an analysis may include determining the distance (e.g., Euclidean distance) between a feature vector associated with a segment and one or more clusters or segments identified in the map segmentation element 116. By way of a simple, non-limiting example, when the map segmentation element 116 identifies a relatively straight, two-lane connecting road segment with a 30 mph speed limit in the map data 104 for the new region, the segment analysis element 118 may look for a relatively straight, two-lane connecting road segment with a 30 mph speed limit in the verified map data 106. In this simple example, the attributes being measured, such as the straightness of the road segments, the number of lanes, and the speed limit, may be substantially the same. In other examples, however, the similarity may not be as precise. For example, the new region may contain a two-lane connecting road segment with some curvature and a 40 mph speed limit. In the examples described herein, the segment analysis element 118 may determine a similarity metric that quantifies the similarity of the segments in the new region to one or more segments in the verified region.
[0025] In some examples, the similarity metric may break down into multiple attributes and determine how many of those attributes are the same and / or similar between the compared segments. Some example attributes may include physical attributes or traffic control attributes. Physical attributes may include, for example, extent (e.g., length, width), number of lanes, curvature, slope, road type (e.g., paved, gravel, dirt, striped, unlined), curb or non-curb, median or non-median, etc. Traffic control attributes may include, for example, information about speed limits, direction of travel, traffic control elements (e.g., traffic lights, stop signs, yield signs), crosswalks, bike lanes, HOV rules, turn rules (e.g., no left turns, no right turns on red), etc. In some examples, the similarity metric or similarity score may be a binary value, for example, 1 or 0, match or mismatch, drivable or non-drivable. Of course, in other examples, such scores may be continuous and may indicate how similar one segment is to another, with lower levels of similarity being associated with disabling certain driving characteristics (e.g., driving above a certain speed limit, performing certain maneuvers such as autonomously maneuvering around double-parked vehicles, etc.). In some examples, when certain attributes are not identical in two compared segments, the similarity metric may indicate that there is a mismatch even if other attributes are the same or similar. In a non-limiting example, a two-lane segment of a road with one dedicated lane traveling in one direction and a dedicated second lane traveling in the opposite direction would not match a two-lane segment of a road with both dedicated lanes traveling in the same direction. In contrast, other attributes may differ, but the segments may still match. In a non-limiting example, two road segments that are substantially the same may be a match, except that the speed limits differ by 5 mph. In this example, the similarity metric may take into account the degree of difference between the two attributes. For example, speed limits that vary by 5 miles per hour may be more similar than speed limits that vary by 20 miles per hour.In at least one example, the similarity metric may assign a value, e.g., a numerical value, representing this degree of similarity, and the segment analysis element 118 may generate a composite or other score that includes different attributes as well.
[0026] The segment analysis element 118 can also take into account information about segment stereotypes. For example, a stereotype may define parameter values or ranges of parameter values that define a road segment type. In some examples, a stereotype may be embodied by a representative segment, e.g., a segment that includes attributes / parameters / ranges associated with the stereotype. The segment analysis element 118 can determine road segments that are similar or include such parameters / ranges. For example, a stereotype may group together all segments that are similar enough that an autonomous vehicle is expected (or proven) to behave similarly. For example, such similarity of behavior may be found through driving hours and / or miles on the road segments. In some examples, the segment analysis element can run machine learning models to group similar road segments in a stereotype and / or update the stereotype. Thus, in examples of the disclosure, the segment analysis element 118 can compare road segments from the map data 104 for the new region with stereotypes determined from and / or included in the verified map data.
[0027] The evaluation / mapping element 120 may include functionality to evaluate the results of the segment analysis element 118 and update the map data 104 for the new region to identify non-driveable areas 110 and drivable areas 112 (and / or limitations on driving capabilities). For example, the evaluation / mapping element 120 may determine sections of the new region that are substantially similar to segments that the autonomous vehicle has already been verified for autonomous travel (e.g., from the verified map data 106), e.g., from a similarity metric determined by the segment analysis element 118. In at least some examples, a similarity level of autonomy corresponding to the original segments may be associated with such new segments. In examples, segments of the map data 104 for the new region that have no analogues in the verified map data 106 are flagged or otherwise indicated as not being verified for travel. Similarly, segments of the map data 104 for the new region that have analogues in the verified map data 106 are flagged or otherwise indicated as being verified (or potentially verified) for travel. As noted above, in at least some examples, a limited amount of autonomy (or other limitations on functionality) may be associated with one or more segments based on the determined similar segments. In some examples, the evaluation / mapping component 120 may generate new map data, e.g., by supplementing the map data 104 for the new region with an indication of the drivable region 112, and provide the updated (or new) map data to the autonomous vehicle to prepare the autonomous vehicle for operation within the drivable region 112, e.g., excluding the non-drivable region 116.
[0028] The evaluation / mapping element 120 may also determine an overall score or coverage for the new region. For example, when each of the segments in the map data 104 for the new region are flagged as either non-drivable or drivable, the evaluation / mapping element 120 may determine an overall coverage of the new region. In some examples, the overall score or coverage may correspond to a percentage of the drivable area in the new region that is indicated as including the drivable area 112. Other evaluation and / or scoring metrics may also be utilized. For example, the evaluation / mapping element 120 may consider additional information about the new region. For example, in the context of a ride-hailing service, it may be desired to determine whether the drivable area 112 includes pickup / drop-off locations. The evaluation / mapping element 120 may determine a percentage of the segments in the map data 104 for the new region that also include clear turns, parking lanes, private roads, parking lots, or other attributes that may be conducive to pickup / drop-off. In an additional example, the evaluation / mapping component 120 can determine a metric that identifies how connected the new region is. For example, a determination that the drivable regions 112 within the new region allow driving through most of the region may be scored relatively higher than a determination that the drivable regions 112 are far from each other, e.g., with few or no connecting roads.
[0029] Thus, in accordance with the techniques described herein, a determination of how well a vehicle control system will perform in a new region can be determined utilizing map data for the verified region and map data for the new region. Even though the map data 104 for the new region may be less detailed or specific than the verified map data 106, the evaluation system 102 can provide meaningful information about the likelihood of an autonomous vehicle operating in the region. In some implementations, the evaluation system 102 can help determine whether to provide autonomous vehicle service to the new region and / or which new areas to enter.
[0030] 2 illustrates a pictorial flow diagram of an example process 200 for identifying drivable surfaces within a new region and / or associating autonomous features therewith. For example, process 200 is not limited to use with rating system 102, and although rating system 102 may perform operations and / or processes in addition to process 200, process 200 may be implemented by one or more elements of rating system 102.
[0031] At operation 202, the process 200 may include receiving map data for the new region. For example, the new region may be an extension of an already mapped region or may correspond to a completely new region, such as a new city or place. An example 204 accompanying operation 202 includes a graphical display of a map 206 of the new region. For example, the map 206 may represent the map data 104 for the new region discussed above in connection with FIG. 1. In the examples of this disclosure, the map data may be any number of data types including representative information of a place. In particular, the techniques described herein may utilize any map data from which information about drivable surfaces within the new region may be determined. In some examples, such a map 204 may be generated based on collected data from one or more sensors of the vehicle collected during the mapping period. In some examples, the map 204 may be determined based on simulated (synthetic) data generated by a user, or a combination of simulated portions and sensor data. In any such example, additional parameters corresponding to roads may be associated with various portions of the map (speed limits, stop signs, traffic lights, lane indicators, pedestrian crossings, etc.).
[0032] In operation 208, the process 200 may include identifying drivable surface segments within the new region. In the example accompanying operation 208, the number of regions of the map 206 is determined. For example, in the figure, four junctions 210(1), 210(2), 210(3), 210(4) (collectively junctions 210) and four connecting road segments 212(1), 212(2), 212(3), 212(4) (collectively connecting roads 212) are listed (portions of additional road segments are also shown, although not labeled). In this example, each of the junctions 210 is a junction of two or more connecting roads 212, and each of the connecting roads 212 extends between two of the junctions 210. More specifically, the first junction 210(1) and the third junction 210(3) may be "T" type junctions where three connecting road segments converge. In the particular example of first junction 210(1), the three connecting road segments include first connecting road 212(1), fourth connecting road 212(4), and an unlabeled connecting road segment that is a continuation of first connecting road 212(1). Second junction 210(2) and fourth junction 210(4) may be different types of intersections. For example, second junction 210(2) is depicted as a four-way intersection and fourth junction 210(4) is depicted as a traffic circle or roundabout. Of course, these are just examples of junctions.
[0033] As will be appreciated, map 206 may provide only a small section of a (much) larger area. Thus, in some implementations, there may be hundreds, potentially thousands or more, of junctions 210 and an equivalent number of connecting roads 212. Furthermore, each junction may have its own characteristics and / or each connecting road 212 may have its own characteristics. By way of non-limiting example, first junction 210(1) and third junction 210(3) may appear to be the same, although in reality they may be quite different. For example, traffic control at each of junctions 210(1), 210(3) may vary. For example, junction 210(1) may be a three-way stop, while connecting road segment 212(3) may be a main road, such that vehicles traveling straight from connecting road segment 212(3) through junction 210(3) may not stop, while traffic on the fourth connecting road 212(4) must stop before entering the intersection that junction 210(4) comprises. Of course, these are only examples. In other examples, one or more junctions may include other features, such as, for example, crosswalks, turn lanes, priority signs, traffic lights, and the like. Additionally, the fourth connecting road segment 212(4) may be one-way in either direction. Similarly, other factors may affect traffic control at junction 210. For example, the speed limits of the roads that include connecting road segment 212 may vary for each of junctions 210. Junction 210 may have additional variations as well. In a non-limiting example, the connecting roads 212 are generally depicted as being disposed at right angles to adjacent road segments, although the angles between the road segments may vary. Additionally, each junction 210 may include crosswalks, bicycle lanes, physical barriers, or other features that may affect navigation therethrough. Other examples are provided herein.
[0034] Similarly, the referenced connecting road segments 212 may appear substantially the same in the map 206, but each may have unique characteristics or attributes. By way of non-limiting example, each segment may have a different curvature, a different slope, a different speed limit, a different number of lanes or lane configurations, e.g., widths, lengths or other extents, different directions of travel for those lanes, etc. Also, in examples, the road segments 212 may include parking lanes, crosswalks, no parking zones, medians or other physical barriers, bridges, tunnels, adjacent sidewalks, speed bumps, bicycle lanes, or other features. Other examples are provided herein.
[0035] At operation 214, process 200 may include comparing the segments with the mapped segments and / or stereotypes from the reference map data. For example, each of the segments identified at operation 208, e.g., each of the junctions 210 and each of the connecting road segments 212, may be compared with mapped data from a navigable region, such as the verified map data 106 discussed above. The diagram accompanying operation 214 shows a first junction 210(1) from the map 206 and associated segment data 216. As a non-limiting example, the segment data 216 may include any of the features, attributes, and / or variables that quantify the junction 210(1), including but not limited to those discussed above. The comparison may be based on determining a similarity metric, as defined herein.
[0036] The example accompanying operation 214 also illustrates an exemplary mapped junction 218. For example, the mapped junction 218 may include junction segments identified within a navigable region, such as the verified map data 106. In some examples, each junction within the verified map data 106 may be stored individually with associated data, such as segment data 216. In an example, a first mapped junction 218(1) illustrates a four-way intersection and associated data, a second mapped junction 218(2) illustrates a first three-way intersection and associated junction data, and a third mapped junction 218(3) illustrates a second three-way intersection and associated junction data. As previously discussed, the mapped junctions 218 are from regions that have been verified for autonomous vehicles to travel in, and thus, it may be known with some certainty that an autonomous vehicle can navigate each of the mapped junctions 218. Thus, if operation 214 determines that junction 210(1) is the same as one of the mapped junctions 218, then there may be a reasonable expectation that the autonomous vehicle may navigate junction 210(1) in the new region. In the example accompanying operation 214, junction 210(1) may be determined to be similar and / or the same as a third mapped junction 218(3). As noted above, this may be done based on determining a similarity score or metric associated with one or more features / parameters of the two segments.
[0037] In some implementations, operation 214 may compare junction 210(1) to each mapped junction 218. However, in other implementations, each of the mapped junctions 218 may represent a class or group of similar junctions. By way of example, an autonomous vehicle may use the same functionality to navigate a four-way intersection of a main road and two side roads, for example, regardless of whether the side road has a stop sign, a yield sign, and / or a flashing red light, and / or regardless of the speed limit of the main road. In such an example, the mapped junction 218 may include a junction or intersection stereotype. For example, an intersection stereotype may include one or more ranges or types of criteria within a single parameter range. In the above example, similar four-way intersections of a main road and two side roads are grouped together regardless of the traffic control device utilized at the junction of the side road and the main road (or if the traffic control device is a device on a list of similar devices) and / or regardless of the speed limit of the main road (or if the speed limit is within some range of the speed limit). In some examples, the use of stereotypes can reduce computational load, for example, by comparing segments of new regions to fewer map segments, such as mapped junctions 218. The use of stereotypes or classification can reduce, for example, thousands of junctions to tens of stereotypes. In at least some examples where a clustering algorithm is used to cluster the segments, the mean, median, or mode of each cluster can be used as a characteristic of that segment with variance indicating how tightly each cluster is.
[0038] At operation 220, process 200 may include identifying drivable surfaces within the new region. For example, process 200 may include identifying those segments within map 206 for which there is a similar in the verified map data (e.g., based on the comparison at operation 214). In some examples, those regions for which there is a similar may be indicated as (potential) drivable regions 222 (e.g., likely navigable by an autonomous vehicle), and those regions for which there is no similar may be indicated as non-drivable regions 224 (e.g., not navigable by an autonomous vehicle). In the example accompanying operation 220, second connecting road 212(2), third connecting road 212(3), and fourth junction 210(4) are indicated as non-drivable regions 224, while all remaining segments are indicated as comprising drivable regions 222. In at least some examples, such determinations may not be so binary (e.g., drivable vs. non-drivable). In such examples, various behaviors may be restricted based at least in part on the similarity metric (e.g., maximum speed limit, actions that may be taken, times and / or conditions under which an autonomous vehicle is permitted, etc.). As a non-limiting example, if a newly mapped road segment is within 95% of the characteristics of an existing segment, similar driving features may be enabled. In another example, if a new segment has a similarity metric of 0.8 of a stereotype road segment, the maximum speed limit may be set to a fraction of the posted speed limit of the new segment.
[0039] In some implementations, an autonomous vehicle may be equipped with updated map data identifying drivable regions 222 such that the autonomous vehicle may operate within drivable regions 222, subject to any restrictions imposed. In some examples, the autonomous vehicle may operate without information about non-drivable regions 224, e.g., to avoid them. As yet another example, an indication that a region or segment is non-drivable may prompt additional processing. For example, FIG. 3 illustrates an example of determining whether a segment indicated as non-drivable by process 200 or another process may still be navigable by an autonomous vehicle. More specifically, FIG. 3 illustrates a pictorial flow diagram of an example process 300 for identifying drivable sub-segments, e.g., a subset of lanes, in a new region. For example, process 300 is not limited to use with rating system 102, and although rating system 102 may perform operations and / or processes in addition to or in place of process 300, process 300 may be implemented by one or more elements of rating system 102.
[0040] At operation 302, process 300 may include receiving information about a road segment. For example, the road segment may be a junction segment or a connecting road segment as discussed herein. In some examples, the road segment may be a segment that has been flagged or otherwise identified as undrivable, for example, according to process 200 discussed above or some other process. In such examples, the segment may be undrivable because it does not sufficiently correspond to the verified map data, as discussed above in connection with FIG. 2. In example 304 accompanying operation 302, the road segment is embodied as a connecting road segment 306. For example, the connecting road segment 306 may be one of the connecting road segments 212 discussed above in connection with process 200. More specifically, the connecting road segment 306 may include multiple lanes, including a first lane 308, a second lane 310, a third lane 312, a fourth lane 314, a fifth lane 316, a sixth lane 318, and a parking lane that includes a number of parking spaces 320. Also specifically, a centerline may separate the third lane 312 from the fourth lane 314, and lane markers 324 may be provided between the other lanes. For example, the first lane 308 may be a turn lane where traffic may turn right out of the road segment 306, and the second lane 310 and the third lane 312 may be utilized for traffic traveling in the same direction, e.g., from right to left in the illustrated direction. In contrast, the fourth lane 314, the fifth lane 316, and the sixth lane 318 may facilitate traveling in the opposite direction, e.g., from left to right in the illustrated direction. A parking spot 320 may be located for parallel parking adjacent to the sixth lane 318.
[0041] At operation 326, the process 300 may include identifying a subset of lanes within the road segment. For example, in the example accompanying operation 326, the process 300 may identify a subset 328 that includes lanes including the fifth lane 316, the sixth lane 318, and the parking spot 320. In an implementation, at least three lanes may be selected, for example, because safe navigation of an autonomous vehicle may require knowledge of objects, obstacles, and / or the like within the lane in which the vehicle is traveling and adjacent lanes on either side. In other examples, more or fewer lanes may be included in the subset. In a non-limiting example, only the lanes including the sixth lane 318 and the parking spot 320 may be used as the subset of lanes. Additionally, although the road segment 306 is a connecting road segment, similar techniques may be used to identify segments or portions of junction segments. As a non-limiting example, the convergence of two connecting road segments at a junction may be identified by operation 326, for example, excluding other connecting roads that meet at the junction. In at least some instances where at least one lane of a segment is similar to other segments, those lanes may be prioritized over other lanes for driving and / or additional restrictions may be imposed on such other lanes. Other subsets or groupings of features within a segment are also contemplated, including other features and attributes described herein.
[0042] At operation 330, process 300 may include comparing the identified lanes to verified lane combinations and / or stereotypes. Operation 330 may be similar to operation 214 described above. For example, each of the lane combinations, including lane combination 328, may be compared to mapped data from a navigable region, such as verified map data 106 discussed above. The diagram accompanying operation 330 illustrates lane combination 328 from lane segments 306 and associated lane data 332. In a non-limiting example, lane data 332 may include any characteristic, attribute, and / or variable capable of quantifying lane combination 328, including, but not limited to, heading for the lane, extent of the lane, lane marker information, speed limit information, orientation of parking spot 320, and / or other data associated with lane combination 328.
[0043] The example accompanying operation 330 also illustrates verified lane data 334. For example, verified lane data may include information about lane combinations identified within a navigable region, such as within verified map data 106. In some examples, each lane combination in verified map data 106 may be stored separately with associated data, such as lane data 332. Operation 330 may compare lane data 332 associated with lane combination 328 in the new region to each mapped lane combination, such as within verified lane data 334, to determine a correspondence between lane combination 328 and the lane combination for which autonomy has been verified. However, in other implementations, verified lane data 334 may include information of classes or groups of similar lane combinations. In an example, an autonomous vehicle may utilize the capability to navigate on the two right-most lanes of a five-lane highway with a 65 mph speed limit as well as on the two right-most lanes of an eight-lane highway with a 70 mph speed limit. Thus, for example, the verified lane data 334 may include a lane stereotype encompassing a two-lane configuration with a speed limit in the range of 65-70 mph. Of course, this is just one simple example, and additional and / or different attributes, ranges, and / or the like may be utilized to develop stereotypes. In some examples, utilizing stereotypes may reduce computational burden, for example, by comparing lane combinations in a new region to fewer mapped combinations. In at least some examples, such verified lane data 334 may include verified (actual, successful) driving behaviors of one or more autonomous vehicles. Such driving behaviors and similarity scores may be utilized to impose one or more constraints on driving in the newly presented segment.
[0044] At operation 336, the process 300 may include identifying fewer than all lanes as navigable. For example, the process 300 may include determining whether a lookalike exists in the verified map data for each combination of lanes, including combination 328. In some examples, those areas where a lookalike exists may be indicated as drivable areas 338 (e.g., potentially navigable by an autonomous vehicle) and those areas where a lookalike does not exist may be indicated as non-drivable areas 340 (e.g., not navigable by an autonomous vehicle). In the example accompanying operation 336, the lanes including the fifth lane 316, the sixth lane 318, and the parking spot 320 are indicated as drivable areas 338, while the first lane 308, the second lane 310, the third lane 312, and the fourth lane 314 are indicated as non-drivable areas 340.
[0045] For example, as indicated above, the road segment 306 may be identified as a non-drivable road segment because, for example, the map data of the navigable area may not include a road segment with sufficiently the same or similar characteristics that the road segment 306 would be identified as an analog of a verified navigable road segment. As a result of the process 300, the techniques described herein may identify additional portions of new, e.g., unverified, areas in which the autonomous vehicle may operate. In an example, the autonomous vehicle may be equipped with information about the drivable area 338 and therefore may traverse the road segment 306 only within that area. In the illustrated example, the autonomous vehicle may travel only in the fifth lane 316 or the sixth lane 318 and / or may park or otherwise stop within one of the parking spots 320. Thus, in the context of a ride-hailing service, the vehicle may provide pick-up and / or drop-off services at, for example, the parking spot 320, even though it may not be verified to travel all lanes of the road segment 306. Additionally, as the vehicle navigates the drivable region 338, it may generate sensor data, for example utilizing sensors mounted on the vehicle, to enable mapping of the non-drivable region 340.
[0046] 4 shows a block diagram of an example system for implementing the techniques described herein. In at least one example, the system 400 can include a vehicle 402 that is an autonomous vehicle, such as an autonomous vehicle described herein. The vehicle 402 can include a vehicle computing device 404, one or more sensor systems 406, one or more emitters 408, one or more communication connections 410, at least one direct connection 412, and one or more drive modules 414.
[0047] The vehicle computing device 404 may include one or more processors 416 and a memory 418 communicatively coupled to the one or more processors 416. In the illustrated example, the vehicle 402 is an autonomous vehicle. However, the vehicle 402 may be any other type of vehicle or any other system having at least an image capture device (e.g., a camera-enabled smartphone). In the illustrated example, the memory 418 of the vehicle computing device 404 stores a localization element 420, a perception element 422, a planning element 424, one or more system controllers 426, and one or more maps 428. Although shown in FIG. 4 as residing in the memory 418 for illustrative purposes, it is contemplated that the localization element 420, the perception element 422, the planning element 424, the one or more system controllers 426, and the one or more maps 428 may additionally or alternatively be accessible to the vehicle 402 (e.g., stored remotely).
[0048] In at least one example, the localization element 420 can include functionality to receive data from the sensor system 406 to determine a location of the vehicle 402. For example, the localization element 420 can include and / or request / receive a map of the environment and subsequently determine a location of the autonomous vehicle within the map. In some examples, the localization element 420 can utilize simultaneous localization and mapping (SLAM) or calibration, localization and mapping, simultaneously (CLAMS) to receive image data, LIDAR data, radar data, IMU data, GPS data, wheel encoder data, etc. to precisely determine a location of the autonomous vehicle. In some examples, the localization element 420 can provide data to various elements of the vehicle 402 to determine an initial location of the autonomous vehicle for generating candidate trajectories as discussed herein.
[0049] In some examples, the perception element 422 may include functionality to perform object detection, segmentation, and / or classification. In some examples, the perception element 422 may provide processed sensor data indicative of the presence of an entity proximate to the vehicle 402 and / or the classification of the entity as an entity type (e.g., automobile, pedestrian, cyclist, animal, building, tree, road surface, curb, sidewalk, unknown, etc.). In additional and / or alternative examples, the perception element 422 may provide processed sensor data indicative of one or more features associated with the detected entity and / or the environment in which the entity is located. In some examples, the features associated with the entity may include, but are not limited to, x-position (global location), y-position (global location), z-position (global location), direction, entity type (e.g., classification), velocity of the entity, range (size) of the entity, etc. The features associated with the environment may include, but are not limited to, the presence of other entities in the environment, the state of other entities in the environment, time of day, day of the week, season, weather conditions, indication of darkness / light, etc.
[0050] In general, the planning element 424 can determine a path that the vehicle 402 will follow to traverse an environment. For example, the planning element 424 can determine various routes and trajectories, and various levels of detail. For example, the planning element 424 can determine a route for traveling from a first location (e.g., a current location) to a second location (e.g., a target location). For purposes of this discussion, the route can be a series of waypoints for traveling between two locations. As non-limiting examples, the waypoints include roads, intersections, Global Positioning System (GPS) coordinates, and the like. Additionally, the planning element 424 can generate instructions for guiding the autonomous vehicle from the first location to the second location along at least a portion of the route. In at least one example, the planning element 424 can determine how to guide the autonomous vehicle from a first waypoint in the series of waypoints to a second waypoint in the series of waypoints. In some examples, the instructions can be a trajectory, or a portion of a trajectory. In some examples, multiple trajectories can be generated substantially simultaneously (eg, within technical tolerances) according to a receding horizon technique.
[0051] The system controller 426 may be configured to control the steering, propulsion, braking, safety, emitter, communication, or other systems of the vehicle 402. The system controller 426 may communicate with and / or control corresponding systems of the drive module 414 and / or other elements of the vehicle 402.
[0052] A map 428 may be utilized by the vehicle 402 to navigate within the environment. For purposes of this discussion, a map may be any number of data structures modeled in two, three, or N dimensions that may provide information about the environment, such as, but not limited to, topology (such as intersections), paths, mountainous regions, roads, terrain, and the general environment. In some examples, the map may include, but is 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 mesh, individual "surfels" (e.g., polygons associated with individual colors and / or intensities), reflectance information (e.g., specular reflection information, retroreflection information, BRDF information, BSSRDF information, etc.). In one example, the map may include a three-dimensional mesh generated utilizing the techniques discussed herein. In some examples, the map can be stored in a tiled format, with each tile of the map representing a separate portion of the environment, and can be loaded into the working memory as needed. In at least one example, the map 428 can include at least one map (e.g., an image and / or a mesh) generated according to the techniques discussed herein. For example, the map 428 can include information about only drivable areas in the new environment, where the drivable areas are determined according to the techniques described herein. In some examples, the map 428 can include information about the drivable areas, while other implementations can include map data for the entire area, including map data for non-drivable areas. In some examples, the vehicle 402 can be controlled based at least in part on the map 428. That is, the map 428 can be utilized in conjunction with the localization element 420, the perception element 422, and / or the planning element 424 to determine the vehicle's position, identify objects in the environment, and / or generate a route and / or trajectory for navigating within the environment.Additionally, data from sensor system 406 and / or other data can be utilized to augment, supplement, and / or generate the map data included in map 428.
[0053] In some examples, the map 428 may be stored on a remote computing device (such as computing device 432) accessible via the network 430. In some examples, multiple maps 428 may be stored, for example, based on a characteristic (e.g., type of entity, time of day, day of the week, season, etc.). Storing multiple maps 428 may have similar memory requirements but may increase the speed at which data in the heat map may be accessed.
[0054] In some examples, some or all aspects of the elements discussed herein may include any models, algorithms, and / or machine learning algorithms. For example, in some examples, the elements in memory 418 (and memory 436, discussed below) may be implemented as neural networks.
[0055] As discussed herein, an exemplary neural network is a biologically inspired algorithm that passes input data through a series of connected layers to generate an output. Each layer in a neural network may also contain other neural networks, or may contain any number of layers (convolutional or not). As may be understood in the context of this disclosure, a neural network may utilize machine learning, which may refer to a broad class of such algorithms in which an output is generated based on learned parameters.
[0056] Although discussed in the context of neural networks, any type of machine learning may be utilized consistent with this disclosure. For example, machine learning algorithms may include, but are not limited to, regression algorithms (e.g., ordinary least squares regression (OLSR), linear regression, logistic regression, stepwise regression, multivariate adaptive regression splines (MARS), local estimation scatterplot smoothing (LOESS)), instance-based algorithms (e.g., ridge regression, least absolute shrinkage and selection operator (LASSO), elastic net, least angle regression (LARS)), decision tree algorithms (e.g., classification and regression trees (CART), iterative dichotomy 3 (ID3), chi-squared automated interaction detection (CHAID), decision strain, conditional decision tree), Bayesian algorithms (e.g., naive Bayes, Gaussian naive Bayes, multinomial naive Bayes, average-one dependent estimator (AODE), Bayesian belief network (BNN), Bayesian network), clustering algorithms (e.g., k-means, k-medians, expectation maximization (EM), hierarchical clustering), association rule learning algorithms (e.g., The learning algorithms may include perceptrons, backpropagation, Hopfield networks, radial basis function networks (RBFN), etc.), deep learning algorithms (e.g., deep Boltzmann machines (DBM), deep belief networks (DBN), convolutional neural networks (CNN), stacked autoencoders), dimensionality reduction algorithms (e.g., principal component analysis (PCA), principal component regression (PCR), partial least squares regression (PLSR), Sammon mapping, multidimensional scaling (MDS), projection pursuit, linear discriminant analysis (LDA), mixed discriminant analysis (MDA), quadratic discriminant analysis (QDA), flexible discriminant analysis (FDA)), ensemble algorithms (e.g., boosting, bootstrap aggregation (bagging), AdaBoost, stacked generalization (blending), gradient boosting machines (GBM), gradient boosting regression trees (GBRT), random forests), support vector machines (SVM), supervised learning, unsupervised learning, semi-supervised learning, etc.
[0057] Additional example architectures include neural networks such as ResNet70, ResNet101, VGG, DenseNet, and PointNet.
[0058] In at least one example, the sensor system 406 can 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.), and the like. The sensor system 406 can include multiple instances of each of these or other types of sensors. For example, the LIDAR sensors can include individual LIDAR sensors positioned at the corners, front, rear, sides, and / or top of the vehicle 402. As another example, the camera sensors can include multiple cameras positioned at various locations about the exterior and / or interior of the vehicle 402. The sensor system 406 can provide input to the vehicle computing device 404. Additionally or alternatively, the sensor system 406 may transmit sensor data over one or more networks 430 to one or more computing devices at a particular frequency, such as after a predetermined time has elapsed, or in near real-time.
[0059] Emitters 408 may be configured to emit light and / or sound. Emitters 408 in this example may include interior audio and visual emitters for communicating with occupants of vehicle 402. In an example, but not limited to, interior emitters may include speakers, lights, signs, display screens, touch screens, haptic emitters (e.g., vibration and / or force feedback), mechanical actuators (e.g., seat belt tensioners, seat positioners, head rest positioners, etc.). Emitters 408 in this example also include exterior emitters. In an example, but not limited to, exterior emitters in this example may include lights or other indicators of vehicle operation (e.g., indicator lights, signs, light arrays, etc.) to indicate direction of travel, and / or one or more audio emitters (e.g., speakers, speaker arrays, horns, etc.) for audible communication with pedestrians or other nearby vehicles, one or more of which may include acoustic beam steering technology.
[0060] The communication connection 410 enables communication between the vehicle 402 and one or more other local or remote computing devices, such as the computing device 432. For example, the communication connection 410 may facilitate communication with other local computing devices on the vehicle 402 and / or the drive module 414. The communication connection 410 may also enable the vehicle to communicate with other nearby computing devices (e.g., other nearby vehicles, traffic lights, etc.). The communication connection 410 also enables the vehicle 402 to communicate with remote teleoperation devices or other remote services.
[0061] The communication connections 410 may include physical and / or logical interfaces for connecting the vehicle computing device 404 to other computing devices or networks, such as the network 430. For example, the communication connections 410 may enable Wi-Fi based communications over frequencies defined by the IEEE 402.11 standard, short-range radio frequencies such as Bluetooth, cellular communications (e.g., 2G, 3G, 4G, 4G LTE, 5G, etc.), or any suitable wired or wireless communication protocol that allows each computing device to interface with other computing devices.
[0062] The drive module 414 can include many vehicle systems, including a high voltage battery, a motor to propel the vehicle, an inverter to convert direct current from the battery to alternating current for use in other vehicle systems, a steering system including a steering motor and steering rack (which can be electric), a braking system including hydraulic or electric actuators, a suspension system including hydraulic and / or pneumatic elements, a stability control system to distribute braking forces to mitigate loss of traction and maintain control, an HVAC system, lighting (e.g., lighting such as head / tail lights that illuminate the exterior surrounding the vehicle), and one or more other systems (e.g., cooling systems, safety systems, on-board charging systems, other electrical elements such as DC / DC converters, high voltage junctions, high voltage cables, charging systems, charging ports, etc.). In addition, the drive module 414 can include a drive module controller that can receive and pre-process data from the sensor systems and control the operation of various vehicle systems. In some examples, the drive module controller can include one or more processors and a memory communicatively connected to the one or more processors. The memory can store one or more modules and perform various functions of the drive module 414. Additionally, the drive modules 414 also include one or more communication connections that enable each drive module to communicate with one or more other local or remote computing devices.
[0063] In some examples, the vehicle 402 can have a single drive module 414. In at least one example, when the vehicle 402 has multiple drive modules 414, the individual drive modules 414 can be located at opposite ends of the vehicle 402 (e.g., front and rear, etc.). In at least one example, the drive module 414 can include one or more sensor systems to detect conditions surrounding the drive module 414 and / or the vehicle 402. In examples, but not limited to, the sensor systems can include one or more wheel encoders (e.g., rotary encoders) that detect the rotation of the wheels of the drive module, inertial sensors (e.g., inertial measurement units, accelerometers, gyroscopes, magnetometers, etc.) that measure the orientation and acceleration of the drive module, cameras or other imaging sensors, ultrasonic sensors that acoustically detect objects surrounding the drive module, LIDAR sensors, radar sensors, etc. Some sensors, such as the wheel encoders, can be unique to the drive module 414. In some cases, the sensor systems of the drive module 414 may overlap or complement corresponding systems of the vehicle 402 (e.g., the sensor system 406).
[0064] In at least one example, the localization element 420, the perception element 422, and / or the planning element 424 can process the sensor data as described above and transmit their respective outputs to the computing device 432 via the network 430. In at least one example, the localization element 420, the perception element 422, and / or the planning element 424 can transmit their respective outputs to one or more computing devices 432 at a particular frequency, such as after a predetermined period of time, in near real time, etc. In some examples, the vehicle 402 can transmit raw sensor data to the computing device 432. In other examples, the vehicle 402 can transmit processed sensor data and / or a representation of the sensor data to the computing device 432. In some examples, the vehicle 402 can transmit sensor data to the computing device 432 at a particular frequency, such as after a predetermined period of time, in near real time, etc. In some cases, the vehicle 402 may transmit the sensor data (raw or processed) to the computing device 432 as one or more log files.
[0065] The computing device 432 can receive sensor data (raw or processed) and generate and / or update a map based on the sensor data. For example, the computing device 432 can compare map data of a new area, e.g., where the autonomous vehicle 402 has not been verified for driving, with verified map data, e.g., from an area where the autonomous vehicle 402 has been verified or otherwise configured for driving, to identify segments of the new area in which the autonomous vehicle 402 can navigate. For example, the computing device 432 can generate updated map data including the area determined to be navigable and provide or otherwise make the updated map data available to the vehicle 402. Thus, the vehicle can be controlled to identify shadows and generate a shadow-free textured 3D map of new, e.g., geographical areas in the image not previously mapped for navigation.
[0066] 1 。 In at least some examples, the computing device 432 can include one or more processors 434 and a memory 436 communicatively coupled to the one or more processors 434. The computing device 432 can also include first map data 438 and second map data 440. The second map data 440 can also include stereotype data 442. Also, in the illustrated example, the memory 436 of the computing device 432 stores the map segmentation component 116, the segment analysis component 118, and the evaluation / mapping component 120. In at least one example, the computing device 432 can include some or all of the functionality of the evaluation system 102 of FIG.
[0067] The map segmentation element 116 is described above in relation to FIG. 1. Generally, the map segmentation element can include feature identification elements and / or machine learning algorithms trained to identify segments of a drivable surface. In some cases, the map segmentation element 116 can receive map data, such as the first map data 438 and / or the second map data 440, and analyze the data to determine segments, such as connecting road segments and junction segments where the connecting road segments converge. In implementations, the map segmentation element 116 can also identify sub-regions of a segment, such as, but not limited to, lane combinations, portions of intersections, etc.
[0068] The segment analysis element 118 is described above in connection with FIG. 1. Generally, the segment analysis element 118 can compare map segments from the map data of the new region, e.g., the first map data 438, with map segments from the map data of the verified region, e.g., the second map data 440. For example, the segment analysis element 118 can determine whether a verified segment in the map data of the new region is similar or similar to a segment from the verified map data. As described herein, because the autonomous vehicle can successfully navigate within the geographic region corresponding to the verified map data, the autonomous vehicle can also successfully navigate over segments of the new region that have similar or the same features, attributes, and / or configurations.
[0069] In some examples, the segment analysis element 118 can also compare map segments from the map data of the new region to stereotypes of segment classes. For example, as described herein, stereotypes such as stereotype data 442 can utilize group segments in which a vehicle may function (or has been proven to function) in the same or similar manner. Additionally, the segment analysis element 118 can generate and / or update the stereotype data 442. For example, the process 600 described herein includes an example of generating new stereotypes based on the operation of the autonomous vehicle 402 within the drivable region.
[0070] The evaluation / mapping element 120 is described above in connection with FIG. 1. Generally, the evaluation / mapping element 120 may aggregate or otherwise evaluate the results of the processing, e.g., comparison, by the segment analysis element 118. For example, the evaluation / mapping element 120 may flag or otherwise identify some portions of the new region as drivable portions and other portions of the new region as non-drivable portions. The evaluation / mapping element 120 may also provide a score or other metric generally indicative of the drivability of the new region and / or segments of the region. For example, the score metric may be based at least in part on the percentage of the new region that is expected to be drivable based on a comparison of the segments of the new region to the segments in the mapped region.
[0071] In the example of FIG. 4, the first map data 438 may include data about the new region, such as the map data 104 for the new region. As described, the first map data 438 may be any of many types of 2D, 3D, or other map data from which characteristics of the drivable surface may be obtained. In examples, the first map data may include satellite imagery, sensor-generated data, or other map data. The second map data 440 may be the verified map data 106 and may be similar or the same as some or all of the map 428 described above. For example, the second map data 440 may be detailed map data associated with an area in which the vehicle 402 may operate autonomously. As described herein, the second map data 440 may include 2D or 3D data and may be utilized by the localization element 420, the planning element 424, and / or other elements of the vehicle 402 to navigate within the mapped area. 4, the second map data 440 may also include or be associated with stereotype data 442. As described herein, the stereotype data 442 may include information, such as parameters, values, and / or ranges, that may be utilized to characterize similar segments of the map data. In an example, the first map data 438 and the second map data 440 are shown as being associated with the computing device 432. In an implementation, one or both of the first map data 438 and the second map data 440 may be stored in the memory 436 and / or accessible by the computing device 432. In a non-limiting example, some or all of the second map data 440 may be stored in the vehicle 402, such as the map 428.
[0072] The processor 416 of the vehicle 402 and the processor 434 of the computing device 432 may be any suitable processor capable of executing instructions to process data and perform operations as described herein. In examples, without being limited thereto, the processors 416, 434 may include one or more central processing units (CPUs), graphics processing units (GPUs), or any other device or portion of a device that processes electronic data and converts the electronic data into registers and / or other electronic data that may be stored in 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 so long as they are configured to implement encoded instructions.
[0073] Memory 418 and memory 436 are examples of non-transitory computer readable media. Memory 418 and memory 436 can store instructions, programs, and / or data to implement the operating system and one or more software applications, functions resulting from the methods and various systems described herein. In various implementations, memory can be implemented utilizing any suitable memory technology, such as static random access memory (SRAM), synchronous dynamic RAM (SDRAM), non-volatile / flash type memory, or any other type of memory capable of storing information. The architectures, systems, and individual elements described herein can include many other logical, programmatic, and physical elements, and those shown in the accompanying figures are merely examples relevant to the discussion herein.
[0074] 4 is depicted as a distributed system, it should be noted that in alternative examples, elements of vehicle 402 may be associated with computing device 432 and / or elements of computing device 432 may be associated with vehicle 402. That is, vehicle 402 may conversely perform one or more functions associated with computing device 432.
[0075] 2, 3, 5, and 6 illustrate exemplary processes according to embodiments of the disclosure. These processes are depicted as logical flow graphs, each operation of which represents a sequence of operations that can be implemented in hardware, software, or a combination thereof. In the context of software, the operations represent computer-executable instructions stored on one or more computer-readable storage media that, when executed by one or more processors, perform the recited operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, etc. that perform particular functions or implement particular abstract data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described operations can be combined in any order and / or in parallel to implement the process.
[0076] 5 illustrates an example process 500 for determining drivable segments of a new area and controlling an autonomous vehicle according to map data generated based on the drivable segments. For example, some or all of process 500 may be performed by one or more elements illustrated in FIG. 4, as described herein. For example, some or all of process 500 may be performed by computing device 432 and / or autonomous vehicle 402.
[0077] At operation 502, process 500 may include receiving map data of an unverified region. For example, the unverified region may be a new geographic region in which an autonomous vehicle has not yet been verified for travel. In some implementations, the new region may be an extension of an existing geographic region, for example, to extend a geofence or other virtual boundary associated with the drivable region. In implementations, the map data received at operation 502 may be any type of map data from which characteristics and / or details of a drivable surface may be determined. In some examples, the map data may include two-dimensional and / or three-dimensional information about the new region.
[0078] At operation 504, process 500 may include receiving map data of the verified area. For example, an autonomous vehicle, such as vehicle 402, may require extensive and detailed map data to autonomously navigate within an environment. For example, such map data may include three-dimensional mesh data of objects within the mapped area, including, but not limited to, drivable surfaces, obstacles, buildings, curbs, etc. Furthermore, such map data may include any information and / or data that may affect travel on the drivable surfaces. For example, the map data of the verified area received at operation 504 may include speed limit information, traffic control information, and / or any other information necessary to safely and / or legally travel the verified area. In at least some examples, previous autonomous operations on such segments may be associated with one or more segments.
[0079] At operation 506, the process 500 can include determining segments of the drivable surface within the unverified region. For example, the map segmentation component 116 can identify portions of the drivable surface within the unverified region. In a non-limiting example, such segments can include junctions of connecting roads and / or connecting roads extending between junctions. In some implementations, the segments can be a subset of the junctions and / or connecting road segments. In the example of FIG. 3 described herein, the segments can include groups of traffic lanes within the connecting road segments or at the junctions. In some examples, the map segmentation component 116 can perform image processing techniques to identify the drivable surface and / or its segments. In at least some examples, such segments can be determined based on one or more clustering algorithms.
[0080] At operation 508, processing may include, for each segment, determining whether a segment is similar to a segment or stereotype from the verified region. For example, the segment analysis element 118 may compare a segment from the new region (as determined at operation 506) to a mapped segment from the verified region. For example, the segment analysis element 118 may determine a similarity score or other metric. Such a similarity score may be, for example, a distance (e.g., weighted Euclidean distance) between one or more features / parameters associated with the two segments. In some examples, the segment analysis element 118 may determine whether values associated with certain features or attributes of a segment from the new region correspond to those features / attributes in a segment of the mapped data, as described herein.
[0081] If, at operation 508, an individual segment is determined to be similar to a segment or stereotype from the verified region (e.g., the similarity score or metric is equal to or greater than a threshold), then, at operation 510, the process 500 can identify the segment as potentially drivable. For example, as described herein, the map data of the verified region can include segments of drivable region that an autonomous vehicle can easily navigate. In at least some examples, the level of autonomy associated therewith can be based at least in part on the similarity score. As described in detail above, one or more features of autonomy can be constrained with respect to the new region because the similarity scores differ. Thus, when the segment analysis element 118 determines that a segment of the new region is substantially similar to a segment of the verified region, the process 500 can determine that the autonomous vehicle is also likely to operate successfully on a similar segment of the new region.
[0082] In contrast, if at operation 508 an individual segment is determined to be not similar to a segment or stereotype from the verified region (e.g., the similarity score is less than a threshold score), then at operation 512 process 500 may include identifying the segment as nearly non-drivable. Thus, operations 508, 510, 512 may be utilized to determine whether a segment within the new region is drivable or non-drivable. In an implementation, the extent of the entire drivable surface is broken down into separate segments, and each segment is identified as drivable or non-drivable.
[0083] At operation 514, process 500 may include generating new, e.g., unverified area map data to include drivable and non-drivable areas. For example, the unverified area map data received at operation 502 may be supplemented to include flags, tags, or other indications associated with road segments that indicate whether such segments are drivable or non-drivable and / or any additional restrictions.
[0084] At operation 516, process 500 may include receiving driving data for the verified region. For example, because segments in the unverified region are indicated as drivable based on the similarity of the segments to segments in the verified region, the driving data for controlling the vehicle in the segments in the verified region may be useful for navigating similar unverified segments. In some examples, the driving data may be limited to only those segments from the verified region that are deemed similar to the segments in the unverified region, although in other implementations more or less driving data may be received.
[0085] At operation 518, the process 500 may include generating a driving policy. For example, a driving policy may be a set of rules, controls, restrictions, or other data that enables or otherwise informs autonomous driving by a vehicle, such as vehicle 402. The driving policy may be implemented by the vehicle when navigating potentially drivable segments of the new region. Thus, for example, the driving policy may include information to assist the vehicle in potentially drivable segments and avoid non-drivable segments. In some examples, the driving policy may include all features, controls, etc. utilized to navigate autonomously within the verified region. In other implementations, the driving policy may only include information about controlling the autonomous vehicle within those segments that match segments in the new region. Additionally, the driving policy may be based at least in part on the degree of similarity. For example, for segments in the new region that are not an exact match but are considered similar to segments in the verified region, the driving policy may include information about limited capabilities for traversing that segment in the new region. For example, the driving policy may limit the speed at which the vehicle may travel the segment, may refrain from the vehicle from performing certain actions, and so on.
[0086] At operation 520, process 500 may include controlling the vehicle to drive within the drivable portion of the unverified region based on the driving policy. For example, the map data generated at operation 514 may be uploaded or made available to an autonomous vehicle, such as autonomous vehicle 402, which may utilize the map data associated with the drivable to navigate the new region. Autonomous vehicle 402 may also utilize the driving data received at operation 516. As described herein, the autonomous vehicle may be expected to operate in segments indicated as drivable. Additionally, in some implementations, as the vehicle navigates the new region within the drivable segment, the vehicle may collect sensor data, e.g., utilizing one or more sensor systems mounted on or otherwise associated with the vehicle, and such sensor data may be utilized to supplement the map, e.g., by obtaining information about the region indicated as non-drivable, and / or to obtain additional, more detailed information about the region indicated as drivable. Also, as described herein, the functionality of vehicle 402 may be limited to segments of the unverified region based, e.g., on similarity scores and / or other parameters.
[0087] 6 illustrates an example process 600 for validating drivability of a new area and generating a stereotype or other segment classification. In some examples, process 600 may be performed at least in part by autonomous vehicle 402. However, some or all of process 600 may be performed by other vehicles under the system, and autonomous vehicle 402 is not limited to implementing process 600.
[0088] At operation 602, process 600 includes receiving information about potentially drivable segments of an unverified region. For example, as just described with respect to FIG. 5, techniques described herein may be utilized to determine segments of roads or other drivable surfaces on which an autonomous vehicle is expected to be operable, e.g., because the segments of the new region are substantially the same as or fit a stereotype or group associated with a verified map segment. In some examples, map data for the unverified region may be updated to identify those potentially drivable segments.
[0089] At operation 604, process 600 may include controlling the vehicle along the potential drivable segment utilizing controls associated with the verified region. For example, an autonomous vehicle, such as autonomous vehicle 402, may include functions, rules, and / or control logic that enable the vehicle to navigate the verified, e.g., mapped, segments. In implementation, these controls may be implemented at operation 604 to control the vehicle within segments determined to be similar to those from the mapped region.
[0090] At operation 606, the process 600 may include determining whether the vehicle performs acceptably for each segment. For example, the techniques described herein may identify segments where the autonomous vehicle is expected to operate well, but the vehicle's operation on those segments requires further validation, e.g., to confirm that it actually operates well. In some implementations, the vehicle may generate information when attempting to navigate locations indicated as drivable portions. In some examples, correct navigation within a segment may include traversing from a start or origin to a destination while passing through the segment. In other examples, acceptable operation may include a time element, e.g., determining that the vehicle travels from an origin to a destination within a certain time. Acceptable performance may also consider whether the vehicle meets other driving parameters, including, but not limited to, safety parameters or other parameters, such as maintaining a minimum distance from objects in the environment, maintaining a time gap between a preceding vehicle, and maintaining a time to collision below a threshold time. In yet another example, parameters that affect passenger comfort may be evaluated to determine whether the vehicle is successful. For example, consideration may be given to the number and severity of accelerations and decelerations, the severity of maneuvers or turns as the vehicle traverses the segment, etc. In those instances where additional driving restrictions are imposed, such restrictions may be gradually removed (e.g., by increasing the maximum speed limit, allowing more complex maneuvers, etc.) based on one or more successful drives on such segments.
[0091] If, at operation 606, it is determined that the vehicle performs acceptably on the individual segment, then process 600 may include verifying drivability of the segment, at operation 608. For example, a segment of the new area identified utilizing the techniques described herein may be designated a verified segment if the vehicle performs according to one or more expectations or requirements.
[0092] Alternatively, if at operation 606 it is determined that the vehicle does not perform acceptably in an individual segment, then at operation 610 process 600 may include determining differences between the segment and the verified segment or stereotype to which the segment was compared. For example, as discussed herein, some implementations may determine that segments are similar to one another based on their conformance with stereotypes and / or despite differences in some of their attributes. Operation 610 may identify those differences.
[0093] At operation 612, the process 600 may include updating the stereotype data / identifying new stereotypes. For example, when a vehicle does not perform as expected in a segment identified or believed to be a drivable segment, it may be determined that the differences between that segment and a segment or stereotype believed to be similar are significant. Thus, in some examples, the segment analysis element 118 may update the stereotype, e.g., such that values or attributes associated with segments in the new region are no longer included in the stereotype. In other examples, other, e.g., previously unconsidered, attributes may also be considered. When such new or different attributes are identified, a new stereotype may be generated to include different ranges or values associated with the attribute.
[0094] Thus, with the techniques described herein, the capabilities of an autonomous vehicle may be more easily extended to new geographic regions. For example, segments of map data may be compared to determine a similarity between new and already mapped regions. In implementations, information about different features and attributes other than those attributable to segments of drivable surfaces may also be considered, as detailed above. In a non-limiting example, the techniques described herein may also include filtering the new region to determine a baseline compatibility of the autonomous vehicle with the new region. For example, validated map data for a first city in a first weather with first driving attributes may be more easily compared to regions with the same weather and attributes.
[0095] Illustrative clauses A: An exemplary computer-implemented method includes receiving first map data including information about a first drivable surface in a first geographic region and one or more traffic characteristics associated with the first drivable surface, the one or more traffic characteristics including one or more of a number of traffic lanes, a traffic lane type, a lane geometry, or traffic control information; determining a plurality of first segments of the first drivable surface based at least in part on the one or more traffic characteristics; and determining a first segment of the plurality of first segments based at least in part on the one or more traffic characteristics. The method includes determining a plurality of first segment parameters; receiving second map data associated with a second geographic region navigable by the autonomous vehicle, the second map data including information about a plurality of second segments of a second drivable surface in the second geographic region; determining a similarity metric indicative of a similarity between the first segment and one or more of the plurality of second segments based at least in part on the plurality of first segment parameters and the second map data; and determining that the autonomous vehicle is able to navigate the first segment based at least in part on the similarity metric.
[0096] B: The computer-implemented method of example A, wherein the similarity metric is based at least in part on one or more traffic characteristics associated with the first segment and one or more second traffic characteristics associated with the second segment, the method further including controlling the autonomous vehicle to traverse the second segment based at least in part on the similarity metric.
[0097] C: The computer-implemented method of Example A or Example B, wherein the plurality of second segments includes a plurality of representative segments, and determining the similarity metric includes comparing one or more traffic features to one or more second traffic features associated with the second segments, and the method further includes receiving driving data associated with an autonomous vehicle driving the second segment, and controlling the autonomous vehicle to traverse the first segment based at least in part on the driving data.
[0098] D: The computer-implemented method of any one of Examples A-C, wherein the first segment includes a road segment including a plurality of lanes, and wherein determining the similarity metric is based at least in part on comparing a subset of the plurality of lanes to a combination of lanes in the second map data, and determining that the autonomous vehicle can navigate the first segment includes determining that the autonomous vehicle can navigate a portion of the first segment that includes the subset of the plurality of lanes.
[0099] E: An exemplary system includes one or more processors and one or more non-transitory computer-readable media storing instructions executable by the one or more processors, the instructions including steps of: receiving first map data including information about a first drivable surface in a first geographic region; determining a plurality of first segments of the first drivable surface, the first segment of the plurality of first segments being associated with one or more first parameters; and receiving second map data associated with a second geographic region, the second map data being ... determining a similarity metric indicative of a similarity between the first and second segments based at least in part on the one or more first parameters and the one or more second parameters; determining a region of the first drivable surface navigable by the autonomous vehicle based at least in part on the similarity metric; and controlling the autonomous vehicle to drive the region.
[0100] F: The system of Example E, wherein the one or more first parameters include at least one of a number of traffic lanes, a traffic lane type, a width, a length, a slope, a curvature, or traffic control information associated with the first segment.
[0101] G: The system of Example E or Example F, wherein the operations further include determining a second region of the first drivable surface associated with the area to be avoided by the autonomous vehicle based at least in part on a similarity metric that is less than a threshold similarity, and generating updated map data for the first drivable surface including the area and the second area.
[0102] H: A system of any one of Examples E to G, wherein the plurality of second segments includes a subset of all segments of the second map data that represent representative segments of the second map data, and the step of determining the similarity is based at least in part on comparing values of one or more first segment parameters to one or more of the second parameters.
[0103] I: The system of any one of Examples E to H, wherein the operations further include determining that a maximum similarity metric between the first segment and any of the plurality of second segments is less than a threshold similarity, and performing at least one of updating the plurality of second segments or generating a new representative segment based at least in part on the maximum similarity metric being less than the threshold similarity.
[0104] J: The system of any one of Examples E to I, wherein the operation further includes determining one or more limits for controlling the second vehicle based at least in part on the similarity metric, the one or more limits including a maximum speed limit.
[0105] K: In the system of any one of Examples E to J, the step of determining a plurality of first segments of the first drivable surface includes a step of clustering portions of the first drivable surface based at least in part on one or more first parameters, the one or more first parameters including at least one of a speed limit, a width of at least a portion of a lane, a number of lanes, a non-drivable area, a slope, a curvature, or a permissible type of driving in the driving lane or an adjacent lane within the road segment.
[0106] L: A system of any one of Examples E to K, wherein the first segment includes an intersection, and the one or more first parameters include at least one of a number of road segments connecting to the intersection, an angle between the road segments connecting to the intersection, traffic control information at an end of the road segment at the intersection, or information about an agent crossing at the intersection.
[0107] M: The system of any one of Examples E through L, wherein one of the plurality of drivable surface segments includes a road segment having a plurality of lanes, and a first one of the respective segments includes a subset of the plurality of lanes, and wherein determining an area of the first drivable surface includes determining that the autonomous vehicle can navigate the subset of the plurality of lanes, and that the autonomous vehicle cannot navigate lanes of the plurality of lanes other than the subset.
[0108] N: The system of any one of Examples E to M, wherein the operation further includes receiving driving data associated with the second segment and associating a driving policy with the first segment based at least in part on the similarity score and the driving data.
[0109] O: The system of any one of Examples E to N, wherein the driving policy includes a maximum speed limit.
[0110] P: One or more exemplary non-transitory computer-readable media storing instructions that, when executed, cause one or more processors to perform operations including receiving first map data including first information about a first drivable surface in a first geographic region; determining a plurality of first segments of the first drivable surface based at least in part on the first information; receiving second map data associated with a second geographic region, the second map data including second information about a plurality of second segments of the second drivable surface in the second geographic region that are navigable by the autonomous vehicle; determining, for a first segment of the plurality of first segments, one or more first segment parameters of the first segment; determining a similarity metric indicative of a similarity between the first segment and a second segment of the plurality of second segments utilizing the second map data and the one or more first segment parameters; and determining a driving policy for the autonomous vehicle associated with the first segment based on the similarity metric.
[0111] Q: The non-transitory computer readable medium of example P, wherein determining the plurality of first segments is based at least in part on clustering portions of the first drivable surface, determining the plurality of second segments is based at least in part on clustering portions of the second drivable surface based at least in part on second information, and determining the similarity metric includes comparing a first portion of the first information associated with the first segments and a second portion of the second information associated with the second segments.
[0112] R: The non-transitory computer readable medium of example P or example Q, wherein the driving policy includes refraining from driving, driving under the maximum speed limit, or refraining from one or more actions.
[0113] S: The non-transitory computer-readable medium of any one of Examples P through R, wherein the plurality of second segments includes one or more representative segments, the representative segments among the one or more representative segments being associated with one or more parameters and values, and the step of determining a similarity metric is based at least in part on comparing a value of the first parameter to values for one or more second parameters associated with the second segment.
[0114] T: A non-transitory computer-readable medium of any one of Examples P to S, wherein the operations further include receiving driving data associated with a vehicle navigating the first segment, and the driving policy is further based at least in part on the driving data.
[0115] conclusion One or more examples of the technology described herein have been presented; however, various alternatives, additions, permutations, and equivalents thereof, fall within the scope of the technology described herein.
[0116] In describing the examples, reference is made to the accompanying drawings which form a part of this specification, which show, for illustrative purposes, specific examples of the claimed components. It should be understood that other examples may be utilized and modifications or substitutions, such as structural changes, may be made. Such examples, modifications or substitutions do not necessarily depart from the intended scope associated with the claimed components. Although steps herein may be presented in a certain order, in some cases, the order may be changed such that certain inputs are provided at different times or in a different order without changing the functionality of the described systems and methods. The disclosed procedures may also be performed in different orders. In addition, the various operations described herein need not be performed in the order disclosed, and other examples utilizing alternative orders of operations may be readily implemented. In addition to reordering, in some examples, operations may also be separated into sub-operations with the same results.
Claims
1. one or more processors; one or more non-transitory computer-readable media storing instructions executable by the one or more processors; the instructions further comprising: receiving first map data including information about a first drivable surface in a first geographic region and one or more traffic characteristics associated with the first drivable surface, the one or more traffic characteristics including one or more of a number of traffic lanes, a traffic lane type, a lane geometry, or traffic control information; determining a plurality of first segments of the first drivable surface based at least in part on the one or more traffic characteristics, the first segments comprising a road segment including a plurality of lanes; determining, for a first segment of the plurality of first segments, a plurality of first segment parameters based at least in part on the one or more traffic characteristics; receiving second map data associated with a second geographic region navigable by an autonomous vehicle, the second map data including information about a plurality of second segments of a second drivable surface within the second geographic region; determining a similarity metric indicative of a similarity between the first segment and one or more of the second segments based at least in part on the plurality of first segment parameters and the second map data; determining, based at least in part on the similarity metric, that the autonomous vehicle is capable of navigating a subset of the plurality of lanes and that the autonomous vehicle is incapable of navigating lanes other than the subset of the plurality of lanes; The system is programmed to perform operations including:
2. the similarity metric is based at least in part on the one or more traffic characteristics associated with the first segment and one or more second traffic characteristics associated with the second segment; the operations further include controlling an autonomous vehicle to traverse the first segment based at least in part on the similarity metric. The system of claim 1 .
3. the plurality of second segments includes a plurality of representative segments; The step of determining a similarity metric includes comparing the one or more traffic characteristics to one or more second traffic characteristics associated with the second segment, the operation comprising: receiving driving data associated with an autonomous vehicle driving the second segment; controlling the autonomous vehicle to traverse the first segment based at least in part on the driving data; Further comprising:
3. A system according to claim 1 or 2.
4. The step of determining the similarity metric is based at least in part on comparing a subset of the plurality of lanes to a combination of lanes in the second map data. The system of claim 3.
5. receiving first map data including information about a first drivable surface within a first geographic region; determining a plurality of first segments of the first drivable surface, a first segment of the plurality of first segments associated with one or more first parameters, the first segment comprising a road segment having a plurality of lanes; receiving second map data associated with a second geographic region, the second map data including information about a second plurality of segments of a second drivable surface navigable by the autonomous vehicle, the second segments of the second plurality of segments being associated with one or more second parameters; determining a similarity metric indicative of a similarity between the first segment and the second segment based at least in part on the one or more first parameters and one or more second parameters; determining a first region of the first drivable surface navigable by the autonomous vehicle based at least in part on the similarity metric, wherein determining the first region includes determining that the autonomous vehicle can navigate a subset of the plurality of lanes and that the autonomous vehicle cannot navigate lanes other than the subset of the plurality of lanes; controlling an autonomous vehicle to drive through the first region; 4. A computer-implemented method comprising:
6. the one or more first parameters include at least one of a number of traffic lanes, a traffic lane type, a width, a length, a slope, a curvature, or traffic control information associated with the first segment; 6. The computer-implemented method of claim 5.
7. determining a second region of the first drivable surface associated with a region to be avoided by the autonomous vehicle based at least in part on the similarity metric being less than a threshold similarity; generating updated map data for the first drivable surface including the first area and the second area; 7. The computer-implemented method of claim 5 or 6, further comprising:
8. the plurality of second segments includes a subset of all segments of the second map data that indicates a representative segment of the second map data; the determining of the similarity is based at least in part on comparing values of the one or more first segment parameters to one or more of the second parameters. A computer implemented method according to any one of claims 5 to 7.
9. determining that a maximum similarity metric between the first segment and any of the plurality of second segments is less than a threshold similarity; at least one of updating the plurality of second segments or generating a new representative segment based at least in part on the maximum similarity metric being less than the threshold similarity metric; The computer-implemented method of claim 8 , further comprising:
10. determining one or more restrictions for controlling the second vehicle based at least in part on the similarity metric, the one or more restrictions including at least one of a maximum speed limit or a subset of driving maneuvers; 10. The computer-implemented method of claim 8 or 9, further comprising:
11. determining the plurality of first segments of the first drivable surface includes clustering portions of the first drivable surface based at least in part on the one or more first parameters, the one or more first parameters including at least one of a speed limit, a width of at least a portion of a lane, a number of lanes, a non-drivable area, a slope, a curvature, or a permissible type of driving in a travel lane or adjacent lanes within a road segment; A computer implemented method according to any one of claims 5 to 10.
12. the first segment includes an intersection, and the one or more first parameters include at least one of a number of road segments connecting to the intersection, an angle between the road segments connecting to the intersection, traffic control information at an end of the road segment at the intersection, or information about an agent crossing at the intersection; A computer implemented method according to any one of claims 5 to 11.
13. receiving driving data associated with the second segment; associating a driving policy with the first segment based at least in part on the similarity score and the driving data, the driving policy including at least one of a maximum speed limit, or an identification of one or more driving maneuvers associated with driving; The computer-implemented method of any one of claims 5 to 12, further comprising:
14. One or more non-transitory computer readable media storing instructions that, when executed, cause one or more processors to perform the method of any one of claims 5-13.
Citation Information
Patent Citations
Detection apparatus for position of vehicle
JP1997152343A
Travel path calculation device, travel path calculation method and travel path calculation program
JP2010169440A
Autonomous Driving Certification Generalizer
US20170059335A1
Mobile object control device
WO2019176083A1
