Positioning method and apparatus, electronic device, and storage medium

By extracting and matching the attribute features of point clouds, the problem of low accuracy caused by similar scenes in indoor positioning is solved, achieving higher positioning accuracy and robustness.

CN115143962BActive Publication Date: 2026-04-10YINWANG INTELLIGENT TECHNOLOGIES CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-10-28
Publication Date
2026-04-10

AI Technical Summary

Technical Problem

In indoor positioning, the accuracy of point cloud matching is low due to the similarity of scenes in different locations, especially in environments such as underground parking garages, where the positioning accuracy of existing ICP algorithms is insufficient.

Method used

By extracting the attribute features of the current point cloud, such as projection features, normal vector features, and curvature features, and combining them with the Iterative Closest Point (ICP) algorithm, the attribute features in the point cloud map are matched to improve the positioning accuracy.

Benefits of technology

It improves the accuracy of indoor positioning, can identify differences in similar scenes, and enhances the robustness and precision of positioning.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115143962B_ABST
    Figure CN115143962B_ABST
Patent Text Reader

Abstract

Embodiments of the present application provide a positioning method and device, electronic equipment and storage medium, the method comprising: collecting a current point cloud, the current point cloud comprising a point cloud of an object to be positioned and a point cloud of an environment in which the object to be positioned is located, and extracting attribute features of the current point cloud; and obtaining a pose of the object to be positioned according to the attribute features of the current point cloud and attribute features of point clouds in a point cloud map of the environment in which the object to be positioned is located. Because the attribute features of the point cloud are features of the point cloud itself, even if the scenes are similar, the attribute or attribute features of the point cloud in the similar scenes are different, and therefore the positioning method of the embodiments of the present application can improve the accuracy of indoor positioning by matching the attribute features of the current point cloud around the object to be positioned and the attribute features of the point clouds in the point cloud map.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application. The original application has the application number 202080004463.9 and the original application date is October 28, 2020. The entire contents of the original application are incorporated herein by reference. Technical Field

[0002] This application relates to the field of intelligent driving technology, and in particular to a positioning method, device, electronic device, and storage medium. Background Technology

[0003] Positioning technology is a key technology in intelligent driving. Current positioning technologies include satellite positioning, inertial navigation positioning, visual positioning, and lidar positioning. Visual positioning and lidar positioning are mostly used for indoor positioning.

[0004] In current indoor positioning methods, an indoor point cloud map can be pre-built, which can include point clouds from multiple keyframes. When the vehicle moves indoors, point clouds around the vehicle can be collected in real time. Then, the collected point clouds are matched with the point clouds of each keyframe in the point cloud map using the iterative closest point (ICP) algorithm, and the pose corresponding to the keyframe with the highest matching degree is taken as the vehicle's pose.

[0005] However, in indoor scenes, such as underground parking garages, the scenes at different locations are very similar, resulting in very close point clouds at each location. Therefore, the accuracy of positioning using ICP matching is low. Summary of the Invention

[0006] This application provides a positioning method, apparatus, electronic device, and storage medium that can identify similar scenes and improve positioning accuracy.

[0007] Firstly, embodiments of this application provide a positioning method applicable to an object to be positioned, such as a vehicle, robot, or terminal device. In this positioning method, the object to be positioned may integrate a laser emitting device, which can emit lidar or millimeter-wave radar around the object to collect a current point cloud. It should be understood that the current point cloud may include the point cloud of the object to be positioned and the point cloud of the environment in which the object is located. Specifically, the point cloud of the object to be positioned is obtained by reflecting lidar or millimeter-wave radar from the object, and the point cloud of the environment in which the object is located is obtained by reflecting lidar or millimeter-wave radar from objects in the environment. Because in indoor positioning scenarios, many locations have similar scenes, but the attribute characteristics of the point clouds in similar scenes are not the same, embodiments of this application can extract the attribute characteristics of the current point cloud, and then, based on the attribute characteristics of the current point cloud and the attribute characteristics of the point cloud in the point cloud map of the environment in which the object is located, obtain the pose of the object to be positioned. Because the attribute features of a point cloud are the features of the point cloud itself, even if the scenes are similar, the attributes or attribute features of the point clouds in similar scenes are different. Therefore, the positioning method using the attribute features of point clouds in the embodiments of this application has high positioning accuracy.

[0008] The attribute features of the point cloud in this embodiment may include at least one of the following: projection features of the point cloud, normal vector features of the point cloud, and curvature features of the point cloud. The process of extracting projection features, normal vector features, and curvature features from the current point cloud is described below.

[0009] A first possible implementation: The attribute features include the projection features of the point cloud. In this embodiment, the process of extracting the projection features from the current point cloud can be as follows: Projecting the current point cloud onto at least one of the following coordinate planes: xoy plane, yoz plane, and xoz plane, to obtain the current projected point cloud; obtaining the distance between the current projected point cloud and o; and classifying the distance into a preset distance interval; obtaining the attribute features of the current point cloud based on the number of points in the current point cloud within each distance interval. Where o is the center position of the object to be located, and x, y, and z are coordinate axes constructed with o as the origin.

[0010] In this method, the preset distance interval is related to the farthest and nearest distances of points in the point cloud acquired from the object to be located. For example, in this embodiment, the farthest and nearest distances of points in the point cloud acquired from the object to be located can be used to divide the interval into these distances to obtain the preset distance interval. In this embodiment, the number of points in the current point cloud within each distance interval can be used to form a one-dimensional vector, which is then used as the projection feature of the point cloud.

[0011] In this embodiment of the application, the current point cloud can be projected onto the xoy plane, yoz plane, and xoz plane respectively. This yields more detailed projection features compared to projecting the current point cloud onto one or two coordinate planes, thus improving positioning accuracy. For example, in this embodiment, the current point cloud can be projected onto the xoy plane, yoz plane, and xoz plane respectively, resulting in three current projected point clouds. The distance between each current projected point cloud and o is obtained, and these distances are categorized into preset distance intervals within the corresponding coordinate planes. Based on the number of points in the current point cloud within each distance interval of each coordinate plane, the attribute features of the current point cloud are obtained. It should be understood that each coordinate plane (xoy plane, yoz plane, and xoz plane) can correspond to a preset distance interval.

[0012] A second possible implementation: The attribute features include the normal vector features of the point cloud. In this embodiment, the process of extracting the normal vector features from the current point cloud can be as follows: For ease of explanation, all points in the current point cloud are referred to as "first points." For each first point in the current point cloud, in this embodiment, a first scan line to which the first point belongs can be determined. On the first scan line, and on both sides of the first point, the nearest first neighboring point is obtained; on a second scan line, the nearest second neighboring point is obtained, and the second scan line is adjacent to the first scan line; based on the first point, the first neighboring point, and the second neighboring point, the normal vector of the first point is obtained; based on the normal vector of the first point, the attribute features of the current point cloud are obtained.

[0013] In this embodiment, a first vector from the first point to the first neighboring point and a second vector from the first point to the second neighboring point can be obtained. Then, a cross product is calculated pairwise between the first and second vectors, and the mean of the cross product results is used as the normal vector of the first point. Specifically, the length of the projection of the normal vector of the first point onto at least one coordinate axis can be obtained, and this length is categorized into a preset length interval. Based on the number of first points in each length interval, the attribute features of the current point cloud are obtained.

[0014] In this method, the preset length interval is related to the length of the projection of the first point onto the coordinate axis. This preset length interval can be pre-set based on experience, or, in this embodiment, the length interval can be determined by the minimum and maximum lengths of the projection of the first point onto the coordinate axis. In this embodiment, the number of points in the current point cloud within each length interval can be combined into a one-dimensional vector, which is then used as the normal vector feature of the point cloud.

[0015] In one possible implementation, if the length of the projection of the normal vector of the first point onto a coordinate axis is obtained in this embodiment, then the length of the projection of the normal vector of the first point onto the z-coordinate axis can also be obtained. This is because in the current point cloud, the height value (corresponding to the z-axis) of the point cloud has a more pronounced length characteristic compared to the length value on the horizontal plane (corresponding to the x-axis and y-axis). Therefore, when obtaining the length of the projection of the normal vector of the first point onto a coordinate axis, obtaining the length of the projection of the normal vector of the first point onto the z-coordinate axis is more beneficial for feature matching accuracy and localization accuracy.

[0016] A third possible implementation: The attribute features include the curvature features of the point cloud. In this embodiment, the process of extracting the curvature features from the current point cloud can be as follows: For each first point in the current point cloud, the first scan line to which the first point belongs can be determined. Then, based on the position of the first point and the positions of the points on both sides of the first point on the first scan line, the curvature of the first point is obtained, and the curvature of the first point is classified into a preset curvature interval. Based on the number of first points in each curvature interval, the attribute features of the current point cloud are obtained.

[0017] Similar to the projection features and normal vector features described above, in this method, the preset curvature interval is related to the curvature of the first point. This preset curvature interval can be pre-set based on experience, or, in this embodiment, the curvature interval can be determined by the minimum and maximum curvature of the first point. In this embodiment, the number of points in the current point cloud within each curvature interval can be used to form a one-dimensional vector, which is then used as the curvature feature of the point cloud.

[0018] It should be understood that the first to third methods described above can be used in the embodiments of this application to extract the projection features, normal vector features and curvature features of the current point cloud, so as to describe the attribute features of the current point cloud more accurately and comprehensively, thereby further improving the positioning accuracy of the object to be located.

[0019] In one possible implementation, after obtaining the pose of the object to be located based on the attribute features of the current point cloud in this embodiment, the pose of the object to be located can be further precisely determined by combining iterative closest point (ICP) matching, thereby improving the positioning accuracy. The point cloud map may include the attribute features of point clouds from multiple keyframes. In this embodiment, the similarity between the attribute features of the current point cloud and the attribute features of the point cloud of each keyframe can be obtained; the top preset number of target keyframes corresponding to the highest similarity scores are obtained in descending order of similarity; the pose corresponding to each target keyframe is used as a candidate pose; and the pose of the object to be located is determined from the multiple candidate poses.

[0020] The process of determining the pose of the object to be located from multiple candidate poses can be combined with the ICP algorithm. In this embodiment, the current point cloud can be transformed into the point cloud map according to the transformation relationship corresponding to each candidate pose to obtain the transformed point cloud corresponding to each candidate pose. In the point cloud map, the target point cloud that is closest to the transformed point cloud corresponding to each candidate pose is obtained. The transformed point cloud corresponding to each candidate pose and the corresponding target point cloud are iteratively matched using the nearest point ICP to obtain the transformed point cloud with the highest matching degree. The pose of the object to be located is obtained according to the pose corresponding to the transformed point cloud with the highest matching degree and the transformation relationship of the ICP matching.

[0021] It should be noted that each candidate pose corresponds to a transformation relationship, which can transform the point cloud in the actual space to a point cloud map. In this embodiment, obtaining the target point cloud closest to the transformed point cloud corresponding to each candidate pose means: for each candidate pose's transformed point cloud, obtaining the point closest to each point in the transformed point cloud in the point cloud map, forming the target point cloud for each candidate pose. After obtaining the target point cloud for each pose's transformed point cloud, the candidate pose with the highest matching degree can be selected as the pose of the object to be localized according to the ICP algorithm.

[0022] The point cloud map of the environment in which the object to be located is located may change at any time. For example, in an underground parking garage, fixed objects such as pillars, the ground, and lights remain unchanged, but vehicles may enter and exit the garage at any time, which will affect the point cloud map and thus the accuracy of matching based on the point cloud map. Therefore, in this embodiment of the application, when constructing the point cloud map, changing point clouds (such as the point cloud of vehicles in the underground parking garage) can be deleted. The point cloud map constructed using the deleted point clouds will then contain unchanging point clouds, which is beneficial to improving the accuracy of positioning. Correspondingly, before extracting the attribute features of the current point cloud, changing point clouds in the current point cloud can be deleted.

[0023] In this embodiment, after acquiring the current point cloud, filtering can be performed on it. This filtering simplifies the complex point cloud while preserving its features, reducing the computational load of subsequent processing. After filtering, the current point cloud can be clustered to obtain point cloud clusters for various objects in the environment. Clustering can group point clouds belonging to the same object into one category, forming a point cloud cluster for that object. For example, point cloud clusters belonging to the ground, vehicles, and pillars can be obtained from the current point cloud.

[0024] In this embodiment, point cloud clusters with a maximum z-value less than a preset value can be deleted from the point cloud clusters of each object. This means point clouds belonging to changing objects can be deleted, allowing the extraction of attribute features from the current point cloud after deletion. However, since point cloud clusters with a maximum z-value less than the preset value in the underground parking garage might belong to stationary objects such as the ground, ground barriers, and crash barriers, deleting these object clusters could result in significant information loss. Therefore, this embodiment uses the stationary objects in the underground parking garage as preset objects, and deletes point cloud clusters with a maximum z-value less than the preset value from the point cloud clusters of each object, excluding those of the preset objects. For example, in the point cloud clusters of each object other than the ground, ground barriers, and crash barriers, point cloud clusters with a maximum z-value less than the preset value are deleted. This preserves a detailed and complete point cloud of the underground parking garage, improving the accuracy of the point cloud map.

[0025] The above embodiments describe the process of matching the attribute features of the point cloud corresponding to each keyframe in the point cloud map with the attribute features of the current point cloud for localization. Here, the process of constructing the point cloud map in the embodiments of this application will be described:

[0026] It should be understood that the entity executing the point cloud map construction in this application embodiment may be the same as or different from the entity executing the above-described positioning method. When the entity executing the point cloud map construction is different from the entity executing the above-described positioning device, the object to be located can obtain the point cloud map in advance. The following describes the process of constructing the point cloud map using the object to be located as an example. In this application embodiment, during the movement of the object to be located in the environment, the point cloud corresponding to each pose of the object to be located can be collected, and the attribute features of the point cloud corresponding to each pose can be extracted; the attribute features of the point cloud corresponding to each pose and the corresponding poses are stored to construct the point cloud map. It should be understood that in the process of constructing the point cloud map, the method by which the object to be located extracts the attribute features of the point cloud corresponding to each pose can be the same as the method by which the object to be located extracts the attribute features of the current point cloud.

[0027] In this process, the object to be located can acquire a point cloud of a key frame at preset distances during the movement of the object in the environment, obtain the pose of the object at the point cloud of the acquired key frame, and obtain the point cloud corresponding to each pose. Then, the pose and point cloud corresponding to each key frame are mapped to obtain a point cloud map.

[0028] In one possible implementation, for the point cloud corresponding to each pose, after obtaining the point cloud corresponding to each pose in this embodiment, filtering processing can be performed on the point cloud corresponding to each pose. This filtering processing can simplify the complex point cloud while retaining its features, thereby reducing the computational load of subsequent processing. After filtering the point cloud corresponding to each pose, clustering can be performed on the point cloud corresponding to each pose to obtain point cloud clusters of each object in the environment. Similar to the above processing method for the current point cloud, in this embodiment, point cloud clusters with a maximum z-value less than a preset value can be deleted from the point cloud clusters of each object, excluding preset objects, to extract the attribute features of the point cloud corresponding to each pose after deletion processing, thereby obtaining a complete point cloud of the object that does not contain changes, thus improving the accuracy of localization.

[0029] Secondly, embodiments of this application provide a positioning device, which is the object to be positioned as described in the first aspect above. The positioning device includes:

[0030] The first processing module is used to collect the current point cloud, which includes the point cloud of the object to be located and the point cloud of the environment in which the object is located.

[0031] The second processing module is used to extract the attribute features of the current point cloud, and obtain the pose of the object to be located based on the attribute features of the current point cloud and the attribute features of the point cloud in the point cloud map of the environment where the object to be located is located.

[0032] In one possible implementation, the attribute features include at least one of the following: projection features of the point cloud, normal vector features of the point cloud, and curvature features of the point cloud.

[0033] In one possible implementation, the attribute features include projection features of the point cloud. The second processing module is specifically used to project the current point cloud onto at least one of the following coordinate planes: xoy plane, yoz plane, and xoz plane to obtain the current projected point cloud, where o is the center position of the object to be located, and x, y, and z are coordinate axes constructed with o as the origin; obtain the distance between the current projected point cloud and o, and classify the distance into a preset distance interval; and obtain the attribute features of the current point cloud based on the number of points in the current point cloud in each distance interval.

[0034] In one possible implementation, the second processing module is specifically used to project the current point cloud onto the xoy plane, yoz plane, and xoz plane respectively to obtain three current projected point clouds corresponding to the current point cloud; obtain the distance between each of the current projected point clouds and o, and classify the distance into a preset distance interval of the corresponding coordinate plane; and obtain the attribute features of the current point cloud based on the number of points in the current point cloud in each distance interval of each coordinate plane.

[0035] In one possible implementation, the preset distance range is related to the farthest and nearest distances of points in the point cloud acquired by the object to be located.

[0036] In one possible implementation, the attribute features include the normal vector features of the point cloud, and all points in the current point cloud are first points. For each first point in the current point cloud, the second processing module is specifically used to determine the first scan line to which the first point belongs, to obtain the first nearest point to the first point on the first scan line and on both sides of the first point, and to obtain the second nearest point to the first point on a second scan line, wherein the second scan line is adjacent to the first scan line; to obtain the normal vector of the first point based on the first point, the first nearest point, and the second nearest point; and to obtain the attribute features of the current point cloud based on the normal vector of the first point.

[0037] In one possible implementation, the second processing module is specifically used to obtain a first vector from the first point to the first neighboring point; obtain a second vector from the first point to the second neighboring point; perform a cross product calculation on each pair of the first vector and the second vector, and use the mean of the cross product calculation results as the normal vector of the first point.

[0038] In one possible implementation, the second processing module is specifically used to obtain the length of the projection of the normal vector of the first point onto at least one coordinate axis, and classify the length into a preset length interval; and obtain the attribute features of the current point cloud according to the number of first points in each length interval.

[0039] In one possible implementation, the second processing module is specifically used to obtain the length of the projection of the normal vector of the first point onto the z-coordinate axis.

[0040] In one possible implementation, the attribute features include the curvature features of the point cloud, where all points in the current point cloud are first points. For each first point in the current point cloud, the second processing module is specifically used to determine the first scan line to which the first point belongs; obtain the curvature of the first point based on its position and the positions of points on both sides of the first point on the first scan line; classify the curvature of the first point into a preset curvature interval; and obtain the attribute features of the current point cloud based on the number of first points in each curvature interval.

[0041] In one possible implementation, the point cloud map includes attribute features of point clouds from multiple keyframes; the second processing module is specifically used to obtain the similarity between the attribute features of the current point cloud and the attribute features of the point cloud of each keyframe; to obtain the target keyframes corresponding to the top preset number of similarities in descending order of similarity; to use the pose corresponding to each target keyframe as a candidate pose; and to determine the pose of the object to be located from the multiple candidate poses.

[0042] In one possible implementation, the second processing module is specifically configured to: transform the current point cloud into the point cloud map according to the transformation relationship corresponding to each candidate pose, to obtain the transformed point cloud corresponding to each candidate pose; obtain the target point cloud that is closest to the transformed point cloud corresponding to each candidate pose in the point cloud map; perform iterative nearest point (ICP) matching between the transformed point cloud corresponding to each candidate pose and the corresponding target point cloud to obtain the transformed point cloud with the highest matching degree; and obtain the pose of the object to be located according to the pose corresponding to the transformed point cloud with the highest matching degree and the transformation relationship of the ICP matching.

[0043] In one possible implementation, the second processing module is further configured to cluster the current point cloud to obtain point cloud clusters of each object in the environment; among the point cloud clusters of each object excluding the preset object, delete the point cloud clusters whose maximum z value is less than the preset value, so as to extract the attribute features of the current point cloud after deletion processing.

[0044] In one possible implementation, during the movement of the object to be located in the environment, the point cloud map construction module is used to collect the point cloud corresponding to each pose of the object to be located, extract the attribute features of the point cloud corresponding to each pose, and store the attribute features and poses of the point cloud corresponding to each pose to construct the point cloud map.

[0045] In one possible implementation, during the movement of the object to be located in the environment, the point cloud map construction module is used to collect the point cloud of a key frame at preset distances, obtain the pose of the object to be located at the point cloud of the key frame, so as to obtain the point cloud corresponding to each pose.

[0046] In one possible implementation, the second processing module is further configured to cluster the point clouds corresponding to each pose to obtain point cloud clusters of each object in the environment, and delete point cloud clusters whose maximum z value is less than the preset value from the point cloud clusters of each object except the preset object, so as to extract the attribute features of the point clouds corresponding to each pose after deletion processing.

[0047] Thirdly, embodiments of this application provide an electronic device, which includes: a processor, a memory, and a point cloud acquisition device;

[0048] The point cloud acquisition device is used to emit a lidar or millimeter-wave radar to acquire the current point cloud, which includes the point cloud of the object to be located and the point cloud of the environment in which the object to be located is located.

[0049] The memory is used to store computer-executable program code, which includes instructions; when the processor executes the instructions, the instructions cause the electronic device to perform the methods provided by the first aspect or various possible implementations of the first aspect.

[0050] Fourthly, embodiments of this application provide a positioning device, including a unit, module, or circuit for performing the method provided in the first aspect or various possible implementations of the first aspect. The positioning device can be an object to be positioned, or it can be a module applied to the object to be positioned, for example, it can be a chip applied to the object to be positioned.

[0051] Fifthly, embodiments of this application provide a computer program product containing instructions that, when run on a computer, cause the computer to perform the methods described in the first aspect or various possible implementations of the first aspect.

[0052] This application provides a positioning method, device, electronic device, and storage medium. Because the attribute features of point clouds are the features of the point clouds themselves, even if the scenes are similar, the attributes or attribute features of point clouds in similar scenes are different. Therefore, the positioning method of this application performs positioning by matching the attribute features of the current point clouds around the object to be positioned with the attribute features of the point clouds in the point cloud map. This can identify similar scenes and thus improve the accuracy of indoor positioning. Attached Figure Description

[0053] Figure 1 This is a schematic diagram of a current indoor positioning process;

[0054] Figure 2 This is a schematic diagram of another indoor positioning process.

[0055] Figure 3 A flowchart illustrating an embodiment of the positioning method provided in this application;

[0056] Figure 4 A flowchart illustrating another embodiment of the positioning method provided in this application;

[0057] Figure 5 This is a schematic diagram of the current point cloud projected onto the xoy plane in an embodiment of this application;

[0058] Figure 6 A flowchart illustrating another embodiment of the positioning method provided in this application;

[0059] Figure 7 A schematic diagram of points on a scan line provided in an embodiment of this application;

[0060] Figure 8 A flowchart illustrating another embodiment of the positioning method provided in this application;

[0061] Figure 9 A schematic diagram of the first point and the points on both sides of the first point provided in the embodiments of this application;

[0062] Figure 10 A flowchart illustrating another embodiment of the positioning method provided in this application;

[0063] Figure 11 A schematic flowchart illustrating an embodiment of constructing a point cloud map provided in this application;

[0064] Figure 12 A schematic flowchart illustrating another embodiment of constructing a point cloud map provided in this application;

[0065] Figure 13 A schematic diagram illustrating the acquisition of the angle between projection points provided in an embodiment of this application;

[0066] Figure 14 A flowchart illustrating another embodiment of the positioning method provided in this application;

[0067] Figure 15 This is a schematic diagram of the positioning device provided in the embodiments of this application;

[0068] Figure 16 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. Detailed Implementation

[0069] Figure 1This is a schematic diagram of a current indoor positioning process. The vehicle can be equipped with a camera and a LiDAR. As the vehicle moves indoors, the camera captures images of its surroundings, and the LiDAR emits laser beams around the vehicle to collect point clouds. The vehicle can pre-store an indoor image feature map, which includes image features corresponding to each pose of the vehicle. During positioning, such as... Figure 1 As shown, the vehicle can match image features from the acquired image with image features corresponding to each pose in the map to determine the initial pose. For example, the pose corresponding to the image feature with the highest matching degree in the map can be used as the initial pose. The vehicle can also determine its pose using particle filtering based on the point cloud surrounding the initial pose. Figure 1 The method shown fully utilizes the rich features in the image and combines them with point clouds to accurately locate vehicles in indoor environments. However, in low-light conditions, features in the image are easily lost or difficult to obtain, especially in underground parking garages where varying lighting conditions at different locations can affect feature extraction and lead to localization failure. Therefore, this indoor localization method lacks robustness.

[0070] Figure 2 This is a schematic diagram of another indoor positioning process. To address the issue of image feature-based positioning being affected by lighting conditions, another indoor positioning method has been proposed, which uses point clouds around the vehicle for localization. The vehicle can pre-store a point cloud map, which includes point clouds corresponding to each pose of the vehicle. While the vehicle moves indoors, point clouds around the vehicle are collected, and then iterative closest point (ICP) matching is performed between the collected point clouds and the point clouds corresponding to each pose in the point cloud map. The pose with the highest matching degree is then taken as the vehicle's pose. Although this method avoids the influence of external lighting, the scene at different locations in an indoor environment (such as an underground parking garage) is very similar, resulting in very close point clouds at each location. The pose with the highest matching degree may be another location in a similar scene, thus leading to low accuracy in this indoor positioning method.

[0071] To address current problems in indoor positioning, this application provides a positioning method that uses point cloud attribute features for localization. Since point cloud attribute features are inherent characteristics of the point cloud itself, even in similar scenes, the attributes or attribute features of the point clouds within those scenes will differ. Therefore, matching point cloud attribute features can identify scenes with high similarity, thereby improving the accuracy of indoor positioning.

[0072] It should be understood that the positioning method in this application embodiment can be applied to positioning scenarios of electronic devices such as vehicles or robots, and is not limited to scenarios of other electronic devices that can emit laser point clouds for positioning. The executing entity of the positioning method in this application embodiment can be a positioning device, which can be a vehicle, a processing chip in a vehicle, a robot, a chip in a robot, a terminal device, etc. It should be understood that the positioning device can be integrated or separately equipped with a transmitting device, which can emit lasers around the positioning device to collect point clouds around the positioning device. The transmitting device in this application embodiment can be, but is not limited to, lidar, millimeter-wave radar, etc. The following embodiments use a robot as the positioning device and lidar as the transmitting device as an example for illustration.

[0073] The positioning method provided in this application will be described in detail below with reference to specific embodiments. These specific embodiments can be combined with each other, and the same or similar concepts or processes may not be described again in some embodiments. Figure 3 This is a flowchart illustrating one embodiment of the positioning method provided in this application. Figure 3 As shown, the positioning method provided in this application embodiment may include:

[0074] S301, Collect the current point cloud, which includes the point cloud of the object to be located and the point cloud of the environment in which the object to be located is located.

[0075] S302, extract the attribute features of the current point cloud.

[0076] S303, based on the attribute characteristics of the current point cloud and the attribute characteristics of the point cloud in the point cloud map of the environment where the object to be located is located, obtain the pose of the object to be located.

[0077] In step S301 above, the lidar can emit laser light around the object to be located, allowing the object to acquire information about the laser reflection and thus collect the current point cloud. It should be understood that the current point cloud can include the point cloud of the object to be located and the point cloud of the environment in which the object is located. The point cloud of the object to be located is obtained by reflecting light from the lidar or millimeter-wave radar, while the point cloud of the environment is obtained by reflecting light from objects in the environment. The process of how the object to be located controls the lidar to acquire the point cloud is not detailed in this embodiment; however, current technical solutions can be referenced. The object to be located can be a vehicle, robot, or terminal device, etc.

[0078] For example, if the object to be located is a robot, the point cloud acquired by the robot at location A indoors can be the current point cloud. The current point cloud may include multiple points (such as laser points, hereinafter referred to as points) and information about each point. A point is a point where the emitted laser light is reflected back from an obstacle, and the information about a point may include its spatial three-dimensional coordinates, laser reflection intensity, etc. In this embodiment, the point cloud acquired by the robot in real time can be used as the current point cloud to locate the robot based on the current point cloud at each moment.

[0079] In S302 above, in this embodiment of the application, the attributes of the current point cloud can be a set of attributes of multiple points included in the current point cloud. The attributes of each point can be its spatial three-dimensional coordinates, laser reflection intensity, distance from the point to the object to be located, distance from the point to surrounding points, and the normal vector of the line segment formed by the point and surrounding points, etc. It should be understood that the attributes of each point are the attributes of the point itself; therefore, the attributes of the current point cloud are also the attributes of the current point cloud itself.

[0080] In this embodiment, attribute features of the current point cloud can be extracted based on its attributes. These attribute features characterize the attributes of the current point cloud. Optionally, in one possible implementation, the attribute features of the current point cloud can be a one-dimensional vector corresponding to the normal vector of the line segment formed by a point in the current point cloud and its surrounding points. Optionally, in another possible implementation, the attribute features of the current point cloud can be a one-dimensional vector consisting of the distances between a point and the object to be located.

[0081] In step S303 above, the object to be located may pre-store a point cloud map of its environment. For example, if the object to be located is a vehicle and its environment is an underground parking lot, then the point cloud map is the point cloud map of the underground parking lot. Optionally, the vehicle can obtain the point cloud map of the underground parking lot when entering it, such as by accessing the server corresponding to the underground parking lot and downloading the point cloud map from that server. For example, if the object to be located is a robot, which acts as an indoor security guard (used to move indoors and obtain indoor information), and its environment is a shopping mall, then the point cloud map is the point cloud map of the shopping mall. Optionally, staff can pre-store the shopping mall's point cloud map in the robot, or the robot can collect the shopping mall's point cloud data itself and generate the shopping mall's point cloud map. This application embodiment does not limit how the object to be located obtains the point cloud map of its environment.

[0082] It should be understood that a point cloud map can include the attribute features of the point cloud corresponding to each pose. Each pose can be the pose of the device that generated the point cloud map in the environment where the object to be localized is located. The device that generates the point cloud map can be the object to be localized or other devices. In other words, a point cloud map can include multiple poses and the attribute features of the point cloud corresponding to each pose.

[0083] In this embodiment, the object to be located can obtain its pose based on the attribute features of the current point cloud and the attribute features of the point cloud in the point cloud map of the environment in which the object is located. Specifically, the object to be located can match the attribute features of the current point cloud with the attribute features of the point cloud corresponding to each pose in the point cloud map of the environment in which the object is located, and use the pose corresponding to the attribute features of the point cloud with the highest matching degree as the pose of the object to be located. For example, the device to be located can obtain the Euclidean distance (or other distance representing the similarity of attribute features) between the attribute features of the current point cloud and the attribute features of the point cloud corresponding to each pose in the point cloud map, and use the pose corresponding to the attribute features of the point cloud with the smallest Euclidean distance as the pose of the object to be located.

[0084] The positioning method provided in this application includes: acquiring a current point cloud, which may include the point cloud of the object to be located and the point cloud of the environment in which the object is located; extracting attribute features of the current point cloud; and obtaining the pose of the object to be located based on the attribute features of the current point cloud and the attribute features of the point cloud in the point cloud map of the environment in which the object is located. Because the attribute features of the point cloud are the features of the point cloud itself, even in similar scenes, the attributes or attribute features of the point clouds are different. Therefore, the positioning method in this application improves the accuracy of indoor positioning by matching the attribute features of the current point cloud surrounding the object with the attribute features of the point cloud in the point cloud map.

[0085] In this embodiment, the attribute features of a point cloud may include at least one of the following: projection features of the point cloud, normal vector features of the point cloud, and curvature features of the point cloud. The process of extracting projection features, normal vector features, and curvature features from the current point cloud is described below. First, combining... Figure 4 This section explains how to extract projection features from the current point cloud. Figure 4 This is a flowchart illustrating another embodiment of the positioning method provided in this application. Figure 4 As shown, the above S302 can be replaced with:

[0086] S401, Project the current point cloud onto at least one of the following coordinate planes: xoy plane, yoz plane, xoz plane, to obtain the current projected point cloud, where o is the center position of the object to be located, and x, y and z are the coordinate axes constructed with o as the origin.

[0087] S402, obtain the distance between the current projected point cloud and o, and classify the distance into a preset distance range.

[0088] S403: Obtain the attribute features of the current point cloud based on the number of points in the current point cloud within each distance interval.

[0089] In S401 above, in this embodiment of the application, the current point cloud can be projected onto at least one of the following coordinate planes: the xoy plane, the yoz plane, and the xoz plane to obtain the current projected point cloud. Projecting the current point cloud can involve projecting each point included in the current point cloud to obtain a projected point corresponding to each point. The current projected point cloud can include the projected point corresponding to each point. In this embodiment of the application, o represents the center position of the object to be located, and x, y, and z are coordinate axes constructed with o as the origin. The center position of the object to be located can be the location of the lidar, specifically the location where the lidar emits its laser. The coordinate plane can be a plane with the center position of the object to be located as the origin, with mutually perpendicular x-axis and y-axis set on a plane parallel to the horizontal plane, and a z-axis set on a vertical plane perpendicular to the horizontal plane passing through the origin. It should be understood that the coordinate plane can also be set in other ways in this embodiment of the application.

[0090] In the above S402, Figure 5 This is a schematic diagram illustrating the projection of the current point cloud onto the xoy plane in an embodiment of this application. The following description uses the projection of the current point cloud onto the xoy plane as an example. After projecting the current point cloud onto the xoy plane, the projected point cloud can be obtained on the xoy plane, as shown below. Figure 5 As shown, the xoy plane can include multiple points in the current projected point cloud. Points are represented by black dots, and three consecutive points are represented as an abbreviated distance interval.

[0091] In this embodiment, the distance between the current projected point cloud and point o can be obtained, and the distance can be categorized into a preset distance interval. Specifically, the distance between each point in the current projected point cloud and point o can be obtained, i.e., the distance between each point and the origin. Based on the distance between each point and the origin, the distance is divided into a preset distance interval. This preset distance interval is predefined and is related to the farthest and nearest distances of points in the point cloud acquired from the object to be located.

[0092] For example, if the farthest distance of points in the point cloud collected from the object to be located is 80m and the closest distance is 0m, then the preset distance can be 0-80m. In this embodiment, the preset distance can be divided into a preset number of distance intervals. For example, if the preset number is 20, then 0-4m can be divided into one distance interval, 4m-8m into another, and so on, until 76m-80m is divided into another, resulting in 20 distance intervals. It should be understood that when dividing the distance intervals, the distance corresponding to each distance interval can be different. For example, one distance interval can be 0-4m, and the distance corresponding to this distance interval is 4m; another distance interval can be 4m-6m, and the distance corresponding to this distance interval is 2m. This embodiment does not limit the way the distance intervals are divided, as long as the number of distance intervals meets the preset number. In the figure, r represents the distance corresponding to the distance interval.

[0093] In S403 above, in this embodiment of the application, the number of points in the current point cloud within each distance interval can be obtained, so as to obtain the attribute features (projection features) of the current point cloud based on the number of points in the current point cloud within each distance interval. For example, if the number of points falling into the distance interval 0-4m is 6, the number of points falling into the distance interval 4m-8m is 6, ..., and the number of points falling into the distance interval 76m-80m is 2, then 20 numbers can be obtained. Therefore, these 20 numbers can be arranged in interval order to obtain a one-dimensional vector. If this vector can be (6, 6, ..., 2), in this embodiment of the application, the one-dimensional vector can be used as the attribute features of the current point cloud.

[0094] In one possible implementation, this embodiment of the application may further normalize the number of points in the current point cloud within each distance interval, such as by reducing the number by the same factor so that the number is within the range of 0-1. For example, the number of points in the current point cloud within each distance interval can be divided by the maximum number to obtain the normalized result, and then a one-dimensional vector can be generated based on the normalized result. For example, if the maximum number of points in the current point cloud within each distance interval is 6, the number of points in the current point cloud within each distance interval can be divided by 6 to obtain a one-dimensional vector (1, 1, ..., 1 / 3).

[0095] In the method of obtaining the projection features of the current point cloud, in this embodiment, the current point cloud can be projected onto the xoy plane, yoz plane, and xoz plane respectively, thereby obtaining more detailed projection features than the above method of projecting the current point cloud onto the xoy plane. Therefore, more accurate results can be obtained when matching with the attribute features in the point cloud map. Specifically, S401 can be replaced by S401': projecting the current point cloud onto the xoy plane, yoz plane, and xoz plane respectively to obtain three current projected point clouds corresponding to the current point cloud. Correspondingly, S402 can be replaced by S402': obtaining the distance between each current projected point cloud and o, and classifying the distance into a preset distance interval of the corresponding coordinate plane. S403 can be replaced by S403': obtaining the attribute features of the current point cloud based on the number of points in the current point cloud in each distance interval of each coordinate plane.

[0096] The projection method in S401' can be referred to the above description. The difference is that the current point cloud is projected onto three coordinate planes, so that the three current projected point clouds can be obtained.

[0097] In S402', since there are three current projected point clouds, the distance between each current projected point cloud and o can be obtained in the same way as in S402 above, and the distance between each current projected point cloud and o can be classified into a preset distance interval of the corresponding coordinate plane. Specifically, obtaining the distance between each current projected point cloud and o can be done by obtaining the distance between each point in each current projected point cloud and o, thus obtaining the distance between each point in the three current projected point clouds and o.

[0098] Unlike the description above, in this embodiment, each coordinate plane (xoy plane, yoz plane, and xoz plane) corresponds to a preset distance interval. For example, the distance intervals for the xoy plane are: 0-4m, 4m-8m…, 76m-80m; the distance intervals for the yoz plane are: 0-4m, 4m-6m…, 76m-80m; and the distance intervals for the xoz plane are: 0-1m, 1m-2m…, 7m-8m. It should be noted that the preset number of distance intervals corresponding to each coordinate plane can be different or the same.

[0099] In S403', in this embodiment of the application, the number of points in the current point cloud in each distance interval of each coordinate plane is obtained, and then the attribute features of the current point cloud are obtained based on the number of points in the current point cloud in each distance interval of each coordinate plane. Specifically, the number of points in the current point cloud in each distance interval of each coordinate plane can be arranged according to the order of the coordinate planes (e.g., from the xoy plane to the yoz plane, and then back to the xoz plane, which can be predetermined) and the order of the distance intervals of each coordinate plane to obtain a one-dimensional vector, and this one-dimensional vector is used as the attribute feature of the current point cloud. For example, if the preset number of distance intervals corresponding to each coordinate plane is 20, and the number of points falling into the distance intervals in the xoy plane are 6, 6..., 2, the number of points falling into the distance intervals in the yoz plane are 1, 2..., 3, and the number of points falling into the distance intervals in the xoz plane are 2, 4..., 8, then the one-dimensional vector can be (6, 6..., 2, 1, 2..., 3, 2, 4..., 8).

[0100] Secondly, combine Figure 6 This section explains how to extract normal vector features from the current point cloud. Figure 6 This is a flowchart illustrating another embodiment of the positioning method provided in this application. Figure 6 As shown, the above S302 can be replaced with:

[0101] S601, determine the first scan line to which the first point belongs, and all points in the current point cloud are the first point.

[0102] S602, on the first scan line, and on both sides of the first point, obtain the first nearest point that is closest to the first point.

[0103] S603, obtain the second nearest point to the first point on the second scan line, the second scan line is adjacent to the first scan line.

[0104] S604: Obtain the normal vector of the first point based on the first point, the first nearest point, and the second nearest point.

[0105] S605: Obtain the attribute features of the current point cloud based on the normal vector of the first point.

[0106] In the above S601, for ease of explanation in this embodiment, all points included in the current point cloud are referred to as the first point. That is, in this embodiment, steps S601-S604 are performed on the first point. Because when a lidar emits a laser, it can emit multiple laser scan lines simultaneously, and each laser scan line can touch and reflect various objects in the room. For example, a 16-line lidar can emit 16 laser scan lines simultaneously. When the object to be located acquires the current point cloud, it can determine which scan line a point in the current point cloud belongs to. Accordingly, in this embodiment, the first scan line to which the first point belongs can be determined.

[0107] In the above S602, multiple points may be included on the same scan line. For the first point, in this embodiment of the application, the first scan line can be obtained, and the first nearest point to the first point can be obtained on both sides of the first point. Figure 7 This is a schematic diagram of points on a scan line provided in an embodiment of this application. For example... Figure 7 As shown, for a first point a on the first scan line, the nearest first neighboring points on either side of point a on the first scan line are points b and c, respectively. It should be understood that if point a has only one adjacent point on the first scan line, then that single point can be considered as the first neighboring point of point a.

[0108] In the above-described S603, in this embodiment of the application, a second nearest point to the first point can also be obtained on a second scan line adjacent to the first scan line. For example... Figure 7 As shown, the second nearest points on the second scan line are points d and e. It should be understood that when the first scan line has only one adjacent second scan line, a second nearest point can be obtained on that second scan line.

[0109] In the above S604, in this embodiment of the application, the normal vector of the first point can be obtained based on the first point, the first neighboring point, and the second neighboring point. In this embodiment of the application, a first vector from the first point to the first neighboring point and a second vector from the first point to the second neighboring point can be obtained, and the normal vector of the first point can be obtained based on the first vector and the second vector.

[0110] In one possible implementation, the first vectors from point a to point b and point c are vectors v1 and v2, respectively, and the second vectors from point a to point d and point e are vectors v3 and v4, respectively. In this embodiment, any vector perpendicular to vectors v1, v2, v3, and v4 is taken as the normal vector of point a.

[0111] In one possible implementation, there may not necessarily be vectors that are all perpendicular to vectors v1, v2, v3, and v4. Therefore, in this embodiment, a cross product can be calculated pairwise between the first and second vectors, and the cross product result can be used to approximate a vector that is perpendicular to vectors v1, v2, v3, and v4. In this embodiment, the mean of the cross product results can be used as the normal vector of the first point. For example, a cross product can be calculated between vectors v1 and v2, between vectors v1 and v3, ..., between vectors v3 and v4, resulting in multiple cross product results. In this embodiment, the mean of these multiple cross product results can be used as the normal vector of the first point.

[0112] For example, the normal vector n of the first point i The calculation can be performed using the following formula:

[0113]

[0114] Where i is any first point in the current point cloud, m is the sum of the number of first vectors and second vectors corresponding to the first point, and v i Let v be either the first vector or the second vector. i%4+1 The vector that performs a cross product with the first or second vector.

[0115] It should be noted that point a may not have a first vector, or it may have one first vector and one second vector. The normal vector of the first point a can be obtained in the same way as described above. For example, the lidar in this embodiment can be a 16-line lidar, capable of simultaneously emitting 16 lasers (e.g., the emission points of the 16 lasers can be the same point, and the 16 lasers form a fan-shaped plane, with the angle between adjacent lasers being the same). In this embodiment, to ensure that each first point has two first vectors and two second vectors, the first points on the two lasers located at the edge of the 16 lasers can be omitted. For example, if the 16 lasers are arranged sequentially from top to bottom, the normal vectors of the first points on the top and bottom lasers can be omitted.

[0116] In step S605 above, the attribute features of the current point cloud can be obtained based on the normal vector of the first point. In one possible implementation, the set of normal vectors of the first point can be used as the normal vector features of the current point cloud in this embodiment.

[0117] In one possible implementation, embodiments of this application can obtain the length of the projection of the normal vector of the first point onto at least one coordinate axis, and categorize the length into a preset length range. Taking the acquisition of the length of the projection of the normal vector of the first point onto the x-axis as an example, projecting the normal vector of the first point onto the x-axis yields the length of the projection, which is equal to the value of the component of the normal vector of the first point on the x-axis. Specifically, if embodiments of this application obtain the length of the projection of the normal vector of the first point onto one coordinate axis, then the length of the projection of the normal vector of the first point onto the z-coordinate axis can be obtained. This is because in the current point cloud, the height value (corresponding to the z-axis) has a more pronounced length characteristic compared to the length value on the horizontal plane (corresponding to the x-axis and y-axis). Therefore, when obtaining the length of the projection of the normal vector of the first point onto one coordinate axis, obtaining the length of the projection of the normal vector of the first point onto the z-coordinate axis is more beneficial for feature matching accuracy and localization accuracy.

[0118] In this embodiment, after obtaining the length of the projection of the normal vector of the first point onto at least one coordinate axis, the length can be categorized into a preset length interval. It should be understood that different coordinate axes can correspond to different preset length intervals (similar to the preset distance intervals mentioned above). Therefore, the number of first points in each length interval corresponding to at least one coordinate axis can be obtained. Similar to obtaining the projection features of the current point cloud as described above, in this embodiment, the attribute features (normal vector features) of the current point cloud can also be obtained based on the number of first points in each length interval. It should be understood that the preset length interval in this embodiment can be an empirical value, where the preset length interval is related to the length of the projection of the normal vector of the first point onto the coordinate axis. In this embodiment, the preset length interval can also be determined based on the length of the projection of the normal vector of the first point onto the coordinate axis. For example, if the maximum length of the projection of the first point onto the coordinate axis is 10m and the minimum length is 0m, then 0-10m can be divided into preset length intervals. If 0-10m is divided into 20 length intervals of equal length, then the length of each preset length interval is 0.5m.

[0119] For example, taking a length interval of 20 for each coordinate axis as an example, the number of the first point in each length interval of the x-axis is 3, 4, ..., 8; the number of the first point in each length interval of the y-axis is 1, 2, ..., 4; and the number of the first point in each length interval of the z-axis is 3, 4, ..., 6. Then the attribute feature of the current point cloud can be a one-dimensional vector (3, 4, ..., 8, 1, 2, ..., 4, 3, 4, ..., 6) composed of the number of the first points in each length interval of each axis. Optionally, when only the length of the projection of the normal vector of the first point on the z-axis is obtained in this embodiment, the attribute feature of the current point cloud can be (3, 4, ..., 6). It should be understood that after obtaining the number of the first points in each length interval in this embodiment, normalization processing can also be performed to obtain the attribute feature of the current point cloud. The specific method can refer to the above description of normalization processing of the number of points in each distance interval.

[0120] Combined again Figure 8 This section explains how to extract curvature features from the current point cloud. Figure 8 This is a flowchart illustrating another embodiment of the positioning method provided in this application. Figure 8 As shown, the above S302 can be replaced with:

[0121] S801, determine the first scan line to which the first point belongs.

[0122] S802, based on the position of the first point and the positions of the points on both sides of the first point on the first scan line, obtain the curvature of the first point.

[0123] S803 categorizes the curvature of the first point into a preset curvature range.

[0124] S804 obtains the attribute features of the current point cloud based on the number of the first points in each curvature interval.

[0125] It should be understood that the implementation of S801 in the embodiments of this application can refer to the relevant description in S601 above, and will not be repeated here.

[0126] In S802 above, the points on both sides of the first point can be a preset number of points on both sides of the first point. For example, if the preset number is 3, then the points on both sides of the first point can be 3 points on each side of the first point, plus the first point, for a total of 7 points. Figure 9 This is a schematic diagram of the first point and the points on both sides of the first point, provided as an embodiment of this application. (See attached diagram.) Figure 9As shown, on the first scan line, the first point is point a, and the points on either side of point a are points b, c, f, g, h, and k, respectively. In this embodiment, the curvature of the first point can be obtained based on its position and the positions of the points on either side of it on the first scan line. The position of the first point can be its three-dimensional spatial coordinates, and the positions of the points on either side of it can be their three-dimensional spatial coordinates. The curvature c of the first point... i The calculation can be performed using the following formula:

[0127]

[0128] Where, p i Let p be the position of the first point. j Let S be the position of any one of the points on either side of the first point, and let S be the preset number of points on either side of the first point.

[0129] In step S803 above, after obtaining the curvature of the first point in the current point cloud, the curvature of the first point can be categorized into a preset curvature interval. It should be understood that this preset curvature interval is also predefined. The number of preset curvature intervals can be the same as the number of distance intervals and length intervals mentioned above, such as 20 for each.

[0130] In S804 above, after classifying the curvature of the first point into a preset curvature interval, the number of first points in each curvature interval can be obtained, and then the attribute features (curvature features) of the current point cloud can be obtained based on the number of first points in each curvature interval. It should be understood that the process of obtaining the attribute features of the current point cloud based on the number of first points in each curvature interval is similar to the process of obtaining projection features and normal vector features, and can be referred to the relevant descriptions in the above embodiments. For example, the curvature feature can be a vector (1, 1, ..., 1). It should be understood that in the embodiments of this application, after obtaining the number of first points in each curvature interval, normalization processing can also be performed to obtain the attribute features of the current point cloud. The specific method can be referred to the relevant descriptions above regarding the normalization processing of the number of points in each distance interval.

[0131] It should be understood that the above describes the processes for extracting projection features, normal vector features, and curvature features from the current point cloud. The attribute features of the point cloud in this embodiment may include at least one of projection features, normal vector features, and curvature features. To more accurately obtain the attribute features of the current point cloud, projection features, normal vector features, and curvature features can be extracted from the current point cloud. The more accurate the attribute features, the more accurate the localization of the object to be located.

[0132] When the attribute features of a point cloud can include projection features, normal vector features, and curvature features, the above S302 can be replaced by S401-S403, S601-S605, and S801-S804. Correspondingly, the attribute features of the current point cloud can be a recombination of one-dimensional vectors corresponding to projection features, normal vector features, and curvature features. For example, the vector corresponding to the attribute features of the current point cloud can be (6, 6..., 2, 1, 2..., 3, 2, 4..., 8, 3, 4..., 6, 1, 1..., 1). The attribute features of the current point cloud are a one-dimensional vector with a length of 100, where the length of the vector corresponding to the projection feature is 60, and the lengths of the vectors corresponding to the normal vector feature and the curvature feature are 20 respectively.

[0133] In this embodiment, the attribute features of the current point cloud may include at least one of the following: projection features, normal vector features, and curvature features. Using any one of these attribute features can effectively distinguish similar scenes, thus enabling accurate localization. Since the attribute features of the current point cloud include projection features, normal vector features, and curvature features, the description of the current point cloud's attribute features is more accurate and comprehensive, thereby further improving the localization accuracy of the object to be located.

[0134] Based on the above embodiments, in this application embodiment, after obtaining the pose of the object to be located according to the attribute features of the current point cloud, ICP matching can be combined to further accurately determine the pose of the object to be located, thereby improving the positioning accuracy. Figure 10 This is a flowchart illustrating another embodiment of the positioning method provided in this application. Figure 10 As shown, the positioning method in the embodiments of this application may include:

[0135] S1001, Collect the current point cloud, which includes the point cloud of the object to be located and the point cloud of the environment in which the object to be located is located.

[0136] S1002, extract the attribute features of the current point cloud.

[0137] S1003, obtain the similarity between the attribute features of the current point cloud and the attribute features of the point cloud in each keyframe.

[0138] S1004: Obtain the target keyframes corresponding to the top preset number of similarity scores in descending order of similarity.

[0139] S1005, the pose corresponding to each target keyframe is taken as a candidate pose.

[0140] S1006, determine the pose of the object to be localized from multiple candidate poses.

[0141] It should be understood that the implementation methods in S1001-S1002 of the embodiments of this application can refer to the relevant descriptions of the above embodiments S301-S302, and will not be repeated here.

[0142] In the above S1003 embodiment, the point cloud map may include the attribute features of point clouds from multiple keyframes. A keyframe can be a frame acquired during point cloud acquisition; for example, an acquired point cloud frame is a keyframe point cloud. That is, the point cloud map includes the attribute features of multiple point cloud frames. It should be understood that different frame point clouds are acquired when the object to be located is in different poses. The process of acquiring the point cloud map in this embodiment can be referred to the following... Figure 11 , Figure 12 The relevant description in the document.

[0143] When the object to be located obtains its pose by combining the attribute features of the current point cloud with the attribute features of the point cloud in the point cloud map, the similarity between the attribute features of the current point cloud and the attribute features of the point cloud in each key frame can be obtained. In other words, the similarity between the one-dimensional vector corresponding to the current point cloud and the one-dimensional vector corresponding to the point cloud in each key frame (such as Euclidean distance) can be obtained.

[0144] In S1004 above, after obtaining the similarity between the attribute features of the current point cloud and the attribute features of the point cloud of each keyframe, this embodiment of the application can obtain the top preset number of target keyframes corresponding to the highest similarity scores, in descending order of similarity. For example, if the preset number is 10, then the top 10 keyframes in the point cloud map with the highest similarity scores can be used as target keyframes. That is to say, in this embodiment of the application, several candidate keyframes are first determined based on the matching of the attribute features of the point cloud.

[0145] In S1005 above, the point clouds of keyframes in the point cloud map are acquired at different poses. Therefore, each keyframe point cloud in the point cloud map corresponds to a pose, and correspondingly, the target keyframe also corresponds to a pose. In this embodiment, when the target object to be located determines a target keyframe with a high similarity to the attribute features of the current point cloud, the pose corresponding to each target keyframe can be used as a candidate pose.

[0146] In S1006 above, the embodiments of this application can determine the pose of the object to be located from multiple candidate poses. In one possible implementation, the average of the multiple candidate poses can be used as the pose of the object to be located. For example, the average of the position (three-dimensional coordinates) in the pose can be used as the position of the object to be located, and the average of the orientation (facing, etc.) in the pose can be used as the orientation of the object to be located, thereby obtaining the pose of the object to be located.

[0147] To more accurately determine the pose of the object to be located, in one possible implementation, this application embodiment can also combine the ICP algorithm to determine the pose of the object to be located from multiple candidate poses. Each candidate pose corresponds to a transformation relationship (R, T), where R is the rotation matrix and T is the translation matrix. This transformation relationship can convert the point cloud in the actual space to the point cloud map coordinate system; in other words, it can be understood as a transformation relationship between the actual space coordinate system and the coordinate system in the point cloud map.

[0148] In this embodiment, the current point cloud can be transformed into a point cloud map according to the transformation relationship corresponding to each candidate pose, thus obtaining the transformed point cloud corresponding to each candidate pose. For each candidate pose, the target point cloud that is closest to the transformed point cloud corresponding to each candidate pose can be obtained in the point cloud map. For example, taking the transformed point cloud corresponding to candidate pose 1 as an example, the transformed point cloud corresponding to candidate pose 1 includes multiple points. The point closest to each of these points can be obtained in the point cloud map, and the point cloud composed of the points closest to each of these points is the target point cloud. Each point in the target point cloud is closest to the corresponding point in the transformed point cloud corresponding to the candidate pose.

[0149] After determining the target point cloud of the transformed point cloud corresponding to each pose, the object to be located can perform ICP matching between the transformed point cloud corresponding to each candidate pose and the corresponding target point cloud to obtain the transformed point cloud with the highest matching degree. Specifically, iterative nearest-point ICP matching between the transformed point cloud corresponding to each candidate pose and the corresponding target point cloud yields a matching degree. In this embodiment, the transformed point cloud with the highest matching degree can be determined. Furthermore, the object to be located can obtain its pose based on the pose corresponding to the transformed point cloud with the highest matching degree and the transformation relationship of the ICP matching. The pose corresponding to the transformed point cloud with the highest matching degree can be the pose corresponding to the transformation relationship of that transformed point cloud. It should be understood that the result of ICP matching can include both the matching degree and the matching transformation relationship (i.e., the transformation relationship obtained between each point and its nearest point). Therefore, in this embodiment, the pose of the object to be located can be obtained based on the pose corresponding to the transformed point cloud with the highest matching degree and the transformation relationship of the ICP matching. It should be understood that the ICP matching algorithm is not described in detail in this embodiment; however, relevant descriptions in current technical solutions can be referenced.

[0150] For example, the pose corresponding to the transformed point cloud with the highest matching degree is P. i The transformation relationship for ICP matching is T. The pose P of the object to be located can then be calculated using the following formula:

[0151] P = T·P i Formula 3

[0152] In this embodiment, candidate poses of the object to be located can be preliminarily determined based on the matching of attribute features of the point cloud. Then, the pose of the object to be located can be determined from the candidate poses by combining the ICP algorithm. Compared with the above embodiment, the accuracy of the pose of the object to be located can be further improved.

[0153] Table 1 below adopts Figure 10 The positioning method shown Figure 1 and Figure 2 The positioning accuracy of the positioning method shown.

[0154] Table 1

[0155] method Position 1 Position 2 Position 3 Position 4 Figure 10 Corresponding method 91.1% 93.2% 90.3% 95.2% Figure 1 Corresponding method 60.2% 83.7% 66.5% 50.1% Figure 2 Corresponding method 48.5% 77.2% 46.3% 78%

[0156] Since the point cloud map construction process was not described in the above embodiments, it will be discussed here in conjunction with... Figure 11 First, the process of constructing a point cloud map will be explained. Figure 11 This is a schematic flowchart illustrating an embodiment of constructing a point cloud map provided in this application. Figure 11 As shown, the construction of a point cloud map provided in this application embodiment may include:

[0157] S1101, During the movement of the object to be located in the environment, collect the point cloud corresponding to each pose of the object to be located.

[0158] S1102, extract the attribute features of the point cloud corresponding to each pose.

[0159] S1103 stores the attribute features of the point cloud corresponding to each pose and the corresponding pose, and constructs a point cloud map.

[0160] It should be understood that S1102 in this embodiment can refer to the relevant description of S302 in the above embodiment. It should be noted that the attribute features of the point cloud in the point cloud map are consistent with the attribute features extracted from the current point cloud. For example, if the attribute features of the point cloud in the map are projection features, then the attribute features extracted from the current point cloud are also projection features. The specific attribute features to be extracted can be agreed upon in advance.

[0161] In step S1101 above, the object to be located can move within its environment, and point clouds corresponding to each pose of the object can be collected during the movement. Each pose can be a point cloud representing a keyframe. Optionally, in this embodiment, the object to be located can collect a point cloud representing a keyframe after moving a preset distance. Optionally, the object to be located can also collect a point cloud representing a keyframe after each preset time interval.

[0162] It should be understood that when acquiring the point cloud of a keyframe for an object to be located, the pose of the object to be located can be correlated with that keyframe, thereby determining the point cloud of the keyframe corresponding to a pose. In the embodiments of this application, the pose of the object to be located can be obtained according to the open-source Simultaneous Localization and Mapping (SLAM) algorithm. This process can be referred to the relevant descriptions in the current technical solutions, and will not be elaborated here.

[0163] In step S1103 above, after obtaining the poses of the object to be located and the attribute features of the point cloud corresponding to each pose, the attribute features of the point cloud corresponding to each pose and the pose can be stored to construct a point cloud map. The point cloud map can include the attribute features of the point cloud corresponding to each pose (the attribute features of the point cloud corresponding to each keyframe) and the point cloud itself.

[0164] In one possible scenario, the point cloud map of the environment in which the object to be located is located may be constantly changing. For example, in an underground parking garage, fixed objects such as pillars, the ground, and lights remain unchanged, but vehicles may enter and exit the garage at any time, thus affecting the point cloud map and consequently the accuracy of matching based on it. Therefore, in this embodiment of the application, when constructing the point cloud map, changing point clouds (such as the point cloud of vehicles in the underground parking garage) can be deleted. The point cloud map constructed using the deleted point clouds will then contain unchanging points, which helps improve the accuracy of localization. Figure 12 This is a schematic flowchart illustrating another embodiment of constructing a point cloud map provided in this application. For example... Figure 12 As shown, the following may also be included before S1102:

[0165] S1104 performs filtering on the point cloud corresponding to each pose.

[0166] S1105, cluster the point clouds corresponding to each pose to obtain point cloud clusters of each object in the environment.

[0167] S1106, In the point cloud clusters of each object, delete the point cloud clusters whose maximum z value is less than the preset value.

[0168] Correspondingly, the above S1102 can be replaced by S1102': extract the attribute features of the point cloud corresponding to each pose after deletion processing.

[0169] It should be understood that the attribute features of the point cloud corresponding to each pose after deletion processing can be extracted in S1102' by referring to the relevant description in S302 above.

[0170] In S1104 above, in this embodiment of the application, the point cloud at each pose can be filtered based on the voxel grid filter in the point cloud library (PCL) to simplify the complex point cloud while retaining its features, thereby reducing the computational load of subsequent processing. The filtering method can be referred to the relevant description in the current technical solution.

[0171] In step S1105 above, after filtering the point clouds corresponding to each pose, in order to remove variable point clouds caused by changing objects in the environment where the object to be located is located, the point clouds corresponding to each pose can be clustered to obtain point cloud clusters of each object in the environment. Specifically, in this embodiment, clustering involves grouping point clouds belonging to the same object in each pose into a single category, forming a point cloud cluster. For example, if the environment where the object to be located is located is an underground parking garage, clustering the point clouds corresponding to each pose can yield point cloud clusters belonging to the ground, vehicles, pillars, etc.

[0172] It should be understood that the method for clustering the point cloud corresponding to each pose in this embodiment of the application can be as follows (using any pose as an example): project each point in the point cloud onto any coordinate plane, calculate the angle between the projected point of each point on the coordinate plane and the surrounding projected points, and then cluster the points in the point cloud using this angle. For example, if the xoy coordinate plane is pre-divided into matrices, such as for a 16-line LiDAR, the matrix size of the pre-divided xoy coordinate plane can be 16×1800, where 1800 is related to the horizontal resolution rotation angle of the LiDAR. In this embodiment of the application, after projecting each point in the point cloud onto the xoy coordinate plane, that is, projecting each point into the matrix of the xoy coordinate plane, the angle between the projected point of each point on the xoy coordinate plane and the three closest projected points can be obtained. Figure 13 This is a schematic diagram illustrating the acquisition of the angle between projection points as provided in an embodiment of this application. Figure 13 As shown, the xoy coordinate plane includes projection point p and projection point b. In this embodiment, the distance d1 from projection point p to the origin o and the distance d2 from projection point b to the origin o can be obtained respectively, and then the angle angle between projection point p and projection point b can be obtained using the following formula four.

[0173]

[0174] Where α represents the horizontal or vertical angular resolution of the lidar.

[0175] In this embodiment, after obtaining the angle between the projection point of each point and the three surrounding projection points, if there is an angle greater than a preset angle (e.g., 30 degrees), it is considered that the points corresponding to the surrounding projection points and the points corresponding to this projection point belong to point cloud clusters of different objects. Following the above method, all points in the point cloud are traversed and divided according to whether they belong to the same point cloud cluster to obtain point cloud clusters of different objects.

[0176] In the above-mentioned S1106, because the vehicles in the underground garage are parked on the ground, the vehicles parked in the underground garage have a maximum height in the spatial coordinate system, and clustering to obtain point cloud clusters of each object can obtain multiple point cloud clusters, but it cannot determine the object corresponding to each point cloud cluster. Therefore, in this embodiment, after obtaining the point cloud clusters corresponding to each pose, the point cloud clusters corresponding to vehicles can be deleted according to the z-values ​​of the points included in each point cloud cluster. For example, in this embodiment, point cloud clusters with a maximum z-value less than a preset value (i.e., point cloud clusters corresponding to vehicles) can be deleted. For example, the preset value can be 2.5m. In this embodiment, point cloud clusters with a maximum height less than 2.5m can be deleted from each point cloud cluster, thereby obtaining point cloud clusters of other objects besides vehicles, and thus being able to obtain the point cloud of static objects in the environment where the object to be located is located, improving the accuracy of the point cloud map.

[0177] It should be noted that point cloud clusters with a maximum height of less than 2.5m in the underground parking garage may be point cloud clusters of stationary objects in the garage, such as the ground, ground barriers, and crash barriers. Therefore, in this embodiment, the stationary objects in the underground parking garage can be used as preset objects. Point cloud clusters whose maximum z-value is less than the preset value are deleted from the point cloud clusters of each object, excluding those of the preset objects. For example, point cloud clusters whose maximum z-value is less than the preset value are deleted from the point cloud clusters of each object, excluding those of the ground, ground barriers, and crash barriers. This preserves a detailed and complete point cloud of the underground parking garage, improving the accuracy of the point cloud map.

[0178] Correspondingly, in this case, Figure 14 This is a flowchart illustrating another embodiment of the positioning method provided in this application. Figure 14 As shown, the following may also be included before S1002:

[0179] S1007, perform filtering on the current point cloud.

[0180] S1008, cluster the current point cloud to obtain point cloud clusters of each object in the environment.

[0181] S1009, In ​​the point cloud clusters of each object, delete the point cloud clusters whose maximum z value is less than the preset value.

[0182] Correspondingly, S1002 can be replaced with S1002': extract the attribute features of the current point cloud after deletion processing.

[0183] It should be understood that the implementation methods in S1007-S1009 of the embodiments of this application can refer to the relevant descriptions in S1104-S1106 above. The difference is that S1104-S1106 above processes point clouds corresponding to multiple key frames, while S1007-S1009 processes the current point cloud.

[0184] Table 2 below shows the adoption of Figure 14 The positioning method shown Figure 1 and Figure 2 The positioning accuracy of the positioning method shown.

[0185] Table 2

[0186] method Number of vehicles: 0 Number of vehicles: 15 Number of vehicles: 30 Number of vehicles: 45 Figure 14 Corresponding method 94.7% 95.6% 96.3% 94.9% Figure 1 Corresponding method 70.2% 83.4% 86.6% 77.9% Figure 2 Corresponding method 44.6% 58.2% 60.4% 66.7%

[0187] In this embodiment, on the one hand, the combination of point cloud attribute feature matching and ICP algorithm can improve the positioning accuracy in similar scenes. On the other hand, when constructing the point cloud map, the point cloud of objects whose positions have changed in the scene can be deleted, thereby improving the accuracy of the point cloud map and improving the positioning accuracy. Furthermore, before extracting the attribute features in the current point cloud, the point cloud of objects whose positions have changed in the scene is also deleted, which can further improve the positioning accuracy of the object to be located.

[0188] Figure 15 This is a schematic diagram of the positioning device provided in an embodiment of this application. Figure 15 The positioning device shown can be the object to be positioned in the above embodiments, and can perform the above... Figure 3 , Figure 4 , Figure 6 , Figure 8 , Figures 10-12 , Figure 14 The positioning method described herein. The positioning device 1500 may include: a first processing module 1501, a second processing module 1502, and a point cloud map construction module 1503.

[0189] The first processing module 1501 is used to collect the current point cloud, which includes the point cloud of the object to be located and the point cloud of the environment in which the object to be located is located.

[0190] The second processing module 1502 is used to extract the attribute features of the current point cloud, and obtain the pose of the object to be located based on the attribute features of the current point cloud and the attribute features of the point cloud in the point cloud map of the environment where the object to be located is located.

[0191] In one possible implementation, the attribute features include at least one of the following: projection features of the point cloud, normal vector features of the point cloud, and curvature features of the point cloud.

[0192] In one possible implementation, the attribute features include the projection features of the point cloud. The second processing module 1502 is specifically used to project the current point cloud onto at least one of the following coordinate planes: xoy plane, yoz plane, and xoz plane to obtain the current projected point cloud, where o is the center position of the object to be located, and x, y, and z are the coordinate axes constructed with o as the origin; obtain the distance between the current projected point cloud and o, and classify the distance into a preset distance interval; and obtain the attribute features of the current point cloud based on the number of points in the current point cloud in each distance interval.

[0193] In one possible implementation, the second processing module 1502 is specifically used to project the current point cloud onto the xoy plane, yoz plane and xoz plane respectively to obtain three current projected point clouds corresponding to the current point cloud; obtain the distance between each current projected point cloud and o, and classify the distance into a preset distance interval of the corresponding coordinate plane; and obtain the attribute features of the current point cloud based on the number of points in the current point cloud in each distance interval of each coordinate plane.

[0194] In one possible implementation, the preset distance range is related to the farthest and nearest distances of points in the point cloud of the object to be located.

[0195] In one possible implementation, the attribute features include the normal vector features of the point cloud, and all points in the current point cloud are first points. For each first point in the current point cloud, the second processing module 1502 is specifically used to determine the first scan line to which the first point belongs, and on the first scan line, obtain the first nearest point to the first point on both sides of the first point, and obtain the second nearest point to the first point on the second scan line, the second scan line being adjacent to the first scan line; obtain the normal vector of the first point based on the first point, the first nearest point, and the second nearest point; obtain the attribute features of the current point cloud based on the normal vector of the first point.

[0196] In one possible implementation, the second processing module 1502 is specifically used to obtain a first vector from the first point to the first neighboring point; obtain a second vector from the first point to the second neighboring point; perform a cross product calculation on each pair of the first vector and the second vector, and use the mean of the cross product calculation results as the normal vector of the first point.

[0197] In one possible implementation, the second processing module 1502 is specifically used to obtain the length of the projection of the normal vector of the first point onto at least one coordinate axis, and classify the length into a preset length interval; and obtain the attribute features of the current point cloud according to the number of the first points in each length interval.

[0198] In one possible implementation, the second processing module 1502 is specifically used to obtain the length of the projection of the normal vector of the first point onto the z-coordinate axis.

[0199] In one possible implementation, the attribute features include the curvature features of the point cloud, where all points in the current point cloud are first points. For each first point in the current point cloud, the second processing module 1502 is specifically used to determine the first scan line to which the first point belongs; obtain the curvature of the first point based on its position and the positions of the points on both sides of the first point on the first scan line; classify the curvature of the first point into a preset curvature interval; and obtain the attribute features of the current point cloud based on the number of first points in each curvature interval.

[0200] In one possible implementation, the point cloud map includes the attribute features of point clouds of multiple keyframes; the second processing module 1502 is specifically used to obtain the similarity between the attribute features of the current point cloud and the attribute features of the point cloud of each keyframe; according to the order of similarity from large to small, obtain the target keyframes corresponding to the top preset number of similarities; take the pose corresponding to each target keyframe as a candidate pose; and determine the pose of the object to be located from the multiple candidate poses.

[0201] In one possible implementation, the second processing module 1502 is specifically used to transform the current point cloud into a point cloud map according to the transformation relationship corresponding to each candidate pose, to obtain the transformed point cloud corresponding to each candidate pose; in the point cloud map, to obtain the target point cloud that is closest to the transformed point cloud corresponding to each candidate pose; to perform iterative nearest point ICP matching on the transformed point cloud corresponding to each candidate pose and the corresponding target point cloud to obtain the transformed point cloud with the highest matching degree; and to obtain the pose of the object to be located according to the pose corresponding to the transformed point cloud with the highest matching degree and the transformation relationship of the ICP matching.

[0202] In one possible implementation, the second processing module 1502 is further configured to cluster the current point cloud to obtain point cloud clusters of each object in the environment; among the point cloud clusters of each object excluding the preset object, delete the point cloud clusters whose maximum z value is less than the preset value, so as to extract the attribute features of the current point cloud after deletion.

[0203] In one possible implementation, during the movement of the object to be located in the environment, the point cloud map construction module 1503 is used to collect the point cloud corresponding to each pose of the object to be located, extract the attribute features of the point cloud corresponding to each pose, and store the attribute features and poses of the point cloud to construct a point cloud map.

[0204] In one possible implementation, as the object to be located moves in the environment, the point cloud map construction module 1503 is used to collect the point cloud of a key frame at preset distances, obtain the pose of the object to be located in the point cloud of a key frame, and obtain the point cloud corresponding to each pose.

[0205] In one possible implementation, the second processing module 1502 is further used to cluster the point clouds corresponding to each pose to obtain point cloud clusters of each object in the environment. Among the point cloud clusters of each object except the preset object, the point cloud clusters with the maximum z value of the point cloud being less than the preset value are deleted in order to extract the attribute features of the point clouds corresponding to each pose after deletion.

[0206] The positioning device provided in this application embodiment can perform the actions of the object to be located in the above method embodiment. Its implementation principle and technical effect are similar, and will not be described again here.

[0207] It should be noted that the above processing modules can be implemented in software via processing elements or in hardware. For example, a processing module can be a separate processing element or integrated into a chip in the aforementioned device. Alternatively, it can be stored as program code in the memory of the aforementioned device, and its functions can be called and executed by a processing element of the device. Furthermore, all or part of these modules can be integrated together or implemented independently. The processing element mentioned here can be an integrated circuit with signal processing capabilities. In the implementation process, each step of the above method or each of the above modules can be completed through integrated logic circuits in the hardware of the processor element or through software instructions.

[0208] For example, these modules can be one or more integrated circuits configured to implement the above methods, such as one or more application-specific integrated circuits (ASICs), one or more digital signal processors (DSPs), or one or more field-programmable gate arrays (FPGAs). As another example, when a module is implemented using processing element scheduler code, the processing element can be a general-purpose processor, such as a central processing unit (CPU) or other processor capable of calling program code. Furthermore, these modules can be integrated together to implement a system-on-a-chip (SOC).

[0209] Figure 16 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. The electronic device may be a robot, vehicle, or similar device as shown above. Figure 16 As shown, the electronic device 1600 may include: a processor 1601 (e.g., CPU), a memory 1602, and a point cloud acquisition device 1603. The point cloud acquisition device 1603 may be coupled to the processor 1601, and the processor 1601 controls the point cloud acquisition device 1603 to perform the action of emitting lidar or millimeter-wave radar to acquire point clouds around the electronic device, so that the electronic device can acquire the surrounding point clouds. The memory 1602 may include high-speed random-access memory (RAM), and may also include non-volatile memory (NVM), such as at least one disk storage device. The memory 1602 may store various instructions for performing various processing functions and implementing the method steps of this application. Optionally, the electronic device 1600 of this application may also include: a power supply 1604, a communication bus 1605, and a communication port 1606. The aforementioned communication port 1606 is used to enable communication between the electronic device and other peripherals.

[0210] In this embodiment, the memory 1602 is used to store computer executable program code, which includes instructions. When the processor 1601 executes the instructions, the instructions cause the processor 1601 of the electronic device to perform the actions in the above method embodiment. The implementation principle and technical effect are similar, and will not be repeated here.

[0211] In the above embodiments, implementation can be achieved, in whole or in part, through software, hardware, firmware, or any combination thereof. When implemented in software, it can be implemented, in whole or in part, as a computer program product. A computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the flow or function according to the embodiments of this application is generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., a solid-state disk (SSD)).

[0212] The term "multiple" in this article refers to two or more. The term "and / or" in this article is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A alone, A and B simultaneously, or B alone. Furthermore, the character " / " in this article generally indicates an "or" relationship between the preceding and following related objects; in formulas, the character " / " indicates a "division" relationship between the preceding and following related objects.

[0213] It is understood that the various numerical designations used in the embodiments of this application are merely for descriptive convenience and are not intended to limit the scope of the embodiments of this application. It is also understood that in the embodiments of this application, the sequence number of each process does not imply the order of execution; the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.

Claims

1. A positioning method, characterized by, The method comprises the following steps: acquiring a current point cloud, the current point cloud comprising a point cloud of an object to be positioned and a point cloud of an environment in which the object to be positioned is located; extracting attribute features of the current point cloud, the attribute features comprising at least one of a projection feature of the point cloud, a normal vector feature of the point cloud, and a curvature feature of the point cloud, different attribute features corresponding to different extraction manners; obtaining a pose of the object to be positioned according to the attribute features of the current point cloud and attribute features of the point cloud in a point cloud map of the environment in which the object to be positioned is located; before the step of extracting the attribute features of the current point cloud, the method further comprises the following steps: clustering the current point cloud to obtain point cloud clusters of objects in the environment; deleting, in the point cloud clusters of the objects other than a preset object, a point cloud cluster with a maximum z value of point cloud less than a preset value.

2. The method of claim 1, wherein, When the attribute features comprise the projection feature of the point cloud, the step of extracting the attribute features of the current point cloud comprises the following steps: projecting the current point cloud onto at least one coordinate plane, i.e. an xoy plane, a yoz plane, and an xoz plane, to obtain a current projection point cloud, o being a center position of the object to be positioned, x, y, and z being coordinate axes constructed with o as a coordinate origin; obtaining distances between the current projection point cloud and the o, and classifying the distances into preset distance intervals; obtaining the attribute features of the current point cloud according to a number of points in the current point cloud in each distance interval.

3. The method of claim 2, wherein, The step of projecting the current point cloud onto at least one coordinate plane comprises the following steps: projecting the current point cloud onto the xoy plane, the yoz plane, and the xoz plane respectively to obtain three current projection point clouds corresponding to the current point cloud; The step of obtaining distances between the current projection point cloud and the o, and classifying the distances into preset distance intervals comprises the following steps: obtaining distances between each current projection point cloud of the current point cloud and the o, and classifying the distances into preset distance intervals of the corresponding coordinate plane; The step of obtaining the attribute features of the current point cloud according to a number of points in the current point cloud in each distance interval comprises the following steps: obtaining the attribute features of the current point cloud according to a number of points in the current point cloud in each distance interval of each coordinate plane.

4. The method according to claim 2 or 3, characterized in that, The preset distance intervals are related to a farthest distance and a nearest distance of points in the point cloud collected by the object to be positioned.

5. The method according to any one of claims 1-4, characterized in that, When the attribute features comprise the normal vector feature of the point cloud, the points in the current point cloud are all first points, and for each first point in the current point cloud, the step of extracting the attribute features of the current point cloud comprises the following steps: determining a first scan line to which the first point belongs; obtaining, on the first scan line and on both sides of the first point, first adjacent points closest to the first point; obtaining, on a second scan line adjacent to the first scan line, a second adjacent point closest to the first point; obtaining a normal vector of the first point according to the first point, the first adjacent point, and the second adjacent point; obtaining the attribute features of the current point cloud according to the normal vector of the first point.

6. The method of claim 5, wherein, The method further includes: obtaining a first vector from the first point to the first neighboring point; obtaining a second vector from the first point to the second neighboring point; calculating a cross product of each two of the first vector and the second vector, and taking an average of results of the cross product calculation as the normal vector of the first point.

7. The method according to claim 5 or 6, characterized in that, The method further includes: obtaining a length of a projection of the normal vector of the first point on at least one coordinate axis, and classifying the length into a preset length interval; obtaining the attribute feature of the current point cloud according to a number of the first points in each length interval.

8. The method of claim 7, wherein, The method further includes: obtaining the length of the projection of the normal vector of the first point on a z coordinate axis.

9. The method according to any one of claims 1-8, characterized in that, When the attribute feature includes a curvature feature of the point cloud, each point in the current point cloud is a first point, and for each first point in the current point cloud, the method further includes: determining a first scan line to which the first point belongs; obtaining a curvature of the first point according to a position of the first point and positions of points on both sides of the first point on the first scan line; classifying the curvature of the first point into a preset curvature interval; obtaining the attribute feature of the current point cloud according to a number of the first points in each curvature interval.

10. The method according to any one of claims 1-9, characterized in that, The point cloud map includes attribute features of point clouds of a plurality of key frames, and the method further includes: obtaining a similarity between the attribute feature of the current point cloud and an attribute feature of a point cloud of each key frame; obtaining target key frames corresponding to a preset number of similarities in a descending order of the similarity; taking a pose corresponding to each target key frame as a candidate pose; and determining the pose of the object to be positioned from the plurality of candidate poses.

11. The method of claim 10, wherein, The method further includes: converting the current point cloud into the point cloud map according to a conversion relationship corresponding to each candidate pose to obtain a converted point cloud corresponding to each candidate pose; obtaining a target point cloud closest to the converted point cloud corresponding to each candidate pose in the point cloud map; performing an iterative closest point (ICP) matching on the converted point cloud corresponding to each candidate pose and the target point cloud corresponding to the candidate pose to obtain a converted point cloud with a highest matching degree; and obtaining the pose of the object to be positioned according to a pose corresponding to the converted point cloud with the highest matching degree and an ICP matching conversion relationship.

12. The method of any one of claims 1-11, wherein: the method further includes: extracting an attribute feature of the current point cloud after the deletion processing.

13. The method according to any one of claims 1-12, characterized in that, The method further includes: collecting point clouds corresponding to poses of the object to be positioned in a movement process of the object to be positioned in the environment. Extract attribute features of the point clouds corresponding to each pose; Store the attribute features of the point clouds corresponding to each pose and the point cloud map is constructed.

14. The method of claim 13, wherein, During the movement of the object to be positioned in the environment, point clouds corresponding to each pose are collected, including: During the movement of the object to be positioned in the environment, point clouds of a key frame are collected at every preset distance; The pose of the object to be positioned when the point clouds of the key frame are collected is obtained to obtain the point clouds corresponding to each pose.

15. The method of claim 14, wherein, Before the attribute features of the point clouds corresponding to each pose are extracted, the method further includes: Clustering the point clouds corresponding to each pose to obtain point cloud clusters of each object in the environment; In the point cloud clusters of each object except for a preset object, point cloud clusters with a maximum z value of point clouds less than a preset value are deleted; The attribute features of the point clouds corresponding to each pose are extracted, including: Extracting the attribute features of the point clouds corresponding to each pose after the deletion processing.

16. A positioning device, characterized by The method includes: A first processing module is configured to collect a current point cloud, the current point cloud including point clouds of an object to be positioned and point clouds of an environment in which the object to be positioned is located; A second processing module is configured to extract attribute features of the current point cloud, and obtain a pose of the object to be positioned according to the attribute features of the current point cloud and attribute features of point clouds in a point cloud map of the environment in which the object to be positioned is located; the attribute features include at least one of the following: projection features of point clouds, normal vector features of point clouds, and curvature features of point clouds, different attribute features corresponding to different extraction manners; The first processing module is further configured to cluster the current point cloud to obtain point cloud clusters of each object in the environment; In the point cloud clusters of each object except for a preset object, point cloud clusters with a maximum z value of point clouds less than a preset value are deleted.

17. An electronic device, comprising: The method includes: A memory, a processor and a point cloud collection device; The processor is coupled with the memory, reads and executes instructions in the memory to implement the method in any one of claims 1-15; The point cloud collection device is configured to collect point clouds around the object to be positioned.

18. A computer-readable storage medium, characterized in that, The computer storage medium stores computer instructions, when the computer instructions are executed by a computer, the computer executes the method in any one of claims 1-15.

19. A computer program product, characterised in that, The computer program product stores computer instructions, when the computer instructions are executed by a computer, the computer executes the method in any one of claims 1-15.

Citation Information

Patent Citations

  • Mobile robot positioning method and system based on three-dimensional point cloud and vision fusion

    CN111429574A