Positioning method, device, storage medium and electronic equipment
By determining candidate reference frames in the point cloud map and selecting the target reference frame, the problem of high computing resource consumption in point cloud registration of unmanned equipment is solved, and efficient posture positioning is achieved.
Patent Information
- Application Number
- CN202111641489.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-12-29
- Publication Date
- 2025-09-19
- Estimated Expiration
- 2041-12-29
AI Technical Summary
In existing technologies, unmanned equipment equipped with detectors such as lidar consumes a large amount of computing resources when performing point cloud registration. How to narrow the registration range of the point cloud map has become an urgent problem to be solved.
By obtaining the coarse positioning information of the object to be positioned, collecting the surrounding point cloud frames, and determining several candidate positions in the pre-built point cloud map, a candidate reference frame is generated, and a comparison is performed to select the target reference frame. The pose information is determined in the point cloud map based on the target reference frame, thereby reducing the computing resources required for alignment.
While narrowing the registration range, the consumption of computing resources is reduced and the positioning efficiency is improved.
Smart Images

Figure CN114299147B_ABST
Abstract
Description
Technical Field
[0001] This specification relates to the field of positioning technology, and in particular to a positioning method, device, storage medium, and electronic device. Background Art
[0002] At present, unmanned equipment equipped with detectors such as lidar can obtain surrounding point cloud data in real time and determine the position and posture of the unmanned equipment by aligning it with a pre-established point cloud map.
[0003] Among them, point cloud registration refers to transforming the point cloud around the unmanned device into the same coordinate system as the point cloud map through rotation and translation, so as to locate the position of the unmanned device according to the determined rotation and translation matrix.
[0004] However, point cloud maps usually include a large amount of point cloud data, and point cloud registration requires a lot of computing resources. Therefore, how to narrow the registration range in point cloud maps for unmanned equipment is an urgent problem to be solved. Summary of the Invention
[0005] This specification provides a positioning method, device, storage medium and electronic device to partially solve the above-mentioned problems existing in the prior art.
[0006] This manual adopts the following technical solutions:
[0007] This specification provides a positioning method, including:
[0008] Acquire coarse positioning information of the object to be positioned, wherein the coarse positioning information includes at least a rough position of the object to be positioned; collect a point cloud frame around the object to be positioned as a positioning frame;
[0009] Determine a plurality of candidate positions around the rough position, and for each candidate position, use the candidate position as a sampling position in the point cloud map, perform sampling in the pre-constructed point cloud map, generate a plurality of point cloud frames, and use the generated point cloud frames as candidate reference frames, wherein the sampling pose of each candidate reference frame generated using the candidate position as the sampling position is different;
[0010] For each candidate reference frame, comparing the point cloud contained in the candidate reference frame with the point cloud contained in the positioning frame, and determining a matching degree between the candidate reference frame and the positioning frame;
[0011] According to the matching degree between each candidate reference frame and the positioning frame, a target reference frame is selected from each candidate reference frame, and the pose information of the object to be positioned is determined based on the sampling pose corresponding to the target reference frame in the point cloud map.
[0012] Optionally, taking the candidate position as the sampling position in the point cloud map, sampling is performed in a pre-built point cloud map, specifically including:
[0013] Taking the rough position as the sampling position in the point cloud map, sampling is performed in the pre-constructed point cloud map to generate a plurality of point cloud frames, and using the generated point cloud frames as perspective reference frames, wherein the acquisition posture of each perspective reference frame is different;
[0014] For each perspective reference frame, comparing the point cloud contained in the perspective reference frame with the point cloud contained in the positioning frame, and determining a matching degree between the perspective reference frame and the positioning frame;
[0015] Determining at least one candidate pose based on a degree of matching between each perspective reference frame and the positioning frame, and a sampling pose corresponding to each perspective reference frame in the point cloud map;
[0016] For each candidate posture, the candidate position is used as the sampling position in the point cloud map, and the candidate posture is used as the sampling posture in the point cloud map, and sampling is performed in the pre-constructed point cloud map.
[0017] Optionally, the method further includes:
[0018] Determining the rough posture included in the rough positioning information of the object to be positioned as the designated posture; and / or,
[0019] When the object to be located is an unmanned vehicle, determining the lane line direction of the road where the object to be located is located, and taking the posture in which the angle between the heading of the object to be located and the lane line direction is zero as the designated posture;
[0020] Determining at least one candidate pose based on the matching degree between each perspective reference frame and the positioning frame, and the sampling pose of each perspective reference frame in the point cloud map, specifically including:
[0021] A perspective reference frame having the highest matching degree with the positioning frame is determined, and a sampling posture and a designated posture of the perspective reference frame in the point cloud map are used as candidate postures.
[0022] Optionally, selecting a target reference frame from each candidate reference frame according to a matching degree between each candidate reference frame and the positioning frame specifically includes:
[0023] determining, based on the matching degrees between each candidate reference frame and the positioning frame, whether each candidate reference frame includes at least one candidate reference frame whose matching degree with the positioning frame is greater than a preset matching degree threshold;
[0024] If so, the candidate reference frame with the greatest matching degree with the positioning frame among the candidate reference frames is used as the target reference frame; if not, the coarse positioning information of the object to be positioned is reacquired, and the point cloud frame around the object to be positioned is recollected.
[0025] Optionally, determining the pose information of the object to be located based on the sampling pose corresponding to the target reference frame in the point cloud map specifically includes:
[0026] Registering the point cloud contained in the target reference frame and the point cloud contained in the positioning frame to obtain a transformation relationship between the point cloud contained in the positioning frame and the point cloud contained in the target reference frame;
[0027] The pose information of the object to be positioned is determined according to the sampling pose of the target reference frame in the point cloud map and the transformation relationship between the point cloud contained in the positioning frame and the point cloud contained in the target reference frame.
[0028] Optionally, before determining the position and posture information of the object to be located, the method further includes:
[0029] determining, based on a transformation relationship between the point cloud contained in the positioning frame and the point cloud contained in the target reference frame, whether a difference between the point cloud contained in the positioning frame and the point cloud contained in the target reference frame is greater than a preset point cloud difference threshold;
[0030] If so, reacquire the coarse positioning information of the object to be positioned and recollect the point cloud frame around the object to be positioned. If not, determine the pose information of the object to be positioned based on the transformation relationship between the point cloud contained in the positioning frame and the point cloud contained in the target reference frame and the sampling pose corresponding to the target reference frame in the point cloud map.
[0031] Optionally, the method further includes:
[0032] When the movement speed of the object to be located is lower than a preset speed threshold, determining the position and posture information of a specified number of the objects to be located;
[0033] Determining whether the difference between the determined pose information of the object to be located is greater than a preset pose difference threshold;
[0034] If yes, re-determine the position and posture information of a specified number of the objects to be positioned; if no, determine the target position and posture of the objects to be positioned according to the determined position and posture information of the objects to be positioned.
[0035] This specification provides a positioning device, including:
[0036] A coarse positioning module is configured to obtain coarse positioning information of the object to be positioned, wherein the coarse positioning information includes at least a rough position of the object to be positioned; and collect a point cloud frame around the object to be positioned as a positioning frame;
[0037] a sampling module, configured to determine a plurality of candidate positions around the rough position, and for each candidate position, use the candidate position as a sampling position in the point cloud map, perform sampling in the pre-constructed point cloud map, generate a plurality of point cloud frames, and use the generated point cloud frames as candidate reference frames, wherein the sampling pose of each candidate reference frame generated using the candidate position as the sampling position is different;
[0038] a matching module, configured to compare, for each candidate reference frame, a point cloud contained in the candidate reference frame with a point cloud contained in the positioning frame, and determine a degree of matching between the candidate reference frame and the positioning frame;
[0039] The pose determination module is used to select a target reference frame from each candidate reference frame according to the matching degree between each candidate reference frame and the positioning frame, and determine the pose information of the object to be positioned based on the sampling pose corresponding to the target reference frame in the point cloud map.
[0040] This specification provides a computer-readable storage medium, which stores a computer program. When the computer program is executed by a processor, the positioning method described above is implemented.
[0041] This specification provides an unmanned driving device, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the above-mentioned positioning method when executing the program.
[0042] At least one of the above technical solutions adopted in this specification can achieve the following beneficial effects:
[0043] In the positioning method provided in this specification, coarse positioning information of the object to be positioned is obtained, and point cloud frames around the object to be positioned are collected. Several candidate positions around the coarse position in the coarse positioning information are used as sampling positions. Sampling is performed in a pre-constructed point cloud map, and the positioning frame is compared with each candidate reference frame obtained by sampling. The target reference frame is selected according to the matching degree between each candidate reference frame and the positioning frame, and the object to be positioned is positioned based on the sampling pose of the target reference frame in the point cloud map.
[0044] It can be seen that after several sampling and comparisons, the registration range is narrowed down to the target reference frame. By registering the positioning frame with the target reference frame, the pose information of the object to be located can be determined based on the sampling position of the target reference frame in the point cloud map, thereby reducing the computational resources required for registration. BRIEF DESCRIPTION OF THE DRAWINGS
[0045] The drawings described herein are used to provide a further understanding of this specification and constitute a part of this specification. The exemplary embodiments and descriptions of this specification are used to explain this specification and do not constitute an improper limitation of this specification. In the drawings:
[0046] Figure 1 This is a flowchart of a positioning method in this manual;
[0047] Figure 2A A schematic diagram of a candidate location determination method provided in this specification;
[0048] Figure 2B A schematic diagram of another candidate location determination method provided in this specification;
[0049] Figure 3 A schematic diagram of a positioning device provided in this specification;
[0050] Figure 4 This is a schematic diagram of the structure of the unmanned driving equipment provided in this manual. DETAILED DESCRIPTION
[0051] To make the objectives, technical solutions, and advantages of this specification more clear, the following will clearly and completely describe the technical solutions of this specification in conjunction with the specific embodiments of this specification and the corresponding drawings. Obviously, the embodiments described are only part of the embodiments of this specification, not all of the embodiments. Based on the embodiments in this specification, all other embodiments obtained by ordinary technicians in this field without making any creative efforts are within the scope of protection of this specification.
[0052] In addition to matching the point cloud data collected in real time with the point cloud data of all parts in the entire point cloud map as mentioned above, when the object to be located is equipped with a high-precision Global Navigation Satellite System (GNSS), the posture data returned by the GNSS can be directly used to sample the point cloud data in the coordinate system of the point cloud map, and the point cloud data collected in real time by the object to be located can be aligned with the point cloud data sampled from the point cloud map to locate the posture of the object to be located.
[0053] Among them, since the point cloud map describes the scene in the positioning area in the form of point cloud, sampling in the point cloud map with a certain sampling pose means observing the scene in the point cloud map with the sampling pose in the point cloud map, and generating the observed scene described by the point cloud into a frame of point cloud data.
[0054] However, since the registration between point cloud data has high requirements on the similarity between point cloud data, that is, the deviation between the sampling pose and the pose of the object to be positioned when the point cloud data is collected cannot be too large, if the accuracy of the pose data output by GNSS cannot meet the registration requirements, it will often lead to registration failure, making it impossible to locate the object to be positioned.
[0055] In practical applications, the positioning accuracy of the GNSS carried by the object to be located is often affected by the environment in which the object is located. For example, when the object is operating in an urban canyon environment or under dense trees, where there is severe obstruction, the GNSS signal is weak, resulting in low accuracy in the GNSS output of the object's position and pose. In such cases, in order to obtain higher-precision position and pose data for the object to be located, it is usually necessary to incur additional operating costs and move the unmanned device to an open environment to receive GNSS signals for positioning.
[0056] In order to solve the above problems, this specification provides a positioning method, which can realize the positioning of the object to be positioned by performing alignment within a smaller range in the point cloud map under the condition of low positioning accuracy requirements for the positioning device.
[0057] The technical solutions provided by the embodiments of this specification are described in detail below with reference to the accompanying drawings.
[0058] Figure 1 The following is a flow chart of a positioning method in this specification, which specifically includes the following steps:
[0059] S100: Obtaining coarse positioning information of an object to be positioned, wherein the coarse positioning information includes at least a rough position of the object to be positioned; and collecting a point cloud frame around the object to be positioned as a positioning frame.
[0060] The positioning method provided in this specification is intended to locate the object to be located, that is, to determine the position and posture of the object to be located. It can be used to initialize the positioning of the object to be located in the point cloud map.
[0061] The object to be located may be an unmanned device, including a drone, an unmanned driving device (hereinafter referred to as an unmanned vehicle), etc. The unmanned vehicle referred to in this specification may include autonomous vehicles and vehicles with assisted driving capabilities. The unmanned vehicle may be a delivery vehicle used in the delivery field. For illustrative purposes only, the following description uses an unmanned vehicle as an example.
[0062] The execution subject of the positioning method proposed in this specification can be the object to be located itself, or it can be another control device that can transmit information with the object to be located and control the object to be located. The control device can be a server or a terminal device. When the control device is a server, the embodiments of this specification do not limit the control device to a distributed server or a clustered service area. When the control device is a terminal device, it can be any existing terminal device, such as a laptop, mobile phone, server, etc., and this specification does not impose any restrictions on this. For illustrative purposes only, the following parts of the embodiments of this specification are described using the object to be located itself as the execution subject.
[0063] The object to be located is equipped with at least a first device and a second device. The first device is a positioning device, such as a GNSS, and the second device is a detection device, such as a radar, specifically a lidar. In the embodiments of this specification, the first device is a GNSS and the second device is a lidar.
[0064] In the positioning method provided in this specification, the object to be positioned obtains coarse positioning information through the first device, wherein the coarse positioning information includes at least the rough position of the object to be positioned. Through the second device, the object to be positioned can collect point cloud data around itself in real time as a positioning frame.
[0065] Among them, the coarse positioning information is the positioning information of the object to be positioned returned by the first device. In one embodiment of this specification, the coarse positioning information obtained by the object to be positioned includes at least its own rough position, and the positioning frame is the data of the points on the surface of three-dimensional objects around itself obtained after processing the signal reflected by the second device. Specifically, when the second device is a laser radar carried by the object to be positioned, the laser radar usually includes a transmitter for emitting a light source and a receiver for receiving a reflected light beam. When working, the transmitter emits a laser beam, and the surface of the object irradiated by the laser beam will reflect the laser beam. The receiver collects the laser points returned from the surface of the object, and then based on information such as the propagation time of the laser point, the three-dimensional coordinates of the points on the surface of the object returning each laser point can be accurately calculated. Since the point cloud is the data of the points on the surface of the object obtained based on the laser points, it can also be considered that the points in the point cloud carry position data.
[0066] In one embodiment of this specification, the range of the first specified distance of the object to be located can be used as the surroundings of the object to be located (for example, within 20 meters of the object to be located). This embodiment of this specification does not limit this. Of course, in this embodiment of this specification, since the surrounding environment of the object to be located is limited by the detection range of the laser radar that detects the surrounding environment, the environment within the detection range of the laser radar can also be used as the surroundings of the object to be located.
[0067] In one embodiment of the present specification, the posture of the object to be positioned when obtaining coarse positioning information through the first device is the same as the posture when collecting surrounding point cloud data through the second device. Furthermore, the object to be positioned can simultaneously obtain coarse positioning information through the first device and collect surrounding point cloud data through the second device.
[0068] In one embodiment of this specification, there are requirements for the accuracy of the coarse positioning information obtained by the first device. When the accuracy of the coarse positioning information obtained by the first device is greater than a specified first accuracy threshold, the positioning method provided in this specification can use the data returned by the first device as the coarse positioning information. For example, when the first device is a GNSS, the accuracy of the GNSS can be set to be greater than the first accuracy threshold when the error of the GNSS is no more than 10 meters.
[0069] It should be noted that when sampling is performed directly in the point cloud map using the posture returned by the positioning device, and the sampled point cloud data can be directly aligned with the point cloud data collected in real time, the positioning accuracy of the positioning device is greater than the first accuracy threshold.
[0070] S102: Determine several candidate positions around the rough position, and for each candidate position, use the candidate position as a sampling position in the point cloud map, perform sampling in the pre-constructed point cloud map, generate several point cloud frames, and use the generated point cloud frames as candidate reference frames, wherein the sampling posture of each candidate reference frame generated using the candidate position as the sampling position is different.
[0071] In the embodiments of this specification, a point cloud map describes the scene within the positioning area in the form of a point cloud. Therefore, sampling in the point cloud map at a certain sampling pose means observing the scene in the point cloud map at the sampling pose in the point cloud map and generating a frame of point cloud data from the observed scene described by the point cloud. In one embodiment of this specification, the device to be positioned is located within the positioning area.
[0072] In the embodiment of this specification, after obtaining the rough position output by the first device, several candidate positions around the rough position are first determined. In one embodiment of this specification, the range of a second specified distance of the object to be located can be used as the surrounding area of the object to be located (for example, within 20 meters of the object to be located). Of course, the specific data value of the second specified distance is not limited in this embodiment of this specification. Specifically, this embodiment of this specification provides the following two methods for determining candidate positions:
[0073] The first method is to determine a number of concentric circles within a third specified distance from the rough position with the rough position as the center, and then determine a number of candidate positions on the concentric circles. Figure 2A In the figure, it is shown that when determining Figure 2A After the two concentric circles with the rough position of the object to be located as the center are drawn, the Figure 2A The eight candidate positions are shown on concentric circles.
[0074] The second method is to determine the first and second specified directions, and determine the positions with every fourth specified distance from the rough position in the first and second specified directions as candidate positions. Then, for each candidate position determined, determine the positions with every fifth specified distance from the candidate position in the third and fourth specified directions as candidate positions, wherein the first and second specified directions may be two opposite directions, the third and fourth specified directions may be two opposite directions, the fourth specified distance and the fifth specified distance may be the same or different, and the embodiments of this specification do not limit how to determine the specified directions and specified distances. Figure 2B For example, Figure 2B A method for determining a candidate position is shown, wherein: Figure 2B The position indicated by the solid dot in the center is the rough position, and the other unmarked solid dots are the candidate positions determined based on the rough position. Figure 2B As shown, positions at every fourth specified distance from the rough position in the first and second specified directions can be determined as candidate positions, and then, for each determined candidate position, positions at every fifth specified distance from the candidate position in the third and fourth specified directions can be determined as candidate positions, wherein the first, second, third, and fourth specified directions can be as shown in FIG. Figure 2B As shown in .
[0075] In addition, any other existing method can be used to determine candidate positions around the rough position, and the embodiments of this specification do not limit this. For ease of description, this specification below uses the second method of determining candidate positions as an example.
[0076] For each candidate position determined, sampling is performed in the pre-constructed point cloud map using the candidate position as a sampling position in the point cloud map to generate a plurality of point cloud frames, and the generated point cloud frames are used as candidate reference frames. In one embodiment of this specification, each candidate reference frame generated using the candidate position as the sampling position has a different sampling pose.
[0077] Any existing method can be used to determine the sampling posture of each candidate reference frame when sampling is performed with the candidate position as the sampling position. For example, several postures can be pre-specified and sampling can be performed with the specified postures, etc. In this case, the postures specified for each candidate position can be the same or different.
[0078] Then, several candidate reference frames are obtained by any of the above methods, wherein sampling is performed in the point cloud map at a sampling pose, that is, the scene in the positioning area described by the point cloud in the point cloud map is observed at the sampling pose, and the scene described by the observed point cloud is generated as a candidate reference frame.
[0079] S104: For each candidate reference frame, compare the point cloud included in the candidate reference frame with the point cloud included in the positioning frame, and determine the matching degree between the candidate reference frame and the positioning frame.
[0080] In the embodiments of this specification, both the positioning frame and the candidate reference frame contain point clouds, wherein each point cloud corresponds to its own shape and structural features. Therefore, the point clouds in the positioning frame and the candidate reference frame can be compared, and the matching degree between the positioning frame and the candidate reference frame can be determined based on the matching degree of the point clouds in the positioning frame and the candidate reference frame.
[0081] For example, for a pair of point clouds located in the positioning frame and the candidate reference frame respectively, the transformation relationship between the two point clouds can be found first so that the overlap between the two transformed point clouds is maximized, wherein the transformation relationship can be a rotation and translation matrix of one point cloud relative to the other point cloud. Generally speaking, for one of the point clouds, if there is a point in the other point cloud in the neighborhood of a point in the point cloud, it can be considered that there is a pair of points in the two point clouds that overlap. Then, the ratio of the number of points in the point cloud that overlap with the other point cloud to the number of all points in the point cloud can be used as the overlap of a pair of point clouds.
[0082] For each candidate reference frame, the degree of matching between the candidate reference frame and the positioning frame can be determined based on the degree of overlap between each point cloud in the candidate reference frame and each point cloud in the positioning frame. The higher the degree of overlap between each point cloud in the candidate reference frame and each point cloud in the positioning frame, the higher the degree of matching between the candidate reference frame and the positioning frame.
[0083] Of course, the degree of match between the candidate reference frame and the positioning frame can also be determined by other methods. For example, the degree of match between the candidate reference frame and the positioning frame can be determined based on the similarity between the shapes of each point cloud in the candidate reference frame and the shapes of each point cloud in the positioning frame. This specification does not impose any restrictions on this.
[0084] S106: Selecting a target reference frame from each candidate reference frame according to the matching degree between each candidate reference frame and the positioning frame, and determining the pose information of the object to be positioned based on the sampling pose corresponding to the target reference frame in the point cloud map.
[0085] In the embodiment of this specification, after determining the matching degree between each candidate reference frame and the positioning frame, a target reference frame can be selected from the candidate reference frames. Specifically, the candidate reference frame with the highest matching degree with the positioning frame can be selected as the target reference frame.
[0086] In one embodiment of the present specification, before determining the target reference frame, it is also possible to determine, based on the degree of match between each candidate reference frame and the positioning frame, whether each candidate reference frame includes at least one candidate reference frame whose degree of match with the positioning frame is greater than a preset matching degree threshold. If so, the candidate reference frame with the greatest degree of match with the positioning frame among the candidate reference frames is used as the target reference frame. If not, the coarse positioning information of the object to be positioned is reacquired, and the point cloud frames around the object to be positioned are recollected, so as to re-locate the posture of the device to be positioned using the positioning method provided in this specification according to any of the above methods.
[0087] Of course, the above judgment may not be performed, and the frame with the greatest matching degree may be directly selected from the candidate reference frames as the target reference frame.
[0088] Then, after selecting a target reference frame using any of the aforementioned methods, the pose information of the object to be located can be determined based on the sampled pose corresponding to the target reference frame in the point cloud map. Specifically, the pose information of the object to be located can be solved based on the difference between the target reference frame and the positioning frame, and based on the sampled pose corresponding to the target reference frame in the point cloud map.
[0089] Based on the above Figure 1 According to the method, the object to be positioned first obtains its own coarse positioning information and collects point cloud frames around itself, and takes several candidate positions around the coarse position contained in the coarse positioning information as sampling positions, performs sampling in a pre-constructed point cloud map to obtain several candidate reference frames, compares the positioning frame with each candidate reference frame, and selects a target reference frame from each candidate reference frame according to the matching degree between each candidate reference frame and the positioning frame obtained by the comparison, and then locates the object to be positioned according to the sampling pose of the target reference frame in the point cloud map. It can be seen that after several sampling and comparisons, it is only necessary to align the positioning frame with the target reference frame, and the pose information of the object to be positioned can be determined based on the sampling position of the target reference frame in the point cloud map, thereby narrowing the registration range and reducing the computing resources required for registration.
[0090] In one embodiment of the present specification, after determining the target reference frame, the pose information of the object to be located can be determined based on the sampling pose corresponding to the target reference frame in the point cloud map. Specifically, based on the difference between the point cloud contained in the target reference frame and the point cloud contained in the positioning frame, the pose information of the object to be located when the point cloud in the positioning frame is projected into the coordinate system of the point cloud map can be determined.
[0091] Furthermore, the point cloud contained in the target reference frame and the point cloud contained in the positioning frame can be aligned to obtain the transformation relationship between the point cloud contained in the positioning frame and the point cloud contained in the target reference frame; according to the sampling posture of the target reference frame in the point cloud map, and the transformation relationship between the point cloud contained in the positioning frame and the point cloud contained in the target reference frame, the posture information of the object to be positioned is determined, wherein the transformation relationship can be a rotation and translation matrix.
[0092] In one embodiment of the present specification, before determining the posture information of the object to be positioned in the above manner, the posture information of the object to be positioned can be determined not directly based on the transformation relationship between the two, but first determine whether the difference between the point cloud contained in the positioning frame and the point cloud contained in the target reference frame is greater than a preset point cloud difference threshold, for example, the parameters in the rotation matrix and / or translation matrix are greater than the specified parameter difference threshold. If so, the coarse positioning information of the object to be positioned can be re-acquired, and the point cloud frame around the object to be positioned can be re-collected. If not, the posture information of the object to be positioned can be determined based on the transformation relationship between the point cloud contained in the positioning frame and the point cloud contained in the target reference frame, based on the sampling posture corresponding to the target reference frame in the point cloud map.
[0093] In addition, since the sampling pose needs to be determined, sampling can be performed in the point cloud map and generating candidate reference frames. The above part of the embodiment of this specification describes how to determine the candidate position. Below, the embodiment of this specification exemplifies a method for determining the candidate pose.
[0094] After obtaining the rough position, the rough position can be used as the sampling position in the point cloud map, sampling can be performed in the pre-built point cloud map to generate several point cloud frames, and the generated point cloud frames are used as perspective reference frames, where the acquisition posture of each perspective reference frame is different.
[0095] Exemplarily, when the object to be located is an unmanned vehicle, since the unmanned vehicle is traveling on a road, it can be assumed that the pitch angle and roll angle of the unmanned vehicle are both 0°. Then, the initial heading angle can be determined first, and then an initial posture with the heading angle, pitch angle, and roll angle being 0° can be determined, and the initial posture is used as the sampling posture. Based on the point cloud map, a perspective reference frame is generated with the rough position as the sampling position and the initial posture as the sampling posture. Then, the heading angle is rotated by a specified angle relative to the initial heading angle to obtain another sampling posture. With the sampling posture and the rough position as the sampling position, another perspective reference frame is generated based on the point cloud map. Then, the specified angle is continued to be rotated on the basis of the heading angle until the heading angle is rotated back to the initial heading angle, and several perspective reference frames are obtained in the above process.
[0096] Of course, other methods can also be used to generate multiple perspective reference frames. For example, the heading angle, pitch angle, and roll angle can be pre-set to obtain multiple sampling postures. The rough position is used as the sampling position, and sampling is performed in the point cloud map based on each sampling posture to obtain multiple perspective reference frames. The embodiments of this specification do not limit how to generate the perspective reference frames.
[0097] Then, after generating several perspective reference frames by any of the above methods, for each perspective reference frame, any of the above methods can be used to compare the point cloud contained in the perspective reference frame with the point cloud contained in the positioning frame, and determine the matching degree between the perspective reference frame and the positioning frame.
[0098] Then, at least one candidate pose can be determined based on the degree of match between each view reference frame and the positioning frame, as well as the corresponding sampling pose of each view reference frame in the point cloud map. For each candidate pose, sampling is performed in the pre-built point cloud map, using the candidate position as the sampling position in the point cloud map and the candidate pose as the sampling pose in the point cloud map.
[0099] That is, after determining each candidate position and each candidate pose, a sampling pose with the candidate position as the sampling position and the candidate pose as the sampling pose can be determined for each candidate position and each candidate pose, thereby obtaining a plurality of sampling poses. Sampling is then performed based on the coordinate system of the point cloud map at each sampling pose to obtain a generated candidate reference frame.
[0100] In addition, in addition to selecting candidate postures from the sampled postures of each view reference frame through the matching degree obtained by comparing the view reference frame with the positioning frame, other specified postures can also be used as candidate postures.
[0101] For example, when the coarse positioning information of the object to be positioned includes a rough posture, the rough posture can be used as the designated posture. For another example, when the object to be positioned is an unmanned vehicle, the lane line direction of the road where the object to be positioned is located can be determined, and the posture in which the angle between the heading of the object to be positioned and the lane line direction is zero can be used as the designated posture, and so on.
[0102] In the case where the movement speed of the object to be located is lower than a preset speed threshold, for example, when initializing the positioning of the object to be located, in order to improve the positioning accuracy, any of the above methods can be used multiple times to determine the posture information of a specified number of devices to be located, and then determine whether the difference between the determined posture information of the objects to be located is greater than a preset posture difference threshold. If so, re-determine the posture information of the specified number of objects to be located; if not, determine the target posture of the object to be located based on the determined posture information of the objects to be located.
[0103] The embodiments of this specification do not limit the specified number and posture difference threshold.
[0104] Furthermore, after the object to be located is located using the aforementioned method, the object can be positioned during motion using the detection equipment carried by the object using a point cloud map. However, if a positioning anomaly occurs, for example, because the point cloud map describes the scene within the positioning area, when the object to be located is detected to be outside the positioning area, the position and pose information of the object to be located cannot be output through registration. In this case, the position and pose information of the object to be located can be re-located using the aforementioned method of this specification.
[0105] The above is a positioning method provided in one or more embodiments of this specification. Based on the same idea, this specification also provides a corresponding positioning device, such as Figure 3 shown.
[0106] Figure 3 This is a schematic diagram of a positioning device provided in this specification, which includes:
[0107] The coarse positioning module 300 is configured to obtain coarse positioning information of the object to be positioned, wherein the coarse positioning information includes at least a rough position of the object to be positioned; and collect a point cloud frame around the object to be positioned as a positioning frame;
[0108] The sampling module 302 is configured to determine a plurality of candidate locations around the rough location, and for each candidate location, use the candidate location as a sampling location in the point cloud map, perform sampling in the pre-constructed point cloud map, generate a plurality of point cloud frames, and use the generated point cloud frames as candidate reference frames, wherein each candidate reference frame generated using the candidate location as the sampling location has a different sampling pose;
[0109] A matching module 304 is configured to compare, for each candidate reference frame, a point cloud contained in the candidate reference frame with a point cloud contained in the positioning frame, and determine a degree of matching between the candidate reference frame and the positioning frame;
[0110] The pose determination module 306 is used to select a target reference frame from each candidate reference frame according to the matching degree between each candidate reference frame and the positioning frame, and determine the pose information of the object to be positioned based on the sampling pose corresponding to the target reference frame in the point cloud map.
[0111] Optionally, the sampling module 302 is specifically used to take the rough position as the sampling position in the point cloud map, perform sampling in a pre-constructed point cloud map, generate several point cloud frames, and use the generated point cloud frames as perspective reference frames, wherein the acquisition posture of each perspective reference frame is different; for each perspective reference frame, compare the point cloud contained in the perspective reference frame with the point cloud contained in the positioning frame, and determine the matching degree between the perspective reference frame and the positioning frame; determine at least one candidate posture based on the matching degree between each perspective reference frame and the positioning frame, and the sampling posture corresponding to each perspective reference frame in the point cloud map; for each candidate posture, take the candidate position as the sampling position in the point cloud map, and take the candidate posture as the sampling posture in the point cloud map, and perform sampling in the pre-constructed point cloud map.
[0112] Optionally, the rough posture included in the coarse positioning information of the object to be positioned is determined as the designated posture; and / or, when the object to be positioned is an unmanned vehicle, the lane line direction of the road where the object to be positioned is located is determined, and the posture in which the angle between the heading of the object to be positioned and the lane line direction is zero is used as the designated posture; the sampling module 302 is specifically used to determine the perspective reference frame with the highest matching degree with the positioning frame, and the sampling posture of the perspective reference frame in the point cloud map and the designated posture are used as candidate postures.
[0113] Optionally, the posture determination module 306 is specifically used to determine, based on the matching degree between each candidate reference frame and the positioning frame, whether each candidate reference frame includes at least one candidate reference frame whose matching degree with the positioning frame is greater than a preset matching degree threshold; if so, the candidate reference frame with the greatest matching degree with the positioning frame among the candidate reference frames is used as the target reference frame; if not, the coarse positioning information of the object to be positioned is re-acquired, and the point cloud frame around the object to be positioned is re-collected.
[0114] Optionally, the posture determination module 306 is specifically used to align the point cloud contained in the target reference frame and the point cloud contained in the positioning frame to obtain a transformation relationship between the point cloud contained in the positioning frame and the point cloud contained in the target reference frame; and determine the posture information of the object to be positioned according to the sampling posture of the target reference frame in the point cloud map and the transformation relationship between the point cloud contained in the positioning frame and the point cloud contained in the target reference frame.
[0115] Optionally, before determining the posture information of the object to be positioned, the posture determination module 306 is specifically used to determine whether the difference between the point cloud contained in the positioning frame and the point cloud contained in the target reference frame is greater than a preset point cloud difference threshold based on the transformation relationship between the point cloud contained in the positioning frame and the point cloud contained in the target reference frame; if so, re-acquire the coarse positioning information of the object to be positioned and re-collect the point cloud frame around the object to be positioned; if not, determine the posture information of the object to be positioned based on the transformation relationship between the point cloud contained in the positioning frame and the point cloud contained in the target reference frame and based on the sampling posture corresponding to the target reference frame in the point cloud map.
[0116] Optionally, the coarse positioning module 300 is specifically used to determine the posture information of a specified number of objects to be positioned when the movement speed of the objects to be positioned is lower than a preset speed threshold; judge whether the difference between the determined posture information of the objects to be positioned is greater than a preset posture difference threshold; if so, re-determine the posture information of the specified number of objects to be positioned; if not, determine the target posture of the objects to be positioned based on the determined posture information of the objects to be positioned.
[0117] This specification also provides a computer-readable storage medium, which stores a computer program. The computer program can be used to execute the above positioning method.
[0118] This manual also provides Figure 4 The structural diagram of the unmanned driving equipment is shown in FIG. Figure 4 As shown, at the hardware level, the electronic device includes a processor, an internal bus, memory, and non-volatile storage, and may also include other hardware required for its operations. The processor reads the corresponding computer program from the non-volatile storage into the memory and then runs it to implement the above-mentioned positioning method.
[0119] Of course, in addition to software implementation, this specification does not exclude other implementation methods, such as logic devices or a combination of software and hardware, etc. That is to say, the execution subject of the following processing flow is not limited to each logic unit, but can also be hardware or logic devices.
[0120] In the 1990s, technological improvements could be clearly distinguished as either hardware improvements (for example, improvements to circuit structures like diodes, transistors, and switches) or software improvements (improvements to process flows). However, with the advancement of technology, many process flow improvements today can now be considered direct improvements to hardware circuit structures. Designers almost always create the corresponding hardware circuit structure by programming the improved process flow into the hardware circuit. Therefore, it cannot be said that a process flow improvement cannot be implemented using hardware modules. For example, a programmable logic device (PLD), such as a field programmable gate array (FPGA), is an integrated circuit whose logical function is determined by user programming. Designers can "integrate" a digital system on a PLD through their own programming, without having to hire a chip manufacturer to design and manufacture a dedicated integrated circuit chip. Moreover, nowadays, instead of manually fabricating integrated circuit chips, this programming is mostly done using "logic compiler" software. This is similar to the software compiler used when developing programs. Before compilation, the original code must also be written in a specific programming language, called a hardware description language (HDL). There is not just one HDL, but many, such as ABEL (Advanced Boolean Expression Language), AHDL (Altera Hardware Description Language), Confluence, CUPL (Cornell University Programming Language), HDCal, JHDL (Java Hardware Description Language), Lava, Lola, MyHDL, PALASM, RHDL (Ruby Hardware Description Language), etc. The most commonly used ones are VHDL (Very-High-Speed Integrated Circuit Hardware Description Language) and Verilog. Those skilled in the art will also understand that by simply programming the method flow in one of these hardware description languages and then programming it into an integrated circuit, a hardware circuit that implements the logic method flow can be easily obtained.
[0121] The controller can be implemented in any suitable manner. For example, the controller can take the form of a microprocessor or processor and a computer-readable medium storing computer-readable program code (e.g., software or firmware) executable by the (micro)processor, logic gates, switches, application-specific integrated circuits (ASICs), programmable logic controllers, and embedded microcontrollers. Examples of controllers include, but are not limited to, the following microcontrollers: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, and Silicone Labs C8051F320. The memory controller can also be implemented as part of the control logic of the memory. Those skilled in the art will also know that in addition to implementing the controller in a purely computer-readable program code format, the controller can be implemented in the form of logic gates, switches, application-specific integrated circuits, programmable logic controllers, and embedded microcontrollers by logically programming the method steps. Therefore, such a controller can be considered a hardware component, and the devices included therein for implementing various functions can also be considered as structures within the hardware component. Or even, the devices for implementing various functions can be considered as both software modules that implement the method and structures within the hardware component.
[0122] The systems, devices, modules, or units described in the above embodiments may be implemented by computer chips or entities, or by products having certain functions. A typical implementation device is a computer. Specifically, the computer may be, for example, a personal computer, a laptop computer, a cellular phone, a camera phone, a smartphone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or a combination of any of these devices.
[0123] For the convenience of description, the above devices are described as being divided into various units according to their functions. Of course, when implementing this specification, the functions of each unit can be implemented in the same or multiple software and / or hardware.
[0124] It will be understood by those skilled in the art that embodiments of the present invention may be provided as methods, systems, or computer program products. Thus, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware. Furthermore, the present invention may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to magnetic disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0125] The present invention is described with reference to flowcharts and / or block diagrams of methods, devices (systems), and computer program products according to embodiments of the present invention. It should be understood that each process and / or block in the flowcharts and / or block diagrams, as well as combinations of processes and / or blocks in the flowcharts and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device generate instructions for implementing the processes in the flowcharts and / or block diagrams. Figure 1 a process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.
[0126] These computer program instructions may also be stored in a computer readable memory that can direct a computer or other programmable data processing device to work in a specific manner, so that the instructions stored in the computer readable memory produce an article of manufacture comprising an instruction device, which implements the process Figure 1 a process or multiple processes and / or boxes Figure 1 The function specified in one or more boxes.
[0127] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operational steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing the instructions executed on the computer or other programmable device for implementing the process. Figure 1 a process or multiple processes and / or boxes Figure 1 The steps for the function specified in one or more boxes.
[0128] In a typical configuration, a computing device includes one or more processors (CPUs), input / output interfaces, network interfaces, and memory.
[0129] Memory may include non-permanent storage in a computer-readable medium, random access memory (RAM) and / or non-volatile memory in the form of read-only memory (ROM) or flash RAM. Memory is an example of a computer-readable medium.
[0130] Computer-readable media includes permanent and non-permanent, removable and non-removable media that can be implemented by any method or technology to store information. The information can be computer-readable instructions, data structures, program modules or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disc read-only memory (CD-ROM), digital versatile disc (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device. As defined herein, computer-readable media does not include transitory computer-readable media (transitory media), such as modulated data signals and carrier waves.
[0131] It should also be noted that the terms "comprises," "includes," or any other variations thereof are intended to encompass non-exclusive inclusion, such that a process, method, commodity, or apparatus that includes a series of elements includes not only those elements but also other elements not explicitly listed, or includes elements inherent to such process, method, commodity, or apparatus. In the absence of further limitations, an element defined by the phrase "comprises a ..." does not exclude the presence of other identical elements in the process, method, commodity, or apparatus that includes the element.
[0132] Those skilled in the art will appreciate that the embodiments of this specification may be provided as methods, systems, or computer program products. Thus, this specification may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware. Furthermore, this specification may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to magnetic disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0133] This specification may be described in the general context of computer-executable instructions, such as program modules, executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, and the like that perform specific tasks or implement specific abstract data types. This specification may also be practiced in distributed computing environments where tasks are performed by remote processing devices connected through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media, including storage devices.
[0134] The various embodiments in this specification are described in a progressive manner. Similar parts between the various embodiments can be referred to in conjunction with each other. Each embodiment focuses on the differences between the other embodiments. In particular, the system embodiments are generally similar to the method embodiments, so the description is relatively simple. For relevant parts, refer to the description of the method embodiments.
[0135] The foregoing is merely an example of the present invention and is not intended to limit the present invention. Various modifications and variations are possible for those skilled in the art. Any modifications, equivalent substitutions, or improvements made within the spirit and principles of the present invention are intended to be included within the scope of the claims of the present invention.
Claims
1. A positioning method, characterized in that: include: Acquire coarse positioning information of the object to be positioned, wherein the coarse positioning information includes at least a rough position of the object to be positioned; collect a point cloud frame around the object to be positioned as a positioning frame; Determine several candidate positions around the coarse position, for each candidate position, use the candidate position as a sampling position in the point cloud map, perform sampling in the pre-constructed point cloud map, generate several point cloud frames, and use the generated point cloud frames as candidate reference frames, wherein the sampling posture of each candidate reference frame generated with the candidate position as the sampling position is different, use the candidate position as the sampling position in the point cloud map, perform sampling in the pre-constructed point cloud map, specifically including: use the coarse position as the sampling position in the point cloud map, perform sampling in the pre-constructed point cloud map, generate several point cloud frames, and use the generated point cloud frames as candidate reference frames A point cloud frame is used as a perspective reference frame, wherein the acquisition posture of each perspective reference frame is different. For each perspective reference frame, the point cloud contained in the perspective reference frame is compared with the point cloud contained in the positioning frame, and the matching degree between the perspective reference frame and the positioning frame is determined. According to the matching degree between each perspective reference frame and the positioning frame, and the sampling posture corresponding to each perspective reference frame in the point cloud map, at least one candidate posture is determined; for each candidate posture, the candidate position is used as the sampling position in the point cloud map, and the candidate posture is used as the sampling posture in the point cloud map, and sampling is performed in the pre-constructed point cloud map; For each candidate reference frame, comparing the point cloud contained in the candidate reference frame with the point cloud contained in the positioning frame, and determining a matching degree between the candidate reference frame and the positioning frame; According to the matching degree between each candidate reference frame and the positioning frame, a target reference frame is selected from each candidate reference frame, and the pose information of the object to be positioned is determined based on the sampling pose corresponding to the target reference frame in the point cloud map.
2. The method according to claim 1, wherein The method further comprises: Determining the rough posture included in the rough positioning information of the object to be positioned as the designated posture; and / or, When the object to be located is an unmanned vehicle, determining the lane line direction of the road where the object to be located is located, and taking the posture in which the angle between the heading of the object to be located and the lane line direction is zero as the designated posture; Determining at least one candidate pose based on the matching degree between each perspective reference frame and the positioning frame, and the sampling pose of each perspective reference frame in the point cloud map, specifically including: A perspective reference frame having the highest matching degree with the positioning frame is determined, and a sampling posture and a designated posture of the perspective reference frame in the point cloud map are used as candidate postures.
3. The method according to claim 1, wherein Selecting a target reference frame from each candidate reference frame according to a matching degree between each candidate reference frame and the positioning frame, specifically comprising: determining, based on the matching degrees between each candidate reference frame and the positioning frame, whether each candidate reference frame includes at least one candidate reference frame whose matching degree with the positioning frame is greater than a preset matching degree threshold; If so, the candidate reference frame with the greatest matching degree with the positioning frame among the candidate reference frames is used as the target reference frame; if not, the coarse positioning information of the object to be positioned is reacquired, and the point cloud frame around the object to be positioned is recollected.
4. The method according to claim 1, wherein Determining the pose information of the object to be located based on the sample pose corresponding to the target reference frame in the point cloud map specifically includes: Registering the point cloud contained in the target reference frame and the point cloud contained in the positioning frame to obtain a transformation relationship between the point cloud contained in the positioning frame and the point cloud contained in the target reference frame; The pose information of the object to be positioned is determined according to the sampling pose of the target reference frame in the point cloud map and the transformation relationship between the point cloud contained in the positioning frame and the point cloud contained in the target reference frame.
5. The method according to claim 4, wherein Before determining the position and posture information of the object to be located, the method further includes: determining, based on a transformation relationship between the point cloud contained in the positioning frame and the point cloud contained in the target reference frame, whether a difference between the point cloud contained in the positioning frame and the point cloud contained in the target reference frame is greater than a preset point cloud difference threshold; If so, reacquire the coarse positioning information of the object to be positioned and recollect the point cloud frame around the object to be positioned. If not, determine the pose information of the object to be positioned based on the transformation relationship between the point cloud contained in the positioning frame and the point cloud contained in the target reference frame and the sampling pose corresponding to the target reference frame in the point cloud map.
6. The method according to claim 1, wherein The method further comprises: When the movement speed of the object to be located is lower than a preset speed threshold, determining the position and posture information of a specified number of the objects to be located; Determining whether the difference between the determined pose information of the object to be located is greater than a preset pose difference threshold; If yes, re-determine the position and posture information of a specified number of the objects to be positioned; if no, determine the target position and posture of the objects to be positioned according to the determined position and posture information of the objects to be positioned.
7. A positioning device, characterized in that: The device specifically includes: A coarse positioning module is configured to obtain coarse positioning information of the object to be positioned, wherein the coarse positioning information includes at least a rough position of the object to be positioned; and collect a point cloud frame around the object to be positioned as a positioning frame; The sampling module is used to determine several candidate positions around the rough position, and for each candidate position, the candidate position is used as the sampling position in the point cloud map, sampling is performed in the pre-built point cloud map, and several point cloud frames are generated, and the generated point cloud frames are used as candidate reference frames, wherein the sampling posture of each candidate reference frame generated by taking the candidate position as the sampling position is different, and the candidate position is used as the sampling position in the point cloud map, and sampling is performed in the pre-built point cloud map, specifically including: taking the rough position as the sampling position in the point cloud map, sampling in the pre-built point cloud map, generating several point cloud frames, and The generated point cloud frame is used as a perspective reference frame, wherein the acquisition posture of each perspective reference frame is different. For each perspective reference frame, the point cloud contained in the perspective reference frame is compared with the point cloud contained in the positioning frame, and the matching degree between the perspective reference frame and the positioning frame is determined. According to the matching degree between each perspective reference frame and the positioning frame, and the sampling posture corresponding to each perspective reference frame in the point cloud map, at least one candidate posture is determined; for each candidate posture, the candidate position is used as the sampling position in the point cloud map, and the candidate posture is used as the sampling posture in the point cloud map, and sampling is performed in the pre-constructed point cloud map; a matching module, configured to compare, for each candidate reference frame, a point cloud contained in the candidate reference frame with a point cloud contained in the positioning frame, and determine a degree of matching between the candidate reference frame and the positioning frame; The pose determination module is used to select a target reference frame from each candidate reference frame according to the matching degree between each candidate reference frame and the positioning frame, and determine the pose information of the object to be positioned based on the sampling pose corresponding to the target reference frame in the point cloud map.
8. A computer-readable storage medium, characterized in that The storage medium stores a computer program, and when the computer program is executed by a processor, the method according to any one of claims 1 to 6 is implemented.
9. An unmanned driving device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein: When the processor executes the program, the method according to any one of claims 1 to 6 is implemented.
Citation Information
Patent Citations
Unmanned vehicle positioning method and system
CN111505662A
Equipment pose determination method and device, storage medium and electronic device
CN113096181A