Change detection using curve alignment
09836052 · 2017-12-05
Assignee
Inventors
Cpc classification
B60W60/0016
PERFORMING OPERATIONS; TRANSPORTING
B60W30/0956
PERFORMING OPERATIONS; TRANSPORTING
B62D6/00
PERFORMING OPERATIONS; TRANSPORTING
International classification
G01C22/00
PHYSICS
Abstract
Aspects of the disclosure relate to determining whether a feature of map information. For example, data identifying an object detected in a vehicle's environment and including location coordinates is received. This information is used to identify a corresponding feature from pre-stored map information based on a map location of the corresponding feature. The corresponding feature is defined as a curve and associated with a tag identifying a type of the corresponding feature. A tolerance constraint is identified based on the tag. The curve is divided into two or more line segments. Each line segment has a first position. The first position of a line segment is changed in order to determine a second position based on the location coordinates and the tolerance constraint. A value is determined based on a comparison of the first position to the second position. This value indicates a likelihood that the corresponding feature has changed.
Claims
1. A computer-implemented method comprising: receiving, by one or more computing devices, data identifying a portion of a lane line detected in a vehicle's environment, the data including location coordinates for the portion of the lane line; identifying, by the one or more computing devices, a corresponding feature for the lane line from pre-stored map information based on the location coordinates and a map location of the corresponding feature, wherein the corresponding feature is defined as a curve and associated with a tag identifying a type of the corresponding feature; identifying, by the one or more computing devices, a tolerance constraint based on the tag identifying the type of the corresponding feature; dividing, by the one or more computing devices, the portion of the lane line into two or more line segments, each line segment of the two or more line segments having a first position; changing, by the one or more computing devices, the first position of one of the two or more line segments to determine a second position of the one of the two or more line segments based on the location coordinates and the tolerance constraint, wherein changing the first position includes at least one of shifting in a lateral manner or rotating in an angular manner the first position of the one of the two or more line segments towards a position of a corresponding portion of the curve; determining, by the one or more computing devices, a value based on a comparison of the first position to the second position, wherein the value indicates a likelihood that the corresponding feature has changed; and using, by the one or more processors, the value to maneuver the vehicle in an autonomous driving mode.
2. The method of claim 1, wherein the corresponding feature is identified based on whether a distance between the location coordinates and the map location satisfies a threshold.
3. The method of claim 1, wherein the tolerance constraint limits the at least one of the shifting in the lateral manner or rotating in the angular manner of the one of the two or more line segments.
4. The method of claim 1, further comprising: identifying a second tolerance constraint based on the tag identifying the type of the corresponding feature, and wherein changing the first position is further based on the second tolerance constraint, and the second tolerance constraint prohibits at least one of the shifting in the lateral manner or rotating in the angular manner of the first position of the one of the two or more line segments.
5. The method of claim 1, wherein changing the first position includes both shifting in the lateral manner and rotating in the angular manner the first position of the one of the two or more line segments.
6. The method of claim 1, further comprising comparing the value to one or more threshold values to determine whether the corresponding feature no longer exists.
7. The method of claim 1, further comprising comparing the value to one or more threshold values to determine whether the corresponding feature has been shifted in the lateral manner.
8. The method of claim 1, before segmenting, determining whether the detected object is used to define a driving lane based on a second type of the corresponding feature.
9. A system comprising one or more computing devices, each having one or more processors configured to: receive data identifying a portion of a lane line detected in a vehicle's environment, the data including location coordinates for the portion of the lane line; identify a corresponding feature for the lane line from pre-stored map information based on the location coordinates and a map location of the corresponding feature, wherein the corresponding feature is defined as a curve and associated with a tag identifying a type of the corresponding feature; identify a tolerance constraint based on the tag identifying the type of the corresponding feature; divide the portion of the lane line into two or more line segments, each line segment of the two or more line segments having a first position; change the first position of the one of the two or more line segments to determine a second position of one of the two or more line segments based on the location coordinates and the tolerance constraint, wherein changing the first position includes at least one of shifting in a lateral manner or rotating in an angular manner the first position of the one of the two or more line segments towards a position of a corresponding portion of the curve; determine a value based on a comparison of the first position to the second position, wherein the value indicates a likelihood that the corresponding feature has changed; and use the value to maneuver the vehicle in an autonomous driving mode.
10. The system of claim 9, wherein the corresponding feature is identified based on whether a distance between the location coordinates and the map location satisfies a threshold.
11. The system of claim 9, wherein the tolerance constraint limits the at least one of the shifting in the lateral manner or rotating in the angular manner of the one of the two or more line segments.
12. The system of claim 9, wherein the one or more computing devices are further configured to: identify a second tolerance constraint based on the tag identifying the type of the corresponding feature, and to change the first position further based on the second tolerance constraint, and the second tolerance constraint prohibits at least one of the shifting in the lateral manner or rotating in the angular manner of the first position of the one of the two or more line segments.
13. The system of claim 9, wherein the one or more computing devices are further configured to change the first position by both shifting in the lateral manner and rotating in the angular manner the first position of the one of the two or more line segments.
14. The system of claim 9, wherein the one or more computing devices are further configured to compare the value to one or more threshold values to determine whether the corresponding feature no longer exists.
15. The system of claim 9, wherein the one or more computing devices are further configured to compare the value to one or more threshold values to determine whether the corresponding feature has been shifted in the lateral manner.
16. The system of claim 9, wherein the one or more computing devices are further configured to, before dividing, determine whether the detected object is used to define a driving lane based on a second type of the corresponding feature.
17. The system of claim 9, further comprising the vehicle.
18. A non-transitory, tangible computer readable medium on which instructions are stored, the instructions, when executed by one or more processors cause the one or more processors to perform a method, the method comprising: receiving, by one or more computing devices, data identifying a portion of a lane line detected in a vehicle's environment, the data including location coordinates for the portion of the lane line; identifying a corresponding feature for the lane line from pre-stored map information based on the location coordinates and a map location of the corresponding feature, wherein the corresponding feature is defined as a curve and associated with a tag identifying a type of the corresponding feature; identifying a tolerance constraint based on the tag identifying the type of the corresponding feature; dividing the portion of the lane line into two or more line segments, each line segment of the two or more line segments having a first position; changing the first position of the one of the two or more line segments to determine a second position of one of the two or more line segments based on the location coordinates and the tolerance constraint, wherein changing the first position includes at least one of shifting in a lateral manner or rotating in an angular manner the first position of the one of the two or more line segments towards a position of a corresponding portion of the curve; determining a value based on a comparison of the first position to the second position, wherein the value indicates a likelihood that the corresponding feature has changed; and using the value to maneuver the vehicle in an autonomous driving mode.
19. The medium of claim 18, wherein the tolerance constraint limits the at least one of the shifting in the lateral manner or rotating in the angular manner of the one of the two or more line segments.
20. The medium of claim 18, wherein the one or more processors are further configured to change the first position by both shifting in the lateral manner and rotating in the angular manner the first position of the one of the two or more line segments.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
DETAILED DESCRIPTION
(13) Overview
(14) The technology relates to determining a probability of changes between pre-stored map information and a current state of the world. The prior map may include pre-stored map information used to maneuver a vehicle autonomously. The more the vehicle can depend on the accuracy and detail of the pre-stored map information, the less the vehicle must detect for itself in real time. However, in order for this approach to be effective, the pre-stored map information must be accurate and up-to-date. Since this condition cannot be absolutely guaranteed, it is useful for an autonomous vehicle's computing devices to be able to detect relevant changes (and ignore some minor changes) between the pre-stored map information and a current state of the world. For example, the vehicle's computing devices may perform an optimization procedure that moves and morphs a curve in the pre-stored map information in an attempt to best align it with a corresponding portion of a detected object, while also trying to preserve the general shape of the curve and minimize the overall shift in position. From this, the vehicle's computing devices may determine the probability of changes between the pre-stored map information and a current state of the world.
(15) The pre-stored map information may include information that describes the shapes and geographic location coordinates of features observed in the past. The features may include those that are used to define driving lanes for the vehicle such as lane markers, curbs, barriers, guard rails, or transitions from one type of road surface to another as well as other features such as crosswalks, signs, stopping lines, etc. Examples of lane markers may include painted lines, rumble strips, botts (round, non-raised reflective markers), and other types of reflectors. The shapes of these features may be described as curves. In addition, each feature may be associated with one or more tags. A tag may identify a type of the feature.
(16) The autonomous vehicle may include an object detection system. This system may include a plurality of sensors which provide sensor data to the vehicle's computing devices. This sensor data may describe the shape and geographic location coordinates of objects detected in the vehicle's environment.
(17) The geographic location coordinates of the detected object may be compared to the pre-stored map information in order to identify a corresponding feature. As an example, features having geographic location coordinates that are within a threshold distance (e.g., a few inches, a half meter, etc.) of the geographic location coordinates of the detected may be identified as a corresponding feature.
(18) The curve of the corresponding feature may be divided into two or more segments. These segments may be described as a pair of points that correspond to a starting geographic location coordinate and an ending geographic location coordinate of the segment. These segments may also be described as a single point and a vector. As an example, each segment may be a predetermined distance, such as 0.5 meters or more or less. This predetermined distance may be selected based upon the underlying resolution of the sensor data, the pre-stored map information, computing resources of the vehicle's computing devices, etc.
(19) Using the tag associated with the corresponding feature, a tolerance constraint may be identified. For example, the vehicle's computing devices may access a lookup table, database, matrix, etc. which relates each of the different tags of the pre-stored map information to tolerance constraints. A tolerance constraint may limit the amount a given segment can be shifted or rotated. For instance, the tolerance constraint may be related to the likelihood that the type of feature identified by the tag can change.
(20) Each of the segments may then be repositioned in order to better align that segment with the location coordinates of a corresponding portion of the detected object given the restrictions of any tolerance constraints. This may include laterally shifting the position of the segment relative to the corresponding portion of the detected object. In addition or alternatively, the segment may be rotated about a center point. As noted above, the tolerance constraint may be used to limit the amount by which a segment can be shifted or rotated.
(21) The location coordinates of the repositioned segments for a corresponding feature may then be compared to corresponding location coordinates of the curve of the corresponding feature of the pre-stored map information. Based on this comparison, a value indicative of a likelihood that the corresponding feature changed, or rather moved, may be determined. For example, the value may include a probability that some or all of the curve of the corresponding feature has changed. In this regard, a probability may be determined for each section or for a plurality of the sections based on the differences between the two positions of each segment and the clustering of those differences from different segments.
(22) In the case where the probability of a change is very high, the vehicle's computing devices may also compute a value or probability that the corresponding feature of the pre-stored map information no longer exists in the current state of the world. For example, the probability that some or all of the curve of the corresponding feature has changed may be compared to one or more threshold values to determine whether the feature has merely shifted or if the feature no longer exists. These threshold values may be learned from training on actual data.
(23) The vehicle's computing devices may use this probability in various ways. For example, if the probability is high and the change appears to be dramatic, the vehicle's computing devices may use this information to make driving decisions for the vehicle.
(24) As described in more detail below, the aspects described herein may accommodate various alternatives. For example, before segmenting a corresponding feature, each of the objects detected in the vehicle's environment may be compared to the pre-stored map information to determine whether that detected object corresponds to a feature used to define a driving lane. In another example, rather than segmenting and repositioning the curve of a corresponding feature, an edge corresponding to the shape of the detected object may be segmented. As another example, when the probability that a corresponding feature has moved is very high, the detected object may be a new object in that it may not have a corresponding feature in the pre-stored map information. Similarly, a detected object that is identified as a new object may be used as a signal to indicate that another detected object is also a new object. In another example, when a detected object appears to have a corresponding feature that has shifted on top of another feature in the pre-store map information, the vehicle's computing devices may assume that there has been no change or simply ignore the change.
(25) As shown in
(26) The memory 130 stores information accessible by the one or more processors 120, including data 132 and instructions 134 that may be executed or otherwise used by the processor(s) 120. The memory 130 may be of any type capable of storing information accessible by the processor(s), including a computing device-readable medium, or other medium that stores data that may be read with the aid of an electronic device, such as a hard-drive, memory card, ROM, RAM, DVD or other optical disks, as well as other write-capable and read-only memories. Systems and methods may include different combinations of the foregoing, whereby different portions of the instructions and data are stored on different types of media.
(27) The data 132 may be retrieved, stored or modified by processor(s) 120 in accordance with the instructions 132. For instance, although the claimed subject matter is not limited by any particular data structure, the data may be stored in computing device registers, in a relational database as a table having a plurality of different fields and records, XML documents or flat files. The data may also be formatted in any computing device-readable format.
(28) The instructions 134 may be any set of instructions to be executed directly (such as machine code) or indirectly (such as scripts) by the processor. For example, the instructions may be stored as computing device code on the computing device-readable medium. In that regard, the terms “instructions” and “programs” may be used interchangeably herein. The instructions may be stored in object code format for direct processing by the processor, or in any other computing device language including scripts or collections of independent source code modules that are interpreted on demand or compiled in advance. Functions, methods and routines of the instructions are explained in more detail below.
(29) The one or more processors 120 may be any conventional processors, such as commercially available CPUs. Alternatively, the one or more processors may be a dedicated device such as an ASIC or other hardware-based processor, such as a field programmable gate array (FPGA). Although
(30) Computing device 110 may have all of the components normally used in connection with a computing device such as the processor and memory described above, as well as a user input 150 (e.g., a mouse, keyboard, touch screen and/or microphone) and various electronic displays (e.g., a monitor having a screen, a small LCD touch-screen or any other electrical device that is operable to display information). In this example, the vehicle includes an internal electronic display 152. In this regard, internal electronic display 152 may be located within a cabin of vehicle 100 and may be used by computing device 110 to provide information to passengers within the vehicle 100.
(31) In one example, computing device 110 may be an autonomous driving computing system incorporated into vehicle 100. The autonomous driving computing system may capable of communicating with various components of the vehicle as needed in order to control the vehicle in fully autonomous (without input from a driver) as well as semiautonomous (some input from a driver) driving modes.
(32) As an example,
(33) Returning to
(34) In this regard, computing device 110 may be in communication various systems of vehicle 100, such as deceleration system 160, acceleration system 162, steering system 164, signaling system 166, navigation system 168, positioning system 170, and perception system 172, such that one or more systems working together may control the movement, speed, direction, etc. of vehicle 100 in accordance with the instructions 134 stored in memory 130. Although these systems are shown as external to computing device 110, in actuality, these systems may also be incorporated into computing device 110, again as an autonomous driving computing system for controlling vehicle 100.
(35) As an example, computing device 110 may interact with deceleration system 160 and acceleration system 162 in order to control the speed of the vehicle. Similarly, steering system 164 may be used by computing device 110 in order to control the direction of vehicle 100. For example, if vehicle 100 configured for use on a road, such as a car or truck, the steering system may include components to control the angle of wheels to turn the vehicle. Signaling system 166 may be used by computing device 110 in order to signal the vehicle's intent to other drivers or vehicles, for example, by lighting turn signals or brake lights when needed.
(36) Navigation system 168 may be used by computing device 110 in order to determine and follow a route to a location. In this regard, the navigation system 168 and/or data 132 may store map information, e.g., highly detailed maps identifying the shapes, geographic location coordinates, and elevations of various objects that were previously observed such as roadways, features used to define driving lanes, intersections, crosswalks, traffic signals, buildings, signs, vegetation, or other such objects and information that the vehicle's computers may use to control the vehicle safely.
(37) Examples of features may that are used to define driving lanes may include lane markers (painted lines, rumble strips, botts, etc.), curbs, barriers, guard rails, crosswalks, transitions from one type of road surface to another, or other such features. In some examples, the shapes of these features that are used to define driving lanes may be described as curves.
(38)
(39) In addition, each of these features may be associated with one or more tags identifying the specify type of that feature. In the example of
(40) Each tag may be associated with a tolerance constraint. As described in more detail below, a tolerance constraint may limit the amount a feature of the map information can be shifted or rotated when comparing the map information to a detected object. These tolerance constraints may be hard constraints, e.g., a segment cannot be rotated more than 30 degrees in any direction or shifted more than one meter. In addition, the tolerance constraints may be soft constraints where a segment is penalized for rotating or shifting greater than some threshold. As an example, penalties define the tradeoff between improved the improved appearance of an alignment and how that alignment affects the geometry. For instance, penalties may be defined such that a portion of the curve can only move some small distance (such as 10 centimeters or more or less) if they newly aligned location appears to have a shape that is somewhat more like the proper feature type for that portion, but the same portion can be moved a greater distance (such as 1 meter or more or less) if they newly aligned location appears to have a shape that is significantly more like the proper feature type for that portion.
(41) A tolerance constraint may then help to maintain the shape of a given curve. For example, along with penalty based on how much any one segment move or rotate, there may be penalties based on how the shape of connected segments changes. These penalties can be overcome when the changed positions of a portion of a curve suggests a change in shape, but are useful in many other cases to prevent a noisy detection from indicating a change when there is not one.
(42) The tolerance constraints may be related to the likelihood that the type of feature identified by the tag will change. For example, the probability that painted line markers will move may be much higher than the probability that curbs will move (line marks are much more easily moved by repainting than curbs, which may require significantly more labor). Thus, in some instances, such as where the corresponding object is a type of feature which is unlikely to be moved, a tolerance constraint may prevent a segment from being shifted and/or rotated at all. This tolerance constraint may be included in the tag, associated with the tag in the map information, or stored in some other location such as a lookup table, database, matrix, etc. which relates each of the different tags of the map information to a tolerance constraint.
(43) In addition, the detailed map information includes a network of rails 350, 352, and 354, which provide the vehicle's computer with guidelines for maneuvering the vehicle so that the vehicle follows the rails and obeys traffic laws. As an example, a vehicle's computer may maneuver the vehicle from point A to point B (two fictitious locations not actually part of the detailed map information) by following rail 350, transitioning to rail 352, and subsequently transitioning to rail 354 in order to make a left turn at intersection 302.
(44) As noted above, the map information may correspond to information observed in the past. In this regard,
(45) Positioning system 170 may be used by computing device 110 in order to determine the vehicle's relative or absolute position on a map or on the earth. For example, the position system 170 may include a GPS receiver to determine the device's latitude, longitude and/or altitude position. Other location systems such as laser-based localization systems, inertial-aided GPS, or camera-based localization may also be used to identify the location of the vehicle. The location of the vehicle may include an absolute geographical location, such as latitude, longitude, and altitude as well as relative location information, such as location relative to other cars immediately around it which can often be determined with less noise that absolute geographical location.
(46) The positioning system 170 may also include other devices in communication with computing device 110, such as an accelerometer, gyroscope or another direction/speed detection device to determine the direction and speed of the vehicle or changes thereto. By way of example only, an acceleration device may determine its pitch, yaw or roll (or changes thereto) relative to the direction of gravity or a plane perpendicular thereto. The device may also track increases or decreases in speed and the direction of such changes. The device's provision of location and orientation data as set forth herein may be provided automatically to the computing device 110, other computing devices and combinations of the foregoing.
(47) The perception system 172 also includes one or more components for detecting and performing analysis on objects external to the vehicle such as other vehicles, obstacles in the roadway, traffic signals, signs, trees, etc. For example, the perception system 172 may include lasers, sonar, radar, one or more cameras, or any other detection devices which record data which may be processed by computing device 110. In the case where the vehicle is a small passenger vehicle such as a car, the car may include a laser mounted on the roof or other convenient location as well as other sensors such as cameras, radars, sonars, and additional lasers.
(48) The computing device 110 may control the direction and speed of the vehicle by controlling various components. By way of example, if the vehicle is operating completely autonomously, computing device 110 may navigate the vehicle to a location using data from the detailed map information and navigation system 168. Computing device 110 may use the positioning system 170 to determine the vehicle's location and perception system 172 to detect and respond to objects when needed to reach the location safely. In order to do so, computing device 110 may cause the vehicle to accelerate (e.g., by increasing fuel or other energy provided to the engine by acceleration system 162), decelerate (e.g., by decreasing the fuel supplied to the engine or by applying brakes by deceleration system 160), change direction (e.g., by turning the front or rear wheels of vehicle 100 by steering system 164), and signal such changes (e.g. by lighting turn signals of signaling system 166).
(49)
(50) The one or more computing devices 110 may also features such as transmitters and receivers that allow the one or more devices to send and receive information to and from other devices. For example, the one or more computing devices may determine that the vehicle's environment has changed from an expected representation of the environment defined in the map information according to the aspects described herein. The one or more computing devices may send this information to other computing device associated with other vehicles. Similarly, the one or more computing devices may receive such information from other computing devices.
(51) This information may be sent and received via any wireless transmission method, such as radio, cellular, Internet, World Wide Web, intranets, virtual private networks, wide area networks, local networks, private networks using communication protocols proprietary to one or more companies, Ethernet, WiFi and HTTP, and various combinations of the foregoing. Such communication may be facilitated by any device capable of transmitting data to and from other computers, such as modems and wireless interfaces.
(52) Example Methods
(53) In addition to the operations described above and illustrated in the figures, various operations will now be described. It should be understood that the following operations do not have to be performed in the precise order described below. Rather, various steps can be handled in a different order or simultaneously, and steps may also be added or omitted.
(54) As noted above, a vehicle's one or more computing devices may maneuver the vehicle using the various systems described above. While doing so, the perception system 172 may identify the shape and location of various objects in the vehicle's environment. For example,
(55) The geographic location coordinates of the detected object may be compared to the map information in order to identify corresponding features between the map information and the objects detected by the perception system. As an example, features having at least some geographic location coordinates that are within a threshold distance (e.g., a few inches, a half meter, etc.) of the geographic location coordinates of a detected object may be identified as a corresponding feature. For example,
(56) The curve of the corresponding feature of the map information may be divided into two or more segments. For example,
(57) These segments may be described as a pair of points that correspond to a starting geographic location coordinate and an ending geographic location coordinate of the segment. Thus, each of the segments 810, 812, 814, 816, and 818 is bounded by two of end points 820, 822, 824, 826, 828, and 830. Each of these end points represents geographic location coordinates for the ending location of a corresponding segment. For example, segment 810 is bounded and defined by by the geographic location coordinates of end points 820 and 822, segment 812 is bounded and defined by by the geographic location coordinates of end points 822 and 824, etc. Alternatively, the segments may also be described as a single point and a vector.
(58) As an example, each segment may be a predetermined distance. For example, lane line 312 may be divided into segments 810, 812, 814, 816, and 818 that are each 0.5 meters or more or less. This predetermined distance may be selected based upon the underlying resolution of the sensor data, the pre-stored map information, computing resources of the vehicle's computing devices, etc.
(59) Each of the segments may then be repositioned in order to better align that segment with the location coordinates of a corresponding portion of the detected object given the restrictions of any tolerance constraints. This may include laterally shifting the position of the segment relative to the corresponding portion of the detected object. In addition or alternatively, the segment may be rotated about a center point.
(60) In some examples, a tolerance constraint may then be identified. For example, the vehicle's computing devices may use the tag associated with a map feature to identify a tolerance constraints. As noted above, this information may be included in the tag, associated with the tag, or stored in some other location.
(61) As noted above, a tolerance constraint may be used to limit the amount by which a segment can be shifted or rotated.
(62) Similarly,
(63) Thus, each of the segments may be repositioned in order to better align that segment with the location coordinates of a corresponding portion of the detected object given the restrictions of any tolerance constraints.
(64) By shifting and rotating the segments, the end points of the segments will have new geographic location coordinates as can be seen from the example of
(65) In the case where the probability of a change is very high, the vehicle's computing devices may also compute a value or probability that the corresponding feature of the pre-stored map information no longer exists in the current state of the world. For example, the probability that some or all of the curve of the corresponding feature has changed may be compared to one or more threshold values to determine whether the feature has merely shifted or if the feature no longer exists. These threshold values may be learned from training on actual data.
(66) In another example, rather than relying on when the probability of a change for a feature being very high, if a good new location for a set of segments from the detailed map information is not found, then sensor data corresponding to the original location of the segments may be checked to see if the proper feature was detected there. If it was not, this may indicate that the feature had been completely removed.
(67) The vehicle's computing devices may use this probability in various ways. For example, if the probability is high and the change appears to be dramatic, the vehicle's computing devices may use this information to make driving decisions for the vehicle. This may include slowing the vehicle down, maneuvering the vehicle in a more cautious mode, stopping the vehicle (e.g., to protect the safety of passengers), requesting that a passenger of the vehicle take control of the vehicle, etc. The vehicle's computing devices may also save the probability information, share the information with other autonomous vehicles, send the information to a system operator or centralized computing device for review and possible incorporation into the pre-stored map information, etc.
(68) Although the examples of
(69)
(70) As noted above, the aspects described herein may accommodate various alternatives. For example, before segmenting a corresponding feature, each of the objects detected in the vehicle's environment may be compared to the pre-stored map information to determine whether that detected object corresponds to a feature used to define a driving lane. This may be achieved by comparing the location information of the sensor data for the detected object to the location information of the pre-stored map to identify a corresponding feature. Then based on the tag associated with the corresponding feature, the vehicle's computing device may determine whether the detected object corresponds to the location of a feature used to define driving lanes. If so, the corresponding feature may be segmented and processed as described above, and if not, the corresponding feature need not be segmented or processed as described above.
(71) Alternatively, rather than segmenting and repositioning the curve of a corresponding feature, an edge of the detected object may be segmented. The segments of the edge may then be shifted or rotated to better align the segment to the curve of the corresponding feature. Again, the tolerance constraint identified based on the tag of the corresponding feature may be used to limit the shifting and/or rotation of the segment. The location coordinates of the repositioned segments for the edge may then be compared to the corresponding location coordinates of the edge of the detected object (before the segment was repositioned). Based on this comparison, various values may be determined as described above.
(72) In some examples, the detected object may be a new object in that it may not have a corresponding feature in the pre-stored map information. In this case, other features of the pre-stored map information may be used as signals to indicate additional characteristics of detected objects not readily detectable from the location and orientation characteristics of the detected objects. For example, if a new driving lane was added, the boundaries for that new driving lane may have a similar angle and heading as the boundaries for any previous driving lane or lanes in the pre-stored map information that are also in the same general area. In that regard, if a detected object appears to follow the general shape of the boundaries of a curve corresponding to a lane line in the pre-stored map information but appears in another location, the vehicle's computing devices may determine that the detected object corresponds to a lane line which is likely to have a heading that corresponds to the heading of the lane lines in the pre-stored map information.
(73) Similarly, one detected object that is identified as a new object may be used as signals to indicate that another detected object is also a new object. For example, if a new crosswalk or a new bike lane is detected, for example using image matching or other identification techniques, the likelihood that other features in that immediate area changed may be relatively high. Thus, the vehicle's computing devices may be more likely to determine that another detected object is a new object.
(74) In some instances, when a detected object appears to have a corresponding feature that has shifted on top of another feature in the pre-store map information, the vehicle's computing devices may assume that there has been no change or simply ignore the change. For example, in the case of a solid double lane line, one of the lane lines may be more faded than the other making it more difficult for the vehicle's detection system to detect the faded lane line. This may cause the vehicle's computing devices to determine that one of the lane lines has shifted on top of another, when actually there has been no change. Thus, in this example, the vehicle's computing devices may assume that there has been no change or simply ignore the change.
(75) Unless otherwise stated, the foregoing alternative examples are not mutually exclusive, but may be implemented in various combinations to achieve unique advantages. As these and other variations and combinations of the features discussed above can be utilized without departing from the subject matter defined by the claims, the foregoing description of the embodiments should be taken by way of illustration rather than by way of limitation of the subject matter defined by the claims. In addition, the provision of the examples described herein, as well as clauses phrased as “such as,” “including” and the like, should not be interpreted as limiting the subject matter of the claims to the specific examples; rather, the examples are intended to illustrate only one of many possible embodiments. Further, the same reference numbers in different drawings can identify the same or similar elements.