Crowdsourcing vehicle lane map

By receiving and classify multiple observation values, determine the point cloud of alignment and generate lane line diagrams, solve the problem of dependence on road tag explanation of the existing ADAS and ADS systems, and realize the obtaining accurate lane line map data through crowdsourcing methods, improved the improvement of the data, improve the improvement of the data, improve the improvement of the data, improve The accuracy of autonomous driving and auxiliary driving systems is accurate and passenger experience.

CN119374574APending Publication Date: 2025-01-28GM GLOBAL TECHNOLOGY OPERATIONS LLC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202311575061.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-07-26
Filing Date
2023-11-22
Publication Date
2025-01-28

AI Technical Summary

Technical Problem

Existing ADAS and ADS systems rely on accurate interpretation of road markings, cannot effectively consider other factors that affect the occupant experience, and it is difficult to obtain accurate lane line map data through crowdsourcing.

Method used

By receiving multiple observation values, classifying these observation values, determining the point clouds of multiple alignment, and generating the lane line diagram based on these points, and finally updated the map database. This method uses the data provided by multiple vehicles for classification and alignment to generate accurate lane line charts.

Benefits of technology

The obtaining and updating lane line diagram data is achieved through crowdsourcing, which improves the accuracy of vehicle autonomous driving and auxiliary driving systems, and solves the dependence of the existing system on road marks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119374574A_ABST
    Figure CN119374574A_ABST
Patent Text Reader

Abstract

A method for crowdsourcing vehicle lane map data includes receiving a plurality of observations. The method also includes classifying the plurality of observation values into a plurality of observation categories. Each of the plurality of observation categories includes at least one observation value of the plurality of observation values. The method also includes determining a plurality of aligned point clouds based at least in part on the plurality of observations. One of the plurality of aligned point clouds corresponds to each of a plurality of observation categories. The method also includes determining a plurality of lane maps based at least in part on the plurality of aligned point clouds. One of the plurality of lane maps corresponds to each of the plurality of aligned point clouds. The method further includes updating a map database based at least in part on the plurality of lane maps.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to an advanced driver assistance and automated driving system and method for a vehicle. Background Art

[0002] To improve occupant awareness and convenience, vehicles may be equipped with advanced driver assistance systems (ADAS) and / or automated driving systems (ADS). ADAS systems may use various sensors, such as cameras, radar, and laser radar (LiDAR) to detect and identify objects around the vehicle, including other vehicles, pedestrians, road configuration, traffic signs, and road markings. ADAS systems can take action based on environmental conditions around the vehicle, such as braking or alerting vehicle occupants. However, current ADAS systems may not take into account other factors that may affect the occupant experience. ADS systems may use various sensors to detect objects in the vehicle's surroundings and control the vehicle to navigate the vehicle through the environment to a predetermined destination. However, current ADAS and ADS systems may rely on accurate interpretation of road markings (e.g., lane markings) for optimal operation.

[0003] Therefore, while ADAS and ADS systems and methods achieve their intended purposes, a need remains for new and improved systems and methods for crowd-sourcing vehicle lane map data. Summary of the invention

[0004] In several aspects, a method for crowdsourcing vehicle lane map data is provided herein. The method includes receiving a plurality of observations. The method also includes classifying the plurality of observations into a plurality of observation categories. Each of the plurality of observation categories includes at least one observation of the plurality of observations. The method also includes determining a plurality of aligned point clouds based at least in part on the plurality of observations. A point cloud in the plurality of aligned point clouds corresponds to each of the plurality of observation categories. The method also includes determining a plurality of lane maps based at least in part on the plurality of aligned point clouds. A lane map in the plurality of lane maps corresponds to each of the plurality of aligned point clouds. The method also includes updating a map database based at least in part on the plurality of lane maps.

[0005] In another aspect of the present disclosure, receiving a plurality of observations may further include receiving a plurality of observations from one or more vehicles. Each of the plurality of observations includes a vehicle position trajectory and a plurality of points located relative to the vehicle position trajectory. Each of the plurality of points includes a plurality of point features. A point feature of the plurality of point features is a position of each point relative to the vehicle position trajectory. Each of the plurality of points corresponds to an object in an environment surrounding one or more vehicles.

[0006] In another aspect of the present disclosure, classifying the plurality of observations may further include filtering the plurality of observations to remove abnormal observations.

[0007] In another aspect of the present disclosure, classifying the plurality of observations may further include determining at least one observation feature of each of the plurality of observations based at least in part on a plurality of point features of each of the plurality of points of each of the observations. Classifying the plurality of observations may further include classifying the plurality of observations based at least in part on the at least one observation feature. Each of the plurality of observation categories includes a subset of the plurality of observations having at least one common observation feature.

[0008] In another aspect of the present disclosure, classifying the plurality of observations may further include determining an average vehicle heading for each of the plurality of observations based at least in part on a plurality of point features for each of the plurality of points for each of the plurality of observations. Classifying the plurality of observations may further include classifying the plurality of observations based at least in part on the average vehicle heading for each of the plurality of observations. Each of the plurality of observation classes includes a subset of the plurality of observations having an average vehicle heading within a predetermined heading tolerance range.

[0009] In another aspect of the present disclosure, determining a point cloud in a plurality of aligned point clouds may further include identifying a first observation in a plurality of observations. The first observation in the plurality of observations is in a first observation category in a plurality of observation categories. Determining a point cloud in a plurality of aligned point clouds may further include selecting a second observation in the plurality of observations. The second observation in the plurality of observations belongs to the first observation category. Determining a point cloud in a plurality of aligned point clouds may further include aligning the second observation in the plurality of observations with the first observation in the plurality of observations by moving the vehicle position track of the second observation in the plurality of observations to produce a moved vehicle position track. Determining a point cloud in a plurality of aligned point clouds may further include forming a point cloud by repeating the selection step and the alignment step until each observation in the plurality of observations in the first observation category has been aligned with the first observation in the plurality of observations. The point cloud includes a plurality of points for each observation in the plurality of observations in the first observation category, a vehicle position track for the first observation in the plurality of observations, and a plurality of moved vehicle position tracks. Each of the plurality of moved vehicle position tracks corresponds to an observation in the plurality of observations in the first observation category. Determining a point cloud in the plurality of aligned point clouds may also include determining a point cloud in the plurality of aligned point clouds by aligning the point clouds based at least in part on the vehicle position trajectory for each of the plurality of observations and the plurality of moved vehicle position trajectories.

[0010] In another aspect of the present disclosure, aligning a second observation of a plurality of observations with a first observation of a plurality of observations may also include determining a plurality of point pairs. Each of the plurality of point pairs includes a point from the first observation of the plurality of observations and a point from the second observation of the plurality of observations. Aligning the second observation of the plurality of observations with the first observation of the plurality of observations may also include calculating a plurality of offset vectors. Each of the plurality of offset vectors corresponds to a point pair of the plurality of point pairs. Each of the plurality of offset vectors describes an offset between a point pair of the plurality of point pairs. Aligning the second observation of the plurality of observations with the first observation of the plurality of observations may also include calculating a plurality of offset weights. Each of the plurality of offset weights corresponds to one of the plurality of point pairs. Each of the plurality of offset weights is calculated based at least in part on a plurality of point features of each of the plurality of point pairs. Aligning a second observation in the plurality of observations with a first observation in the plurality of observations may also include: combining the second observation in the plurality of observations with the first observation in the plurality of observations based at least in part on a plurality of offset vectors and a plurality of offset weights by moving the second observation in the plurality of observations toward the first observation in the plurality of observations. Using an iterative process to move the second observation in the plurality of observations toward the first observation in the plurality of observations. Recalculating the plurality of offset vectors and the plurality of offset weights at each iteration of the iterative process. The iterative process ends when a magnitude of each of the plurality of offset vectors is less than or equal to a predetermined offset magnitude threshold.

[0011] In another aspect of the present disclosure, calculating one of the multiple offset weights may also include: comparing each of the multiple point features of a first point of one of the multiple point pairs with each of the multiple point features of a second point of one of the multiple point pairs to identify a plurality of common point features between the first point of one of the multiple point pairs and the second point of one of the multiple point pairs. Calculating one of the multiple offset weights may also include calculating one of the multiple offset weights based at least in part on the multiple common point features.

[0012] In another aspect of the present disclosure, calculating one of the plurality of offset weights based at least in part on the plurality of common point features may also include determining the number of common point features of one of the plurality of point pairs based at least in part on the plurality of common point features. Calculating one of the plurality of offset weights based at least in part on the plurality of common point features may also include calculating one of the plurality of offset weights based at least in part on the number of common point features. The one of the plurality of offset weights is proportional to the number of common point features.

[0013] In another aspect of the present disclosure, determining a point cloud among a plurality of aligned point clouds by aligning the point clouds may further include calculating an offset k that minimizes an objective function:

[0014]

[0015] where f(k) is the quantity to be minimized; d(p i , p′ i (k)) is the point p i and p′ i (k) The Euclidean distance between i is the i-th point on the vehicle position trajectory of one of the multiple observations; and p′ i (k) is the i-th point on the corresponding one of the plurality of moved vehicle position trajectories further moved by an offset k. Determining a plurality of aligned point clouds by aligning the point clouds may also include determining a point cloud in the plurality of aligned point clouds by moving the point cloud by an offset k.

[0016] In several aspects, a system for crowdsourcing vehicle lane map data is provided herein. The system includes a server communication system. The system also includes a map database. The system also includes a server controller in electrical communication with the server communication system and the map database. The server controller is programmed to receive multiple observations from one or more vehicles using the server communication system. Each of the multiple observations includes a vehicle position trajectory and multiple points located relative to the vehicle position trajectory. Each of the multiple points includes multiple point features. One of the multiple point features is the position of each point relative to the vehicle position trajectory. Each of the multiple points corresponds to an object in an environment surrounding the one or more vehicles. The server controller is programmed to classify the multiple observations into multiple observation categories. Each of the multiple observation categories includes at least one observation of the multiple observations. The server controller is programmed to determine multiple aligned point clouds based at least in part on the multiple observations. One of the multiple aligned point clouds corresponds to each of the multiple observation categories. The server controller is programmed to determine multiple lane maps based at least in part on the multiple aligned point clouds. One of the multiple lane maps corresponds to each of the multiple aligned point clouds. The server controller is programmed to update the map database based at least in part on the plurality of lane maps.

[0017] In another aspect of the present disclosure, to classify the plurality of observations, the server controller is further programmed to determine at least one observation feature for each of the plurality of observations based at least in part on a plurality of point features for each of the plurality of points for each of the plurality of observations. To classify the plurality of observations, the server controller is further programmed to classify the plurality of observations based at least in part on the at least one observation feature. Each of the plurality of observation categories includes a subset of the plurality of observations having at least one common observation feature.

[0018] In another aspect of the present disclosure, to determine a point cloud in a plurality of aligned point clouds, the server controller is further programmed to identify a first observation in a plurality of observations. The first observation in the plurality of observations belongs to a first observation category in a plurality of observation categories. To determine a point cloud in a plurality of aligned point clouds, the server controller is further programmed to select a second observation in the plurality of observations. The second observation in the plurality of observations belongs to the first observation category. To determine a point cloud in a plurality of aligned point clouds, the server controller is further programmed to align the second observation in the plurality of observations with the first observation in the plurality of observations by moving the vehicle position track of the second observation in the plurality of observations to produce a moved vehicle position track. To determine a point cloud in a plurality of aligned point clouds, the server controller is further programmed to form a point cloud by repeating the selection step and the alignment step until each observation in the plurality of observations in the first observation category has been aligned with the first observation in the plurality of observations. The point cloud includes a plurality of points for each observation in the plurality of observations in the first observation category, a vehicle position track for the first observation in the plurality of observations, and a plurality of moved vehicle position tracks. Each of the plurality of moved vehicle position trajectories corresponds to one of the plurality of observations of the first observation category. To determine one of the plurality of aligned point clouds, the server controller is further programmed to determine the one of the plurality of aligned point clouds by aligning the point clouds based at least in part on the vehicle position trajectory of each of the plurality of aligned point clouds and the plurality of moved vehicle position trajectories.

[0019] In another aspect of the present disclosure, in order to align a second observation in a plurality of observations with a first observation in a plurality of observations, the server controller is further programmed to determine a plurality of point pairs. Each of the plurality of point pairs includes a point from a first observation in a plurality of observations and a point from a second observation in a plurality of observations. In order to align a second observation in a plurality of observations with a first observation in a plurality of observations, the server controller is further programmed to calculate a plurality of offset vectors. Each of the plurality of offset vectors corresponds to a point pair in a plurality of point pairs. Each of the plurality of offset vectors describes an offset between the point pairs in a plurality of point pairs. In order to align a second observation in a plurality of observations with a first observation in a plurality of observations, the server controller is further programmed to calculate a plurality of offset weights. Each of the plurality of offset weights corresponds to a point pair in a plurality of point pairs. Each of the plurality of offset weights is calculated based at least in part on a plurality of point features of each of the plurality of point pairs. To align a second observation in the plurality of observations with a first observation in the plurality of observations, the server controller is further programmed to: combine the second observation in the plurality of observations with the first observation in the plurality of observations based at least in part on the plurality of offset vectors and the plurality of offset weights by moving the second observation in the plurality of observations toward the first observation in the plurality of observations. Move the second observation in the plurality of observations toward the first observation in the plurality of observations using an iterative process. Recalculate the plurality of offset vectors and the plurality of offset weights at each iteration of the iterative process. The iterative process ends when a magnitude of each of the plurality of offset vectors is less than or equal to a predetermined offset magnitude threshold.

[0020] In another aspect of the present disclosure, to calculate one of the plurality of offset weights, the server controller is further programmed to compare each of the plurality of point features of a first point of one of the plurality of point pairs with each of the plurality of point features of a second point of the one of the plurality of point pairs to identify a plurality of common point features between the first point of one of the plurality of point pairs and the second point of one of the plurality of point pairs. To calculate one of the plurality of offset weights, the server controller is further programmed to calculate one of the plurality of offset weights based at least in part on the plurality of common point features.

[0021] In another aspect of the present disclosure, to calculate one of the plurality of offset weights based at least in part on the plurality of common point features, the server controller is further programmed to determine the number of common point features of one of the plurality of point pairs based at least in part on the plurality of common point features. To calculate one of the plurality of offset weights based at least in part on the plurality of common point features, the server controller is further programmed to calculate one of the plurality of offset weights based at least in part on the number of common point features. One of the plurality of offset weights is proportional to the number of common point features.

[0022] In another aspect of the present disclosure, the server controller is further programmed to save a plurality of lane maps in the map database in order to update the map database. The server controller is further programmed to send the plurality of lane maps using the server communication system in order to update the map database. The plurality of lane maps are received by one or more vehicles. The behavior of the autonomous driving system of the one or more vehicles is adjusted based at least in part on the plurality of lane maps.

[0023] In several aspects, a system for crowdsourcing vehicle lane line map data is provided herein. The system includes a vehicle system, the vehicle system including a camera system, a global navigation satellite system (GNSS), a vehicle communication system, and a vehicle controller that is electrically in communication with the camera system, the GNSS, and the vehicle communication system. The vehicle controller is programmed to make multiple observations of one or more lane lines on a road using the camera system and the GNSS. Multiple observations include a vehicle position trajectory determined by the GNSS and multiple points located relative to the vehicle position trajectory. Each of the multiple points includes multiple point features. Multiple points form a point cloud describing one or more lane lines. The vehicle controller is also programmed to transmit multiple observations to a server system. The vehicle controller is also programmed to receive a lane line map from the server system using the vehicle communication system. The vehicle controller is also programmed to adjust the operation of the vehicle based at least in part on the lane line map. The system also includes a server system, the server system including a server communication system and a server controller that is electrically in communication with the server communication system. The server controller is programmed to receive multiple observations using the server communication system. The server controller is also programmed to determine an aligned point cloud based at least in part on multiple observations. The server controller is further programmed to determine a lane map based at least in part on the aligned point clouds. The server controller is further programmed to transmit the lane map to the vehicle using the server communication system.

[0024] In another aspect of the present disclosure, to determine an aligned point cloud, the server controller is further programmed to identify a first observation of the plurality of observations. To determine the aligned point cloud, the server controller is further programmed to select a second observation of the plurality of observations. To determine the aligned point cloud, the server controller is further programmed to align the second observation of the plurality of observations with the first observation of the plurality of observations by moving the vehicle position track of the second observation of the plurality of observations to produce a moved vehicle position track. To determine the aligned point cloud, the server controller is further programmed to form a point cloud by repeating the selection step and the alignment step until each observation of the plurality of observations has been aligned with the first observation of the plurality of observations. The point cloud includes a plurality of points of each observation of the plurality of observations, a vehicle position track of the first observation of the plurality of observations, and a plurality of moved vehicle position tracks. Each of the plurality of moved vehicle position tracks corresponds to one observation of the plurality of observations. To determine the aligned point cloud, the server controller is further programmed to align the point cloud by at least partially based on the vehicle position track of each observation of the plurality of observations and the plurality of moved vehicle position tracks to determine the aligned point cloud.

[0025] In another aspect of the present disclosure, in order to align a second observation in a plurality of observations with a first observation in a plurality of observations, the server controller is further programmed to determine a plurality of point pairs. Each of the plurality of point pairs includes a point from a first observation in a plurality of observations and a point from a second observation in a plurality of observations. In order to align a second observation in a plurality of observations with a first observation in a plurality of observations, the server controller is further programmed to calculate a plurality of offset vectors. Each of the plurality of offset vectors corresponds to a point pair in a plurality of point pairs. Each of the plurality of offset vectors describes an offset between the point pairs in a plurality of point pairs. In order to align a second observation in a plurality of observations with a first observation in a plurality of observations, the server controller is further programmed to calculate a plurality of offset weights. Each of the plurality of offset weights corresponds to a point pair in a plurality of point pairs. Each of the plurality of offset weights is calculated based at least in part on a plurality of point features of each of the plurality of point pairs. To align a second observation in the plurality of observations with a first observation in the plurality of observations, the server controller is further programmed to: combine the second observation in the plurality of observations with the first observation in the plurality of observations based at least in part on the plurality of offset vectors and the plurality of offset weights by moving the second observation in the plurality of observations toward the first observation in the plurality of observations. Move the second observation in the plurality of observations toward the first observation in the plurality of observations using an iterative process. Recalculate the plurality of offset vectors and the plurality of offset weights at each iteration of the iterative process. The iterative process ends when a magnitude of each of the plurality of offset vectors is less than or equal to a predetermined offset magnitude threshold.

[0026] Further areas of applicability will become apparent from the description provided herein.It should be understood that the description and specific examples are intended for purposes of illustration only and are not intended to limit the scope of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0027] The drawings described herein are for illustration purposes only and are not intended to limit the scope of the present disclosure in any way.

[0028] Figure 1 is a schematic diagram of a system for crowdsourcing lane map data according to an exemplary embodiment.

[0029] Figure 2 is a schematic diagram showing a plurality of vehicles traveling on a road with lane lines not aligned with each other according to an exemplary embodiment;

[0030] Figure 3 is a graphical representation of a plurality of observations according to an exemplary embodiment;

[0031] Figure 4is a flow chart of a method for crowdsourcing vehicle lane map data according to an exemplary embodiment;

[0032] Figure 5 is a flow chart of a method for classifying a plurality of observations according to an exemplary embodiment;

[0033] Figure 6 is a flow chart of a method for determining a plurality of aligned point clouds based at least in part on a plurality of observations according to an exemplary embodiment;

[0034] Figure 7 is a flow chart of a method for calculating a plurality of offset weights according to an exemplary embodiment; and

[0035] Figure 8 is a flow chart of a method for determining a point cloud among a plurality of aligned point clouds according to an exemplary embodiment. DETAILED DESCRIPTION

[0036] The following description is merely exemplary in nature and is not intended to limit the present disclosure, application, or uses.

[0037] Road markings, such as lane lines, are important elements of road infrastructure and are often used to convey important information such as the location of the edge of the road to the driver. Vehicles can use perception sensor systems such as camera systems to obtain information about lane lines. Information about lane lines obtained by the vehicle perception sensor system can be used to provide features such as automated driving systems (ADS), advanced driver assistance systems (ADAS), etc. The present disclosure provides a new and improved method for obtaining and aggregating lane line data from multiple vehicles to generate a lane line map.

[0038] refer to Figure 1 , a schematic diagram of a system 10 for crowdsourcing lane map data is shown. The system 10 includes one or more vehicles 12, each of the one or more vehicles 12 includes a vehicle system 14. The system 10 also includes a server system 16.

[0039] The vehicle system 14 includes a vehicle controller 18 , a camera system 20 , a global navigation satellite system (GNSS) 22 , and a vehicle communication system 24 .

[0040] The vehicle controller 18 is used to implement the method 100 for crowdsourcing lane map data, as described below. The vehicle controller 18 includes at least one processor and a non-transitory computer-readable storage device or medium. The processor can be a custom or commercially available processor, a central processing unit (CPU), a graphics processing unit (GPU), an auxiliary processor in a plurality of processors associated with the vehicle controller 18, a semiconductor-based microprocessor (in the form of a microchip or chipset), a macroprocessor, a combination thereof, or a device generally used to execute instructions. The computer-readable storage device or medium can include volatile and non-volatile storage devices such as read-only memory (ROM), random access memory (RAM), and keep-alive memory (KAM). KAM is a persistent or non-volatile memory that can be used to store various operating variables when the processor is turned off. The computer-readable storage device or medium can be implemented using a variety of storage devices, such as PROM (programmable read-only memory), EPROM (electrical PROM), EEPROM (electrically erasable PROM), flash memory, or other electrical, magnetic, optical, or combination storage devices capable of storing data, some of which represent executable instructions used by the vehicle controller 18 to control various systems of the vehicle 12. The vehicle controller 18 may also be comprised of multiple controllers in electrical communication with one another. The vehicle controller 18 may be interconnected with additional systems and / or controllers of the vehicle 12, allowing the vehicle controller 18 to access data such as the speed, acceleration, braking and steering angle of the vehicle 12, and the like.

[0041] The vehicle controller 18 is in electrical communication with the camera system 20, the GNSS 22, and the vehicle communication system 24. In an exemplary embodiment, the electrical communication is established using, for example, a CAN network, a FLEXRAY network, a local area network (e.g., WiFi, Ethernet, etc.), a serial peripheral interface (SPI) network, or a serial peripheral interface (SPI) network. It should be understood that various additional wired and wireless technologies and communication protocols for communicating with the vehicle controller 18 are within the scope of the present disclosure.

[0042] The camera system 20 is used to capture images and / or video of the environment surrounding the vehicle 12. In an exemplary embodiment, the camera system 20 includes a camera and / or video camera positioned to view the environment surrounding the vehicle 12. In a non-limiting example, the camera system 20 includes a camera fixed inside the vehicle 12 (e.g., fixed in the headliner of the vehicle 12) that captures a view through the windshield. In another non-limiting example, the camera system 20 includes a camera fixed outside the vehicle 12 (e.g., fixed on the roof of the vehicle 12) that captures a view of the environment in front of the vehicle 12.

[0043] In another exemplary embodiment, the camera system 20 is a surround view camera system that includes multiple cameras (also referred to as satellite cameras) arranged to provide views of the environment adjacent to all sides of the vehicle 12. In a non-limiting example, the camera system 20 includes a front-facing camera (e.g., mounted in the front grille of the vehicle 12), a rear-facing camera (e.g., mounted on the tailgate of the vehicle 12), and two side-facing cameras (e.g., mounted below each of the two side-view mirrors of the vehicle 12). In another non-limiting example, the camera system 20 also includes an additional rear-view camera mounted near the center high-mounted brake light of the vehicle 12.

[0044] It should be understood that camera systems with additional cameras and / or additional mounting locations are within the scope of the present disclosure. It should also be understood that cameras with various sensor types, including, for example, charge coupled device (CCD) sensors, complementary metal oxide semiconductor (CMOS) sensors, and / or high dynamic range (HDR) sensors, are within the scope of the present disclosure. In addition, cameras with various lens types, including, for example, wide angle lenses and / or narrow angle lenses, are also within the scope of the present disclosure.

[0045] GNSS 22 is used to determine the geographic location of vehicle 12. In an exemplary embodiment, GNSS 22 is a global positioning system (GPS). In a non-limiting example, GPS includes a GPS receiver antenna (not shown) and a GPS controller (not shown) in electrical communication with the GPS receiver antenna. The GPS receiver antenna receives signals from a plurality of satellites, and the GPS controller calculates the geographic location of vehicle 12 based on the signals received by the GPS receiver antenna. In an exemplary embodiment, GNSS 22 also includes a map. The map includes information about infrastructure, such as municipal boundaries, roads, railways, sidewalks, buildings, etc. Therefore, map information is used to describe the geographic location of vehicle 12 in context. In a non-limiting example, a wireless connection is used to retrieve the map from a remote source. In another non-limiting example, the map is stored in a database of GNSS 22. It should be understood that various additional types of satellite-based radio navigation systems, such as global positioning system (GPS), Galileo, GLONASS, and BeiDou navigation satellite system (BDS) are within the scope of the present disclosure. It should be appreciated that the GNSS 22 may be integrated with the vehicle controller 18 (eg, integrated on the same circuit board as the vehicle controller 18 or otherwise be a part of the vehicle controller 18 ) without departing from the scope of the present disclosure.

[0046] The vehicle controller 18 uses the vehicle communication system 24 to communicate with other systems outside the vehicle 12. For example, the vehicle communication system 24 includes the ability to communicate with vehicle communications ("V2V" communications), infrastructure ("V2I" communications), remote systems at remote call centers (e.g., General Motors' ON-STAR), and / or personal devices. In general, the term vehicle-to-everything communications ("V2X" communications) refers to communications between the vehicle 12 and any remote system (e.g., vehicle, infrastructure, and / or remote system). In some embodiments, the vehicle communication system 24 is a wireless communication system that is configured to communicate via a wireless local area network (WLAN) using the IEEE 802.11 standard or by using cellular data communications (e.g., using GSMA standards such as SGP.02, SGP.22, SGP.32, etc.). Therefore, the vehicle communication system 24 may also include an embedded universal integrated circuit card (eUICC) that is configured to store at least one cellular connection profile, such as an embedded subscriber identity module (eSIM) profile. The vehicle communication system 24 is also configured to communicate via a personal area network (e.g., Bluetooth) and / or near field communication (NFC). However, additional or alternative communication methods such as dedicated short-range communication (DSRC) channels and / or mobile telecommunication protocols based on the third generation partnership project (3GPP) standard are also considered to be within the scope of the present disclosure. DSRC channels refer to unidirectional or bidirectional short-range to medium-range wireless communication channels designed specifically for automotive use and a set of corresponding protocols and standards. 3GPP refers to a partnership between multiple standard organizations that develop mobile telecommunication protocols and standards. The structure of the 3GPP standard is "version". Therefore, communication methods based on 3GPP versions 14, 15, 16 and / or future 3GPP versions are considered to be within the scope of the present disclosure. Therefore, the vehicle communication system 24 may include one or more antennas and / or communication transceivers for receiving and / or transmitting signals, such as collaborative sensing messages (CSM). The vehicle communication system 24 is configured to wirelessly transmit information between the vehicle 12 and another vehicle. In addition, the vehicle communication system 24 is configured to wirelessly transmit information between the vehicle 12 and infrastructure or other vehicles. It should be appreciated that the vehicle communication system 24 may be integrated with the vehicle controller 18 (eg, on the same circuit board as the vehicle controller 18 or otherwise integrated as part of the vehicle controller 18 ) without departing from the scope of the present disclosure.

[0047] Continue to refer Figure 1, the server system 16 includes a server controller 26a that is in electrical communication with a map database 28 and a server communication system 30. In a non-limiting example, the server system 16 is located in a server farm, a data center, etc., and is connected to the Internet using the server communication system 30. The server controller 26a includes at least one server processor 26b and a server non-transitory computer-readable storage device or server medium 26c. The description of the types and configurations given above for the vehicle controller 18 also applies to the server controller 26a. In some examples, the server controller 26a differs from the vehicle controller 18 in that the server controller 26a can have a higher processing speed, include more memory, include more inputs / outputs, etc. In a non-limiting example, the server processor 26b and the server medium 26c of the server controller 26a are similar in structure and / or function to the processor and medium of the vehicle controller 18 as described above. The map database 28 is used to store map data about roads, including, for example, lane line map data, as will be discussed in more detail below. The server communication system 30 is used to communicate with an external system (e.g., the vehicle controller 18) via the vehicle communication system 24. In a non-limiting example, the server communication system 30 is similar in structure and / or function to the vehicle communication system 24 of the vehicle system 14 described above. In some examples, the server communication system 30 differs from the vehicle communication system 24 in that the server communication system 30 is capable of higher power signal transmission, more sensitive signal reception, higher bandwidth transmission, additional transmission / reception protocols, etc.

[0048] refer to Figure 2 , shows a schematic diagram of multiple vehicles traveling on a road showing misalignment between lane lines. While traveling on road 32, a first vehicle 12a uses camera system 20 to determine a first lane line position 34a of a lane line on road 32. Within the scope of the present disclosure, a lane line is a line on road 32 that is configured to indicate an edge of road 32 and / or an edge of a lane of road 32. Lane lines can have a variety of characteristics, including color (e.g., yellow or white), type (e.g., solid or dashed), and / or the like. A second vehicle 12b uses camera system 20 to determine a second lane line position 34b of a lane line on road 32. Figure 2 As shown, even if the first vehicle 12a and the second vehicle 12b are traveling on the same road 32, the first lane line position 34a and the second lane line position 34b may not be aligned. The misalignment may be caused by factors such as GPS / GNSS errors, poor lane line marking conditions, severe weather conditions, etc. Therefore, the system 10 and method 100 of the present disclosure allow alignment of lane line positions determined by multiple vehicles.

[0049] refer to Figure 3, shows a graph of a plurality of observations 36. The plurality of observations 36 are observations of lane lines on the roadway 32 generated by one or more vehicles 12, as will be discussed in greater detail below. Figure 3 Includes key 38, which indicates Figure 3 The various shapes and hatching in FIG. 4 represent the first observation 40a in the plurality of observations 36. The shapes with cross hatching represent the second observation 40b in the plurality of observations 36. The circles represent the points defining the left lane line 42, the hexagons represent the points defining the vehicle position trajectory 44, and the diamonds represent the points defining the right lane line 46. Figure 3 As shown, each of the plurality of observations 36 includes a plurality of points 42, 46 and a vehicle position trajectory 44. Each of the plurality of points 42, 46 corresponds to an object in the environment surrounding one or more vehicles 12, such as a portion of a lane line on the road 32. Within the scope of the present disclosure, the vehicle position trajectory 44 represents the position of one or more vehicles 12 at various points in time while the plurality of observations 36 are recorded. Each of the plurality of points 42, 46 includes a plurality of point features. In an exemplary embodiment, the plurality of point features include information about the lane line at the location of a given point. In a non-limiting example, the plurality of point features include lane line color (e.g., yellow or white), lane line type (e.g., solid, dashed, single, or double), lane line position relative to the direction of travel (e.g., left relative to southbound vehicles), the position of the point relative to the vehicle position trajectory 44, and the like. As shown in reference Figure 2 As discussed above, the detected lane lines may not be aligned with each other, which is Figure 3 The deviation between any two corresponding points (i.e., point pairs) between the first observation 40a and the second observation 40b is represented as a deviation vector 48. The deviation vector 48 includes a deviation magnitude and a deviation direction. Figure 3 The offset is shown in one direction (ie, horizontal), but it should be understood that the offset may occur in one or more directions (eg, vertical and horizontal) without departing from the scope of the present disclosure.

[0050] refer to Figure 4 , a flow chart of a method 100 for crowdsourcing vehicle lane map data is shown. The method 100 starts at box 102 and proceeds to box 104. Figure 4 And continue to refer to Figure 3At box 104, one or more vehicles 12 perform multiple observations 36 using the vehicle system 14. In an exemplary embodiment, each of the multiple observations 36 includes one or more lane lines (e.g., left lane line 42 and / or right lane line 46) and a vehicle position trajectory 44 on the road 32. In a non-limiting example, the one or more lane lines are captured using the camera system 20. For example, the vehicle controller 18 uses the camera system 20 to capture multiple images of the road 32. Then, the vehicle controller 18 uses a computer vision algorithm to identify the one or more lane lines in the multiple images of the road 32. Then, the one or more lane lines are segmented into a plurality of points (e.g., a plurality of points 42, 46), so that each of the plurality of points corresponds to a portion of the one or more lane lines. A plurality of point features for each of the plurality of points are determined using, for example, a computer vision algorithm. In a non-limiting example, the vehicle position trajectory 44 is determined using the GNSS 22 of the vehicle system 14. The vehicle position trajectory 44 represents a position trajectory of the vehicle 12 during each observation in the plurality of observations. It should be understood that the multiple observations 36 may be performed by one or more vehicles 12. The multiple observations 36 may include multiple observations of the same geographic location and / or multiple observations of different geographic locations without departing from the scope of the present disclosure. After frame 104, the method 100 proceeds to frame 106.

[0051] At frame 106, the plurality of observations performed at frame 104 are transmitted from the one or more vehicles 12 to the server system 16. In an exemplary embodiment, each of the one or more vehicles 12 uses the vehicle communication system 24 of the vehicle system 14 to transmit the one or more observations to the server communication system 30 of the server system 16. After frame 106, the method 100 proceeds to frame 108.

[0052] At block 108 , the server system 16 receives the plurality of observations transmitted at block 106 using the server communication system 30 . After block 108 , the method 100 proceeds to block 110 .

[0053] At block 110, the server system 16 categorizes the plurality of observations received at block 108. In an exemplary embodiment, the server controller 26a categorizes the plurality of observations into a plurality of observation categories, as discussed in greater detail below. After block 110, the method 100 proceeds to block 112.

[0054] At block 112, the server system 16 determines a plurality of aligned point clouds based at least in part on the plurality of observations received at block 108. Each point cloud in the plurality of aligned point clouds corresponds to one of a plurality of observation categories, as will be discussed in more detail below. After block 112, the method 100 proceeds to block 114.

[0055] At box 114, the server system 16 determines a plurality of lane lines based at least in part on the plurality of aligned point clouds determined at box 112. Within the scope of the present disclosure, a lane line map is data defining one or more lane lines at a specific geographic location on a road. In a non-limiting example, a lane line map includes mathematical and / or geometric equations defining a continuous line representing the shape, size, arrangement, position, etc. of one or more lane lines. The lane line map also includes features of one or more lane lines, such as color, type, etc. It should be understood that without departing from the scope of the present disclosure, the lane line map may include additional elements, such as additional drawn markings, road edges (i.e., boundaries between paved and unpaved roads), virtual lane lines (i.e., lane lines within an intersection inferred by a computer, where no drawn lane lines exist) and / or additional objects, markings, and road features. In addition, it should be understood that in addition to one or more lane lines, the system 10 and method 100 disclosed herein may also be applied to additional elements of the lane line map disclosed above. In an exemplary embodiment, to determine the lane map, the server controller 26a uses a hill climbing algorithm, as discussed in U.S. Application No. 17 / 930,503, filed on September 8, 2022, entitled "Hill Climbing Algorithm for Constructing Lane Maps," the entire contents of which are incorporated herein by reference. It should be understood that any method for determining a mathematical equation describing one or more lane lines based on a point cloud is within the scope of the present disclosure. After frame 114, the method 100 proceeds to frames 116 and 118.

[0056] At frame 116, the server controller 26a updates the map database 28. In an exemplary embodiment, the server controller 26a saves the plurality of lane line maps determined at frame 114 to the map database 28. After frame 116, the method 100 proceeds to frame 120, as will be discussed in more detail below.

[0057] At frame 118 , the server controller 26 a transmits the plurality of lane maps determined at frame 114 to one or more vehicles 12 using the server communication system 30 . After frame 118 , the method 100 proceeds to frame 120 .

[0058] At frame 120 , one or more vehicles 12 receive the plurality of lane maps transmitted at frame 118 . After frame 120 , method 100 proceeds to frame 122 .

[0059] At box 122, one or more vehicles 12 take action based at least in part on the multiple lane maps received at box 120. In an exemplary embodiment, the action includes adjusting the operation of the vehicle 12. In a non-limiting example, adjusting the operation of the vehicle 12 includes adjusting the operation of the autonomous driving system of the vehicle 12. For example, a pathfinding module of the autonomous driving system can utilize multiple lane maps to adjust the path of the vehicle 12. In another non-limiting example, adjusting the operation of the vehicle 12 includes adjusting the operation of an advanced driver assistance system (ADAS) (e.g., a lane keeping system and / or a lane departure warning system). In another non-limiting example, adjusting the operation of the vehicle 12 includes providing notification and / or visual display of one or more lanes to occupants of the vehicle 12 using a display such as a head-up display (HUD). After box 122, the method 100 continues to a standby state at box 124.

[0060] refer to Figure 5 , a flow chart of an exemplary embodiment 110a of block 110 is shown. The exemplary embodiment 110a begins at block 302. At block 302, the server controller 26a filters the plurality of observations to remove abnormal observations. In a non-limiting example, if the plurality of observations includes a plurality of confirmed lane lines within a predetermined threshold distance (e.g., ten meters) from each other and a second lane line located thirty meters from the plurality of confirmed lane lines, the second lane line is considered an abnormal value at block 302 and is removed from the plurality of observations. After block 302, the exemplary embodiment 110a proceeds to block 304.

[0061] At box 304, the server controller 26a determines at least one observation characteristic for each of the plurality of observations 36. Within the scope of the present disclosure, the at least one observation characteristic includes, for example, an average vehicle heading for each of the plurality of observations 36, a percentage of points having a particular line type (e.g., solid line, dashed line, double line, etc.) for each of the plurality of observations 36, and the like. In an exemplary embodiment, the at least one observation characteristic is determined based at least in part on a plurality of point characteristics for each of the plurality of points 42, 46 for each of the plurality of observations 36. It should be understood that the at least one observation characteristic may include any characteristic and / or statistic for each of the plurality of observations 36. After box 304, the exemplary embodiment 110a proceeds to box 306.

[0062] At box 306, the server controller 26a classifies the plurality of observations 36 based at least in part on at least one observation feature of each of the plurality of observations 36 determined at box 304. In an exemplary embodiment, each of the plurality of observation categories includes a subset of the plurality of observations 36 having at least one common observation feature. In a non-limiting example where at least one observation feature includes an average vehicle heading, observations having an average vehicle heading within a predetermined heading tolerance range (e.g., plus or minus ten degrees) are grouped in the same observation category. In a non-limiting example where at least one observation feature includes a percentage of left lane lines of dashed type (relative to the observed vehicle), observations having a percentage of left dashed lines within a predetermined lane type percentage range (e.g., plus or minus 10%) are grouped in the same observation category. It should be understood that any data clustering algorithm, such as a density-based with noise (DBSCAN) algorithm, a connectivity-based clustering algorithm, a centroid-based clustering algorithm, etc., may be used without departing from the scope of the present disclosure. After box 306, the exemplary embodiment 110a ends and the method 100 continues as described above.

[0063] refer to Figure 6 , a flow chart of an exemplary embodiment 112a of box 112 is shown. The exemplary embodiment 112a begins at box 602. At box 602, the server controller 26a identifies a first observation 40a from a plurality of observations 36. In the exemplary embodiment, the first observation 40a belongs to a first observation category from a plurality of observation categories. In the first exemplary embodiment, the first observation 40a is randomly selected from the plurality of observations 36. In the second exemplary embodiment, the first observation 40a is selected as a "high-quality" observation from the plurality of observations 36. In a non-limiting example, a high-quality observation is defined as an observation that includes a long, substantially continuous lane line, indicating good data collection quality. After box 602, the exemplary embodiment 112a proceeds to box 604.

[0064] At block 604, the server controller 26a selects a second observation in the plurality of observations 36. The second observation in the plurality of observations 36 also belongs to the first observation category (i.e., the same observation category as the first observation in the plurality of observations 36 identified at block 602). After block 604, the exemplary embodiment 112a proceeds to block 606.

[0065] At box 606, the server controller 26a determines a plurality of point pairs. Within the scope of the present disclosure, each of the plurality of point pairs includes a point from a first observation of the plurality of observations 36 identified at box 602 and a point from a second observation of the plurality of observations 36 selected at box 604. In an exemplary embodiment, the point pairs are determined based at least in part on a plurality of point features of each of the plurality of points 42, 46. In a non-limiting example, the point pairs are determined based on the location of each of the plurality of points. For example, for a given point pair, the first point of the given point pair is a point from the first observation of the plurality of observations 36. The second point of the given point pair is a point from the second observation of the plurality of observations 36 that is closest to the first point of the given point pair compared to all other points of the second observation of the plurality of observations 36. After box 606, the exemplary embodiment 112a proceeds to boxes 608 and 610.

[0066] At block 608, the server controller 26a calculates a plurality of offset vectors. Within the scope of the present disclosure, an offset vector includes an offset magnitude and an offset direction, and describes an offset (i.e., misalignment) between a first point and a second point of a given point pair in the plurality of point pairs determined at block 606. Each of the plurality of offset vectors corresponds to a point pair in the plurality of point pairs. In an exemplary embodiment, the plurality of offset vectors are calculated based on a determined position of the first point of each point pair in the plurality of point pairs relative to the second point, e.g., based on a plurality of point features for each point. After block 608, the exemplary embodiment 112a proceeds to block 612, as will be discussed in more detail below.

[0067] At block 610 , the server controller 26 a calculates a plurality of offset weights. Each of the plurality of offset weights corresponds to a point pair in a plurality of point pairs, as will be discussed in greater detail below. After block 610 , the exemplary embodiment 112 a proceeds to block 612 .

[0068] At block 612, the server controller 26a moves the second observation in the plurality of observations 36 toward the first observation in the plurality of observations. In the exemplary embodiment, the magnitude and direction of the movement are determined based at least in part on the plurality of offset vectors calculated at block 608 and the plurality of offset weights calculated at block 610. In a non-limiting example, the second observation in the plurality of observations 36 is moved such that the magnitude of the offset vector for one of the plurality of point pairs having the highest offset weight is reduced. In other words, the second observation in the plurality of observations is moved in the direction of the offset vector for one of the plurality of point pairs having the highest offset weight. After block 612, the exemplary embodiment 112a proceeds to block 614.

[0069] At block 614, the server controller 26 calculates a magnitude of each of the plurality of offset vectors based on the new position of the second observation 36 in the plurality of observations 36 after the move at block 612. If the magnitude of each of the plurality of offset vectors is greater than a predetermined offset magnitude threshold (e.g., one meter), the exemplary embodiment 112a returns to blocks 608 and 610. If the magnitude of each of the plurality of offset vectors is less than or equal to the predetermined offset magnitude threshold, the second observation in the plurality of observations 36 is deemed to have been combined with the first observation in the plurality of observations, and the exemplary embodiment 112a proceeds to block 616.

[0070] At block 616, the server controller 26a determines whether each of the plurality of observations 36 in the first observation category (i.e., the same observation category as the first observation in the plurality of observations 36 identified at block 602) has been combined with the first observation. If each of the plurality of observations 36 in the first observation category has not been combined with the first observation in the plurality of observations 36, the exemplary embodiment 112a returns to block 604. If each of the plurality of observations 36 in the first observation category has been combined with the first observation in the plurality of observations 36, a point cloud has been formed. The point cloud includes a plurality of points 42, 46 for each of the plurality of observations 36 in the first observation category, a vehicle position trajectory 44 for the first observation in the plurality of observations 36, and a plurality of moved vehicle position trajectories (not shown), wherein each of the plurality of moved vehicle position trajectories corresponds to an observation in the plurality of observations 36 in the first observation category (e.g., a second observation in the plurality of observations). After forming the point cloud, the exemplary embodiment 112a proceeds to block 618.

[0071] At block 618, the server controller 26a determines a point cloud in a plurality of aligned point clouds by aligning the point clouds formed at block 616 based at least in part on the vehicle position trajectory for each of the plurality of observations 36 and the plurality of moved vehicle position trajectories, as will be discussed in greater detail below. After block 618, the exemplary embodiment 112a proceeds to block 620.

[0072] At block 620, server controller 26a determines whether an aligned point cloud has been determined for each of the plurality of observation categories. If an aligned point cloud has not been determined for each of the plurality of observation categories, exemplary embodiment 112a returns to block 602. If an aligned point cloud has been determined for each of the plurality of observation categories, exemplary embodiment 112a ends and method 100 continues as described above.

[0073] refer to Figure 7, a flow chart of an exemplary embodiment 610a of block 610 is shown. The exemplary embodiment 610a begins at block 702. At block 702, the server controller 26a selects one of the plurality of peer pairs determined at block 606. After block 702, the exemplary embodiment 610a proceeds to block 704.

[0074] At block 704, the server controller 26a compares each of the plurality of point features of the first point of the selected one of the plurality of point pairs with each of the plurality of point features of the second point of the selected one of the plurality of point pairs to identify a plurality of common point features. Within the scope of the present disclosure, common point features are identical point features. For example, if the first point of the selected one of the plurality of point pairs and the second point of the selected one of the plurality of point pairs both have point features indicating a line type of a double yellow line, the double yellow line point feature is considered to be one of the plurality of common point features. After block 704, the exemplary embodiment 610a proceeds to block 706.

[0075] At block 706, the server controller 26a determines the number of the plurality of commonalities features determined at block 704. Following block 706, the exemplary embodiment 610a proceeds to block 708.

[0076] At block 708, the server controller 26a calculates an offset weight in the plurality of offset weights based at least in part on the number of the plurality of common point features determined at block 706. In an exemplary embodiment, an offset weight in the plurality of offset weights is proportional to the number of common point features. It should be appreciated that any mathematical relationship between the number of the plurality of common point features and an offset weight in the plurality of offset weights is within the scope of the present disclosure. After block 708, the exemplary embodiment 610a proceeds to block 710.

[0077] At block 710, if one of the plurality of offset weights has not been calculated for each of the plurality of point pairs, exemplary embodiment 610a returns to block 702. If one of the plurality of offset weights has been calculated for each of the plurality of point pairs, exemplary embodiment 610a ends and exemplary embodiment 112a proceeds as described above.

[0078] refer to Figure 8, a flow chart of an exemplary embodiment 618a of block 618 is shown. Exemplary embodiment 618a takes into account the drift of the geographic location of the point cloud caused by the method for forming the point cloud discussed above with reference to exemplary embodiment 112a. Exemplary embodiment 618a begins at block 802. At block 802, server controller 26a calculates an offset. Within the scope of the present disclosure, the offset is the distance (e.g., two meters) that the point cloud formed at block 616 must move to correct the position error so that the geographic location of the point cloud is accurate relative to road 32. In the exemplary embodiment, the offset is a value that minimizes the following objective function:

[0079] f(k)=∑ i [d(p i , p′ i (k))] 2 (1)

[0080] where f(k) is the quantity to be minimized; d(p i , p′ i (k)) is the point p i and p′ i (k) The Euclidean distance between i is the i-th point on the vehicle position trajectory of one of the multiple observations; and p′ i (k) is the i-th point on the corresponding one of the plurality of moved vehicle position trajectories further moved by an offset k. In a non-limiting example, an optimization algorithm (e.g., a Levenberg-Marquardt algorithm) is used to optimize equation (1). After block 802, the exemplary embodiment 618a proceeds to block 804.

[0081] At block 804, server controller 26a determines a point cloud from among the plurality of aligned point clouds by shifting the point cloud by the offset calculated at block 802. Following block 804, exemplary embodiment 618a ends and exemplary embodiment 112a proceeds as described above.

[0082] The system 10 and method 100 of the present disclosure have multiple advantages. Using the system 10 and method 100, a lane map can be constructed from crowdsourced data (i.e., data provided by many vehicles). The system 10 and method 100 allow data with varying data quality captured by different vehicles using various devices at different times and under varying environmental conditions to be aggregated to produce an accurate lane map. The lane map is then used to update a stored map database and transmitted to the vehicle for use by vehicle systems such as automated driving systems (ADS), advanced driver assistance systems (ADAS), etc.

[0083] The description of the present disclosure is merely exemplary in nature, and variations that do not depart from the gist of the present disclosure are intended to fall within the scope of the present disclosure. These variations should not be regarded as departing from the spirit and scope of the present disclosure.

Claims

1. A method for crowdsourcing vehicle lane map data, the method comprising: Receive multiple observations; classifying the plurality of observations into a plurality of observation categories, wherein each observation category of the plurality of observation categories includes at least one observation of the plurality of observations; determining a plurality of aligned point clouds based at least in part on the plurality of observations, wherein a point cloud in the plurality of aligned point clouds corresponds to each of the plurality of observation categories; determining a plurality of lane maps based at least in part on the plurality of aligned point clouds, wherein a lane map in the plurality of lane maps corresponds to each point cloud in the plurality of aligned point clouds; as well as A map database is updated based at least in part on the plurality of lane patterns.

2. The method of claim 1 , wherein receiving the plurality of observations further comprises: The plurality of observations are received from one or more vehicles, wherein each of the plurality of observations comprises a vehicle position trajectory and a plurality of points located relative to the vehicle position trajectory, wherein each of the plurality of points comprises a plurality of point features, wherein a point feature of the plurality of point features is a position relative to the vehicle position trajectory, and wherein each of the plurality of points corresponds to an object in an environment surrounding the one or more vehicles.

3. The method of claim 1 , wherein classifying the plurality of observations further comprises: The plurality of observations are filtered to remove anomalous observations.

4. The method of claim 2, wherein classifying the plurality of observations further comprises: determining at least one observation feature for each of the plurality of observations based at least in part on the plurality of point features for each of the plurality of points for each of the plurality of observations; as well as The plurality of observations are classified based at least in part on the at least one observation characteristic, wherein each of the plurality of observation categories includes a subset of the plurality of observations having the at least one common observation characteristic.

5. The method of claim 2, wherein classifying the plurality of observations further comprises: determining an average vehicle heading for each of the plurality of observations based at least in part on the plurality of point features for each of the plurality of points for each of the plurality of observations; as well as The plurality of observations are classified based at least in part on the average vehicle heading of each of the plurality of observations, wherein each of the plurality of observation categories includes a subset of the plurality of observations having an average vehicle heading within a predetermined heading tolerance range.

6. The method of claim 2, wherein determining a point cloud among the plurality of aligned point clouds further comprises: identifying a first observation in the plurality of observations, wherein the first observation in the plurality of observations belongs to a first observation category in the plurality of observation categories; selecting a second observation in the plurality of observations, wherein the second observation in the plurality of observations belongs to the first observation category; aligning a second observation in the plurality of observations with a first observation in the plurality of observations by shifting the vehicle position trajectory of the second observation in the plurality of observations to produce a shifted vehicle position trajectory; forming a point cloud by repeating the selecting step and the aligning step until each of the plurality of observations of the first observation category has been aligned with a first observation of the plurality of observations, wherein the point cloud includes a plurality of points of each of the plurality of observations of the first observation category, the vehicle position trajectory of the first observation of the plurality of observations, and a plurality of moved vehicle position trajectories, wherein each of the plurality of moved vehicle position trajectories corresponds to one of the plurality of observations of the first observation category; and The one of the plurality of aligned point clouds is determined by aligning the point clouds based at least in part on the vehicle position trajectory of each of the plurality of observations and the plurality of shifted vehicle position trajectories.

7. The method of claim 6, wherein aligning the second one of the plurality of observations with the first one of the plurality of observations further comprises: determining a plurality of point pairs, wherein each point pair in the plurality of point pairs comprises a point from the first observation in the plurality of observations and a point from the second observation in the plurality of observations; calculating a plurality of offset vectors, wherein each offset vector of the plurality of offset vectors corresponds to one of the plurality of point pairs, wherein each offset vector of the plurality of offset vectors describes an offset between the one of the plurality of point pairs; calculating a plurality of offset weights, wherein each of the plurality of offset weights corresponds to one of the plurality of point pairs, and wherein each of the plurality of offset weights is calculated based at least in part on the plurality of point features of each of the plurality of point pairs; as well as The second one of the plurality of observations is combined with the first one of the plurality of observations by moving the second one of the plurality of observations toward the first one of the plurality of observations based at least in part on the plurality of offset vectors and the plurality of offset weights, wherein the second one of the plurality of observations is moved toward the first one of the plurality of observations using an iterative process, wherein the plurality of offset vectors and the plurality of offset weights are recalculated at each iteration of the iterative process, and wherein the iterative process is terminated when the magnitude of each of the plurality of offset vectors is less than or equal to a predetermined offset magnitude threshold.

8. The method of claim 7, wherein calculating an offset weight among the plurality of offset weights further comprises: comparing each of the plurality of point features of a first point of one of the plurality of point pairs with each of the plurality of point features of a second point of the one of the plurality of point pairs to identify a plurality of common point features between the first point of one of the plurality of point pairs and the second point of the one of the plurality of point pairs; as well as The one offset weight of the plurality of offset weights is calculated based at least in part on the plurality of common point features.

9. The method of claim 8, wherein calculating the offset weight in the plurality of offset weights based at least in part on the plurality of common point features further comprises: determining a number of common point features for the one of the plurality of point pairs based at least in part on the plurality of common point features; as well as The one of the plurality of bias weights is calculated based at least in part on the number of common point features, wherein the one of the plurality of bias weights is proportional to the number of common point features.

10. The method according to claim 6, wherein: Determining a point cloud among the plurality of aligned point clouds by aligning the point clouds further comprises: Calculate the offset that minimizes the objective function: where f(k) is the quantity to be minimized; d(p i ,p′ i (k)) is point p i and p′ i (k) The Euclidean distance between i is the i-th point on the vehicle position trajectory of one of the plurality of observations; and p′ i (k) is the i-th point on a corresponding one of the plurality of moved vehicle position trajectories further moved by an offset k; and The one point cloud among the plurality of aligned point clouds is determined by shifting the point cloud by an offset k.

Citation Information

Patent Citations

  • Hill climbing algorithm for constructing a lane line map

    US20240085210A1