Lane matching algorithm and software based on high-precision positioning and attitude determination data and ultra-low latency map.

CN116521680BActive Publication Date: 2026-08-14YUNKONG ZHIXING (SHANGHAI) AUTOMOTIVE TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-04-27
Publication Date
2026-08-14

AI Technical Summary

Technical Problem

[0006]本申请的一个目的是提供一种基于高精度定位定姿数据超低时延地图车道匹配算法、软件,至少用以解决相关技术的方案中无法满足对于实时性要求较高、更新计算频率较快的应用场景的技术问题

Benefits of technology

[0011]相较于现有技术,本申请实施例提供的方案中,本申请实施例提供的空间索引的构建方法,首先获取车道宽度和用于表征车道位置走向的车道点迹坐标序列中的各相邻坐标;然后根据所述车道宽度和所述相邻坐标,确定可能与车道匹配的矩形区域;之后进一步确定用于包围所述矩形区域的、长宽边分别与经纬度坐标系相平行的外接矩形,并获取所述外接矩形的其中一组对角线的顶点坐标数据;基于所述顶点坐标数据确定目标地址;根据所述顶点坐标数据和所述目标地址生成索引项添加至空间索引,以根据构建好的空间索引进行车道匹配。这样,当需要进行车道匹配时,仅需要使用实时获取到的车辆定位数据在所述空间索引进行检索即可。这样,使用所述空间索引进行检索的速度很快,以所述空间索引算法为Rtree索引结构为例,其检索的平均计算复杂度为O(logN),可以实现快速匹配车辆所在车道。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116521680B_ABST
    Figure CN116521680B_ABST
Patent Text Reader

Abstract

This application provides an ultra-low latency map lane matching algorithm and software based on high-precision positioning and attitude determination data. The spatial index construction method includes: obtaining the lane width and the coordinates of each adjacent lane point in the lane position coordinate sequence; determining a rectangular region that may match the lane based on the lane width and adjacent coordinates; determining an circumscribed rectangle with its length and width sides parallel to the latitude and longitude coordinate system to enclose the rectangular region, and obtaining the vertex coordinates of one set of diagonals of the circumscribed rectangle; determining the target address based on the vertex coordinate data; generating index entries based on the vertex coordinate data and the target address and adding them to the spatial index; and repeating the above steps until all adjacent coordinates in the lane point coordinate sequence are traversed, thus completing the spatial index construction. This method can at least solve the technical problem in related technologies where solutions cannot meet the requirements of application scenarios with high real-time requirements and fast update calculation frequencies.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of information technology, and in particular to a lane matching algorithm and software based on high-precision positioning and attitude determination data and ultra-low latency map. Background Technology

[0002] With the rapid development of vehicle-road cooperative technology, autonomous driving technology for intelligent connected vehicles is being widely applied to all aspects of daily transportation. In these applications, it's often necessary to obtain information such as the vehicle's current lane location, and we expect the underlying algorithms of the corresponding application software to acquire this information efficiently and accurately. This information may include lane location information, lane width information, lane speed limit information, whether straight-ahead travel is permitted in that lane, whether left turns are permitted in that lane, and so on.

[0003] In related technologies, the orientation of a lane is generally described by a sequence of lane point coordinates that characterize the lane's position and direction, such as... Figure 1 As shown. Common methods for matching and locating a vehicle in its lane generally include: iterating through each node in the MAP message, typically one node corresponds to one intersection; for each currently visited node, iterating through each road under that node; for each road, iterating through each lane under it; for each currently examined lane, iterating through the lane point coordinate sequence used to describe the lane's position and direction; for each pair of adjacent points in the lane point coordinate sequence, calculating the perpendicular distance from the current vehicle's coordinates to the line connecting the two adjacent points, and determining whether this perpendicular distance is less than a preset distance. If the perpendicular distance is less than a specified preset distance, and the angle between the vehicle's driving direction and the lane direction is less than or equal to a preset angle, and the foot of the perpendicular falls between the two currently examined points, then the current vehicle is considered to be matched with the lane containing these two points.

[0004] However, the inventors found that while the solutions in the related technologies are intuitive and easy to implement, they also have at least the following technical problems:

[0005] The use of multiple loops in the traversal method results in high computational complexity for related technologies. Theoretically, assuming the lane position and direction sequence comprises N points (where N is an integer greater than or equal to 1), each lane matching operation requires, on average, N / 2 calculations of the perpendicular distance from the vehicle's coordinates to the lines connecting adjacent coordinates to find a matching lane, resulting in a computational complexity of O(N). This computational complexity is barely sufficient for low-speed autonomous driving applications with low real-time requirements or simpler traffic environments, but it cannot meet the needs of applications with high real-time requirements and frequent updates. Summary of the Invention

[0006] One objective of this application is to provide a lane matching algorithm and software based on high-precision positioning and attitude data and ultra-low latency maps, at least to solve the technical problem that the solutions in related technologies cannot meet the application scenarios with high real-time requirements and fast update calculation frequency.

[0007] To achieve the above objectives, some embodiments of this application provide a method for constructing a spatial index. The method includes: obtaining the lane width and each adjacent coordinate in a lane point coordinate sequence used to characterize the lane's position and direction; determining a rectangular region that may match the lane based on the lane width and the adjacent coordinates; determining an circumscribed rectangle for enclosing the rectangular region, with its length and width sides parallel to the latitude and longitude coordinate system, and obtaining vertex coordinate data of one set of diagonals of the circumscribed rectangle; determining a target address based on the vertex coordinate data; generating an index entry based on the vertex coordinate data and the target address and adding it to the spatial index; and repeatedly executing the above steps until all adjacent coordinates in the lane point coordinate sequence have been traversed, thus completing the construction of the spatial index.

[0008] Some embodiments of this application also provide a lane matching method, which is applied to a spatial index constructed according to the spatial index construction method described above. The method includes: obtaining the current positioning data of a vehicle; retrieving a set of triples including the positioning data from the spatial index; traversing the triples for verification; and performing lane matching based on the verification results.

[0009] Some embodiments of this application also provide an electronic device, the device comprising: one or more processors; and a memory storing computer program instructions, which, when executed, cause the processor to perform the method described in any of the above.

[0010] Some embodiments of this application also provide a computer-readable medium having computer program instructions stored thereon, which can be executed by a processor to implement the method.

[0011] Compared to existing technologies, the spatial index construction method provided in this application first obtains the lane width and the coordinates of each adjacent lane point in the coordinate sequence representing the lane's position and direction. Then, based on the lane width and the adjacent coordinates, a rectangular region that may match the lane is determined. Next, an circumscribed rectangle is determined to enclose the rectangular region, with its length and width sides parallel to the latitude and longitude coordinate system, and the vertex coordinates of one set of diagonals of the circumscribed rectangle are obtained. A target address is determined based on the vertex coordinates. An index entry is generated based on the vertex coordinates and the target address and added to the spatial index for lane matching. Thus, when lane matching is needed, only the real-time vehicle positioning data needs to be retrieved from the spatial index. This makes retrieval using the spatial index very fast. Taking the R-tree index structure as an example, the average computational complexity of the retrieval is O(logN), enabling rapid matching of the vehicle's lane. Attached Figure Description

[0012] Figure 1 This is an exemplary schematic diagram of a lane marker coordinate sequence provided according to related technologies;

[0013] Figure 2 An exemplary flowchart illustrating a method for constructing a spatial index provided in this application embodiment;

[0014] Figure 3 An exemplary schematic diagram of a rectangular region provided in an embodiment of this application;

[0015] Figure 4 An exemplary schematic diagram of a circumscribed rectangle provided in an embodiment of this application;

[0016] Figure 5 An exemplary flowchart of a lane matching method provided in an embodiment of this application;

[0017] Figure 6 This is an exemplary structural diagram of an electronic device provided in an embodiment of this application. Detailed Implementation

[0018] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.

[0019] The following terms are used in this document.

[0020] Map message, MAP message.

[0021] The Global Navigation Satellite System (GNSS) is a space-based radio navigation and positioning system that provides users with all-weather 3D coordinates, velocity, and time information at any location on the Earth's surface or in near-Earth space.

[0022] The Global Positioning System (GPS) is a high-precision radio navigation and positioning system based on artificial Earth satellites.

[0023] Spatial indexing algorithms are algorithms that organize spatial data into an index structure for fast retrieval. The basic idea is to divide spatial data into several spatial units, store the data within the corresponding units, and create an index to accelerate retrieval. The method of dividing the spatial units and the design of the index structure are the core aspects of spatial indexing algorithms.

[0024] Example 1

[0025] This application provides a method for constructing a spatial index, such as... Figure 2 As shown, the method may include the following steps:

[0026] Step S101: Obtain the lane width and the coordinates of each adjacent lane point in the lane position coordinate sequence used to characterize the lane position and direction;

[0027] Step S102: Determine a rectangular area that may match the lane based on the lane width and the adjacent coordinates;

[0028] Step S103: Determine the circumscribed rectangle that surrounds the rectangular region, with its length and width sides parallel to the latitude and longitude coordinate system, and obtain the vertex coordinate data of one set of diagonals of the circumscribed rectangle;

[0029] Step S104: Determine the target address based on the vertex coordinate data;

[0030] Step S105: Generate an index entry based on the vertex coordinate data and the target address and add it to the spatial index;

[0031] Step S106: Repeat the above steps until all adjacent coordinates in the lane point coordinate sequence have been traversed, thus completing the construction of the spatial index.

[0032] Specifically, regarding step S101, in some examples, a moving intelligent connected vehicle can obtain the lane width and each adjacent coordinate in the lane point coordinate sequence used to characterize the lane position and direction by receiving and parsing MAP messages broadcast by roadside equipment in real time; in some other examples, the lane width and each adjacent coordinate in the lane point coordinate sequence used to characterize the lane position and direction can be obtained based on a cloud control platform, without specific limitations here.

[0033] Specifically, regarding step S102, in some examples, the direction of the lane can be determined based on the line connecting the adjacent coordinates, so that a rectangular area that may match the lane can be determined based on the direction of the lane and the lane width, such as... Figure 3 As shown.

[0034] Regarding step S103, specifically, in some examples, the vertex coordinates of one set of diagonals of the circumscribed rectangle can be the coordinates of the lower left and upper right corners of the circumscribed rectangle, or it can be the coordinates of the upper left and lower right corners of the circumscribed rectangle; no specific limitation is made here. In some examples, the circumscribed rectangle can be referred to as... Figure 4 As shown.

[0035] Specifically, regarding steps S102 and S103, since lanes often have a certain direction, not all lanes match the latitude and longitude coordinate system. Therefore, if there is an angular gap between the determined rectangular area and the latitude and longitude coordinate system, the circumscribed rectangle generated for the corresponding rectangular area may match the lane. If the determined rectangular area completely matches the latitude and longitude coordinate system and there is no angle, then the rectangular area and the circumscribed rectangle overlap and will inevitably match the lane. It can be understood that if the angle between the rectangular area and the latitude and longitude coordinate system is 45°, then matching based on the circumscribed rectangle obtained from the corresponding rectangular area will result in the largest error; if the rectangular area completely matches the latitude and longitude coordinate system and there is no angle, then the error will be the smallest.

[0036] Specifically, regarding step S104, in some examples, the target address may be the access address from which the vertex coordinate data is obtained in the Map message. For example, the target address may be its corresponding memory address, or it may be an array index, etc.

[0037] Specifically, regarding steps S105 and S106, in some examples, index entries are generated based on the vertex coordinate data and the target address and added to the spatial index. Then, the above steps are repeated until all adjacent coordinates in the lane point coordinate sequence are traversed, completing the construction of the spatial index. Thus, when lane matching is needed, only the real-time acquired vehicle positioning data needs to be retrieved from the spatial index. This makes retrieval using the spatial index very fast. Taking the R-tree index structure as an example, its average computational complexity is O(logN), achieving the goal of quickly matching the lane where the vehicle is located.

[0038] It should be noted that there are many spatial indexing algorithms in related technologies. For ease of understanding, this application only uses the Rtree index structure as an example to describe the spatial indexing algorithm. However, the spatial indexing construction method proposed in this application is not limited to the Rtree index structure. For example, in some other examples, the spatial indexing algorithm can also be a B-tree, R-tree, R+ tree, R* tree, KD tree, QR tree, SS tree, X tree, etc.

[0039] The R-tree index structure groups objects in space based on their proximity, using bounding boxes to represent the spatial area occupied by each group. The R-tree index is hierarchical; lower-level groups are further distributed to higher-level groups based on their proximity. The closer to the top level, the fewer the number of groups, the larger the number of objects in each group, and the larger the area covered by the bounding box. When searching for the lowest-level bounding box region containing a given coordinate, the process starts from the top level. First, it locates the bounding box region corresponding to the coordinate within that group in the top level, retrieves the group information within that bounding box, and proceeds to the second level. Then, it locates the bounding box region within that second-level group, retrieves the bounding box information, and proceeds to the third level, and so on, until the smallest area at the lowest level is found. Under the premise of balanced R-tree index partitioning, its average retrieval time complexity is O(logN).

[0040] It is not difficult to see that, compared with related technologies, the spatial index construction method provided in this application first obtains the lane width and the coordinates of each adjacent lane point in the coordinate sequence used to characterize the lane's position and direction; then, based on the lane width and the adjacent coordinates, a rectangular region that may match the lane is determined; further, an circumscribed rectangle is determined to surround the rectangular region, with its length and width sides parallel to the latitude and longitude coordinate system, and the vertex coordinate data of one set of diagonals of the circumscribed rectangle is obtained; the target address is determined based on the vertex coordinate data; and an index entry is generated based on the vertex coordinate data and the target address and added to the spatial index for lane matching based on the constructed spatial index. Thus, when lane matching is required, only the real-time acquired vehicle positioning data needs to be used for retrieval in the spatial index. This makes retrieval using the spatial index very fast; taking the R-tree index structure as an example, its average computational complexity is O(logN), enabling rapid matching of the vehicle's lane.

[0041] Example 2

[0042] The embodiments in this application are further improvements based on Embodiment 1.

[0043] In some embodiments of this application, obtaining the lane width and each adjacent coordinate in the lane point coordinate sequence used to characterize the lane's position and direction specifically involves: when the MAP message is updated, obtaining the lane width and each adjacent coordinate in the lane point coordinate sequence used to characterize the lane's position and direction based on the MAP message. Correspondingly, the method for determining each adjacent coordinate in the lane point coordinate sequence used to characterize the lane's position and direction may include: traversing each node in the MAP message corresponding to each intersection; for each node, traversing each road under it; for each road, traversing each lane under it; for each lane, traversing the lane point coordinate sequence used to characterize the lane's position and direction to obtain the adjacent coordinates.

[0044] Specifically, since MAP messages are relatively stable and not frequently updated, in this embodiment of the application, the traversal of each adjacent coordinate and the acquisition of lane width are only performed when the MAP message is updated, and a spatial index is further established. In this way, the average computational complexity of the algorithm will not be affected, which is conducive to achieving the goal of quickly matching the lane where the vehicle is located.

[0045] Furthermore, in some examples, each node corresponding to each intersection in the MAP message is traversed, and the node is represented by Node; for each Node, each Link under it is traversed, and the Link represents each road under each node; for each Link, each Lane under it is traversed, and the Lane represents each lane under each road; then, for each lane, the lane point coordinate sequence used to characterize the lane position direction is traversed to obtain the adjacent coordinates.

[0046] Example 3

[0047] The embodiments in this application are further improvements based on Embodiment 1 and / or Embodiment 2.

[0048] In some embodiments of this application, the adjacent coordinates are respectively the first coordinate and the second coordinate; determining the rectangular area that may match the lane based on the lane width and the adjacent coordinates may include the following steps:

[0049] Convert the first and second coordinates into rectangular coordinates and construct a vector, then normalize the vector to a length of 1;

[0050] The target vector is obtained by rotating the normalized vector by 90° from the first coordinate.

[0051] Based on the lane width and the target vector, determine the coordinates of four points in a rectangular area that may match the lane, and then determine the rectangular area based on the four point coordinates.

[0052] Specifically, in some examples, suppose the access address of a lane in the MAP message is "address". The first coordinate is A, the second coordinate is B, the direction is from A to B, and the lane width is Width. Convert the first coordinate A and the second coordinate B to Cartesian coordinates. Here, the specific conversion method can use standard conversion methods in related technologies, which will not be elaborated here. Then, construct a vector from A to B and normalize the vector to a length of 1, denoted by v. Then:

[0053] v = [v x ,v y ]

[0054] It should be noted that the coordinate transformation and vector normalization operations here can make the subsequent calculation process faster, thereby helping to further improve the efficiency of matching the lane where the vehicle is located.

[0055] Furthermore, in some examples, the normalized vector v = [v x ,v yRotate 90° from the first coordinate as the starting point. This can be done clockwise or counterclockwise, and there is no specific limitation here.

[0056] In some embodiments of this application, the normalized vector v = [v x ,v y Starting from A, rotate counterclockwise by 90° to obtain the target vector, denoted by u. Then:

[0057] u = [-1*v] y ,v x ]

[0058] Correspondingly, determining the coordinates of four points of a rectangular region that may match the lane based on the lane width and the target vector, and determining the rectangular region based on the four-point coordinates, may include:

[0059] The coordinates of the four points are determined using the following formula:

[0060]

[0061]

[0062]

[0063]

[0064] Wherein, M1, M2, M3, and M4 are the coordinates of four points in the rectangular region; u x u y These are the x and y coordinates of the target vector, respectively; the v x v y These are the horizontal and vertical coordinates of the normalized vector, respectively; Width represents the lane width.

[0065] It should be noted that the above formula is based on the target vector obtained by rotating 90° counterclockwise from A. If the target vector is obtained by rotating 90° clockwise from A, or by rotating 90° counterclockwise from B, or rotating 90° clockwise from B, etc., different calculation formulas are required. Since the calculation ideas are the same as those above, they will not be elaborated here.

[0066] Furthermore, in some embodiments of this application, the vertex coordinate data of one set of diagonals of the circumscribed rectangle specifically includes: the coordinate data of the lower left corner of the circumscribed rectangle and the coordinate data of the upper right corner of the circumscribed rectangle.

[0067] In some examples, the coordinates of the lower left corner and the upper right corner can be determined using the following formulas:

[0068] LOWER_LEFT = [MIN(M 1x M 2x M 3x M 4x ),MIN(M 1y M 2y M 3y M 4y )];

[0069] UPPER_RIGHT = [MAX(M 1x M 2x M 3x M 4x ),MAX(M 1y M 2y M 3y M 4y )];

[0070] Wherein, LOWER_LEFT represents the coordinate data of the lower left corner, and UPPER_RIGHT represents the coordinate data of the upper right corner; M 1x M 2x M 3x M 4x These are the x-coordinates of the four points; M 1y M 2y M 3y M 4y These are the ordinates of the four points.

[0071] Furthermore, after obtaining the coordinate data of the lower left corner and the upper right corner, these coordinates can be converted into spherical latitude and longitude coordinates. The specific conversion method can use standard conversion methods in related technologies, which will not be elaborated here. Converting the coordinate data of the lower left corner and the upper right corner into spherical latitude and longitude coordinates makes the subsequent calculation process faster, thereby further improving the efficiency of matching the vehicle's lane.

[0072] In some examples, the coordinate data of the lower left corner can be converted to spherical latitude and longitude coordinates using GEO. LOWER_LEFT This indicates that the coordinate data in the upper right corner can be converted into spherical latitude and longitude coordinates using GEO. UPPER_RIGHT express.

[0073] Example 4

[0074] The embodiments in this application are further improvements based on one or more of the embodiments in Embodiments 1 to 3.

[0075] In some embodiments of this application, the step of generating an index entry based on the vertex coordinate data and the target address and adding it to the spatial index may include the following steps:

[0076] Construct a triplet based on the vertex coordinate data and the target address;

[0077] The triple is added as an index item to the spatial index.

[0078] Then, the other adjacent coordinates besides the current adjacent coordinates are processed until the triples corresponding to each adjacent coordinate are added to the spatial index, thus completing the construction of the spatial index, so as to perform lane matching based on the constructed spatial index.

[0079] Specifically, in some examples, the following triplet tuple is constructed based on the vertex coordinate data and the target address:

[0080] Truple = (GEO) LOWER_LEFT GEO UPPER_RIGHT (address)

[0081] Among them, GEO LOWER_LEFT This represents the spherical latitude and longitude coordinates obtained by converting the coordinate data of the lower left corner; GEO UPPER_RIGHT This represents the spherical latitude and longitude coordinates obtained by converting the coordinate data of the upper right corner, and address is the target address, i.e., the access address of the lane in the MAP message.

[0082] Next, the tuple is added as an index item to the spatial index, and the other adjacent coordinates besides the current adjacent coordinates are processed until the triples corresponding to each adjacent coordinate are added to the spatial index, thus completing the construction of the spatial index, so as to perform lane matching based on the constructed spatial index.

[0083] Example 5

[0084] In some embodiments of this application, a lane matching method is also provided, the method being applied to a spatial index constructed according to any of the spatial index construction methods described above, such as... Figure 5 As shown, the method may include the following steps:

[0085] Step S201: Obtain the vehicle's current location data;

[0086] Step S202: Retrieve a set of triplets including the positioning data from the spatial index;

[0087] Step S203: Traverse the triples to perform verification;

[0088] Step S204: Perform lane matching based on the verification results.

[0089] Specifically, in some cases, basic information representing the vehicle's status, such as GPS positioning, speed, and heading angle, can be obtained through the high-precision global navigation satellite system and vehicle positioning and attitude determination equipment equipped in intelligent connected vehicles.

[0090] Furthermore, in some cases, the location coordinates obtained using vehicle body positioning can be used to retrieve triples (GEO values) containing this location data from the R-tree. LOWER_LEFT GEO UPPER_RIGHT The set of triples (address) is used to return a result greater than 1 when the bounding rectangles represented by the triples in the set have overlapping regions and the location coordinates fall exactly within the overlapping region. Specifically, in some cases, if the set of search results is empty, the process ends; otherwise, proceed to step S203.

[0091] Furthermore, in some embodiments of this application, the step of traversing the triples for verification, i.e., step S203, may include the following steps:

[0092] For each set of triplets, based on the current positioning data of the current lane, obtain the lane width and the lane point coordinate sequence used to characterize the lane position and direction;

[0093] Obtain the heading angle information data of the vehicle;

[0094] The verification results are obtained by verifying the target address of the current lane, the heading angle information data, the lane width, and the lane point coordinate sequence used to characterize the lane position and direction.

[0095] Specifically, in some examples, in step S203, each triplet in the set of triplets retrieved in step S202 is traversed. Each triplet corresponds to an outer rectangle that successfully matches the positioning data. Using the address information in the triplet, the lane point coordinate sequence and lane width corresponding to the area within the outer rectangle, which represent the lane position and direction, are obtained from the MAP message. Combining the positioning coordinates and heading angle information, for each pair of adjacent points in the lane point coordinate sequence, the perpendicular distance from the current vehicle's coordinates to the line connecting the two adjacent points is calculated. It is then determined whether this perpendicular distance is less than a preset distance. If the perpendicular distance is less than a specified preset distance, and the angle between the vehicle's driving direction and the lane direction is less than or equal to a preset angle, and the foot of the perpendicular falls between the two currently examined points, then the current vehicle is considered to match the lane where these two points are located. In some examples, the preset distance can be half the lane width, and the preset angle can be ±30 degrees.

[0096] Furthermore, in some examples, if the verification result is successful, the lane corresponding to the current point pair is the lane that matches the vehicle positioning and orientation data. The matched address information is returned to the upper layer application so that it can further obtain detailed lane information, such as lane number, from the original MAP message, and then the lane matching process is exited. If the verification result is unsuccessful, the process continues to traverse the next triplet and verify it until the traversal ends.

[0097] It should be noted that in the description of steps S102 and S103 in Embodiment 1, it was explained that there may be errors in using the circumscribed rectangle. Therefore, in this embodiment, by traversing the triples for verification, the accuracy of the matching result can be guaranteed.

[0098] It is not difficult to see that the lane matching method provided in this application embodiment uses a pre-built spatial index for matching. Intelligent connected vehicles in motion can obtain information about surrounding roads and lanes by receiving and parsing MAP messages broadcast by roadside devices in real time. They can also obtain basic information representing their own vehicle status, such as GPS positioning, speed, and heading angle, through the high-precision global navigation satellite system and vehicle positioning and attitude determination equipment equipped in the intelligent connected vehicle. By efficiently and comprehensively utilizing the above information, it is possible to quickly match the lane where the vehicle is located.

[0099] Furthermore, embodiments of this application also provide an electronic device, the structure of which is as follows: Figure 6 As shown, the device includes a memory 11 for storing computer-readable instructions and a processor 12 for executing the computer-readable instructions, wherein when the computer-readable instructions are executed by the processor, the processor is triggered to execute the method described thereon.

[0100] The methods and / or embodiments in this application can be implemented as computer software programs. For example, embodiments of this disclosure include a computer program product comprising a computer program carried on a computer-readable medium, the computer program containing program code for performing the methods shown in the flowchart. When the computer program is executed by a processing unit, it performs the functions defined in the methods of this application.

[0101] It should be noted that the computer-readable medium described in this application can be a computer-readable signal medium or a computer-readable storage medium, or any combination thereof. A computer-readable medium can be, for example,—but not limited to—an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of a computer-readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination thereof. In this application, a computer-readable medium can be any tangible medium containing or storing a program that can be used by or in conjunction with an instruction execution system, apparatus, or device.

[0102] In this application, a computer-readable signal medium may include a data signal propagated in baseband or as part of a carrier wave, carrying computer-readable program code. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. The computer-readable signal medium may also be any computer-readable medium other than a computer-readable storage medium, capable of transmitting, propagating, or transmitting a program for use by or in connection with an instruction execution system, apparatus, or device. The program code contained on the computer-readable medium may be transmitted using any suitable medium, including but not limited to: wireless, wireline, optical fiber, RF, etc., or any suitable combination thereof.

[0103] Computer program code for performing the operations of this application can be written in one or more programming languages ​​or a combination thereof, including object-oriented programming languages ​​such as Java, Smalltalk, and C++, and conventional procedural programming languages ​​such as the "C" language or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network—including a local area network (LAN) or a wide area network (WAN)—or can be connected to an external computer (e.g., via the Internet using an Internet service provider).

[0104] The flowcharts or block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of devices, methods, and computer program products according to various embodiments of this application. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-specific system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.

[0105] In another aspect, embodiments of this application also provide a computer-readable medium, which may be included in the device described in the above embodiments; or it may exist independently and not assembled into the device. The aforementioned computer-readable medium carries one or more computer-readable instructions, which may be executed by a processor to implement the steps of the methods and / or technical solutions of the various embodiments of this application.

[0106] In a typical configuration of this application, the terminal and the service network devices each include one or more processors (CPUs), input / output interfaces, network interfaces, and memory.

[0107] Memory may include non-persistent storage in computer-readable media, such as random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM. Memory is an example of computer-readable media.

[0108] Computer-readable media include both permanent and non-permanent, removable and non-removable media, which can store information using any method or technology. Information can be computer-readable instructions, data structures, modules of programs, or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, read-only optical disc (CD-ROM), digital versatile optical disc (DVD) or other optical storage, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transfer medium that can be used to store information accessible by a computing device.

[0109] Furthermore, this application also provides a computer program stored in a computer device, which enables the computer device to execute the method for executing the control code.

[0110] It should be noted that this application can be implemented in software and / or a combination of software and hardware, for example, using an application-specific integrated circuit (ASIC), a general-purpose computer, or any other similar hardware device. In some embodiments, the software program of this application can be executed by a processor to implement the steps or functions described above. Similarly, the software program of this application (including related data structures) can be stored in a computer-readable recording medium, such as RAM memory, magnetic or optical drives, floppy disks, and similar devices. Furthermore, some steps or functions of this application can be implemented in hardware, for example, as circuitry that cooperates with a processor to perform the various steps or functions.

[0111] It will be apparent to those skilled in the art that this application is not limited to the details of the exemplary embodiments described above, and that this application can be implemented in other specific forms without departing from the spirit or essential characteristics of this application. Therefore, the embodiments should be considered exemplary and non-limiting in all respects, and the scope of this application is defined by the appended claims rather than the foregoing description. Thus, all variations falling within the meaning and scope of equivalents of the claims are intended to be embraced within this application. No reference numerals in the claims should be construed as limiting the scope of the claims. Furthermore, it is clear that the word "comprising" does not exclude other units or steps, and the singular does not exclude the plural. Multiple units or devices recited in the apparatus claims may also be implemented by a single unit or device in software or hardware. The terms "first," "second," etc., are used to indicate names and do not indicate any particular order.

Claims

1. A method for constructing a spatial index, characterized in that, The method includes: Obtain the lane width and the coordinates of each adjacent lane point in the coordinate sequence used to characterize the lane's position and direction; Based on the lane width and the adjacent coordinates, determine a rectangular area that may match the lane; Determine the circumscribed rectangle that encloses the rectangular region, with its length and width sides parallel to the latitude and longitude coordinate system, and obtain the vertex coordinate data of one set of diagonals of the circumscribed rectangle; The target address is determined based on the vertex coordinate data; Based on the vertex coordinate data and the target address, an index entry is generated and added to the spatial index; Repeat the above steps until all adjacent coordinates in the lane point coordinate sequence have been traversed, thus completing the construction of the spatial index; The adjacent coordinates are the first coordinate and the second coordinate, respectively; determining the rectangular area that may match the lane based on the lane width and the adjacent coordinates includes: Convert the first and second coordinates into rectangular coordinates and construct a vector, then normalize the vector to a length of 1; The target vector is obtained by rotating the normalized vector by 90° from the first coordinate. Based on the lane width and the target vector, determine the coordinates of four points in a rectangular area that may match the lane, and then determine the rectangular area based on the four point coordinates.

2. The method according to claim 1, characterized in that, The specific steps for obtaining the lane width and the adjacent coordinates in the lane marker coordinate sequence used to characterize the lane position and direction are as follows: When the MAP message is updated, the lane width and the coordinates of each adjacent lane point in the lane position coordinate sequence are obtained according to the MAP message. Correspondingly, the method for determining each adjacent coordinate in the lane point coordinate sequence used to characterize the lane position and direction includes: Iterate through each node corresponding to each intersection in the MAP message; For each node, iterate through every road under it; For each road, iterate through every lane under it; For each lane, the coordinate sequence of lane points used to represent the lane's position and direction is traversed to obtain the adjacent coordinates.

3. The method according to claim 1, characterized in that, The process of rotating the normalized vector by 90° around the first coordinate to obtain the target vector is as follows: The normalized vector is rotated 90° in the opposite direction starting from the first coordinate to obtain the target vector. Correspondingly, determining the coordinates of four points of a rectangular region that may match the lane based on the lane width and the target vector, and determining the rectangular region based on the four point coordinates, includes: The coordinates of the four points are determined using the following formula: ; ; ; ; Among them, the , , , These are the coordinates of the four points within the rectangular region; , These are the x and y coordinates of the target vector, respectively; , These are the x and y coordinates of the vector after normalization; This indicates the width of the lane.

4. The method according to claim 3, characterized in that, The specific coordinate data of one set of diagonal vertices of the circumscribed rectangle are: the coordinate data of the lower left corner of the circumscribed rectangle and the coordinate data of the upper right corner of the circumscribed rectangle; Specifically, the coordinates of the lower left corner and the upper right corner are determined using the following formula: ; ; Among them, the This represents the coordinate data of the lower left corner. This represents the coordinate data of the upper right corner; , , , These are the x-coordinates of the four points, respectively; , , , These are the ordinates of the four points.

5. The method according to claim 1, characterized in that, The step of generating an index item based on the vertex coordinate data and the target address and adding it to the spatial index includes: Construct a triplet based on the vertex coordinate data and the target address; The triple is added as an index item to the spatial index.

6. A lane matching method, characterized in that, The method is applied to a spatial index constructed using the spatial index construction method according to any one of claims 1 to 5, the method comprising: Obtain the vehicle's current location data; Retrieve a set of triples including the location data from the spatial index; Iterate through the triples to perform the verification; Lane matching is performed based on the verification results.

7. The method according to claim 6, characterized in that, The process of traversing the triples for verification includes: For each set of triples, based on the positioning data, obtain the lane width and the lane point coordinate sequence used to characterize the lane position and direction; Obtain the heading angle information data of the vehicle; The verification results are obtained by verifying the positioning data, heading angle information data, lane width, and lane point coordinate sequence used to characterize the lane position and direction.

8. An electronic device, characterized in that, The device includes: One or more processors; and A memory storing computer program instructions, which, when executed, cause the processor to perform the method as described in any one of claims 1 to 7.

9. A computer-readable medium having stored thereon computer program instructions that can be executed by a processor to implement the method as claimed in any one of claims 1 to 7.

Citation Information

Patent Citations

  • Merchant searching method and device, electronic equipment and storage medium

    CN109657022A

  • Vehicle positioning method and device, vehicle and readable storage medium

    CN115143985A