Systems and methods for efficiently generating accurate slam-based maps
The mapping management system efficiently estimates the number of passes needed for accurate SLAM-based mapping by analyzing error measurements, addressing the inefficiencies in current mapping methods.
Patent Information
- Application Number
- JP2024104724
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-06-29
- Filing Date
- 2024-06-28
- Publication Date
- 2025-01-20
AI Technical Summary
Current methods for generating accurate geometric maps using SLAM technology do not provide a means to estimate the resources required for their creation, leading to inefficiencies in mapping processes.
A mapping management system that processes trace data to determine error measurements and estimates the number of passes needed to achieve a desired level of accuracy by analyzing the error estimates of an estimated trajectory compared to a reference trajectory, using techniques such as loop closure and association heuristics.
This approach allows for the efficient planning of mapping operations by estimating the number of passes required to achieve a desired level of accuracy, optimizing resource utilization in SLAM-based mapping.
Smart Images

Figure 2025010027000001_ABST
Abstract
Description
[Technical field]
[0001] The subject matter described in this specification relates generally to estimating the amount of trace data needed to generate a map of an environment, and more specifically, to generating that map efficiently with a desired level of accuracy. [Background technology]
[0002] A vehicle may be equipped with a system such as simultaneous localization and mapping (SLAM) technology that allows a mobile platform to navigate an unknown environment while simultaneously making decisions about the mobile platform's position and mapping the environment. Typically, SLAM technology operates in discrete time units and estimates the vehicle's position using odometry information and refines that estimate using distance sensing data (e.g., from a camera or LiDAR).
[0003] SLAM techniques are often used to map an environment as a vehicle moves through the environment, and thus SLAM techniques are used to generate a geometric map of the environment. For example, odometry information and camera images may be acquired via multiple passes of a mobile platform through the environment, with an emphasis on detecting stationary objects, and then processed to create a geometric map of the environment. When the processing does not occur in real time, the SLAM technique may be referred to as offline SLAM. Summary of the Invention
[0004] In one embodiment, an example system and method relates to a method for implementing a mapping management strategy for connected autonomous vehicles.
[0005] In one embodiment, a mapping management system is disclosed that includes one or more processors and a memory communicatively coupled to the one or more processors, the memory storing a command module including instructions that, when executed by the one or more processors, cause the one or more processors to receive trace data, process the trace data to provide groups of passes within a lane section, determine an error measure for the groups of passes within the lane section, receive a criterion, and determine an estimated number of passes to satisfy the criterion based on the error measure.
[0006] In one embodiment, a non-transitory computer readable medium is disclosed that includes instructions that, when executed by one or more processors, cause the one or more processors to perform one or more functions, including instructions for receiving trace data, processing the trace data to provide groups of passes within a lane section, determining an error measure for the groups of passes within the lane section, receiving a criterion, and determining an estimated number of passes to satisfy the criterion based on the error measure.
[0007] In one embodiment, a method for implementing a mapping management strategy for a connected autonomous vehicle is disclosed, the method including receiving trace data, processing the trace data to provide a group of passes within a lane segment, determining an error measure for the group of passes within the lane segment, receiving a criterion, and determining an estimated number of passes to meet the criterion based on the error measure. [Brief description of the drawings]
[0008] The accompanying drawings, which are incorporated herein and constitute a part of this specification, illustrate various systems, methods, and other embodiments of the present disclosure. It will be understood that the boundaries of elements shown in the figures (e.g., boxes, groups of boxes, or other shapes) represent one embodiment of the boundaries. In some embodiments, one element may be designed as multiple elements, or multiple elements may be designed as one element. In some embodiments, an element shown as an internal component of another element may be implemented as an external component, and vice versa. Additionally, elements may not be drawn to scale.
[0009] [Figure 1] FIG. 1 illustrates an embodiment of a vehicle in which the systems and methods disclosed herein may be implemented. [Diagram 2] FIG. 1 illustrates one embodiment of a mapping management system associated with implementing a mapping management policy. [Diagram 3] FIG. 3 illustrates an embodiment of the mapping management system of FIG. 2 in a cloud computing environment. [Figure 4A] FIG. 13 is a diagram illustrating an example of a strategy for correcting an estimated trajectory. [Figure 4B] FIG. 13 is a diagram illustrating an example of a strategy for correcting an estimated trajectory. [Figure 5A] FIG. 13 is a diagram showing an example of processing trace data into lane sections. [Figure 5B] FIG. 13 is a diagram showing an example of processing trace data into lane sections. [Figure 6] FIG. 13 illustrates an example of refining estimated trajectory within a lane segment based on keypoint association heuristics. [Figure 7] FIG. 2 illustrates an example of a trajectory that can be evaluated for attitude error. [Figure 8A] FIG. 1 illustrates an example of a method for graphing error measurements versus the number of passes in a lane segment. [Figure 8B] FIG. 13 illustrates another example of a method for graphing error measurements versus the number of passes in a lane segment. [Figure 9]FIG. 1 illustrates an example flowchart of a method associated with implementing a mapping management system. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0010] Systems, methods, and other embodiments associated with implementing a mapping management system. A vehicle with SLAM may be used to create a geometric map by repeatedly driving in loops (or making repeated passes over an area of interest). Generally, as the number of passes increases, a more accurate geometric map may be produced. Additionally, an estimated trajectory of the vehicle may also be determined more accurately (e.g., because a more accurate geometric map is available).
[0011] Current methods of generating accurate geometric maps do not provide a means to estimate the resources required for their creation. Thus, techniques are described herein to evaluate an error estimate of an estimated trajectory compared to a reference trajectory, such as when additional passes are added to a lane section. In this manner, the improvement in the error estimate as additional passes are recorded can be used to determine the number of passes required to obtain a similar level of accuracy for a similar unmapped lane section. For example, if analysis of a one-mile test loop of a highway indicates that eight passes are sufficient for a desired level of accuracy, that number of passes can be relied upon when planning for additional mapping of the highway (e.g., the next 20 miles of the highway).
[0012] Referring to FIG. 1, an example of a vehicle 100 is shown. As used herein, a "vehicle" is any form of motorized transportation. In one or more implementations, the vehicle 100 is an automobile. Although features related to an automobile are described herein, it will be understood that the embodiments are not limited to automobiles. In some implementations, the vehicle 100 may be in the form of any robotic device or motorized transportation, which may, for example, include sensors for perceiving aspects of the surrounding environment and thus benefit from the functionality described herein associated with the mapping management strategy. As a further note, the present disclosure generally describes the vehicle 100 as traveling on a roadway with surrounding vehicles, which are intended to be construed as the vehicle 100 itself. That is, the surrounding vehicles may include any vehicles that the vehicle 100 may encounter on the roadway.
[0013] Vehicle 100 also includes various elements. It will be understood that in various embodiments, vehicle 100 may not have all of the elements shown in FIG. 1. Vehicle 100 may have any combination of the various elements shown in FIG. 1. Furthermore, vehicle 100 may have additional elements to those shown in FIG. 1. In some arrangements, vehicle 100 may be implemented without one or more of the elements shown in FIG. 1. Although various elements are shown as being located within vehicle 100 in FIG. 1, it will be understood that one or more of the elements may be located outside vehicle 100. Furthermore, the elements shown may be physically separated by large distances. For example, as stated, one or more components of the system of the present disclosure may be implemented within the vehicle, while additional components of the system are implemented in a cloud computing environment or other system remote from vehicle 100.
[0014] Some of the possible elements of the vehicle 100 are shown in FIG. 1 and described in conjunction with subsequent figures. However, a description of many of the elements of FIG. 1 is provided following the description of FIGS. 2-9 to simplify this description. Furthermore, it will be appreciated that for ease of illustration and clarity, reference numerals are appropriately repeated among different figures to indicate corresponding or similar elements. In addition, the description outlines numerous specific details to provide a thorough understanding of the embodiments described herein. However, those skilled in the art will appreciate that the embodiments described herein may be implemented using various combinations of such elements. In any case, the vehicle 100 includes a mapping management system 170, which is implemented to perform the methods and other functions as disclosed herein related to implementing a mapping management policy. As will be described in more detail below, in various embodiments, the mapping management system 170 is implemented in part within the vehicle 100 as a cloud-based service. For example, in one approach, functionality associated with at least one module of mapping management system 170 is implemented within vehicle 100, while additional functionality is implemented within a cloud-based computing system.
[0015] 2, an embodiment of the mapping management system 170 of FIG. 1 is further illustrated. The mapping management system 170 is illustrated as including the processor 110 of the vehicle 100 of FIG. 1. Thus, the processor 110 may be part of the mapping management system 170, the mapping management system 170 may include a processor separate from the processor 110 of the vehicle 100, or the mapping management system 170 may access the processor 110 through a data bus or another communication path. In one embodiment, the mapping management system 170 includes a memory 210 that stores the detection module 220 and the command module 230. The memory 210 is a random access memory (RAM), a read only memory (ROM), a hard disk drive, a flash memory, or other suitable memory that stores the detection module 220 and the command module 230. The detection module 220 and the command module 230 are, for example, computer readable instructions that, when executed by the processor 110, cause the processor 110 to perform various functions disclosed herein.
[0016] Mapping management system 170 as shown in Figure 2 is generally an abstract form of mapping management system 170 as it may be implemented between vehicle 100 and a cloud computing environment. Figure 3, described further below, illustrates an example of a cloud computing environment 300 with which mapping management system 170 may be implemented. As shown in Figure 3, mapping management system 170 may be embodied, at least in part, within cloud computing environment 300.
[0017] 2, the detection module 220 generally includes instructions that function to control the processor 110 to receive data inputs from one or more sensors of the vehicle 100. In one embodiment, the inputs are observations of one or more objects in an environment proximate to the vehicle 100, other aspects of the surroundings, or both. In one embodiment, the detection module 220 provided herein acquires sensor data 250 including at least camera images and odometry data. In a further mechanism, the detection module 220 acquires sensor data 250 from additional sensors, such as radar 123, LIDAR 124, and other sensors, that may be suitable for acquiring odometry data, distance sensing data, or data related to the position of the vehicle 100.
[0018] Thus, in one embodiment, the detection module 220 controls each sensor to provide the sensor data 250. Additionally, although the detection module 220 is described as controlling the various sensors to provide the sensor data 250, in one or more embodiments, the detection module 220 may employ other techniques for acquiring the sensor data 250, either active or passive. For example, the detection module 220 may passively discover the sensor data 250 from an electronic information stream provided by the various sensors to further components within the vehicle 100. Additionally, the detection module 220 may perform various techniques to fuse data from multiple sensors when providing the sensor data 250, from sensor data acquired over a wireless communication link (e.g., v2v) from one or more of the surrounding vehicles, or a combination thereof. Thus, in one embodiment, the sensor data 250 represents a combination of perceptions acquired from multiple sensors.
[0019] In addition to the positions of surrounding vehicles, the sensor data 250 may also include, for example, information regarding lane markings, etc. Furthermore, in one embodiment, the detection module 220 controls the sensors to acquire sensor data for an area encompassing 360 degrees around the vehicle 100, which may then be stored in the sensor data 250. In some embodiments, the area sensor data may be used to provide a comprehensive assessment of the environment surrounding the vehicle 100. Of course, in alternative embodiments, the detection module 220 may acquire sensor data for only the forward direction, for example, if the vehicle 100 does not include additional sensors to include additional areas around the vehicle, or if the additional areas are not scanned for other reasons (e.g., unnecessary due to known current conditions).
[0020] Additionally, in one embodiment, mapping management system 170 includes database 240. In one embodiment, database 240 is an electronic data structure stored in memory 210 or another data store that is comprised of routines that may be executed by processor 110 to analyze stored data, present stored data, organize stored data, etc. Thus, in one embodiment, database 240 stores data used by detection module 220 and command module 230 in performing various functions. In one embodiment, database 240 includes sensor data 250 along with metadata that characterizes various aspects of sensor data 250, for example. For example, metadata may include location coordinates (e.g., longitude and latitude), relative map coordinates or tile identifiers, time / date stamps from when distinct sensor data 250 was generated, etc.
[0021] In one embodiment, detection module 220 is further configured to perform additional tasks besides controlling each sensor to obtain and provide sensor data 250. For example, detection module 220 may include instructions to package information in sensor data 250 into trace data for analysis as described herein.
[0022] In some embodiments, the detection module 220 may record trace data, such as odometry data and distance sensing data provided by a concurrent location estimation and mapping system of the vehicle 100. In some embodiments, the trace data may also include additional information, such as GPS information corresponding to the odometry data and distance sensing data. For example, as the vehicle 100 moves from a first point to a second point, camera images may be recorded and analyzed to identify key points (e.g., edges, lane markers) associated with an area of interest, which may then be stored in the trace data. Odometry information from acceleration, braking, or other vehicle movements associated with the camera images may also be analyzed by the detection module 220 to determine the location of the vehicle 100 at the time of the camera images, which may then be stored in the trace data. Additionally, GPS position data at the time of the camera images may also be recorded in the trace data by the detection module 220. In some embodiments, the camera data, odometry data, or GPS data may be recorded at slightly different times, such as when the data is obtained from different vehicle systems. Thus, in some embodiments, the detection module 220 or the command module 230 may perform an analysis to align the camera data, odometry data, or GPS data with respect to time, such as by interpolation or other techniques known in the art. In some embodiments, the trace data may represent one session of a combination of odometry data, distance sensing data, or GPS data, while in other embodiments, the trace data may include multiple sessions of a combination of odometry data, distance sensing data, or GPS data.
[0023] In some embodiments, the command module 230 may receive trace data, such as from the sensor data 250. Assuming that odometry and GPS data may contain errors relative to the true position when the data was recorded, the command module 230 may correct the estimated trajectory recorded in the trace using methods such as loop closure, constraining the trace to defined boundaries (e.g., valid paths of travel such as roads), and other techniques known in the art. For example, key points (e.g., intersection marks) of common features as shown in FIG. 4A may be used to correct the estimated trajectory so that the loop given by the estimated trajectory returns to a valid position for the common feature. As another example, as shown in FIG. 4B, the estimated trajectory may be corrected as known in the art if the estimated trajectory violates a boundary condition, for example if the estimated trajectory indicates that the vehicle is veering into a vehicle barrier.
[0024] When the trace data can provide camera data, odometry data, and GPS data over a large area, the command module 230 can divide the trace data into lane segments. For example, a vehicle may be driving a loop up and down a highway as shown in FIG. 5A. Upon receiving a trace from the vehicle, the command module 230 can divide the trace into two segments (e.g., northbound lane, southbound lane) as shown in FIG. 5B. Each segment can then be divided into lane segments (e.g., northbound lane A, northbound lane B, southbound lane A, southbound lane B). Furthermore, each time the trace data passes through a lane segment in sequence, the trace data within the lane segment can be recorded as a lane segment pass (or pass for short). Thus, each lane segment traversal may be identified based on the segment, lane segment, and lane segment traversal number (e.g., a traversal with identifier NA2 may mean that it is the second traversal recorded through a lane segment for northbound lane A, similarly, NA5 may mean that the data is the fifth traversal through the same lane segment). In some embodiments, lane segments may be defined in terms of geographic areas other than road lanes on which vehicles may travel, such as parking lots.
[0025] In some embodiments, the command module 230 may determine valid associations for key points within a lane segment. As shown in FIG. 6, each lane segment traversal may include information about the location of key points along the path of travel by the vehicle. The key points may correspond, for example, to lane markers on the side of the lane in which the vehicle was driven. Association heuristics may be used to determine whether there are a sufficient number of key points close to each other to be marked as valid. For example, a road dash may comprise lane marker dashes of a particular length and width, such that key points that are too far apart relative to the dimensions of the individual lane marker dashes cannot be associated with each other.
[0026] Initially, the first pass through the environment may only generate a few keypoints sufficient to satisfy the association heuristic. However, as additional passes are made through the same lane segment, keypoints from the additional passes may be collected to allow more groups of keypoints to satisfy the association heuristic. In addition, as more keypoints are validated, the valid keypoints may be used to improve the estimated trajectory of the vehicle, as is known in the art. For example, if the data from the first and third passes is sufficient to establish one or more groups of valid keypoints (e.g., lane markers), the command module 230 may determine whether adjustments to the second lane segment pass may more fully align the data to the groups of valid keypoints. Furthermore, any such corrections to the estimated trajectory within the lane segment pass may also provide corrections to the estimated trajectory beyond the lane segment (e.g., for the trace as a whole and for subsequent lane segment passes).
[0027] Thus, as the number of passes within a lane segment increases, the estimated trajectory based on SLAM techniques may come closer to the ground truth trajectory of the vehicle. However, as the number of passes increases, the improvement typically decreases (e.g., as every pass is added to the lane segment data, less likely lane markers remain valid). Thus, in some embodiments, the command module 230 may analyze the results of adding each additional pass to the lane segment data to determine the number of passes required to achieve a desired level of accuracy.
[0028] As shown in Fig. 7, the estimated trajectory from the trace data is a set of timestamps (e.g., pose T at time i). i ) for the vehicle. In addition, the trace data may also be fed into a ground truth trajectory, which provides highly accurate pose data of the vehicle at the time it was recording the trace (e.g., pose T at time i). i * For example, the ground truth trajectory may be provided by a highly accurate positioning system (e.g., DGPS, RTK GPS) known in the art.
[0029] Based on the estimated trajectory and the ground truth trajectory, the translation and rotation of the absolute attitude error (APE) may be determined by the command module 230 as follows:
number
number
[0030] In addition, the translation and rotation of the relative posture error (RPE) may be determined by the command module 230 as follows:
number
number
[0031] An example of an error calculation for a lane segment versus the number of passes added to the lane segment is shown in FIG. 8A, which demonstrates that as the number of passes added increases, the average error calculated tends to decrease. Thus, given a trace, the command module 230 may calculate an error measure for the lane segment based on the number of passes provided. In some embodiments, the command module 230 may further use the obtained error measure to estimate how the additional error measure may decrease if an additional number of passes are recorded. For example, the command module 230 may use curve fitting techniques as known in the art, or other predictive methods (e.g., modeling, machine learning) to predict likely values for the error measure if additional passes are provided. Thus, if the desired error measure is less than that provided by the number of passes recorded, the command module 230 may nevertheless be able to estimate the number of passes to achieve the desired error measure.
[0032] Another example of error calculation for a lane segment versus the number of passes added to the lane segment is shown in FIG. 8B, which shows an example of how the first, second, and third quartiles tend to decrease as the number of passes added to the lane segment increases. This embodiment may be realized, for example, by not performing an averaging function as shown in Equation (1), Equation (2), Equation (3), or Equation (4). By not performing averaging, the equations instead return N indices of absolute or relative attitude error, which may then be processed into first, second, and third quartiles. In this embodiment, multiple thresholds may be used as criteria to calculate the quartiles.
[0033] In some embodiments, the command module 230 may display a graph of the error measures for one or more lane segments. In some embodiments, the display of the graph may further include a trend line, which may also show an estimate of the additional error measures that may be obtained if additional passes are taken. In some embodiments, the command module 230 may be configured to receive instructions regarding the type of error measure to be used in determining a sufficient number of passes. For example, a user may select APE, RPE, or other measures known in the art. Additionally, the command module 230 may be configured to receive instructions regarding the particular criteria to be used in determining a sufficient number of passes for a selected error measure. For example, achieving a value that is above or below a threshold value for a specified error measure may be used to estimate a sufficient number of passes. As another example, the relative change in value for one or more error measures when a pass is added may be evaluated against one or more threshold values (e.g., the APE when a pass is added, the RPE, or other measures known in the art). trans (Estimate the number of passes based on if the number of passes does not improve by at least 5%)
[0034] In some embodiments, the estimated trajectory after a large number of passes have been added may be used as a ground truth trajectory in calculating error measures. For example, a vehicle may need to operate in an area (e.g., a tunnel) where very accurate positioning may not be available. Thus, in that environment, or for other purposes, an estimated trajectory based on the number of passes recorded within a lane section (e.g., after all available passes have been added to the lane section) may be used as a surrogate ground truth trajectory (e.g., as the best available trajectory) for a smaller number of passes.
[0035] In some embodiments, the command module 230 may determine whether a lane segment analyzed to determine an error measure for the number of passes is similar to another lane segment. For example, the command module 230 may determine whether the two lane segments are substantially similar based on the terrain, road curvature, lane configuration, road surface conditions, etc. If the command module 230 determines that the unmapped lane segment is similar to the mapped lane segment (e.g., by a desired metric also exceeding a threshold), the command module 230 may provide an estimate of the number of passes for the unmapped lane segment based on the mapped lane segment.
[0036] In some embodiments, the command module 230 may track the extent to which the number of passes for a desired error measure deviates from its prediction. For example, the command module 230 may record when the number of passes is found to be less than desired, when the number of passes is found to be more than desired, when the estimated number of passes increases when the initially predicted number of passes is made, etc. Taking into account that information, the command module 230 may determine a statistical indicator (e.g., standard deviation) for the extent of that deviation. For example, among similar lane sections, the command module 230 may determine that the mean for the number of passes of the prediction is 8.3 with a standard deviation of 1.2. In some embodiments, the command module 230 may select the number of passes to be made based on that aggregate statistical analysis (e.g., assuming the mean is 8.3, a value of 9 passes may be selected, and given a standard deviation of 1.2, a value of 10 may be selected to ensure that there is a lower likelihood that an insufficient number of passes will be made to achieve the desired accuracy).
[0037] In some embodiments, the command module 230 may provide a user interface that displays information regarding the estimation of the number of passes, which may also include provision for receiving a selection or input by a user (e.g., via a touch screen, keyboard, remote interface). For example, a user may be provided with a graph of error measurements versus number of passes based on the lane segments analyzed, which may provide a mechanism for adjusting the type of error measurements used. As another example, the command module 230 may receive a selection of a criterion for estimating a sufficient number of passes and display a representation of the criterion on a graph of error measurements versus number of passes (e.g., as a horizontal line indicating where a threshold is, or an area indicating the allowable amount of change in the error estimate that meets the selected criterion when another pass is added). In some embodiments, the command module 230 may display information describing the criteria for determining whether lane segments are similar, which may also include provision for receiving changes to the information. In some embodiments, when displaying a graph of error measurements versus number of passes, the command module 230 may show trend lines, an estimate of the number of passes required to achieve a desired accuracy, previous history of results based on data from previous traces or similar lane sections, etc.
[0038] It should be appreciated that the command module 230 may be combined with the predictive model 260 to form a computational model, such as machine learning logic, deep learning logic, a neural network model, or another similar approach. In one embodiment, the predictive model 260 is a statistical model, such as a regression model, that estimates the number of passes required for a desired accuracy based on the sensor data 250 or other sources of information as described herein. Thus, the model 260 may be a polynomial regression (minimum weighted polynomial regression), least squares, or another suitable approach.
[0039] Further, in an alternative mechanism, the predictive model 260 is a probabilistic approach, such as a hidden Markov model. In either case, when implemented as a neural network model or another model, the command module 230, in one embodiment, electronically accepts the sensor data 250 as an input. Thus, the command module 230, in coordination with the predictive model 260, generates various decisions / assessments as electronic outputs that characterize the described aspect as, for example, a single electronic value. In yet further aspects, the mapping management system 170 may collect the described data, log responses, and use the data and responses to further train the model 260 at a later time.
[0040] In one embodiment, command module 230 generally includes instructions that function to control processor 110, or a collection of processors in a cloud computing environment 300 as shown in FIG. 3, to implement the mapping management system.
[0041] 3, vehicle 100 may be connected to a network 305 that enables communication between vehicle 100 and cloud servers (e.g., cloud server 310), infrastructure devices (e.g., infrastructure device 340), other vehicles (e.g., vehicle 380), and any other systems connected to network 305. With respect to network 305, the network may use any form of communication or networking to exchange data, including, but not limited to, the Internet, Directed Short Range Communications (DSRC) services, LTE, 5G, millimeter wave (mmWave) communications, etc.
[0042] Cloud server 310 is shown as including a processor 315 that may be part of mapping management system 170 via network 305 by communication unit 335. In one embodiment, cloud server 310 includes memory 320 that stores communication module 325. Memory 320 may be a random access memory (RAM), read only memory (ROM), hard disk drive, flash memory, or other suitable memory that stores communication module 325. Communication module 325 may be, for example, computer readable instructions that, when executed by processor 315, cause processor 315 to perform various functions disclosed herein. Additionally, in one embodiment, cloud server 310 includes database 330. In one embodiment, database 330 is an electronic data structure stored in memory 320 or another data store that is comprised of routines that may be executed by processor 315 to analyze stored data, provide stored data, organize stored data, etc.
[0043] The infrastructure device 340 is shown as including a processor 345 that may be part of the mapping management system 170 via a communication unit 370 over a network 305. In one embodiment, the infrastructure device 340 includes a memory 350 that stores a communication module 355. The memory 350 may be a random access memory (RAM), a read only memory (ROM), a hard disk drive, a flash memory, or other suitable memory that stores the communication module 355. The communication module 355 may be, for example, computer readable instructions that, when executed by the processor 345, cause the processor 345 to perform various functions disclosed herein. Additionally, in one embodiment, the infrastructure device 340 includes a database 360. In one embodiment, the database 360 is an electronic data structure stored in the memory 350 or another data store that is comprised of routines that may be executed by the processor 345 to analyze the stored data, present the stored data, organize the stored data, and the like.
[0044] Thus, in addition to information obtained from sensor data 250, mapping management system 170 may obtain information from cloud servers (e.g., cloud server 310), infrastructure devices (e.g., infrastructure device 340), other vehicles (e.g., vehicle 380), and any other systems connected to network 305. In some embodiments, any or all of the functionality of command module 230 described with respect to mapping management system 170 may be implemented in cloud server 310. Additionally, information regarding the ground truth trajectory for the vehicle may be provided to command module 230 or cloud server 310 by infrastructure devices 340 (e.g., temporary or permanent installations providing highly accurate vehicle position measurements).
[0045] Figure 9 illustrates a flowchart of a method 900 associated with implementing a mapping management system. The method 900 is described in terms of the mapping management system 170 of Figures 1 and 2. Although the method 900 is described in conjunction with the mapping management system 170, it should be understood that the method 900 is not limited to implementation within the mapping management system 170, but rather is one example of a system in which the method 900 may be implemented.
[0046] At 910, the command module 230 may receive the trace data. For example, the command module 230 may receive the trace data from the sensor data 250 or via the cloud computing environment 300. In some embodiments, the command module 230 may receive the trace data including odometry data and distance sensing data provided by the vehicle 100's concurrent localization and mapping system. In some embodiments, the trace data may also include additional information, such as GPS information corresponding to the odometry data and distance sensing data. In some embodiments, the camera data, odometry data, or GPS data may be recorded at slightly different times, such as when the data is obtained from different vehicle systems. Thus, in some embodiments, the command module 230 may also perform an analysis to align the camera data, odometry data, or GPS data with respect to time, such as by interpolation or other techniques known in the art. In some embodiments, the trace data may represent one session of a combination of odometry data, distance sensing data, or GPS data, while in other embodiments, the trace data may include multiple sessions of a combination of odometry data, distance sensing data, or GPS data.
[0047] At 920, the command module 230 may process the trace data to provide groups of passes within a lane segment. For example, upon receiving the trace data, the command module 230 may divide the trace into two segments (e.g., northbound lane, southbound lane), and then each segment may be divided into lane segments (e.g., northbound lane A, northbound lane B, southbound lane A, southbound lane B). Further, each time the trace data sequentially passes through a lane segment, the trace data within the lane segment may be recorded as a lane segment pass (or pass). Additionally, each lane segment pass may be identified based on the segment, lane segment, and lane segment pass number (e.g., one pass has an identifier NA2).
[0048] At 930, the command module 230 may determine an error measure for a group of passes within the lane segment. In some embodiments, as part of the command module 230's determination of the error measure, an error correction to one or more estimated trajectories may occur with each pass added to the lane segment pass. For example, a first estimated trajectory may be corrected based on the first pass, a second estimated trajectory may be corrected based on the first and second passes, and a third estimated trajectory may be corrected based on the first, second, and third passes). In some embodiments, a correction to one trajectory may lead to a correction of other trajectories. The correction may occur with each pass added to the lane segment by a variety of techniques including, for example, loop closure, enforcing bounds constraints, and using association heuristics to determine valid keypoints. Thus, with each pass added, an error measure may be calculated based on the position or attitude. For example, when corrections to any estimated trajectory are implemented, an absolute or relative attitude error may be calculated with each pass through the lane segment, and one or more error measures may then be associated with each pass through the lane segment. With respect to the types of error measures that may be used, the command module 230 may perform any error measure related to attitude or position as known in the art, such as those known for comparing an estimated trajectory to a ground truth trajectory, a best available estimated trajectory, etc.
[0049] At 940, the command module 230 may receive criteria, which may include any criteria known in the art, for evaluating the error measurements, as described above. For example, the command module 230 may receive one or more thresholds or ranges of values to evaluate the error measurements over multiple passes within a lane segment.
[0050] At 950, the command module 230 may determine an estimated number of passes required to meet the criteria based on the error measures. For example, achieving a value that is above or below a threshold criterion for a specified error measure may be used to estimate a sufficient number of passes. As another example, the relative change in value for one or more error measures when a pass is added may be evaluated against one or more thresholds.
[0051] 1 will now be described in greater detail as an exemplary environment in which the systems and methods disclosed herein may operate. In some examples, vehicle 100 is configured to selectively switch between various modes, such as an autonomous mode, one or more semi-autonomous operating modes, a manual mode, etc. Such switching may be implemented in any suitable manner now known or later developed. "Manual mode" means that all or most of the navigation / steering of the vehicle is performed according to inputs received from a user (e.g., a human driver). In one or more mechanisms, vehicle 100 may be a conventional vehicle configured to operate exclusively in a manual mode.
[0052] In one or more embodiments, vehicle 100 is an autonomous vehicle. As used herein, "autonomous vehicle" refers to a vehicle operating in an autonomous mode. "Autonomous mode" refers to using one or more computing systems to control vehicle 100, e.g., provide navigation / steering of vehicle 100 along a travel route, with minimal or no input from a human driver. In one or more embodiments, vehicle 100 is either highly automated or fully automated. In one embodiment, vehicle 100 is configured with one or more semi-autonomous operating modes, in which one or more computing systems perform some of the navigation / steering of the vehicle along a travel route, and a vehicle operator (i.e., the driver) provides input to the vehicle to perform some of the navigation / steering of vehicle 100 along a travel route.
[0053] The vehicle 100 may include one or more processors 110. In one or more arrangements, the processor 110 may be the main processor of the vehicle 100. For example, the processor 110 may be an electronic control unit (ECU). The vehicle 100 may include one or more data stores 115 that store one or more types of data. The data stores 115 may include volatile memory, non-volatile memory, or both. Examples of suitable data stores 115 include RAM (random access memory), flash memory, ROM (read only memory), PROM (programmable read only memory), EPROM (erasable programmable read only memory), EEPROM (electrically erasable programmable read only memory), registers, magnetic disks, optical disks, hard drives, or any other suitable storage medium, or any combination thereof. The data stores 115 may be components of the processor 110, or the data stores 115 may be operatively connected to the processor 110 for use by the processor 110. As used throughout this specification, the term "operably connected" includes direct or indirect connections and can include connections without direct physical contact.
[0054] In one or more arrangements, the data store 115 may include map data 116. The map data 116 may include maps of one or more geographic areas. In some examples, the map data 116 may include information or data about roads, traffic control devices, road markings, structures, features, landmarks, or any combination thereof, in one or more geographic areas. The map data 116 may be in any suitable form. In some examples, the map data 116 may include an aerial photograph of the area. In some examples, the map data 116 may include a ground photograph of the area, including a 360 degree ground photograph. The map data 116 may include measurements, dimensions, distances, information, or any combination thereof, for one or more items included in the map data 116. The map data 116 may also include measurements, dimensions, distances, information, or any combination thereof, for other items included in the map data 116. The map data 116 may include a digital map with information about road geometry. The map data 116 may be high quality, high definition, or both.
[0055] In one or more arrangements, the map data 116 may include one or more terrain maps 117. The terrain maps 117 may include information about the ground, terrain, roads, terrain surfaces, other features, or any combination thereof, of one or more geographic areas. The terrain maps 117 may include elevation data within one or more geographic areas. The terrain maps 117 may be of high quality, high definition, or both. The terrain maps 117 may define one or more ground surfaces, which may include paved roads, unpaved roads, land, and other features that define a ground surface.
[0056] In one or more mechanisms, the map data 116 may include one or more stationary obstacle maps 118. The stationary obstacle map 118 may include information about one or more stationary obstacles located within one or more geographic areas. A "stationary obstacle" is a physical object whose position does not change or does not substantially change over a period of time and whose size does not change or does not substantially change over a period of time. Examples of stationary obstacles include trees, buildings, curbs, fences, guardrails, centerlines, utility poles, statues, monuments, signs, benches, furniture, mailboxes, large rocks, and hills. A stationary obstacle may be an object that extends above ground level. One or more stationary obstacles included in the stationary obstacle map 118 may have position data, size data, dimensional data, material data, other data, or any combination thereof associated therewith. The stationary obstacle map 118 may include measurements, dimensions, distances, information, or any combination thereof regarding one or more stationary obstacles. The static obstacle map 118 may be of high quality, high definition, or both. The static obstacle map 118 may be updated to reflect changes in the mapped area.
[0057] Data store 115 may include sensor data 119. In this context, "sensor data" means any information related to sensors equipped in vehicle 100, including capabilities and other information related to the sensors. As described below, vehicle 100 may include sensor system 120. Sensor data 119 may relate to one or more sensors of sensor system 120. As an example, in one or more mechanisms, sensor data 119 may include information related to one or more LiDAR sensors 124 of sensor system 120.
[0058] In some examples, at least a portion of the map data 116 or sensor data 119 may be located in a data store 115 located on-board the vehicle 100. Alternatively or additionally, at least a portion of the map data 116 or sensor data 119 may be located in a data store 115 located remotely from the vehicle 100.
[0059] As mentioned above, the vehicle 100 may include a sensor system 120. The sensor system 120 may include one or more sensors. A "sensor" means any device, component, or system that can detect or sense something. The one or more sensors may be configured to sense, detect, or function in real-time. As used herein, the term "real-time" refers to a level of processing responsiveness that allows a user or system to sense quickly enough about a particular process or decision to be made or for a processor to keep up with some external process.
[0060] In arrangements where the sensor system 120 includes multiple sensors, the sensors may function independently of one another. Alternatively, two or more of the sensors may function in combination with one another. In such embodiments, the two or more sensors may form a sensor network. The sensor system 120, the one or more sensors, or both, may be operatively connected to the processor 110 of the vehicle 100, to a data store 115, to another element (including any of the elements shown in FIG. 1), or any combination thereof. The sensor system 120 may obtain data regarding at least a portion of the external environment of the vehicle 100 (e.g., nearby vehicles).
[0061] The sensor system 120 may include any suitable type of sensor. Various examples of different types of sensors are described herein. However, it will be understood that the embodiments are not limited to the particular sensors described. The sensor system 120 may include one or more vehicle sensors 121. The vehicle sensors 121 may detect, determine, sense, or obtain information related to the vehicle 100 itself in a combination. In one or more mechanisms, the vehicle sensors 121 may be configured to detect, determine, or obtain information related to changes in the position and orientation of the vehicle 100, such as based on inertial acceleration. In one or more mechanisms, the vehicle sensors 121 may include one or more accelerometers, one or more gyroscopes, an inertial measurement unit (IMU), a dead reckoning system, a global navigation satellite system (GNSS), a global positioning system (GPS), a navigation system 147, other suitable sensors, or any combination thereof. The vehicle sensors 121 may be configured to detect, determine, or obtain information related to one or more characteristics of the vehicle 100 in a combination. In one or more arrangements, the vehicle sensors 121 may include a speedometer for determining the current speed of the vehicle 100 .
[0062] Alternatively or additionally, the sensor system 120 may include one or more environmental sensors 122 configured to obtain, sense, or combine to obtain driving environment data. "Driving environment data" includes data or information regarding the external environment in which the autonomous vehicle is located or one or more portions thereof. For example, the environmental sensors 122 may be configured to detect, quantify, sense, or obtain any combination of obstacles, information / data regarding the obstacles, or combinations thereof, in at least a portion of the external environment of the vehicle 100. The obstacles may comprise stationary objects, dynamic objects, or combinations thereof. The environmental sensors 122 may be configured to detect, measure, quantify, sense, or obtain any combination of other things in the external environment of the vehicle 100, such as lane markers, signs, traffic lights, traffic signs, lanes, crosswalks, curbs near the vehicle 100, off-road objects, etc.
[0063] Described herein are various examples of sensors for the sensor system 120. The example sensors may be part of one or more environmental sensors 122, one or more vehicle sensors 121, or both. However, it will be understood that embodiments are not limited to the particular sensors described.
[0064] By way of example, in one or more arrangements, the sensor system 120 may include one or more radar sensors 123, one or more LiDAR sensors 124, one or more sonar sensors 125, one or more cameras 126, or any combination thereof. In one or more arrangements, the camera 126 may be a high dynamic range (HDR) camera or an infrared (IR) camera.
[0065] Vehicle 100 may include input system 130. An "input system" includes any device, component, system, element, or mechanism, or group thereof, that allows for information / data to be input into a machine. Input system 130 may receive input from a vehicle occupant (e.g., a driver or passenger). Vehicle 100 may include output system 135. An "output system" includes any device, component, or mechanism, or group thereof, that allows for information / data to be presented to a vehicle occupant (e.g., a person, a vehicle passenger, etc.).
[0066] Vehicle 100 may include one or more vehicle systems 140. Various examples of vehicle systems 140 are shown in FIG. 1. However, vehicle 100 may include more, fewer, or different vehicle systems. Although certain vehicle systems are defined separately, it should be understood that each or any of the systems or portions thereof may be otherwise combined or separated within vehicle 100 via hardware, software, or combinations thereof. Vehicle 100 may include a propulsion system 141, a braking system 142, a steering system 143, a throttle system 144, a transmission system 145, a signaling system 146, a navigation system 147, other systems, or any combination thereof. Each of these systems may include one or more devices, components, or combinations thereof, now known or later developed.
[0067] Navigation system 147 may include one or more devices, applications, and / or combinations thereof, now known or later developed, configured to determine a geographic location of vehicle 100, determine a driving route for vehicle 100, or both. Navigation system 147 may include one or more mapping applications for determining a driving route for vehicle 100. Navigation system 147 may include a global positioning system, a local positioning system, a geolocation system, or any combination thereof.
[0068] The processor 110, the mapping management system 170, the autonomous driving module 160, or any combination thereof, may be operatively connected to communicate with various aspects of the vehicle systems 140 or individual components thereof. For example, returning to FIG. 1 , the processor 110, the autonomous driving module 160, or any combination thereof may communicate to send or receive information from various aspects of the vehicle systems 140 to control the movement, speed, steering, heading, direction, etc. of the vehicle 100. The processor 110, the mapping management system 170, the autonomous driving module 160, or any combination thereof may control some or all of these vehicle systems 140 and thus may be partially or fully autonomous.
[0069] The processor 110, the mapping management system 170, the autonomous driving module 160, or any combination thereof may be operable to control at least one of the navigation or steering of the vehicle 100 by controlling the vehicle systems 140 or one or more of its components. For example, when operating in an autonomous mode, the processor 110, the mapping management system 170, the autonomous driving module 160, or any combination thereof may control the direction, speed, or both of the vehicle 100. The processor 110, the mapping management system 170, the autonomous driving module 160, or any combination thereof may cause the vehicle 100 to accelerate (e.g., by increasing the supply of fuel provided to the engine), slow down (e.g., by decreasing the supply of fuel to the engine or by applying the brakes), change direction (e.g., by turning the front two wheels), or any combination thereof. As used herein, "cause" or "causing" means, either directly or indirectly, to make, force, compel, direct, command, indicate, allow an event or action to occur, or any combination thereof, or to make, force, compel, direct, command, indicate, at least allow the event or action to be in a state in which such event or action can occur, or any combination thereof.
[0070] Vehicle 100 may include one or more actuators 150. Actuator 150 may be any element or combination of elements operable to modify, adjust, change, or any combination thereof with respect to vehicle system 140 or one or more of its components in response to receiving a signal or other input from processor 110, autonomous driving module 160, or a combination thereof. Any suitable actuator may be used. For example, actuator 150 may include a motor, a pneumatic actuator, a hydraulic piston, a relay, a solenoid, and a piezoelectric actuator, just to name a few possibilities.
[0071] Vehicle 100 may include one or more modules, at least some of which are described herein. The modules may be implemented as computer readable program code that, when executed by processor 110, implements one or more of the various processes described herein. One or more of the modules may be components of processor 110, or one or more of the modules may be executed on or distributed among other processing systems to which processor 110 is operatively connected. The modules may include instructions (e.g., program logic) executable by processor 110. Alternatively or additionally, data store 115 may include the instructions.
[0072] In one or more arrangements, one or more of the modules described herein may include artificial or computational intelligence elements, such as neural networks, fuzzy logic, or other machine learning algorithms. Further, in one or more arrangements, one or more of the modules may be distributed among multiple modules described herein. In one or more arrangements, two or more of the modules described herein may be combined into a single module.
[0073] Vehicle 100 may include one or more autonomous driving modules 160. Autonomous driving module 160 may be configured to receive data from sensor system 120 or from any other type of system capable of capturing information about vehicle 100, the vehicle's external environment, or a combination thereof. In one or more mechanisms, autonomous driving module 160 may use the data to generate one or more driving scene models. Autonomous driving module 160 may determine the position and speed of vehicle 100. Autonomous driving module 160 may determine the position of obstacles, obstacles, or other environmental features including traffic signs, trees, shrubs, nearby vehicles, pedestrians, etc.
[0074] Autonomous driving module 160 may be configured to receive, determine, or combine location information regarding obstacles in the external environment of vehicle 100 that may be used by processor 110, one or more of the modules described herein, or any combination thereof, to estimate a position or orientation of vehicle 100, a vehicle position or orientation in global coordinates based on signals from multiple satellites or other geolocation systems, or any other data / signals that may be used to determine a position or orientation of vehicle 100 relative to its environment for use either in creating a map or in determining the position of vehicle 100 relative to the map data.
[0075] The autonomous driving module 160 may be configured, independently or in combination with the mapping management system 170, to determine a driving path, a current autonomous driving maneuver for the vehicle 100, a future autonomous driving maneuver, a correction to the current autonomous driving maneuver, and the like. Such determinations by the autonomous driving module 160 may be based on data acquired by the sensor system 120, a driving scene model, data from any other suitable source, such as a determination from the sensor data 250, or any combination thereof. In general, the autonomous driving module 160 may function to implement various levels of automation, including advanced driver assistance (ADAS) functions, semi-autonomous functions, and fully autonomous functions. A "driving maneuver" refers to one or more actions that affect the movement of the vehicle. Examples of driving maneuvers include accelerating, decelerating, braking, turning, moving the vehicle 100 laterally, changing driving lanes, merging into a driving lane, and backing up, just to name a few possibilities. The autonomous driving module 160 may be configured to implement a driving maneuver. The autonomous driving module 160 may directly or indirectly cause such an autonomous driving maneuver to be implemented. As used herein, "cause" or "causing" means, either directly or indirectly, to cause, command, direct, enable, or cause an event or action to occur, or any combination thereof, or to cause, command, direct, or at least enable an event or action to be in a state in which such event or action may occur, or any combination thereof. Autonomous driving module 160 may be configured to perform various vehicle functions to transmit data to, receive data from, interact with, or control vehicle 100 or one or more of its systems (e.g., one or more of vehicle systems 140), whether individually or in combination.
[0076] Detailed embodiments are disclosed herein. However, it should be understood that the embodiments of the present disclosure are intended as examples only. Therefore, the specific structural and functional details disclosed herein should not be interpreted as limiting, but merely as a basis for the claims and as a representative basis for teaching those skilled in the art to variously employ the aspects of the present specification in substantially any suitable detailed structure. Furthermore, the terms and phrases used herein are not intended to be limiting, but rather to provide an understandable description of possible implementations. Although various embodiments are shown in Figures 1 to 9, the embodiments are not limited to the illustrated structures or applications.
[0077] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of code, comprising one or more executable instructions that implement the specified logical function(s). It should also be noted that in some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may in fact be executed substantially simultaneously, or the blocks may sometimes be executed in the reverse order, depending on the functionality involved.
[0078] The above-mentioned systems, components, or processes may be realized in hardware or a combination of hardware and software, in a centralized manner in one processing system, or in a distributed manner with various elements spread across several interconnected processing systems. Any kind of processing system or other device configured to perform the methods described herein is suitable. A typical combination of hardware and software may be a processing system having computer usable program code that, when loaded and executed, controls the processing system such that the processing system performs the methods described herein. The systems, components, or processes may also be incorporated in a computer readable storage, such as a computer program product or other data program storage device, readable by a machine, tangibly embodying a program of instructions executable by the machine to perform the methods and processes described herein. These elements may also be incorporated in an application product, which comprises all the features enabling the implementation of the methods described herein and is capable of performing the methods when loaded in a processing system.
[0079] Furthermore, the mechanisms described herein may take the form of a computer program product in which computer readable program code is embodied, e.g., stored, in one or more computer readable media. Any combination of one or more computer readable media may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. The phrase "computer readable storage medium" refers to a non-transitory storage medium. The computer readable storage medium may be, for example, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination thereof. More specific examples (non-exhaustive list) of computer readable storage media include the following: portable computer diskette, hard disk drive (HDD), solid state drive (SSD), read only memory (ROM), erasable programmable read only memory (EPROM or flash memory), portable compact disc read only memory (CD-ROM), digital versatile disk (DVD), optical storage device, magnetic storage device, or any suitable combination thereof. In the context of this specification, a computer-readable storage medium may be any tangible medium that may contain or store a program for use by or in connection with an instruction execution system, apparatus, or device.
[0080] Generally, a module as used herein includes a routine, program, object, component, data structure, etc., that performs a particular task or implements a particular data type. In a further aspect, a memory generally stores the described modules. The memory associated with a module may be a buffer or cache built into a processor, a RAM, a ROM, a flash memory, or another suitable electronic storage medium. In yet a further aspect, a module as contemplated by the present disclosure is implemented as an application specific integrated circuit (ASIC), as a hardware component of a system on a chip (SoC), as a programmable logic array (PLA), or as another suitable hardware component that incorporates a configuration set (e.g., instructions) defined to perform the functions of the present disclosure.
[0081] The program code embodied on the computer readable medium may be transmitted using any suitable medium, including, but not limited to, wireless, wired, fiber optic, cable, RF, and the like, or any suitable combination thereof. The computer program code for performing operations for aspects of the mechanism may be written in any combination of one or more programming languages, including object-oriented programming languages such as Java, Smalltalk, C++, or the like, and traditional procedural programming languages such as the "C" programming language or similar programming languages. The program code may be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or a connection to an external computer may be made (e.g., through the Internet using an Internet Service Provider).
[0082] The terms "a" and "an," as used herein, are defined as one or more than one. The term "multiple," as used herein, are defined as two or more than two. The term "another," as used herein, is defined as at least a second or more. The terms "including" and "having," as used herein, are defined as comprising (i.e., open language). The phrase "and at least one of," as used herein, refers to and includes any and all possible combinations of one or more of the associated listed items. As an example, the phrase "at least one of A, B, and C" includes A only, B only, C only, or any combination thereof (e.g., AB, AC, BC, or ABC).
[0083] The aspects herein may be embodied in other forms without departing from the spirit or essential attributes thereof, and reference should accordingly be made to the following claims, rather than the foregoing specification, as indicating the scope herein.
Claims
1. A processor; a memory communicatively coupled to the processor and storing machine-readable instructions; the machine-readable instructions, when executed by the processor, cause the processor to: Receive trace data, processing the trace data to provide groups of passages within lane segments; determining an error measure for the group of passes within the lane segment; Receive the criteria, determining an estimated number of passes to meet said criteria based on said error measure; system.
2. 2. The system of claim 1, wherein the machine-readable instructions for determining the error measures for the group of passes in the lane section further comprise: for each pass added to the lane section after a first pass, revising an estimated trajectory based on all passes added in the lane section and then calculating one of the error measures.
3. The system of claim 2 , wherein the machine-readable instructions for calculating one of the error measures is based on a comparison with a ground truth trajectory.
4. The system of claim 3 , wherein the ground truth trajectory is based on a revised estimated trajectory after a final passage is added to the lane segment.
5. The system of claim 3 , wherein the machine readable instructions for calculating one of the error measurements is further based on an absolute attitude error or a relative attitude error.
6. The system of claim 3 , wherein the criterion is that the error measure is less than a threshold value.
7. The system of claim 3 , wherein the machine-readable instructions for determining the estimated number of passes to meet the criterion based on the error measure further comprise estimating a trend line for the error measure.
8. The system of claim 4 , wherein the criterion is that the difference between two error measurements from one error measurement to another for a pass is less than a threshold value.
9. A non-transitory computer-readable medium containing instructions that, when executed by one or more processors, cause the one or more processors to: Receive trace data, processing the trace data to provide groups of passages within lane segments; determining an error measure for the group of passes within the lane segment; Receive the criteria, determining an estimated number of passes to meet said criteria based on said error measure; Non-transitory computer-readable medium.
10. 10. The non-transitory computer-readable medium of claim 9, wherein the instructions to determine the error measures for the group of passes in the lane section further comprise: for each pass added to the lane section after a first pass, revising an estimated trajectory based on all passes added in the lane section and then calculating one of the error measures.
11. The non-transitory computer-readable medium of claim 10 , wherein the instructions for calculating one of the error measures are based on a comparison with a ground truth trajectory.
12. The non-transitory computer-readable medium of claim 11 , wherein the ground truth trajectory is based on a revised estimated trajectory after a final passage is added to the lane segment.
13. The non-transitory computer readable medium of claim 11 , wherein the instructions to calculate one of the error measurements are further based on an absolute attitude error or a relative attitude error.
14. The non-transitory computer-readable medium of claim 11 , wherein the criterion is that an error measure is less than a threshold.
15. 12. The non-transitory computer-readable medium of claim 11, wherein the instructions for determining the estimated number of passes to meet the criterion based on the error measure further comprise estimating a trend line for the error measure.
16. Receiving trace data; processing the trace data to provide groups of passages within a lane segment; determining an error measure for the group of passes within the lane segment; Receiving a criterion; determining an estimated number of passes to meet the criterion based on the error measure; A method comprising:
17. 17. The method of claim 16, wherein determining the error measures for the group of passes in the lane section further comprises: for each pass added to the lane section after a first pass, revising an estimated trajectory based on all passes added in the lane section and then calculating one of the error measures.
18. The method of claim 17 , wherein calculating one of the error measures is based on a comparison with a ground truth trajectory.
19. The method of claim 18 , wherein the ground truth trajectory is based on a revised estimated trajectory after a final passage is added to the lane segment.
20. The method of claim 18 , wherein calculating one of the error measures is further based on an absolute attitude error or a relative attitude error.