SYSTEMS AND METHODS FOR GENERATING LANE MAPS FOR A VEHICLE

The method and system for crowdsourcing lane map data using vehicle observations and point cloud alignment improve the accuracy of lane detection in ADAS and ADS systems, addressing misalignment issues caused by GPS/GNSS errors and weather conditions.

DE102024123690B4Active Publication Date: 2026-04-02GM GLOBAL TECHNOLOGY OPERATIONS LLC
View PDF 6 Cites 0 Cited by

Patent Information

Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Filing Date
2024-08-20
Publication Date
2026-04-02

AI Technical Summary

Technical Problem

Current Advanced Driver Assistance Systems (ADAS) and Automated Driving Systems (ADS) struggle to accurately interpret road markings due to factors like GPS/GNSS errors and adverse weather conditions, leading to misalignment of lane detection, which affects the occupant experience and vehicle operation.

Method used

A method and system for crowdsourcing lane map data using vehicle observations, involving point cloud alignment and registration algorithms to generate optimized aligned point clouds, defining anchor points, and updating map databases, utilizing computer vision and iterative optimization techniques to align lane positions across multiple vehicles.

Benefits of technology

Enhances the accuracy of lane map creation and updating, improving the reliability of ADAS and ADS systems by correcting misalignments and ensuring precise lane detection despite environmental factors.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

Method (100) for crowdsourcing lane map data for a vehicle, the method comprising: Receiving a multitude of observations (36), wherein the multitude of observations (36) includes at least a first observation (40a) and a second observation (40b); Generating a point cloud alignment vector at least partially based on the multitude of observations (36); Determining confidence values ​​for the multitude of observations (36) at least partially based on the point cloud orientation vector; Defining a subset of the multitude of observations (36) with confidence values ​​above a threshold for the confidence value as anchor points; Generating an optimized aligned point cloud, based at least partially on the point cloud alignment vector and the anchor points; Determining a lane map at least partially based on the optimized aligned point cloud; and Updating a map database, at least partially, based on the lane map; further comprising the generation of the point cloud alignment vector: Generating the point cloud orientation vector using a point cloud registration algorithm; and Determining the point cloud alignment vector such that shifting the trajectory of the vehicle location of the second observation (40b) by the point cloud alignment vector aligns the trajectory of the vehicle location of the second observation (40b) with the trajectory of the vehicle of the first observation; where generating the optimized aligned point cloud further includes: Determining a plurality of correction vectors (52), wherein each of the plurality of correction vectors (52) corresponds to one of the plurality of points (46) of the second observation (40b); and Moving each of the plurality of points (46) of the second observation (40b) to generate the optimized aligned point cloud, wherein each of the plurality of points (46) of the second observation (40b) is moved at least partially on the basis of one of the plurality of correction vectors (52); where determining the plurality of correction vectors (52) further includes: Minimizing an objective function to determine the plurality of correction vectors (52), wherein the objective function includes at least a plurality of cost functions, wherein each of the plurality of cost functions depends at least partially on the plurality of correction vectors (52), wherein each of the plurality of cost functions corresponds to one of a plurality of optimization constraints, and wherein the plurality of optimization constraints includes at least: an anchor point constraint cost function, where the anchor point constraint cost function is as follows: Costob ( ci ) = ci − C i σ ob 2 ( i ) where Cost ob (c i ) the anchor point constraint cost function for one of the plurality of correction vectors (52) corresponding to an i-th point of the plurality of points (46) of the second observation (40b), c ione of the plurality of correction vectors (52) that corresponds to an i-th point of the plurality of points (46) of the second observation (40b), C i the point cloud orientation vector for the i-th point of the plurality of points (46) of the second observation (40b) is, and σ ob 2 ( i ) (i) is an orientation variance of the i-th point of the plurality of points (46) of the second observation (40b); a trajectory-pose restriction cost function, where the trajectory-pose restriction cost function is as follows: C ostpose (ci) = fpose (ci, ci + 1) − fpose (c ˙ i, c ˙ i + 1) σ pose 2 (i) where Cost pose (c i ) the trajectory-pose restriction cost function for one of the plurality of correction vectors (52) corresponding to the i-th point of the plurality of points (46) of the second observation (40b), c ione of the plurality of correction vectors (52) that corresponds to the i-th point of the plurality of points (46) of the second observation (40b), ċ i an initial correction vector corresponding to the i-th point of the plurality of points (46) of the second observation (40b), f pose (ċ i , c i+1 ) a direction between the i-th point of the plurality of points (46) of the second observation (40b) and an i+1-th point of the plurality of points (46) of the second observation (40b) after application of one of the plurality of correction vectors (52) is, f pose (ċ i , ċ i+1 ) a direction between the i-th point of the plurality of points (46) of the second observation (40b) and the i+1-th point of the plurality of points (46) of the second observation (40b) after application of the initial correction vector, and σ pose 2 ( i ) a pose variance of the i-th point of the plurality of points (46) of the second observation (40b); and a location constraint cost function, where the location constraint cost function is as follows: C ostloc (ci) = euclidean (ci, c ˙ i) σ loc 2 (i) where Cost loc (c i ) the location-constraint-cost function for one of the plurality of correction vectors (52) corresponding to the i-th point of the plurality of points (46) of the second observation (40b), c i one of the plurality of correction vectors (52) that corresponds to the i-th point of the plurality of points (46) of the second observation (40b), ċ i the initial correction vector is that which corresponds to the i-th point of the plurality of points (46) of the second observation (40b), euclidian(c i , ċ i) a Euclidean distance between a location of the i-th point after application of one of the plurality of correction vectors (52) and a location of the i-th point after application of the initial correction vector, and σ loc 2 ( i ) a spatial variance of the i-th point of the plurality of points (46) of the second observation (40b).
Need to check novelty before this filing date? Find Prior Art

Description

[0001] The technical field generally refers to advanced systems and methods for driver assistance and automated driving of vehicles, in particular to systems and methods for creating lane maps using specific anchor points.

[0002] To enhance occupant awareness and comfort, vehicles can be equipped with Advanced Driver Assistance Systems (ADAS) and / or Automated Driving Systems (ADS). ADAS systems can use various sensors, such as cameras, radar, and LiDAR, to detect and identify objects in the vehicle's environment, including other vehicles, pedestrians, road configurations, traffic signs, and road markings. Based on the conditions in the vehicle's surroundings, ADAS systems can take action, such as braking or warning the vehicle's occupants. However, current ADAS systems cannot account for additional factors that may affect the occupant experience. ADS systems can use various sensors to detect objects in the vehicle's environment and steer the vehicle to navigate through the environment to a predetermined destination.However, current ADAS and ADS systems may rely on the accurate interpretation of road markings, such as lane markings, for optimal operation.

[0003] Therefore, despite the fact that ADAS and ADS systems and methods fulfill their purpose, there remains a desire for new and improved systems and methods for creating lane maps. Furthermore, other desirable features and characteristics of the present disclosure will become apparent from the following detailed description and the attached claims in conjunction with the attached drawings and the preceding introduction.

[0004] US 2021 / 0 370 968 A1 concerns a system that receives a stream of point cloud frames from one or more LIDAR sensors of an automated vehicle (ADV) as well as associated poses in real time.

[0005] CN 1 14 155 168 A concerns an automatic method and system for offset correction of point cloud data.

[0006] US 2024 / 0011794A1 concerns a method for detecting changes in road properties.

[0007] It can be considered an objective to provide an alternative method and system for crowdsourcing lane map data, thereby enabling the creation of more accurate lane maps and the updating of stored map databases. This objective is achieved by the subject matter of claims 1 and 4.

[0008] A method for crowdsourcing lane map data for a vehicle is provided.The method according to the invention comprises: receiving a plurality of observations, wherein the plurality of observations includes at least a first observation and a second observation; generating a point cloud alignment vector based at least partially on the plurality of observations; determining confidence values ​​for the plurality of observations at least partially based on the point cloud alignment vector; defining a subset of the plurality of observations with confidence values ​​above a confidence value threshold as anchor points; generating an optimized aligned point cloud at least partially based on the point cloud alignment vector and the anchor points; determining a lane map at least partially based on the optimized aligned point cloud; and updating a map database at least partially based on the lane map.

[0009] According to one embodiment, receiving the plurality of observations includes receiving the plurality of observations from one or more vehicles, wherein each of the plurality of observations includes a trajectory of the vehicle and a plurality of points positioned relative to the trajectory of the vehicle, wherein each point of the plurality of points includes a plurality of point features, one of the plurality of point features being a location of each point relative to the trajectory of the vehicle, and wherein each of the plurality of points corresponds to an object in an environment surrounding the one or more vehicles.

[0010] According to one embodiment, generating the point cloud alignment vector includes generating the point cloud alignment vector using a computer vision feature matching algorithm.

[0011] According to one embodiment, generating the point cloud alignment vector includes generating the point cloud alignment vector using a point cloud registration algorithm.

[0012] Generating the point cloud alignment vector using the point cloud registration algorithm involves determining the point cloud alignment vector such that shifting the trajectory of the vehicle location of the second observation by the point cloud alignment vector aligns the trajectory of the vehicle location of the second observation with the trajectory of the vehicle location of the first observation.

[0013] Generating the optimized aligned point cloud involves determining a plurality of correction vectors, where each of the plurality of correction vectors corresponds to one of the plurality of points of the second observation, and shifting each of the plurality of points of the second observation to generate the optimized aligned point cloud, where each of the plurality of points of the second observation is shifted at least partially on the basis of one of the plurality of correction vectors.

[0014] Determining the plurality of correction vectors involves minimizing an objective function to determine the plurality of correction vectors, wherein the objective function includes at least a plurality of cost functions, wherein each of the plurality of cost functions depends at least partially on the plurality of correction vectors, wherein each of the plurality of cost functions corresponds to one of a plurality of optimization constraints, and wherein the plurality of optimization constraints includes at least: a trajectory pose constraint, a location environment constraint, and optionally an anchor point constraint.

[0015] Minimizing the objective function involves minimizing the objective function to determine the plurality of correction vectors, where the objective function includes at least a plurality of cost functions, and where the plurality of cost functions may include an anchor point constraint cost function, where the anchor point constraint cost function is as follows: Costob(ci)=ci−Ciσob2(i) where Cost ob (c i ) the anchor point constraint cost function for one of the plurality of correction vectors corresponding to an i-th point of the plurality of points of the second observation, c i is one of the multitude of correction vectors that corresponds to an i-th point of the multitude of points of the second observation, C i the point cloud orientation vector for the i-th point of the plurality of points of the second observation is, and σob2(i) an orientation variance of the i-th point of the plurality of points of the second observation; a trajectory-pose restriction cost function, where the trajectory-pose restriction cost function is the following: Costpose(ci)=fpose(ci,ci+1)−fpose(c˙i,c˙i+1)σpose2(i) where Cost pose (c i ) the trajectory-pose restriction-cost function for one of the plurality of correction vectors corresponding to the i-th point of the plurality of points of the second observation is, c i one of the multitude of correction vectors that corresponds to the i-th point of the multitude of points of the second observation, ċ i an initial correction vector corresponding to the i-th point of the plurality of points of the second observation, f pose (c i , c i+1) a direction between the i-th point of the plurality of points of the second observation and an i+1-th point of the plurality of points of the second observation after applying one of the plurality of correction vectors is, f pose (ċ i , ċ i+1 ) a direction between the i-th point of the plurality of points of the second observation and the i+1-th point of the plurality of points of the second observation after the application of the initial correction vector, and σpose2(i) a pose variance of the i-th point of the plurality of points of the second observation, and a location constraint cost function, where the location constraint cost function is as follows: Costloc(ci)=euclidean(ci,c˙i)σloc2(i) where Cost loc (c i) the spatial constraint cost function for one of the plurality of correction vectors corresponding to the i-th point of the plurality of points of the second observation, c i one of the multitude of correction vectors that corresponds to the i-th point of the multitude of points of the second observation, ċ i the initial correction vector corresponding to the i-th point of the plurality of points of the second observation, euclidian(c i , ċ i ) is a Euclidean distance between a location of the i-th point after applying one of the plurality of correction vectors and a location of the i-th point after applying the initial correction vector, and σloc2(i) is a spatial variance of the i-th point of the plurality of points of the second observation.

[0016] According to one embodiment, minimizing the objective function can include minimizing the objective function to determine the plurality of correction vectors, wherein the objective function further comprises: F(c1,c2,⋯,cn)=∑ci(Costob(ci)2+Costpose(ci)2+Costloc(ci)2) where F(c1, c2, ···, c n ) the objective function is, c1,c2···,c n the multitude of correction vectors are, c i one of the many correction vectors that corresponds to the i-th point from the many points of the second observation, Cost ob (c i ) the anchor point constraint cost function for one of the plurality of correction vectors corresponding to the i-th point of the plurality of points of the second observation, Cost pose (c i ) the trajectory-pose restriction cost function for one of the multitude of correction vectors corresponding to the i-th point of the multitude of points of the second observation, and Costloc (c i ) the location constraint cost function for one of the plurality of correction vectors corresponding to the i-th point of the plurality of points of the second observation.

[0017] According to one embodiment, minimizing the objective function to determine the plurality of correction vectors can involve setting the plurality of correction vectors using an iterative optimization algorithm to minimize the objective function.

[0018] According to one embodiment, the iterative optimization algorithm is a factor graph optimization algorithm, and wherein setting the plurality of correction vectors using the iterative optimization algorithm may involve generating a factor graph, wherein the factor graph includes a plurality of variable nodes, a plurality of factor nodes, and a plurality of edges connecting variable nodes and factor nodes, each of the plurality of variable nodes representing one of the plurality of correction vectors, each of the plurality of factor nodes representing one of the plurality of optimization constraints, and each of the plurality of edges representing one of the plurality of cost functions, and updating one or more of the plurality of variable nodes using an iterative procedure until a convergence state is satisfied.

[0019] According to one embodiment, the method may involve that the operation of the vehicle is at least partially adjusted based on the lane map.

[0020] A system for crowdsourcing lane map data for a vehicle is provided. The system according to the invention comprises a server communication system, a map database, and a server control unit in electrical communication with the server communication system and the map database, wherein the server control unit is programmed to: receive a plurality of observations using the server communication system, wherein the plurality of observations includes at least a first observation and a second observation; generate a point cloud orientation vector at least partially based on the plurality of observations; determine confidence values ​​for the plurality of observations at least partially based on the point cloud orientation vector; and define a subset of the plurality of observations with confidence values ​​above a confidence value threshold as anchor points.to generate an optimized aligned point cloud at least partially based on the point cloud alignment vector and the anchor points, to generate an optimized aligned point cloud at least partially based on the point cloud alignment vector, to determine a lane map at least partially based on the optimized aligned point cloud, and to update the map database at least partially based on the lane map.

[0021] According to one embodiment, the server control unit can be programmed to receive the multitude of observations using the server communication system: to receive the multitude of observations from one or more vehicles using the server communication system, wherein each of the multitude of observations includes a trajectory of the vehicle and a multitude of points positioned relative to the trajectory of the vehicle, wherein each point of the multitude of points includes a multitude of point features, one of the multitude of point features being a location of each point relative to the trajectory of the vehicle, and wherein each of the multitude of points corresponds to an object in an environment surrounding the one or more vehicles.

[0022] The server control unit for generating the optimized aligned point cloud is further programmed to: determine a plurality of correction vectors, wherein each of the plurality of correction vectors corresponds to one of the plurality of points of the second observation, and to move each of the plurality of points of the second observation to generate the optimized aligned point cloud, wherein each of the plurality of points of the second observation is moved at least partially on the basis of one of the plurality of correction vectors.

[0023] In order to determine the plurality of correction vectors, the server control unit is further programmed to: minimize an objective function to determine the plurality of correction vectors, wherein the objective function includes at least a plurality of cost functions, wherein each of the plurality of cost functions depends at least partially on the plurality of correction vectors, wherein each of the plurality of cost functions corresponds to one of a plurality of optimization constraints, and wherein the plurality of optimization constraints includes at least: an observation similarity constraint, a trajectory pose constraint, and a location environment constraint.

[0024] The multitude of cost functions also includes: an anchor point constraint cost function, where the anchor point constraint cost function is as follows: Costob(ci)=ci−Ciσob2(i) where Cost ob (c i) the anchor point constraint cost function for one of the plurality of correction vectors corresponding to an i-th point of the plurality of points of the second observation, c i is one of the multitude of correction vectors that corresponds to an i-th point of the multitude of points of the second observation, C i the point cloud orientation vector for the i-th point of the plurality of points of the second observation is, and σob2(i) an orientation variance of the i-th point of the plurality of points of the second observation, a trajectory-pose restriction cost function, where the trajectory-pose restriction cost function is the following: Costpose(ci)=fpose(ci,ci+1)−fpose(c˙i,c˙i+1)σpose2(i) where Cost pose (c i) the trajectory-pose restriction-cost function for one of the plurality of correction vectors corresponding to the i-th point of the plurality of points of the second observation is, c i one of the multitude of correction vectors that corresponds to the i-th point of the multitude of points of the second observation, ċ i an initial correction vector corresponding to the i-th point of the plurality of points of the second observation, f pose (c i , c i+1 ) a direction between the i-th point of the plurality of points of the second observation and an i+1-th point of the plurality of points of the second observation after applying one of the plurality of correction vectors is, f pose (ċ i , ċ i+1 ) a direction between the i-th point of the plurality of points of the second observation and the i+1-th point of the plurality of points of the second observation after the application of the initial correction vector, and σpose2(i) a pose variance of the i-th point of the plurality of points of the second observation, and a location-neighborhood-constraint-cost function, where the location-neighborhood-constraint-cost function is the following: Costloc(ci)=euclidean(ci,c˙i)σloc2(i) where Cost loc (c i ) the spatial constraint cost function for one of the plurality of correction vectors corresponding to the i-th point of the plurality of points of the second observation, c i one of the multitude of correction vectors that corresponds to the i-th point of the multitude of points of the second observation, ċ i the initial correction vector corresponding to the i-th point of the plurality of points of the second observation, euclidian(c i , ċ i) is a Euclidean distance between a location of the i-th point after applying one of the plurality of correction vectors and a location of the i-th point after applying the initial correction vector, and σloc2(i) is a spatial variance of the i-th point of the plurality of points of the second observation.

[0025] According to one embodiment, the objective function is based at least partially on the plurality of cost functions, and the objective function is as follows: F(c1,c2,⋯,cn)=∑ci(Costob(ci)2+Costpose(ci)2+Costloc(ci)2) where F(c1, c2, ..., c n ) the objective function is, c1, c2, ..., c n the multitude of correction vectors are, c i one of the many correction vectors that corresponds to the i-th point from the many points of the second observation, Cost ob (c i) the anchor point constraint cost function for one of the plurality of correction vectors corresponding to the i-th point of the plurality of points of the second observation, Cost pose (c i ) the trajectory-pose restriction cost function for one of the multitude of correction vectors corresponding to the i-th point of the multitude of points of the second observation, and Cost loc (c i ) the location constraint cost function for one of the plurality of correction vectors corresponding to the i-th point of the plurality of points of the second observation.

[0026] According to one embodiment, in order to minimize the objective function, the server control unit can further be programmed to: generate a factor graph, wherein the factor graph includes a plurality of variable nodes, a plurality of factor nodes, and a plurality of edges connecting variable nodes and factor nodes, each of the plurality of variable nodes representing one of the plurality of correction vectors, each of the plurality of factor nodes representing one of the plurality of optimization constraints, and each of the plurality of edges representing one of the plurality of cost functions; and update one or more of the plurality of variable nodes to determine the plurality of correction vectors using an iterative procedure until a convergence state is satisfied.

[0027] According to one embodiment, the server control unit can be programmed to at least partially adjust the operation of the vehicle based on the lane map.

[0028] A system for crowdsourcing lane map data for a vehicle is provided. In one example, the system includes a server communication system, a map database, and a server control unit electrically connected to the server communication system and the map database. The server control unit is programmed to: receive a multitude of observations from one or more vehicles using the server communication system, wherein the multitude of observations includes at least a first observation and a second observation, each of the multitude of observations includes a vehicle trajectory and a multitude of points positioned relative to the vehicle trajectory, each point of the multitude of points including a multitude of point features, one of the multitude of point features being a position of each point relative to the vehicle trajectory.and wherein each of the plurality of points corresponds to an object in an environment surrounding the one or more vehicles, to generate a point cloud orientation vector at least partially based on the plurality of observations, to determine confidence values ​​for the plurality of observations at least partially based on the point cloud orientation vector, to designate a subset of the plurality of observations with confidence values ​​above a confidence value threshold as anchor points, to generate an optimized aligned point cloud at least partially based on the point cloud orientation vector and the anchor points, to determine a lane map based at least partially on the optimized aligned point cloud, to update the map database at least partially based on the lane map, and to transmit the lane map to the one or more vehicles.where one or more vehicles are configured to at least partially cease their operation based on the lane map.

[0029] The exemplary embodiments are described below in conjunction with the following drawings, where identical numbers denote identical elements and where: Fig. 1 a schematic diagram of a system for crowdsourcing lane map data according to an exemplary embodiment; Fig. 2 is a schematic diagram of several vehicles traveling on a roadway, showing the offset between the lanes according to an exemplary embodiment; Fig. 3A is a diagram of a multitude of observations according to an exemplary embodiment; Fig. 3B is a schematic representation of an exemplary aligned point cloud after shifting the second observation by the point cloud alignment vector; Fig. 4 is a schematic diagram of a factor graph that can be used in generating an optimized aligned point cloud; Fig. 5 a flowchart of a method for crowdsourcing lane map data for a vehicle according to an exemplary embodiment; Fig. 6 is a flowchart of a method for determining a plurality of aligned point clouds, which are at least partially based on the plurality of observations according to an exemplary embodiment.

[0030] The following detailed description is merely exemplary and is not intended to limit application and use. Furthermore, there is no intention to be bound by any express or implied theory set forth in the preceding introduction or the following detailed description. As used herein, the term "module" refers to any hardware, software, firmware, electronic control component, processing logic, and / or processor device, individually or in any combination, including, but not limited to: application-specific integrated circuits (ASICs), an electronic circuit, a processor (common, dedicated, or as a group), and memory executing one or more software or firmware programs, a combinational logic circuit, and / or other suitable components providing the described functionality.

[0031] Examples of the present disclosure can be described here in the form of functional and / or logical block components and various process steps. It should be noted that such block components can be implemented by any number of hardware, software, and / or firmware components configured to perform the specified functions. For example, an embodiment of the present disclosure may employ various integrated circuit components, such as memory elements, digital signal processing elements, logic elements, lookup tables, or the like, which can perform a variety of functions under the control of one or more microprocessors or other control devices.Furthermore, the person skilled in the art will recognize that examples of the present disclosure can be practiced in connection with any number of systems and that the systems described here are merely examples of the present disclosure.

[0032] For the sake of brevity, a detailed description of conventional techniques for signal processing, data transmission, signaling, control, and other functional aspects of the systems (and the individual operating components of the systems) is omitted. Furthermore, the connecting lines shown in the various figures are intended to represent exemplary functional relationships and / or physical connections between the different elements. It should be noted that in an example from this disclosure, many alternative or additional functional relationships or physical connections may exist.

[0033] Road markings, such as lane markings, are an important element of road infrastructure, traditionally used to provide drivers with essential information, such as the location of the road edge. Vehicles can use perception sensor systems, such as camera systems, to obtain lane information. Lane information captured by vehicle perception sensors can be used to provide functions such as automated driving systems (ADS), advanced driver assistance systems (ADAS), and / or similar features. The present disclosure provides a new and improved method for acquiring and aggregating lane data from multiple vehicles to create lane maps.

[0034] With reference to Fig. Figure 1 shows a schematic diagram of a system 10 for crowdsourcing lane map data. The system 10 includes one or more vehicles 12, each of which contains a vehicle system 14. The system 10 also includes a server system 16.

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

[0036] The vehicle control unit 18 is used to implement a method 100 for crowdsourcing lane map data, as described below. The vehicle control unit 18 includes at least one processor and a non-volatile memory device or storage medium that can be read by a computer. The processor can be a custom or off-the-shelf processor, a central processing unit (CPU), a graphics processing unit (GPU), a supporting processor among several processors connected to the vehicle control unit 18, a semiconductor-based microprocessor (in the form of a microchip or chipset), a macroprocessor, a combination thereof, or, more generally, a device for executing instructions. The computer-readable memory devices or media can include volatile and non-volatile memory, 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 while the processor is off. The computer-readable memory device or media can be implemented using a variety of memory devices such as PROMs (programmable read-only memory), EPROMs (electrical PROMs), EEPROMs (electrically erasable PROMs), flash memory, or other electrical, magnetic, optical, or combined memory devices capable of storing data, some of which represents executable instructions used by the vehicle control unit 18 to control various systems of the vehicle 12. The vehicle control unit 18 can also consist of several control units electrically interconnected.The vehicle control unit 18 can be connected to additional systems and / or control units of the vehicle 12, so that the vehicle control unit 18 can access data such as speed, acceleration, braking and steering angle of the vehicle 12.

[0037] The vehicle control unit 18 is electrically connected to the camera system 20, the GNSS 22, and the vehicle communication system 24. In an exemplary embodiment, the electrical communication is established, for example, via a CAN network, a FLEXRAY network, a local network (e.g., WiFi, Ethernet, etc.), an SPI network (Serial Peripheral Interface), or similar. It is understood that various additional wired and wireless techniques and communication protocols for communicating with the vehicle control unit 18 fall within the scope of this disclosure.

[0038] The camera system 20 is used to record images and / or videos of the area surrounding the vehicle 12. In one exemplary embodiment, the camera system 20 includes a photo and / or video camera positioned to observe the area surrounding the vehicle 12. In a non-limiting example, the camera system 20 includes cameras mounted inside the vehicle 12, for example, in the headliner of the vehicle 12, with a view through the windshield. In another non-limiting example, the camera system 20 includes cameras mounted outside the vehicle 12, for example, on the roof of the vehicle 12, capturing the area in front of the vehicle 12.

[0039] In another exemplary embodiment, the camera system 20 is a surround-view camera system comprising a plurality of cameras (also known as satellite cameras) arranged to provide a view of the surroundings on all sides of the vehicle 12. In a non-limiting example, the camera system 20 includes a forward-facing camera (mounted, for example, in a radiator grille of the vehicle 12), a rear-facing camera (mounted, for example, on a tailgate of the vehicle 12), and two side-facing cameras (mounted, for example, below each of the two side mirrors of the vehicle 12). In a further non-limiting example, the camera system 20 also includes an additional reversing camera mounted near a high-mounted center brake light of the vehicle 12.

[0040] It is understood that camera systems with additional cameras and / or additional mounting locations fall within the scope of this disclosure. It is also understood that cameras with different sensor types, e.g., CCD sensors (charge-coupled device), CMOS sensors (complementary metal oxide semiconductor), and / or HDR sensors (high dynamic range), fall within the scope of this disclosure. Furthermore, cameras with different lens types, e.g., wide-angle and / or narrow-angle lenses, also fall within the scope of this disclosure.

[0041] The GNSS 22 is used to determine the geographic location of the vehicle 12. In an exemplary embodiment, the GNSS 22 is a global positioning system (GPS). In a non-limiting example, the GPS includes a GPS receiving antenna (not shown) and a GPS controller (not shown) electrically connected to the GPS receiving antenna. The GPS receiving antenna receives signals from a variety of satellites, and the GPS controller calculates the geographic location of the vehicle 12 based on the signals received by the GPS receiving antenna. In an exemplary embodiment, the GNSS 22 additionally includes a map. The map contains information about infrastructure such as municipal boundaries, roads, railways, sidewalks, buildings, and the like. Therefore, the geographic location of the vehicle 12 is contextualized using the map information.In one non-limiting example, the map is retrieved from a remote source via a wireless connection. In another non-limiting example, the map is stored in a database of the GNSS 22. It is understood that various additional types of satellite-based radio navigation systems, such as the Global Positioning System (GPS), Galileo, GLONASS, and the BeiDou Navigation Satellite System (BDS), fall within the scope of this disclosure. It is understood that the GNSS 22 can be integrated into the vehicle control unit 18 (e.g., on the same circuit board as the vehicle control unit 18 or otherwise as part of the vehicle control unit 18) without exceeding the scope of this disclosure.

[0042] The vehicle communication system 24 is used by the vehicle control unit 18 to communicate with other systems outside the vehicle 12. The vehicle communication system 24 includes, for example, functions for communication with vehicles (V2V communication), with infrastructure (V2I communication), with remote systems in a remote call center (e.g., GENERAL MOTORS' ON-STAR), and / or with personal devices. In general, the term vehicle-to-everything communication (“V2X” communication) refers to communication between the vehicle 12 and any remote system (e.g., vehicles, infrastructure, and / or remote systems). In certain embodiments, the vehicle communication system 24 is a wireless communication system configured to communicate over a wireless local area network (WLAN) using IEEE 802.11 standards or using cellular data communication (e.g.,The vehicle communication system 24 communicates using GSMA standards, such as SGP.02, SGP.22, SGP.32, and the like. Accordingly, the vehicle communication system 24 may also include an embedded universal integrated circuit card (eUICC) configured to store at least one configuration profile for cellular connectivity, such as an embedded subscriber identity module (eSIM). The vehicle communication system 24 is further configured to communicate via a personal network (e.g., Bluetooth) and / or near-field communication (NFC). However, additional or alternative communication methods, such as a dedicated short-range communication channel (DSRC) and / or mobile telecommunications protocols based on the standards of the 3rd Generation Partnership Project (3GPP), are also considered within the scope of this disclosure.DSRC channels are one-way or two-way short- to medium-range wireless communication channels specifically designed for use in motor vehicles, along with a set of corresponding protocols and standards. The 3GPP is a partnership between several standards organizations that develop protocols and standards for mobile telecommunications. 3GPP standards are structured as "releases." Therefore, communication methods based on 3GPP versions 14, 15, 16, and / or future 3GPP versions fall within the scope of this disclosure. Accordingly, the vehicle communication system 24 may include one or more antennas and / or communication transceivers for receiving and / or transmitting signals, such as cooperative message gathering (CSM) signals. The vehicle communication system 24 is configured to wirelessly transmit information between the vehicle 12 and another vehicle.Furthermore, the vehicle communication system 24 is configured to wirelessly transmit information between the vehicle 12 and the infrastructure or other vehicles. It is understood that the vehicle communication system 24 can be integrated into the vehicle control unit 18 (e.g., on the same circuit board as the vehicle control unit 18 or otherwise as part of the vehicle control unit 18) without exceeding the scope of this disclosure.

[0043] With further reference to Fig. In Figure 1, the server system 16 includes a server control unit 26a, which is electrically connected to a map database 28 and a server communication system 30. In a non-restrictive example, the server system 16 is located in a server farm, a data center, or the like, and is connected to the internet via the server communication system 30. The server control unit 26a includes at least one server processor 26b and a non-volatile storage device or server medium 26c. The description of type and configuration given above for the vehicle control unit 18 also applies to the server control unit 26a. In some examples, the server control unit 26a may differ from the vehicle control unit 18 in that the server control unit 26a has a higher processing speed, includes more memory, contains more inputs / outputs, and / or similar features.In a non-restrictive example, the processor 26b and the server media 26c of the server control unit 26a are similar in structure and / or function to the processor and media of the vehicle control unit 18, as described above. The map database 28 serves to store map data about roads, which includes, for example, lane maps, as explained in more detail below. The server communication system 30 serves to communicate with external systems, such as the vehicle control unit 18 via the vehicle communication system 24. In a non-restrictive example, the server communication system 30 is similar in structure and / or function to the vehicle communication system 24 of the vehicle system 14, as described above.In some examples, the server communication system 30 may differ from the vehicle communication system 24 in that the server communication system 30 is able to transmit signals with higher power, receive signals more sensitively, transmit a higher bandwidth, use additional transmit / receive protocols and / or similar features.

[0044] With reference to Fig. Figure 2 shows a schematic representation of several vehicles on a roadway, which shows an offset between the lanes. When driving on a roadway 32, a first vehicle 12a uses the camera system 20 to determine a first lane position 34a of the lanes on the roadway 32. In the context of this disclosure, lanes are lines on the roadway 32 that are configured to indicate edges of the roadway 32 and / or edges of lanes on the roadway 32. Lanes can have several features, including color (e.g., yellow or white), type (e.g., solid or dashed), and / or the like. A second vehicle 12b uses the camera system 20 to determine a second lane position 34b of the lanes on the roadway 32. As shown in Figure 2, the camera system 20 determines the first lane position 34b of the lanes on the roadway 32. Fig. As shown in Figure 2, the position of the first lane 34a and the position of the second lane 34b can be offset, even though the first vehicle 12a and the second vehicle 12b are traveling on the same lane 32. Offsets can occur due to factors such as GPS / GNSS errors, poor condition of the lane markings, adverse weather conditions, and / or similar causes. Therefore, the system 10 and the method 100 of this disclosure enable the comparison of lane positions determined by multiple vehicles.

[0045] With reference to Fig. Figure 3A shows a schematic representation of a multitude of observations 36. The multitude of observations 36 are observations of lane markings on the roadway 32, generated by one or more vehicles 12, as will be explained in more detail below. Fig. 3A includes a key 38, which explains the meaning of the different shapes and hatching fills in Fig. 3A indicates. Shapes with a diagonal hatch fill represent a first observation 40a from the multitude of observations 36. Shapes with a cross-hatch fill represent a second observation 40b from the multitude of observations 36. Hexagons represent points that define a path of movement 44 for the vehicle position, and diamonds represent points 46 that define a right lane. As in Fig. As shown in Figure 3A, each of the plurality of observations 36 includes a plurality of points 46 and a trajectory of the vehicle 44. Each of the plurality of points 46 corresponds to an object in the vicinity of the one or more vehicles 12, for example, a portion of a lane on the roadway 32. Within the scope of the present disclosure, the trajectory 44 represents the locations of the one or more vehicles 12 at different times during the recording of the plurality of observations 36. Each of the plurality of points 46 includes a plurality of point features. In one exemplary embodiment, the plurality of point features includes information about the lane at the location of a particular point. In a non-limiting example, the plurality of point features includes a color of the lane (e.g., yellow or white), a type of lane (e.g.,(solid, dashed, single or double), a position of the lane in relation to the direction of traffic (e.g., left in relation to southbound vehicles), a position of the point in relation to the path of vehicle 44, and / or similar. As above with reference to . Fig. 2. As discussed, a misalignment can occur between the detected lanes, as also in Fig. 3A can be seen.

[0046] Within the scope of the present disclosure, the point cloud registration algorithm is used to determine a point cloud alignment vector 48, which can be used to align the second observation 40b with the first observation 40a. In an exemplary embodiment, the point cloud registration algorithm iteratively shifts the path of motion 44 of the second observation 40b in the direction of the path of motion 44 of the first observation 40a until the second observation 40b is aligned with the first observation 40a. The total distance by which the second observation 40b is shifted in the direction of the first observation 40a by the point cloud registration algorithm is called the point cloud alignment vector 48. While the example in Fig. 3A, where the point cloud alignment vector 48 points in one direction (i.e., in the horizontal direction), the point cloud registration algorithm can shift the second observation 40b in one or more directions (e.g., in the vertical and horizontal directions) without exceeding the scope of this disclosure. In one non-limiting example, the point cloud registration algorithm is an algorithm such as that described, for example, in U.S. Application No. 18 / 359,017 entitled “CROWD-SOURCING LANE LINE MAPS FOR A VEHICLE,” filed on July 26, 2023, the entire contents of which are hereby incorporated by reference. In another non-limiting example, the point cloud registration algorithm is an ICP (“iterative closest point”) algorithm. It is understood that various additional point cloud alignment algorithms fall within the scope of this disclosure.

[0047] With reference to Fig. Figure 3B shows a schematic representation of an exemplary aligned point cloud 50 after displacement of the second observation 40b by the point cloud alignment vector 48. As shown in Fig. As shown in Figure 3B, the trajectory 44 of the first observation 40a is coincident (i.e., it overlaps) with the trajectory 44 of the second observation 40b. In an exemplary embodiment, deviations in the orientation of the plurality of points 46 remain. In a non-restrictive example, the deviations are caused, for instance, by GPS / GNSS errors, measurement errors / deviations, alignment errors due to sparse data, and / or the like. Therefore, Method 100 is used to determine a plurality of correction vectors 52, which are used to shift each of the plurality of points 46 of the second observation 40b to produce an optimized aligned point cloud, as explained in more detail below.

[0048] Before generating the optimized aligned point cloud, confidence values ​​can be determined based on the deviations in the alignment of the multitude of points 46. In various examples, the confidence values ​​for the multitude of observations can be based, at least partially, on the point cloud alignment vectors 52. In other examples, the confidence values ​​are based, at least partially, on whether the multitude of points 46 exhibit the same, similar, and / or common characteristics (e.g., lane color, lane type, etc.). In some examples, each of the point cloud alignment vectors 52 can be compared to a point deviation threshold.In some examples, each of the multitude of points 46 is classified as having high confidence or low confidence, where high confidence is associated with a confidence value above a confidence threshold, and low confidence is associated with a confidence value below the confidence threshold. The multitude of points 64 that have a high confidence value above the confidence threshold can be set as an anchor point. For example, . Fig. 3b represents a first of the multitude of points 46 with a high confidence 53 and a second of the multitude of points 46 with a low confidence 55.

[0049] Generating the point cloud orientation vector 48 can involve the use of computer vision features and computer vision feature matching algorithms. For example, computer vision features (e.g., SIFT, SURF, and ORB, etc.) can be used to represent lane points and lane characteristics (e.g., lane color, lane type, etc.). Computer vision feature matching algorithms (e.g., Brute-Force Matcher, FLANN (Fast Library for Approximate Nearest Neighbors) Matcher, etc.) can be used to find matches and calculate the point cloud orientation vector 48 between a pair of vehicles. The distance between two features (e.g., lane points) can be used as a confidence level.

[0050] With reference to Fig. Figure 4 shows a schematic diagram of a factor graph 60 that can be used in generating an optimized aligned point cloud. The factor graph 60 is a visual representation of an iterative optimization algorithm used to determine the optimal value for each of the plurality of correction vectors 52. The factor graph 60 includes a plurality of variable nodes 62, a plurality of factor nodes 64, and a plurality of edges 66. The plurality of variable nodes 62 represents the plurality of correction vectors 52. The plurality of factor nodes 64 represents a plurality of optimization constraints. Within the scope of this disclosure, the plurality of optimization constraints helps to guide the optimization algorithm to an optimal solution.In a non-restrictive example, the plurality of optimization constraints may include: an anchor point constraint, a trajectory pose constraint, and a spatial environment constraint. In an exemplary embodiment, a first factor node 64a from the plurality of factor nodes 64 represents the anchor point constraint. A second factor node 64b from the plurality of factor nodes 64 represents the trajectory pose constraint. A third factor node 64c from the plurality of factor nodes 64 represents the spatial environment constraint. Specifically, a first variable node 62a from the plurality of variable nodes 62 includes the first factor node 64a (i.e., anchor point constraints), and a second variable node 62b from the plurality of variable nodes 62 does not include the first factor node 64a. The first variable nodes 62a are connected to the previously defined anchor points (e.g., high-confidence local alignment).In contrast, the second variable nodes 62b are not connected to anchor points (e.g., local alignment with low confidence).

[0051] The anchor point constraint means that applying the plurality of correction vectors 52 to the plurality of points 46 of the second observation 40b should move the second observation 40b in the direction of another, similar observation (e.g., the first observation 40a). The trajectory pose constraint means that applying the plurality of correction vectors 52 to the plurality of points 46 of the second observation 40b should not result in a substantial change in the shape of the trajectory of the plurality of points 46 of the second observation 40b. The local environment constraint means that applying the plurality of correction vectors 52 to the plurality of points 46 of the second observation 40b should not move the second observation 40b far from its original location (e.g., GPS position) before the application of the plurality of correction vectors 52.

[0052] The multitude of edges 66 represents a multitude of cost functions. The multitude of cost functions quantify the relationships between the multitude of constraints (i.e., the multitude of factor nodes 64) and the multitude of correction vectors 52 (i.e., the multitude of variable nodes 62). In an exemplary embodiment, the multitude of cost functions includes an anchor point constraint cost function, a trajectory pose constraint cost function, and a location environment constraint cost function.

[0053] In an exemplary embodiment, the anchor point constraint cost function is proportional to c i - C i : Costob(ci)∝ci−Ci wherein Cost ob (c i ) the anchor point constraint cost function for one of the plurality of correction vectors 52, which corresponds to an i-th point of the plurality of points 46 of the second observation 40b, c ione of the multitude of correction vectors 52, which corresponds to an i-th point of the multitude of points 46 of the second observation 40b, and C i is the point cloud alignment vector 48 for the i-th point of the plurality of points 46 of the second observation 40b.

[0054] In a non-restrictive example, the anchor point restriction cost function is: Costob(ci)=ci−Ciσob2(i) where σob2(i) (i) is an orientation variance of the i-th point of the plurality of points 46 of the second observation 40b.

[0055] In an exemplary embodiment, the motion path-pose restriction cost function is proportional to (c i , c i+1 ) - f pose (ċ i , ċ i+1 ): Costpose(ci)∝fpose(ci,ci+1)−fpose(c˙i,c˙i+1) where Cost pose (c i) is the trajectory-pose restriction cost function for one of the plurality of correction vectors 52, which corresponds to the i-th point of the plurality of points 46 of the second observation 40b, c i one of the multitude of correction vectors 52, which corresponds to the i-th point of the multitude of points 46 of the second observation 40b, ċ i an initial correction vector is (eg, zero) that corresponds to the i-th point of the plurality of points 46 of the second observation 40b, f pose (c i , c i+1 ) a direction and / or distance between the i-th point of the plurality of points 46 of the second observation 40b and an i+1-th point of the plurality of points 46 of the second observation 40b after application of one of the plurality of correction vectors 52, and f pose (ċ i , ċ i+1) a direction and / or distance between the i-th point of the plurality of points 46 of the second observation 40b and the i+1-th point of the plurality of points 46 of the second observation 40b after application of the initial correction vector and before application of one of the plurality of correction vectors 52.

[0056] In a non-restrictive example, the trajectory-pose restriction cost function is: Costpose(ci)=fpose(ci,ci+1)−fpose(c˙i,c˙i+1)σpose2(i) where σpose2(i) a pose variance of the i-th point of the plurality of points 46 of the second observation 40b is.

[0057] In an exemplary embodiment, the location constraint cost function is proportional to euclidian(c). i , ċ i ): Costloc(ci)∝euclidean(ci,c˙i) where Cost loc (c i) the location constraint cost function for one of the plurality of correction vectors 52 corresponding to the i-th point of the plurality of points 46 of the second observation 40b is, c i one of the plurality of correction vectors 52 corresponding to the i-th point of the plurality of points 46 of the second observation 40b is, ċ i the initial correction vector is that which corresponds to the i-th point of the plurality of points 46 of the second observation 40b, and Euclidean(c i , ċ i ), a Euclidean distance between a location of the i-th point after applying one of the plurality of correction vectors 52 and a location of the i-th point after applying the initial correction vector and before applying one of the plurality of correction vectors 52.

[0058] In a non-restrictive example, the location constraint cost function is: Costloc(ci)=euclidean(ci,c˙i)σloc2(i) where σloc2(i) a spatial variance of the i-th point of the plurality of points 46 of the second observation 40b is.

[0059] The multitude of variable nodes 62, the multitude of factor nodes 64, and the multitude of edges 66 of the factor graph 60 can also be represented as an objective function. In an exemplary embodiment, the objective function is: F(c1,c2,⋯,cn)=∑ci(Costob(ci)2+Costpose(ci)2+Costloc(ci)2) where F(c1, c2,···, c n ) the objective function is, c1,c2,···,c n the multitude of correction vectors 52 are, c i one of the multitude of correction vectors 52, which corresponds to the i-th point of the multitude of points 46 of the second observation 40b, Cost ob (c i ) the anchor point constraint cost function for one of the plurality of correction vectors 52, which corresponds to the i-th point of the plurality of points 46 of the second observation 40b, Cost pose (c i) the trajectory-pose restriction cost function for one of the plurality of correction vectors 52, which corresponds to the i-th point of the plurality of points 46 of the second observation 40b, and Cost loc (c i ) the location constraint cost function for one of the plurality of correction vectors 52, which corresponds to the i-th point of the plurality of points 46 of the second observation 40b.

[0060] To determine the value of each of the multiple correction vectors 52, the objective function is minimized: c1,c2,⋯,cn=argmin[F(c1,c2,⋯,cn)]c1,c2,⋯,cn

[0061] In one exemplary embodiment, the server controller 26a uses one or more optimization algorithms, such as gradient descent, genetic algorithms, hill-climbing algorithms, Bayesian algorithms, and / or the like, to minimize the objective function (equation 7). In another exemplary embodiment, the server controller 26a uses an iterative optimization algorithm, such as a factor graph optimization algorithm, to minimize the objective function (equation 7). In a non-restrictive example, the factor graph optimization algorithm iteratively updates the plurality of variable nodes 62 (i.e., the plurality of correction vectors 52) in the factor graph 60 to minimize the objective function (equation 7).

[0062] The factor graph optimization algorithm iteratively updates the multitude of variable nodes 62 based on the multitude of factor nodes 64 and the multitude of edges 66 of the factor graph 60 using optimization techniques. In a non-restrictive example, message-passing algorithms (e.g., belief propagation) and / or optimization solvers (e.g., gradient descent) are used to find the optimal values ​​for the multitude of variable nodes 62 (i.e., the multitude of correction vectors 52) that satisfy the multitude of constraints based on the multitude of factor nodes 64 and minimize the objective function (equation 7).

[0063] In one exemplary embodiment, the factor graph optimization algorithm is complete when a convergence state is satisfied. In a non-restrictive example, the convergence state is satisfied when a further change in the plurality of variable nodes 62 leads to an increase in the objective function (equation 7). In another non-restrictive example, the convergence state is satisfied when the objective function (equation 7) is less than or equal to a predetermined objective function threshold. In yet another non-restrictive example, the convergence state is satisfied after completion of a predetermined number of iterations.

[0064] With reference to Fig. Section 5 shows a flowchart of procedure 100 for crowdsourcing lane map data. Procedure 100 begins at block 102 and continues to block 104. With reference to Fig. 5 and further reference to Fig. 3A The one or more vehicles 12 at block 104 perform the plurality of observations 36 using the vehicle system 14. In an exemplary embodiment, each of the plurality of observations 36 includes one or more lanes (e.g., a left lane and / or the right lane) and the vehicle's trajectory 44 on the roadway 32. In a non-limiting example, the one or more lanes are captured by the camera system 20. For example, the vehicle control unit 18 uses the camera system 20 to capture a plurality of images of the roadway 32. The vehicle control unit 18 then uses a computer vision algorithm to identify the one or more lanes in the plurality of images of the roadway 32. The one or more lanes are then segmented into a plurality of points (e.g.,the plurality of points 46), such that each of the plurality of points corresponds to a part of the one or more lanes. The plurality of point features is determined for each of the plurality of points, for example, using the computer vision algorithm. In a non-restrictive example, the trajectory of vehicle 44 is determined using the GNSS 22 of the vehicle system 14. The trajectory of vehicle 44 represents a location track of vehicle 12 during each of the plurality of observations. It is understood that the plurality of observations 36 can be performed by one or more vehicles 12. The plurality of observations 36 can include multiple observations of the same geographical location and / or multiple observations of different geographical locations without this deviating from the scope of the present disclosure. After Block 104, the process 100 transitions to Block 106.

[0065] In block 106, the plurality of observations made in block 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 one or more observations to the server communication system 30 of the server system 16, and the server system 16 receives the plurality of observations via the server communication system 30. After block 106, the method 100 transitions to block 108.

[0066] At block 108, the server system 16 generates the point cloud alignment vector 48 using the point cloud registration algorithm, as described above. In one exemplary embodiment, the point cloud alignment vector 48 is the total distance and direction by which the second observation 40b must be moved in the direction of the first observation 40a to align the second observation 40b with the first observation 40a. In a non-restrictive example, the point cloud registration algorithm uses an iterative procedure to determine the point cloud alignment vector 48, as described above. In other examples, the point cloud alignment vector 48 can be computed based on computer vision features and feature matching algorithms. After block 108, the procedure 100 proceeds to block 110.

[0067] At block 110, the server system determines 16 confidence values ​​for each of the multitude of observations received at block 106, at least partially based on the point cloud orientation vector 48 determined at block 108. After block 110, the procedure 100 proceeds to block 112.

[0068] In block 112, server system 16 defines a subset of the multitude of observations as anchor points. This defined subset can include observations whose confidence values ​​exceed a threshold for the confidence value. After block 112, procedure 100 proceeds to block 114.

[0069] At block 114, server system 16 generates an optimized, aligned point cloud, which is based at least partially on the point cloud alignment vector 48 determined at block 108 and the multitude of observations received at block 106, as explained in more detail below. In some examples, server system 16 generates the optimized, aligned point cloud using anchor point constraints based on the anchor points defined in block 112. After block 114, the process 100 proceeds to block 116.

[0070] At Block 116, the server system 16 determines a lane map that is based, at least in part, on the optimized aligned point cloud determined at Block 114. For the purposes of this disclosure, lane maps are data that define one or more lane maps at a specific geographic location on a roadway. In a non-limiting example, the lane map includes mathematical and / or geometric equations that define a continuous line representing a shape, size, arrangement, location, and / or the like of the one or more lanes. The lane map also includes features of the one or more lanes, such as color, type, and / or the like. It is understood that the lane map may include additional elements, such as additional painted markings, roadway edges (i.e., boundaries between paved and unpaved areas), virtual lanes (i.e.,Computer-derived lanes (where no painted lanes are present, for example, within an intersection) and / or additional objects, markings, and features of lanes, without this deviating from the scope of the present disclosure. Furthermore, it is understood that the system 10 and method 100 disclosed herein are applicable to the additional elements of the lane maps disclosed above, in addition to the one or more lanes. In an exemplary embodiment, the server control unit 26a uses a hill-climbing algorithm to determine a lane map, as described in U.S. Application No. 17 / 930,503, filed on September 8, 2022, entitled "HILL CLIMBING ALGORITHM FOR CONSTRUCTING A LANE LINE MAP," the entire contents of which are hereby incorporated by reference.It should be understood that any method for determining a mathematical equation describing one or more lanes based on a point cloud falls within the scope of this disclosure. Following Block 116, Method 100 continues with Blocks 118 and 120.

[0071] At block 118, the server control unit 26a updates the map database 28. In an exemplary embodiment, the server control unit 26a stores the lane map determined at block 116 in the map database 28. After block 118, the procedure 100 transitions to block 122, as explained in more detail below.

[0072] At block 120, the server control unit 26a transmits the lane map determined at block 116 to the one or more vehicles 12 using the server communication system 30, and the one or more vehicles 12 receive the transmitted lane map. After block 120, the process 100 continues to block 122.

[0073] At block 122, one or more vehicles 12 take actions that are at least partially based on the lane map received at block 120. In one exemplary embodiment, the action involves discontinuing an operation of the vehicle 12. In a non-restrictive example, discontinuing the operation of the vehicle 12 includes discontinuing the operation of any automated driving system of the vehicle 12. For example, a pathfinding module of the automated driving system may use the lane map to adjust the route of the vehicle 12. In another non-restrictive example, discontinuing the operation of the vehicle 12 includes discontinuing the operation of any advanced driver assistance system (ADAS), such as a lane keeping system and / or a lane departure warning system.In another non-restrictive example, stopping the operation of vehicle 12 involves providing a notification and / or a visual indication of one or more lanes to an occupant of vehicle 12 using a display, such as a head-up display (HUD). Following block 122, procedure 100 enters a standby state at block 124.

[0074] With reference to Fig. Figure 6 shows a flowchart of an exemplary embodiment 114a of block 114 of method 100. With reference to the Fig. 4 and Fig. In section 6, exemplary embodiment 114a begins at block 602. At block 602, the server system 16 generates the factor graph 60, as described above with reference to Fig.4 described. In an exemplary embodiment, the factor graph 60 is created on the basis of the plurality of correction vectors 52, the plurality of constraints, and the plurality of cost functions, as described above. After Block 602, the exemplary embodiment 114a proceeds to Block 604.

[0075] At block 604, the server system 16 updates one or more of the plurality of variable nodes 62 (i.e., one or more of the plurality of correction vectors 52) of the factor graph 60 generated at block 602. In one exemplary embodiment, the one or more of the plurality of variable nodes 62 are updated iteratively based on the factor graph 60. In another exemplary embodiment, the one or more of the plurality of variable nodes 62 are updated iteratively to decrease a value of one or more of the plurality of cost functions (equations 2, 4, 6). In yet another exemplary embodiment, the one or more of the plurality of variable nodes 62 are updated iteratively to decrease the value of the objective function (equation 7).Within the scope of the present disclosure, updating one or more of the plurality of variable nodes 62 includes, for example, increasing or decreasing an amount and / or direction of one or more of the plurality of correction vectors 52. According to Block 604, exemplary embodiment 114a transitions to Block 606.

[0076] In block 606, the server system 16 evaluates the plurality of cost functions (equations 2, 4, 6) and the objective function (equation 7) at least partially based on the plurality of correction vectors 52 that were updated in block 604. After block 606, exemplary embodiment 114a transitions to block 608.

[0077] At block 608, server system 16 evaluates whether the convergence state is satisfied, as described above. In one non-restrictive example, the convergence state is satisfied if a further change in the plurality of variable nodes 62 would result in an increase in the value of the objective function (equation 7). In another non-restrictive example, the convergence state is satisfied if the value of the objective function (equation 7) is less than or equal to the predetermined threshold of the objective function. In yet another non-restrictive example, the convergence state is satisfied after completion of the predetermined number of iterations (e.g., one thousand iterations). If the convergence state is not satisfied, exemplary embodiment 114a returns to block 604 to further modify one or more of the plurality of variable nodes 62 (i.e., one or more of the plurality of correction vectors 52) of the factor graph 60.If the convergence condition is met, exemplary embodiment 114a continues with block 610.

[0078] In block 610, the server system 16 applies the plurality of correction vectors 52 determined in blocks 602, 604, and 606 to each of the plurality of points 46 of the second observation 40b to generate the optimized aligned point cloud. In an exemplary embodiment, the server system 16 shifts the position of each of the plurality of points 46 of the second observation 40b relative to the path of motion 44 of the second observation 40b by one of the plurality of correction vectors 52. After block 610, the exemplary embodiment 114a is completed, and the method 100 continues as described above.

[0079] System 10 and Method 100 of the present disclosure offer several advantages. With System 10 and Method 100, lane maps can be created from crowd-sourced data (i.e., data provided by many vehicles). System 10 and Method 100 make it possible to aggregate data collected by different vehicles, with different devices, at different times, under different environmental conditions, and with varying data quality to create accurate lane maps. The use of the factor graph optimization algorithm enables higher accuracy and a reduction in the offsets between observations. The inclusion of anchor points promotes reliable results.The lane maps are then used to update stored map databases and transferred to vehicles so that they can be used by vehicle systems such as automated driving systems (ADS), advanced driver assistance systems (ADAS), etc.

Claims

[1] Method (100) for crowdsourcing lane map data for a vehicle, the method comprising: Receiving a multitude of observations (36), wherein the multitude of observations (36) includes at least a first observation (40a) and a second observation (40b); Generating a point cloud alignment vector at least partially based on the multitude of observations (36); Determining confidence values ​​for the multitude of observations (36) at least partially based on the point cloud orientation vector; Defining a subset of the multitude of observations (36) with confidence values ​​above a threshold for the confidence value as anchor points; Generating an optimized aligned point cloud, based at least partially on the point cloud alignment vector and the anchor points; Determining a lane map at least partially based on the optimized aligned point cloud; and Updating a map database, at least partially, based on the lane map; further comprising the generation of the point cloud alignment vector: Generating the point cloud orientation vector using a point cloud registration algorithm; and Determining the point cloud alignment vector such that shifting the trajectory of the vehicle location of the second observation (40b) by the point cloud alignment vector aligns the trajectory of the vehicle location of the second observation (40b) with the trajectory of the vehicle of the first observation; where generating the optimized aligned point cloud further includes: Determining a plurality of correction vectors (52), wherein each of the plurality of correction vectors (52) corresponds to one of the plurality of points (46) of the second observation (40b); and Moving each of the plurality of points (46) of the second observation (40b) to generate the optimized aligned point cloud, wherein each of the plurality of points (46) of the second observation (40b) is moved at least partially on the basis of one of the plurality of correction vectors (52); where determining the plurality of correction vectors (52) further includes: Minimizing an objective function to determine the plurality of correction vectors (52), wherein the objective function includes at least a plurality of cost functions, wherein each of the plurality of cost functions depends at least partially on the plurality of correction vectors (52), wherein each of the plurality of cost functions corresponds to one of a plurality of optimization constraints, and wherein the plurality of optimization constraints includes at least: an anchor point constraint cost function, where the anchor point constraint cost function is as follows: Costob(ci)=ci−Ciσob2(i) where Cost ob (c i ) the anchor point constraint cost function for one of the plurality of correction vectors (52) corresponding to an i-th point of the plurality of points (46) of the second observation (40b), c ione of the plurality of correction vectors (52) that corresponds to an i-th point of the plurality of points (46) of the second observation (40b), C i the point cloud orientation vector for the i-th point of the plurality of points (46) of the second observation (40b) is, and σob2(i) (i) is an orientation variance of the i-th point of the plurality of points (46) of the second observation (40b); a trajectory-pose restriction cost function, where the trajectory-pose restriction cost function is as follows: Costpose(ci)=fpose(ci,ci+1)−fpose(c˙i,c˙i+1)σpose2(i) where Cost pose (c i ) the trajectory-pose restriction cost function for one of the plurality of correction vectors (52) corresponding to the i-th point of the plurality of points (46) of the second observation (40b), c ione of the plurality of correction vectors (52) that corresponds to the i-th point of the plurality of points (46) of the second observation (40b), ċ i an initial correction vector corresponding to the i-th point of the plurality of points (46) of the second observation (40b), f pose (ċ i , c i+1 ) a direction between the i-th point of the plurality of points (46) of the second observation (40b) and an i+1-th point of the plurality of points (46) of the second observation (40b) after application of one of the plurality of correction vectors (52) is, f pose (ċ i , ċ i+1 ) a direction between the i-th point of the plurality of points (46) of the second observation (40b) and the i+1-th point of the plurality of points (46) of the second observation (40b) after application of the initial correction vector, and σpose2(i) a pose variance of the i-th point of the plurality of points (46) of the second observation (40b); and a location constraint cost function, where the location constraint cost function is as follows: Costloc(ci)=euclidean(ci,c˙i)σloc2(i) where Cost loc (c i ) the location-constraint-cost function for one of the plurality of correction vectors (52) corresponding to the i-th point of the plurality of points (46) of the second observation (40b), c i one of the plurality of correction vectors (52) that corresponds to the i-th point of the plurality of points (46) of the second observation (40b), ċ i the initial correction vector is that which corresponds to the i-th point of the plurality of points (46) of the second observation (40b), euclidian(c i , ċ i) a Euclidean distance between a location of the i-th point after application of one of the plurality of correction vectors (52) and a location of the i-th point after application of the initial correction vector, and σloc2(i) a spatial variance of the i-th point of the plurality of points (46) of the second observation (40b). [2] Method (100) according to claim 1, wherein receiving the plurality of observations (36) includes: Receiving the plurality of observations (36) from one or more vehicles, wherein each of the plurality of observations (36) includes a trajectory of the vehicle and a plurality of points (46) positioned relative to the trajectory of the vehicle, wherein each point of the plurality of points (46) includes a plurality of point features, one of the plurality of point features being a location of each point relative to the trajectory of the vehicle, and wherein each of the plurality of points (46) corresponds to an object in an environment surrounding the one or more vehicles. [3] Method (100) according to claim 2, wherein generating the point cloud alignment vector further comprises: Generating the point cloud alignment vector using a computer vision feature matching algorithm or a point cloud registration algorithm. [4] System (10) for crowdsourcing lane map data for a vehicle (12), comprising the system (10): a server communication system (30); a map database (28); a server control unit (26a) in electrical communication with the server communication system (30) and the map database (28), wherein the server control unit (26a) is programmed to: to receive a multitude of observations (36) using the server communication system (30), wherein the multitude of observations (36) includes at least a first observation (40a) and a second observation (40b); to generate a point cloud alignment vector (48) at least partially based on the multitude of observations (36); To determine confidence values ​​for the multitude of observations (36) at least partially on the basis of the point cloud orientation vector (48); to define as anchor points a subset of the multitude of observations (36) with confidence values ​​that are above a threshold for the confidence value; to generate an optimized aligned point cloud that is based at least partially on the point cloud alignment vector (48) and the anchor points; to determine a lane map at least partially based on the optimized, aligned point cloud; and to update a map database, at least partially, based on the lane map; wherein the server control unit (26a) for generating the optimized aligned point cloud is further programmed to: to determine a plurality of correction vectors (52), each of which from the plurality of correction vectors (52) corresponds to one of the plurality of points (46) of the second observation (40b); and to move each of the plurality of points (46) of the second observation (40b) to generate the optimized aligned point cloud, wherein each of the plurality of points (46) of the second observation (40b) is moved at least partially on the basis of one of the plurality of correction vectors (52); wherein, to determine the plurality of correction vectors (52), the server control unit (26a) is further programmed to: to minimize an objective function to determine the plurality of correction vectors (52), wherein the objective function includes at least a plurality of cost functions, wherein each of the plurality of cost functions depends at least partially on the plurality of correction vectors (52), wherein each of the plurality of cost functions corresponds to one of a plurality of optimization constraints, and wherein the plurality of optimization constraints includes at least: an observation similarity constraint, a trajectory pose constraint, and a location environment constraint; the multitude of cost functions further includes: an anchor point constraint cost function, where the anchor point constraint cost function is as follows: Costob(ci)=ci−Ciσob2(i) where Cost ob (c i) the anchor point constraint cost function for one of the plurality of correction vectors (52) corresponding to an i-th point of the plurality of points (46) of the second observation, c i one of the plurality of correction vectors (52) that corresponds to an i-th point of the plurality of points (46) of the second observation (40b), C i the point cloud orientation vector for the i-th point of the plurality of points (46) of the second observation (40b) is, and σob2(i) an orientation variance of the i-th point of the plurality of points (46) of the second observation (40b) is; a trajectory-pose restriction cost function, where the trajectory-pose restriction cost function is as follows: Costpose(ci)=fpose(ci,ci+1)−fpose(c˙i,c˙i+1)σpose2(i) where Cost pose (c i) the trajectory-pose restriction cost function for one of the plurality of correction vectors (52) corresponding to the i-th point of the plurality of points (46) of the second observation (40b), c i one of the plurality of correction vectors (52) that corresponds to the i-th point of the plurality of points (46) of the second observation (40b), ċ i an initial correction vector corresponding to the i-th point of the plurality of points (46) of the second observation (40b), f pose (c i , c i+1 ) a direction between the i-th point of the plurality of points (46) of the second observation (40b) and an i+1-th point of the plurality of points (46) of the second observation (40b) after application of one of the plurality of correction vectors (52) is, f pose (ċ i , ċ i+1) a direction between the i-th point of the plurality of points (46) of the second observation (40b) and the i+1-th point of the plurality of points (46) of the second observation (40b) after application of the initial correction vector, and σpose2(i) a pose variance of the i-th point of the plurality of points (46) of the second observation (40b); and a location constraint cost function, where the location constraint cost function is as follows: Costloc(ci)=euclidean(ci,c˙i)σloc2(i) where Cost loc (c i ) the location-constraint-cost function for one of the plurality of correction vectors (52) corresponding to the i-th point of the plurality of points (46) of the second observation (40b), c i one of the plurality of correction vectors (52) that corresponds to the i-th point of the plurality of points (46) of the second observation (40b), ċ ithe initial correction vector is that which corresponds to the i-th point of the plurality of points (46) of the second observation (40b), euclidian(c i , ċ i ) a Euclidean distance between a location of the i-th point after application of one of the plurality of correction vectors (52) and a location of the i-th point after application of the initial correction vector, and σloc2(i) a spatial variance of the i-th point of the plurality of points (46) of the second observation (40b); [5] System according to claim 4, wherein, for receiving the plurality of observations (36) using the server communication system, the server control unit is further programmed to: to receive the plurality of observations (36) from one or more vehicles using the server communication system, wherein each of the plurality of observations (36) includes a trajectory of the vehicle and a plurality of points (46) positioned relative to the trajectory of the vehicle, wherein each point of the plurality of points (46) includes a plurality of point features, one of the plurality of point features being a location of each point relative to the trajectory of the vehicle, and wherein each of the plurality of points (46) corresponds to an object in an environment surrounding the one or more vehicles.

Citation Information

Patent Citations

  • Hill climbing algorithm for constructing a lane line map

    US20240085210A1

  • Full-automatic point cloud data offset correction method and system

    CN114155168A

  • A real-time map generation system for autonomous vehicles

    US20210370968A1

  • Road change detection method, computing device, and storage medium

    US20240011794A1

  • CN000114155168A