WO2022253113A1 - 定位方法、装置、电子设备和存储介质 - Google Patents
定位方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- WO2022253113A1 WO2022253113A1 PCT/CN2022/095453 CN2022095453W WO2022253113A1 WO 2022253113 A1 WO2022253113 A1 WO 2022253113A1 CN 2022095453 W CN2022095453 W CN 2022095453W WO 2022253113 A1 WO2022253113 A1 WO 2022253113A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- grid
- map
- semantic
- target
- pose
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 91
- 230000004807 localization Effects 0.000 title abstract description 4
- 238000011156 evaluation Methods 0.000 claims description 148
- 230000000875 corresponding effect Effects 0.000 claims description 98
- 230000006870 function Effects 0.000 claims description 25
- 238000005070 sampling Methods 0.000 claims description 25
- 238000004422 calculation algorithm Methods 0.000 claims description 17
- 238000013519 translation Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 10
- 230000002596 correlated effect Effects 0.000 claims description 8
- 238000012795 verification Methods 0.000 claims description 8
- 230000001276 controlling effect Effects 0.000 claims description 6
- 230000004044 response Effects 0.000 claims 2
- 238000001514 detection method Methods 0.000 description 41
- 238000004364 calculation method Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 6
- 238000010276 construction Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 238000004091 panning Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/005—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 with correlation of navigation data from several sources, e.g. map or contour matching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
- G06T17/205—Re-meshing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
Definitions
- the present disclosure relates to the technical field of positioning, for example, to a positioning method, device, electronic equipment, and storage medium.
- the real-time positioning and map construction Simultaneous Localization And Mapping, SLAM
- SLAM Simultaneous Localization And Mapping
- 2D two-dimensional
- the loop detection module is used to compare the local laser point cloud of the current position with the historical map. Match the laser point cloud in the robot, judge whether the current position of the robot is the position it has passed, and send the detected loopback pose to the backend.
- the 2D laser SLAM algorithm uses the matching between laser point clouds for loop detection. Due to the limited information provided by the laser point cloud, it is prone to mismatching, which leads to large errors in map construction, resulting in a high false detection rate for loop detection. , which cannot meet the positioning requirements.
- the disclosure provides a positioning method, device, electronic equipment and storage medium, so as to reduce the false detection rate in the positioning process.
- the present disclosure provides a positioning method, including:
- each grid of the global semantic grid map records the probability of the target semantic object in the grid value
- a target pose is determined according to the laser point cloud map and the set of candidate poses, wherein the target pose includes a loop closure pose and/or a relocation pose.
- the present disclosure also provides a positioning device, including:
- the map acquisition module is configured to acquire the target local semantic point cloud map, the global semantic grid map and the laser point cloud map of the current position, wherein the grid memory is recorded in each grid of the global semantic grid map Probability value at the target semantic object;
- the candidate pose recognition module is configured to perform pose recognition based on the target local semantic point cloud map and the global semantic grid map to obtain a candidate pose set;
- the target pose determination module is configured to determine a target pose according to the laser point cloud map and the set of candidate poses, wherein the target pose includes a loop closure pose and/or a relocation pose.
- the present disclosure also provides an electronic device, comprising:
- processors one or more processors
- memory configured to store one or more programs
- the one or more processors are made to implement the above positioning method.
- the present disclosure also provides a computer-readable storage medium, on which a computer program is stored, and when the program is executed by a processor, the above positioning method is realized.
- FIG. 1 is a schematic flowchart of a positioning method provided by an embodiment of the present disclosure
- FIG. 2 is a schematic flowchart of another positioning method provided by an embodiment of the present disclosure.
- FIG. 3 is a schematic flowchart of another positioning method provided by an embodiment of the present disclosure.
- FIG. 4 is a structural block diagram of a positioning device provided by an embodiment of the present disclosure.
- FIG. 5 is a schematic structural diagram of an electronic device provided by an embodiment of the present disclosure.
- the term “comprise” and its variations are open-ended, ie “including but not limited to”.
- the term “based on” means “based at least in part on”.
- the term “one embodiment” means “at least one embodiment”; the term “another embodiment” means “at least one further embodiment”; the term “some embodiments” means “at least some embodiments.” Relevant definitions of other terms will be given in the description below.
- Fig. 1 is a schematic flowchart of a positioning method provided by an embodiment of the present disclosure.
- the method can be performed by a positioning device, wherein the device can be implemented by software and/or hardware, and can be configured in a device that needs to be performed, for example, the device can be configured in a robot.
- the positioning method provided by the embodiments of the present disclosure is applicable to the scenario of performing loop closure detection and/or relocation. As shown in Figure 1, the positioning method provided in this embodiment may include:
- the positioning method provided in this embodiment can be applied to perform relocation and loopback detection on any device that requires relocation/loopback detection, especially for relocation/loopback detection of robots.
- the loopback detection is taken as an example for description.
- the semantic point cloud map can be a two-dimensional map composed of semantic point clouds, which can be a multi-channel map, and each channel corresponds to a category of semantic objects, that is, point clouds of different categories of semantic objects can be located in different channels.
- the local semantic point cloud map of the target can be a point cloud map composed of semantic point clouds collected by the robot within a certain distance (such as 15m, etc.) near the current position.
- the global semantic grid map can be a grid map corresponding to the global semantic point cloud map of the robot in the current scene.
- the global semantic grid map has multiple channels, and the probability value recorded in each grid of each channel can be is the probability that there is a semantic object of the channel corresponding to the semantic category in the corresponding grid.
- the laser point cloud map may be a two-dimensional map composed of laser point clouds, which may include a local laser point cloud map and/or a global laser point cloud map.
- the local laser point cloud map can be a point cloud map composed of laser point clouds collected by the robot within a certain distance near the current position, and the global laser point cloud map can be used by the robot when navigating in the current scene.
- the robot can collect a frame of laser point cloud at preset time intervals or at intervals of set distances, and extract points whose local curvature is smaller than the threshold in multiple frames of laser point clouds collected within a certain distance range , as the plane feature points, and according to the pose of the robot when collecting each frame of laser point cloud, the two-dimensional coordinates of each plane feature point in the map coordinate system are obtained, and then the laser point cloud map of the robot is obtained.
- the robot can also use the image acquisition device to collect images during operation, perform object recognition and semantic segmentation on the collected images, and estimate the coordinates of the center point of the foreground semantic object in the image and the 3D point cloud of the background semantic object.
- the preset time and the set distance can be set as required, such as the preset time can be set to 0.5s or 1s, etc., the set distance can be set to 0.4m or 0.5m, etc.;
- the foreground semantic object can be Countable objects, such as tables or chairs;
- background semantic objects can be uncountable objects, such as walls or passable areas.
- the robot can obtain the semantic point cloud collected by the robot within a certain distance range (including the current position) to form the local semantic point cloud map of the target when the current condition meets the trigger condition of positioning , the global semantic grid map corresponding to the global semantic map when the robot performs loopback detection/relocation, and the laser point cloud map of the robot (such as the local laser point cloud map collected by the robot within a certain distance nearby and/or the robot performs loopback Global laser point cloud map at detection/relocalization).
- only one level-1 global semantic grid map may be acquired, or multiple global semantic grid maps of different levels may be acquired, so that in subsequent operations based on the acquired one or more global semantic grid maps,
- the grid map determines the candidate poses, which is not limited in this embodiment.
- multiple global semantic grid maps of different levels can be obtained, and in subsequent operations based on multiple global semantic grid maps
- the map determines the candidate pose, and the acquisition of the target local semantic point cloud map, the global semantic grid map and the laser point cloud map of the current position includes: obtaining the target local semantic point cloud map of the current position, at least two levels of global semantic grid grid map and laser point cloud map, where the resolutions of global semantic grid maps at different levels are different.
- the at least two-level global semantic grid map and the laser point cloud map before the acquisition of the local semantic point cloud map of the target at the current location, the at least two-level global semantic grid map and the laser point cloud map, it also includes: generating at least two-level semantic point cloud maps according to the global semantic point cloud map Global Semantic Raster Map.
- the global semantic point cloud map can be a multi-channel map, and each channel corresponds to a semantic object of a semantic category.
- the global semantic point cloud map can be obtained in a corresponding way according to the different tasks currently performed. If the currently performed task For loop detection, the semantic point cloud map being constructed by the robot can be used as the global semantic point cloud map; if the current task is relocation, the pre-saved global semantic point cloud map of the current environment can be obtained from the map library .
- the robot Before the robot performs loop detection/relocation, it can obtain the global semantic point cloud map of the current task, and divide each channel of the global semantic point cloud map into grids according to the preset size to obtain the global semantics of the robot Grid map, for example, the global semantic point cloud map of each channel can be divided into grids according to the grid size corresponding to the preset grid map of each level, and the corresponding semantic category of the corresponding channel can be calculated in each grid.
- the probability of semantic objects so as to obtain the global semantic grid map of each level of the robot; or, when the grid size of the two-level grid map is in multiples, a smaller grid size (that is, a larger resolution) can also be used.
- the grid map with a smaller grid size is down-sampled to obtain another grid map with a larger grid size, which is not limited in this embodiment.
- each channel corresponds to a semantic category
- each grid stores the probability of a semantic object of the semantic category at the position, so there is no need to The data association of the detected objects can simplify the positioning process of the robot.
- the grid size of the grid map of the adjacent level can be set as a multiple, and the grid map of the level adjacent to the previous level can be obtained by adopting the lower level grid map.
- Generating at least two levels of global semantic grid maps based on the global semantic point cloud map including: dividing the global semantic point cloud map into grids according to the preset size, and determining the probability of the target semantic object in each grid, so as to obtain The global semantic grid map of the lowest level; the global semantic grid map of the lowest level is down-sampled at least once, and the global semantic grid map obtained by each down-sampling is used as the global semantic grid map of the corresponding level.
- the preset size can be understood as the length and width of the grid corresponding to the lowest-level global semantic grid map, which can be flexibly set.
- the length and width can be the same or different.
- the length and width can be Similarly, for example, the preset size may be 0.2m ⁇ 0.2m, 0.4m ⁇ 0.4m or 0.5m ⁇ 0.5m and so on.
- the number of levels of the global semantic grid map can be set as required, for example, it can be 3, 4 or 5, etc.
- the grid of the grid map is in the positive direction and the obtained global semantic grid map has 5 levels as an example for illustration.
- each semantic category t such as table, chair, wall or passable area, etc.
- traverse each point p (x j , y j ) in the point cloud, and follow the The following formula updates the probability value stored in each grid to obtain the global semantic grid map of the lowest level (ie level 0).
- the probability value stored in a grid in the grid map corresponding to a semantic category t is the sum of the logit functions of each point in the point cloud of the semantic category t.
- a, b are the coordinates of the grid in the grid map
- G t [a, b] is the probability value stored at the grid whose internal coordinates are (a, b) in the grid map corresponding to the channel of semantic category t
- the function ⁇ is the variance of the Gaussian distribution, which can be set according to needs, such as ⁇ can be set to 0.5 or 0.15, and ⁇ can be set to 0.5 in this embodiment
- c is the actual value corresponding to each grid in the grid map distance.
- each grid of each channel in the global semantic grid map can also be updated according to the following formula Probability values stored in .
- the lowest-level grid map can be pooled with a window of 2 ⁇ 2 and a step size of 2, and one of the low-resolution global semantic grid maps
- the probability value stored in the grid is determined as the maximum value of the probability values stored in the corresponding 4 grids in the grid map of the lower level, and the global semantic grid map with the grid size at the lowest level can be obtained
- the grid map of the first level is twice the size of the grid (such as 0.4m ⁇ 0.4m); and the maximum pooling with a window of 2 and a step size of 2 is performed again on the grid map of the first level to obtain
- the second-level grid map whose grid size is 4 times the grid size of the lowest-level global semantic grid map (such as 0.8m ⁇ 0.8m), and so on, can get the grid size of the lowest-level
- the grid size of the third-level global semantic grid map is 8 times the grid size of the global semantic grid map (such as 1.6m ⁇ 1.6), and the grid size is 16 times the grid size of the lowest level global semantic grid
- the projected semantic point cloud map within a certain range can be directly used as the target local semantic point cloud map;
- the feature points of each foreground semantic object and the feature points of each background semantic object are respectively down-sampled by using the same or different pre-set down-sampling to reduce the loop detection/relocation of the robot. Increase the number of local point clouds and improve the positioning speed.
- the at least two-level global semantic grid map and the laser point cloud map before the acquisition of the target local semantic point cloud map of the current position, the at least two-level global semantic grid map and the laser point cloud map, it also includes: acquiring the original local semantic point cloud map of the current position The first feature point of each foreground semantic object and the second feature point of each background semantic object; use different downsampling methods to downsample the first feature point and the second feature point, and according to the downsampling The sampled feature points construct the target local semantic point cloud map.
- the original local semantic point cloud map can be a semantic point cloud map within a certain distance obtained by projecting the center point of each foreground semantic object and the point cloud of each background semantic object to the map coordinate system.
- the first feature point may be a feature point of the foreground semantic object; the second feature point may be a feature point of the background semantic object.
- different downsampling methods can be used to downsample the first feature point of each foreground semantic object and the second feature point of each background semantic object, so as to improve the positioning speed of the robot. Improve the accuracy of robot loop detection/relocation.
- the down-sampling method used for down-sampling the first feature point of the foreground semantic object and the down-sampling method used for down-sampling the second feature point of the background semantic object can be selected according to needs, and this embodiment does not perform limit.
- the downsampling of the first feature point and the second feature point by using different downsampling methods, and constructing a target local semantic point cloud map according to the feature points obtained by downsampling includes: Euclidean distance clustering is performed on the first feature points, and each cluster center after clustering is used as the first downsampling feature point; the second feature point is voxelized and downsampled to obtain the second downsampling feature point; constructing a target local semantic point cloud map according to the first downsampling feature point and the second downsampling feature point.
- the original semantic point cloud map of the robot at the current position can be obtained, and for each channel of the original semantic point cloud map, if the semantic object corresponding to the channel is a foreground semantic object, then the point cloud in the semantic channel can be clustered based on Euclidean distance to obtain the cluster center of each category obtained by clustering, and update the point cloud of the channel to be composed of each cluster The point cloud formed by the center; if the semantic object corresponding to the channel is the background semantic object, then the point cloud in the channel can be voxelized and downsampled, and the point cloud of the channel can be updated to after voxelized downsampling The obtained point cloud is obtained, and after the downsampling of the point cloud in multiple channels is completed, the local semantic map formed by the downsampled point cloud in multiple channels is determined as the target local semantic point cloud map.
- the distance threshold when performing Euclidean distance-based clustering on the point cloud of the foreground semantic object and the voxel size when performing voxelization and downsampling on the point cloud of the background semantic object can be flexibly set according to needs, for example, the distance threshold It can be set to 0.3m or 0.4m, etc., and the voxel size can be set to 0.2m ⁇ 0.2m, which is not limited in this embodiment.
- S102 Perform pose recognition based on the target local semantic point cloud map and the global semantic grid map to obtain a candidate pose set.
- the set of candidate poses may be a set of candidate poses.
- the candidate poses may be obtained by rough positioning of the robot according to the semantic information of the robot, and may be the poses of the loop detection and/or relocation poses of the robot. posture.
- the demarcation method searches the global semantic grid map at each level to initially identify the grids that may have target poses, reducing the amount of calculation required when using the laser point cloud map to determine the target pose of the robot. In this way, it avoids the need to match a large number of points by directly using the laser point cloud map to locate the robot during loop detection/relocation, and efficiently realizes loop detection/relocation.
- each grid in the global semantic grid map with the lowest resolution can be used as the grid to be identified, and the target local
- the semantic information of each semantic feature point in the semantic point cloud map determines the grid in which the target pose may exist in each grid to be recognized, and determines that the recognized grid is in the adjacent next-level global semantic grid map
- the corresponding grid is used as a new grid to be identified, and returns to perform the above-mentioned semantic information of each semantic feature point in the local semantic point cloud map of the target to determine the grid in which the target pose may exist in each grid to be identified operation until the grid to be identified does not have an adjacent next-level global semantic grid map, and when the grid to be identified does not have a grid corresponding to the adjacent next-level global semantic grid map, that is, the grid to be identified
- the candidate pose is determined based on the grids identified in the highest-resolution global semantic grid map
- performing pose recognition based on the local semantic point cloud map of the target and the global semantic grid map to obtain a set of candidate poses includes: obtaining the probability in the highest-level global semantic grid map Grids with a value greater than zero constitute a target grid stack, wherein the level of each global semantic grid map is negatively correlated with resolution; each grid in the target grid stack is calculated based on the target local semantic point cloud map The first evaluation index of the grid and the first evaluation index value of at least one grid in the global semantic grid map of other levels, and determine candidate poses according to the first evaluation index value, so as to obtain a candidate pose set.
- the target grid stack can be understood as a stack that records the grid information of each grid whose probability value is greater than zero recorded in the highest-level global semantic grid map.
- a triplet (a, b, i) composed of the coordinates (a, b) in the semantic grid map and the level i of the global semantic grid map to which it belongs.
- the first evaluation index value can be used to evaluate the possibility of candidate poses in each grid, which can be compared with the local semantic point cloud map (including the target local point cloud map, rotate and/or translate the target local semantic point cloud map to obtain Each semantic feature point in the map) is positively correlated with the probability value stored in the corresponding grid in the global semantic grid map where the corresponding grid is located.
- the robot builds an empty grid stack, and according to the probability value recorded in each grid in the highest-level global semantic grid map that there is a semantic object of the corresponding semantic category in the grid, the recorded probability value is not
- the grid information (such as triplets) of the zero grid is added to the grid stack as the target grid stack; multiple semantic feature points in the target local semantic point cloud map are used to sequentially map the target grid stack
- the first evaluation index of the grid corresponding to the grid whose first evaluation index value is greater than the first index threshold in the lowest-level grid map in the grid stack determines the candidate pose; or, according to the order of the hierarchy from high to low , sequentially determine whether the first evaluation index of each grid corresponding to the grid whose first evaluation index value is greater than the first index threshold in the high-level global semantic grid map is still
- the grids with non-zero probability values stored in the obtained highest-level global semantic grid map can be directly added to the target grid stack;
- the grids with non-zero probability values in the highest-level global semantic grid map can be expanded, and the grids with non-zero probability values in the expanded global semantic grid map can be added to the target grid stack In order to improve the comprehensiveness of the subsequent recognized candidate poses and avoid the situation of missing recognition.
- the grid when performing an expansion operation on a grid whose probability value is not zero in the global semantic grid map, the grid can be centered, and the distance between the grid and the grid can be set at a set distance (such as 10m, etc.
- a grid with a probability value of zero is marked as a non-zero probability value, such as modifying the stored probability value of a grid whose distance from the grid is within a set distance and with a probability value of zero to A preset non-zero probability value, such as modifying its probability value to a probability value such as 0.5 or 1.
- S103 Determine a target pose according to the laser point cloud map and the set of candidate poses, where the target pose includes a loop closure pose and/or a relocation pose.
- the robot can be finely positioned using the laser point cloud to determine whether the candidate poses identified using the semantic information and whether the candidate poses include the target pose and The target pose is determined when its candidate poses are determined to contain the target pose nearby.
- the iterative closest point algorithm can be used to match the local laser point cloud map and the global laser point cloud map in turn, and the pre-selected Set the number (such as one or more) of the candidate poses as the target pose; it is also possible to calculate the average candidate pose of multiple candidate poses in the candidate pose set, and within a certain range the multiple candidate poses of the average candidate pose
- the pose parameters are discretized, and for each pose obtained by the discretization, iterative closest point algorithm (Iterative Closest Point, ICP) is used to match the local laser point cloud map and the global laser point cloud map, and according to the number of matching points from high to high To the lowest order, the pose obtained by a preset number of discretizations is selected as the target pose.
- ICP Intelligent Closest Point
- the positioning method provided in this embodiment obtains the local semantic point cloud map, the global semantic grid map and the laser point cloud map of the target at the current position, wherein each grid of the global semantic grid map records the presence of The probability value of the target semantic object; perform pose recognition based on the local semantic point cloud map of the target and the global semantic grid map, and obtain the combination of candidate poses; determine the loop detection position of the robot according to the laser point cloud map and the set of candidate poses pose and/or reposition pose.
- the robot is roughly positioned using semantic information, and then the laser point cloud information is used to fine-tune the robot. Speed; it can also improve the accuracy of loopback detection/relocation and reduce the false detection rate.
- Fig. 2 is a schematic flowchart of another positioning method provided by an embodiment of the present disclosure.
- the solution in this embodiment may be combined with one or more optional solutions in the foregoing embodiments.
- the calculation of the first evaluation index of each grid in the target grid stack and the first evaluation index of at least one grid in the global semantic grid map of other levels is calculated based on the target local semantic point cloud map.
- An evaluation index value, and determine candidate poses according to the first evaluation index value to obtain a set of candidate poses including: constructing a current map identical to the target local semantic point cloud map; creating a grid similar to the target stack the same current grid stack, and control the popping of the current grid at the top of the current grid stack; calculate the first evaluation index value of the current grid based on the current map; if the first evaluation index value is greater than the first index threshold, it is judged whether the target global semantic grid map where the current grid is located is the lowest-level semantic grid map, if the target global semantic grid map where the current grid is located is the lowest-level Semantic grid map, then add the corresponding position coordinates and target angles of the current grid in the global semantic point cloud map as candidate poses to the candidate pose set, if the target global semantic grid where the current grid is located If the map is not the lowest-level semantic grid map, add the grid corresponding to the current grid in the grid map of the next level to the current grid stack; the return execution control is located in the current grid stack The operation of popping the current
- the positioning method provided in this embodiment may further include: when the current grid stack is empty, rotating the current map by a preset rotation angle to obtain a rotated local semantic point cloud map as the current map , and return to execute the operation of creating a current grid stack identical to the target grid stack until the current map rotates one circle.
- the positioning method provided in this embodiment may include:
- the target local semantic point cloud map can be copied as the current map, and subsequent operations can be performed based on the current map, so as to prevent the subsequent operations from affecting the target local semantic point cloud map.
- An empty stack can be constructed as the current grid stack, and the target grid stack is copied to the current grid stack, that is, the grid information (ie triplet) of each grid stored in the target grid stack is written In the current grid stack, to avoid the impact of the subsequent pop and stack operations on the target grid stack.
- the first evaluation index of the current grid can be calculated according to the current map, such as according to the probability value corresponding to each feature point in the current map and/or the location of the current map and the current grid.
- the degree of mismatch between the global semantic grid maps (or the global semantic point cloud maps) calculates the first evaluation index to evaluate the current grid.
- the calculating the first evaluation index value of the current grid based on the current map includes: translating the current map to correspond the current grid to the current grid in the current map. Move the coordinate point to the origin position to obtain a translation map; obtain the probability value recorded in the corresponding grid of each semantic feature point in the translation map as the semantic feature point The probability value of ; calculating the first evaluation index value of the current grid according to the probability value of each semantic feature point.
- the panning map may be a map obtained after panning the current map.
- the target global semantic grid map may be a global semantic grid map at a corresponding level where the current grid is located.
- the current map when calculating the first evaluation index value of the current grid, can be first translated according to the current grid, for example, the coordinate points corresponding to the current grid in the current map are translated to the coordinate system of the map The origin position, using the coordinate point as the origin to calculate the first evaluation index.
- the first evaluation index value score1 of the current grid (a, b) can be initialized to 0, and the grid value of the current grid can be calculated according to the actual distance c i corresponding to each grid in the target global semantic grid map
- the actual position corresponding to the grid center x m /c i , y m /c i , y i b ⁇ ci , and translate the current map along the x-axis of the map coordinate system x i axis translation y i , to obtain a translation map; then, for each semantic feature point in the translation map (assuming the coordinates are (x m , y m )), determine the semantic feature point in the target global semantics according to the position coordinates of the semantic feature point The corresponding grid in the grid map, such as determining the grid (x m /c i , y m /c i ) at the position coordinates in the target global semantic grid map as the semantic feature point in the target global semantic grid
- the current map and the global semantic grid map (or global semantic point clouds)
- the probability value of each semantic feature point and the degree of mismatch between the current map and the global semantic grid map are used to calculate the first evaluation index value of the grid, so as to improve the accuracy of the candidate poses obtained by subsequent recognition.
- the first evaluation index is only used to determine whether it needs to be calculated on the upper
- the first evaluation index of the corresponding grid in the first-level global semantic grid map that is, only the upper boundary of the first evaluation index needs to be considered. Therefore, only when the grid is located in the lowest-level global semantic grid map,
- the first evaluation index value of the grid is calculated according to the probability value of each semantic feature point in the current map and the degree of mismatch between the current map and the global semantic grid map.
- the calculating the first evaluation index value of the current grid according to the probability value of each semantic feature point includes: if the target global semantic grid map is not the lowest level semantic grid map, then according to each semantic The probability value of the feature point calculates the probability average value of multiple semantic feature points as the first evaluation index value of the current grid; if the target global semantic grid map is the lowest level semantic grid map, then according to each The probability value of a semantic feature point calculates the probability average value and the penalty function average value of multiple semantic feature points, and uses the difference between the probability average value and the penalty function average value as the current grid value.
- the first evaluation index value wherein the average value of the penalty function is used to characterize the degree of mismatch between the current map and the target global semantic grid map.
- the target global semantic grid map where the current grid is located is the lowest-level semantic grid map, such as judging that the current grid corresponds to Whether the level i in the triplet of the current grid is zero, if the level i in the triplet corresponding to the current grid is zero, calculate the first evaluation of the current grid according to the probability value of each semantic feature point in the current map Index value, such as traversing all semantic feature points in the current map, when traversing to each semantic feature point, use the following formula (3) to update the first evaluation index value of the current grid, and all semantic feature points
- the first evaluation index value after traversal is taken as the first evaluation index value of the current grid; if the level i in the triplet corresponding to the current grid is not zero, the probability value of each semantic feature point in the current map Calculate the probability average value and penalty function average value of multiple semantic feature points, and calculate the first evaluation index value of the current grid based on the probability average value and penalty function
- N Pt is the number of semantic feature points contained in the semantic point cloud map corresponding to semantic category t in the target local semantic point cloud map.
- G it [x m /c i , y m /c i ] is the grid corresponding to the semantic category t of the global semantic grid map at level i of the currently traversed semantic feature point (x m , y m ) The probability value stored in the corresponding grid (x m /c i ,y m /c i ) in the map.
- all poses whose first evaluation index value is greater than the first index threshold are added as candidate poses to the set of candidate poses, instead of only retaining the first evaluation index value The largest candidate pose. Therefore, the standard deviation of multiple candidate poses can be used to determine whether the candidate pose in the candidate pose set is reliable, and no subsequent operations are performed when it is judged to be unreliable, which can simplify the robot. positioning process.
- the first evaluation index value of the current grid after the first evaluation index value of the current grid is calculated, it can be judged whether the first evaluation index value is greater than the first index threshold, and if the first evaluation index value is greater than the first index threshold, determine There may be candidate poses in the current grid, and when the current grid is not the grid in the global semantic grid map with the highest resolution, the current grid is placed on the global semantic grid with a higher resolution The corresponding grid in the map is added to the current grid stack to refine the position of the candidate pose.
- the first index threshold may be set as required, which is not limited in this embodiment.
- the target global semantic grid map is the lowest-level global semantic grid map, that is, it can be judged whether the current grid is based on the global semantic grid map.
- the position of the most accurate candidate pose determined, if the target global semantic grid map is the lowest-level global semantic grid map, the candidate pose (a ⁇ c i , b c i , ⁇ ), and add the candidate pose to the candidate pose set; if the target global semantic grid map is not the lowest level global semantic grid map, it can be determined that the current grid is in the next The corresponding grid in the global semantic grid map of the level, and add the determined grid to the current grid stack, such as when the resolution of the high-level global semantic grid map is its adjacent low-level global When the resolution of the semantic grid map is 4 times, the determined grid triplet (a*2, b*2, i-1), (a*2+1, b*2, i- 1), (a*2, b*2+1, i
- the current grid After adding the grid corresponding to the current grid in the global semantic grid map of the next level to the current grid stack or adding the candidate pose corresponding to the current grid to the candidate pose set, the current grid can be judged Whether the grid stack is empty, and if it is not empty, return to execute S205 to traverse all the grids in the current grid stack.
- the preset rotation angle can be set as required, for example, the preset rotation angle can be an angle value such as 5°, 10° or 20°.
- the local semantic point cloud map of the target in addition to performing pose recognition based on the acquired local semantic point cloud map of the target, can be rotated multiple times according to the preset rotation angle until it rotates once, and respectively based on The plurality of semantic point cloud maps obtained by the multiple rotations are subjected to pose recognition, so as to improve the comprehensiveness of the candidate poses included in the candidate pose set.
- the candidate pose recognition based on the current map After the candidate pose recognition based on the current map is completed, it can be judged whether the current map has been rotated one cycle relative to the target local semantic point cloud map. Whether the rotation angle of the map has exceeded 360°, if you continue to rotate the current map by the preset rotation angle, and its rotation angle relative to the target local semantic point cloud map has exceeded 360°, then it can be determined that the current map has rotated one cycle, and the candidate pose After the recognition is complete, the current map is no longer rotated; if the current map is rotated by the preset rotation angle, and its rotation angle relative to the target local semantic point cloud map does not exceed 360°, the current map can continue to be rotated by the preset rotation angle , and use the rotated local semantic point cloud map as the current map, and repeat the above operations to perform candidate pose recognition based on the rotated local semantic point cloud map.
- the positioning method only when it is determined that the first evaluation index value of the grid of the high-level global semantic grid map is greater than the first index threshold value, then calculate its corresponding value in the lower-level global semantic grid map.
- the first evaluation index value of the grid in the high-level global semantic grid map is less than or equal to the first index threshold value, there is no need to calculate the global semantic grid in the lower level
- the first evaluation index value of the corresponding grid in the grid map can improve the efficiency of loop closure detection/relocation.
- the comprehensiveness of the determined candidate poses can also be improved, thereby improving the accuracy of loop closure detection/relocation and reducing the false detection rate.
- Fig. 3 is a schematic flowchart of another positioning method provided by an embodiment of the present disclosure.
- the solution in this embodiment may be combined with one or more optional solutions in the foregoing embodiments.
- the determining the target pose according to the laser point cloud map and the set of candidate poses includes: calculating multiple The weighted average of each pose parameter of the candidate poses is used as the average pose parameter; the search space is determined centered on the average pose parameter, and the search space is discretized to obtain a plurality of to-be-searched Pose; use the iterative closest point algorithm to determine the matching information of each pose to be searched and the laser point cloud map, and calculate the second evaluation index value of each pose to be searched based on the matching information; select the second evaluation The pose to be searched with the largest index value is taken as the target pose.
- the pose to be searched with the largest value of the second evaluation index as the target pose it also includes: determining the target pose parameters of the pose to be searched with the value of the second evaluation index greater than the second index threshold The standard deviation is less than the corresponding preset standard deviation threshold.
- the target pose after determining the target pose according to the laser point cloud map and the set of candidate poses, it further includes: continue to move, and after continuing to move a preset distance, adopt the The local semantic point cloud map verifies the target pose, so as to re-locate when the verification fails.
- the positioning method provided in this embodiment may include:
- the weighted average of each pose parameter of multiple candidate poses can be calculated, so that the calculated average pose parameter is closer to the pose parameter of the candidate pose with a higher first evaluation index value.
- the first evaluation index value of each candidate pose can be used as a weight to calculate the weighted average of the x-axis coordinates of multiple candidate poses in the candidate pose set Weighted average of the y-axis coordinates of multiple candidate poses and the weighted average of the angle ⁇ of multiple candidate poses as its average pose parameter.
- the average position of multiple candidate poses in the set of candidate poses can be directly calculated regardless of the floating situation among multiple candidate poses in the set of candidate poses.
- Pose parameters you can also consider the floating situation between multiple candidate poses in the candidate pose set, and calculate the candidate pose only when the standard deviations of multiple pose parameters are less than the standard deviation threshold corresponding to the pose parameter.
- the first evaluation index corresponding to the pose, calculating the weighted average of each pose parameter of multiple candidate poses, before using it as the average pose parameter also includes: determining that the standard deviation of multiple candidate pose parameters is less than the corresponding standard deviation threshold.
- the standard deviation threshold corresponding to each pose parameter can be set as required, for example, the standard deviation threshold corresponding to x can be set to 1m, the standard deviation threshold corresponding to y can be set to 1m, and the standard deviation threshold corresponding to ⁇ can be set to 10°, and so on.
- S305 Determine a search space centered on the average pose parameter, and perform discretization processing on the search space to obtain a plurality of poses to be searched.
- each average pose parameter can be centered, and the search space can be determined according to the preset search range corresponding to each pose parameter, and the search space can be divided according to the preset division intervals, The different poses obtained by division are used as poses to be searched.
- S306. Determine matching information between each pose to be searched and the laser point cloud map by using an iterative closest point algorithm, and calculate a second evaluation index value for each pose to be searched based on the matching information.
- the matching information can be understood as the matching information when matching the laser point cloud map based on each pose to be searched, which may include the number of matching points and the sum of the distances between all matching points.
- the second evaluation index can be used to evaluate the possibility of each pose to be searched as the target pose, which can be positively correlated with the matching degree between the local laser point cloud map and the global laser point cloud map when it is used as an initial value.
- the pose parameter of the pose to be searched can be used as an initial value
- the point-to-line-based ICP algorithm can be used to solve the plane feature point cloud in the local laser point cloud map to the global laser
- the coordinate transformation relationship of the plane feature point cloud in the point cloud map, and remember that the number of matching points in the last iteration of the ICP algorithm is n
- the sum of the distances between all matching points is l.
- the sum of the distances between the points l calculates the second evaluation index value of the pose to be searched, for example, the following formula (5) can be used to calculate the second evaluation index value of each pose to be searched.
- score2 is the second evaluation index value
- n is the number of matching points in the last iteration
- l is the sum of the distances between all matching points in the last iteration
- n p is the number of plane feature point clouds in the local laser point cloud map quantity.
- the registration using the point-to-line based ICP algorithm is only an illustration of this embodiment, not a limitation.
- This embodiment can also use other point cloud registration algorithms, such as point-to-point ICP algorithm, normal distribution transform (Normal Distributions Transform, NDT) algorithm or registration method based on point cloud feature description, etc., for registration.
- point-to-point ICP algorithm normal distribution transform (Normal Distributions Transform, NDT) algorithm or registration method based on point cloud feature description, etc.
- NDT Normal Distributions Transform
- the number of matching points can also be determined after the point cloud registration is completed (because this step has been included in the ICP algorithm), for example, the matching The number of points is initialized to 0. For each point in the local laser point cloud map, find the point closest to the point in the global laser point cloud map, and calculate the distance between the two points.
- the distance is less than the threshold (such as 0.5m or 1m, etc.)
- the threshold such as 0.5m or 1m, etc.
- the target pose parameters may include one or more of the three pose parameters x, y, and ⁇ , for example, x and y may be set as target pose parameters or x, y, and ⁇ may be set as target pose parameters,
- the second index threshold and the preset standard deviation threshold corresponding to each pose parameter can be set as required, such as the second index threshold can be set to 0.3 or 0.4, etc., and the preset standard deviation threshold corresponding to the pose parameters x and y can be Set it to 0.8m or 0.7m etc.
- the pose to be searched is added to a preset pose set.
- all poses to be searched can be calculated for all poses to be searched in the preset pose set
- the standard deviation of the x-axis coordinates and the standard deviation of the y-axis coordinates of the pose and judge that the calculated standard deviation of the x-axis coordinates is less than the preset standard deviation threshold corresponding to the pose parameter x and the calculated standard deviation of the y-axis coordinates Is it less than the preset standard deviation threshold corresponding to the pose parameter y?
- the preset standard deviation threshold corresponding to the parameter y is established, execute S308; if the calculated standard deviation of the x-axis coordinates is less than the preset standard deviation threshold corresponding to the pose parameter x and the calculated standard deviation of the y-axis coordinates is less than the pose If the preset standard deviation threshold corresponding to the parameter y does not hold, it can be determined that the loop closure detection pose/relocation pose is not detected at the current moment, and no subsequent operations are performed.
- the pose to be searched with the largest value of the second evaluation index can be selected as the target pose, that is, selected as the loop closure detection pose/relocation
- the pose to be searched with the highest possibility of the pose is taken as the target pose.
- This embodiment does not limit the number of selected target poses. For example, all poses to be searched whose second evaluation index value is greater than a preset index threshold can also be selected as target poses, or, according to the second evaluation index value In descending order, select a preset number (one or more) of poses to be searched as target poses.
- the robot can be controlled to continue moving, and the determined target pose can be verified using the semantic information within the preset distance of the robot’s continued movement, so as to verify the determined target pose. Whether the pose is indeed a loop detection pose/relocation pose, and improves the reliability of the determined loop detection/relocation.
- the determined target pose can be used as the initial value.
- the pose increment at the current moment given by the SLAM backend is used to obtain The pose of the robot at the current moment, obtain the target local semantic grid map of the robot at the current location, and calculate the first evaluation index value of the pose of the robot at the current moment according to formula (4), and so on.
- the first evaluation index values of multiple poses of the robot can be obtained.
- the third index threshold is set as required, for example, the third index threshold can be set to be a set ratio (such as 4/5, etc.) to the first index threshold.
- the search space is determined according to the weighted average value of the first evaluation index
- the second evaluation index value of each control to be searched in the search space is determined according to the laser point cloud data
- the search space is determined according to the second evaluation value.
- Fig. 4 is a structural block diagram of a positioning device provided by an embodiment of the present disclosure.
- the device can be implemented by software and/or hardware, and can be configured in a robot.
- the device can be configured in an indoor robot, and can perform loop closure detection/relocation by executing a positioning method. As shown in FIG.
- the positioning device may include: a map acquisition module 401, a candidate pose identification module 402, and a target pose determination module 403, wherein the map acquisition module 401 is configured to acquire the target part of the current position Semantic point cloud map, global semantic grid map and laser point cloud map, wherein, each grid of the global semantic grid map records the probability value of the target semantic object in the grid; candidate pose recognition Module 402 is configured to perform pose recognition based on the local semantic point cloud map of the target and the global semantic grid map to obtain a set of candidate poses; the target pose determination module 403 is configured to perform pose recognition based on the laser point cloud map and the The set of candidate poses determines a target pose, and the target pose includes a loop closure pose and/or a relocalization pose.
- the map acquisition module 401 is configured to acquire the target part of the current position Semantic point cloud map, global semantic grid map and laser point cloud map, wherein, each grid of the global semantic grid map records the probability value of the target semantic object in the grid
- candidate pose recognition Module 402 is
- the positioning device obtaineds the target local semantic point cloud map, the global semantic grid map and the laser point cloud map of the current position through the map acquisition module, wherein each grid of the global semantic grid map records the The probability value of the target semantic object exists in the grid; through the candidate pose recognition module based on the local semantic point cloud map of the target and the global semantic grid map, the candidate pose combination is obtained; through the target pose determination module according to the The laser point cloud map and the set of candidate poses determine the robot's loop closure pose and/or relocalization pose.
- the robot is roughly positioned using semantic information, and then the laser point cloud information is used to fine-tune the robot. Speed; it can also improve the accuracy of loopback detection/relocation and reduce the false detection rate.
- the map acquisition module 401 is configured to: acquire the target local semantic point cloud map of the current location, at least two levels of global semantic grid maps and laser point cloud maps, wherein the global semantic grid maps of different levels resolutions are different.
- the candidate pose recognition module 402 may include: a grid stack construction unit configured to obtain a target grid stack composed of grids with probability values greater than zero in the highest-level global semantic grid map, wherein, The level of each global semantic grid map is negatively correlated with the resolution; the candidate pose determination unit is configured to calculate the first evaluation index of each grid in the target grid stack based on the target local semantic point cloud map And the first evaluation index value of at least one grid in the global semantic grid map of other levels, and determine the candidate poses according to the first evaluation index value, so as to obtain a candidate pose set.
- the candidate pose determination unit may be configured to: construct the same current map as the target local semantic point cloud map; create the same current grid stack as the target grid stack, and control the Popping the current grid at the top of the current grid stack; calculating the first evaluation index value of the current grid based on the current map; if the first evaluation index value is greater than the first index threshold, then judging that the current Whether the target global semantic grid map where the grid is located is the lowest-level semantic grid map. If the target global semantic grid map where the current grid is located is the lowest-level semantic grid map, the current grid The corresponding position coordinates and target angles in the global semantic point cloud map are added to the candidate pose set as candidate poses.
- the target global semantic grid map where the current grid is located is not the lowest-level semantic grid map
- Add the grid corresponding to the current grid in the grid map of the next level to the current grid stack return and execute the operation of controlling the popping of the current grid at the top of the current grid stack until all until the current grid stack is empty
- the target angle is the rotation angle of the current map relative to the target local semantic point cloud map
- the first evaluation index value is less than or equal to the first index threshold, Then return to execute the operation of controlling the popping of the current grid at the top of the current grid stack until the current grid stack is empty.
- the candidate pose determination unit can also be set to: when the current grid stack is empty, rotate the current map by a preset rotation angle to obtain a rotated local semantic point cloud map as the current map, and return The operation of creating a current grid stack identical to the target grid stack is performed until the current map rotates one circle.
- the candidate pose determining unit may include: a translation subunit configured to translate the current map, so as to move the corresponding coordinate point of the current grid in the current map to the origin position , to obtain a translation map; the probability value determination subunit is configured to obtain the probability value recorded in the grid corresponding to each semantic feature point in the translation map in the target global semantic grid map as the semantic feature The probability value of the point; the index calculation subunit is configured to calculate the first evaluation index value of the current grid according to the probability value of each semantic feature point.
- the index calculation subunit is set to: when the target global semantic grid map is not the lowest-level semantic grid map, calculate the number of semantic feature points according to the probability value of each semantic feature point Probability average, as the first evaluation index value of the current grid; when the target global semantic grid map is the lowest-level semantic grid map, multiple semantic features are calculated according to the probability value of each semantic feature point Probability average value and penalty function average value of points, and the difference between the probability average value and the penalty function average value is used as the first evaluation index value of the current grid, wherein the penalty function The average value is used to characterize the degree of mismatch between the current map and the target global semantic grid map.
- the target pose determination module 403 may include: an average value calculation unit configured to calculate a plurality of candidate poses according to the first evaluation index corresponding to each candidate pose in the candidate pose set The weighted average of each pose parameter of is used as the average pose parameter; the discretization unit is set to determine the search space centered on the average pose parameter, and discretize the search space to obtain multiple The pose to be searched; the index calculation unit is configured to use an iterative closest point algorithm to determine the matching information of each pose to be searched and the laser point cloud map, and calculate the second index of each pose to be searched based on the matching information. evaluation index value; the target pose determining unit is configured to select the pose to be searched with the second largest evaluation index value as the target pose.
- the target pose determination module 403 may also include: a standard deviation determination unit, configured to determine that the second evaluation index value is greater than the second index before selecting the search pose with the largest second evaluation index value as the target pose
- the standard deviation of the target pose parameters of the pose to be searched for by the threshold is smaller than the corresponding preset standard deviation threshold.
- the positioning device may further include: a grid map generation module, configured to, before acquiring the target local semantic point cloud map of the current location, at least two levels of global semantic grid maps and laser point cloud maps, according to The global semantic point cloud map generates at least two levels of global semantic raster maps.
- a grid map generation module configured to, before acquiring the target local semantic point cloud map of the current location, at least two levels of global semantic grid maps and laser point cloud maps, according to The global semantic point cloud map generates at least two levels of global semantic raster maps.
- the grid map generation module is set to: divide the global semantic point cloud map into grids according to the preset size, and determine the probability of the target semantic object in each grid, so as to obtain the lowest level global Semantic grid map: perform at least one downsampling on the global semantic grid map at the lowest level, and use the global semantic grid map obtained by each downsampling as the global semantic grid map at the corresponding level.
- the positioning device provided in this embodiment may further include: a verification module configured to continue moving after the target pose is determined according to the laser point cloud map and the set of candidate poses, and after continuing to move a preset distance , using the local semantic point cloud map within the preset distance to verify the target pose, so as to re-position when the verification fails.
- a verification module configured to continue moving after the target pose is determined according to the laser point cloud map and the set of candidate poses, and after continuing to move a preset distance , using the local semantic point cloud map within the preset distance to verify the target pose, so as to re-position when the verification fails.
- the positioning device may further include: a feature point acquisition module, configured to acquire the current position before the acquisition of the target local semantic point cloud map, at least two-level global semantic grid map and laser point cloud map.
- the down-sampling module is set to adopt different down-sampling methods for the first feature Points and the second feature point are down-sampled, and the target local semantic point cloud map is constructed according to the feature points obtained by the down-sampling.
- the down-sampling module may include: a clustering unit configured to perform Euclidean distance clustering on a plurality of first feature points, and use each cluster center after clustering as the first down-sampling feature point ;
- the voxelization unit is configured to perform voxelization down-sampling on a plurality of second feature points to obtain the second down-sampling feature points;
- the map construction unit is set to according to the first down-sampling feature points and the second down-sampling feature points Downsampling feature points to build target local semantic point cloud map.
- the positioning device provided in this embodiment can be applied to positioning a robot.
- the positioning device provided in the embodiments of the present disclosure can execute the positioning method provided in any embodiment of the present disclosure, and has corresponding functional modules and effects for executing the positioning method.
- the positioning method provided in any embodiment of the present disclosure can execute the positioning method provided in any embodiment of the present disclosure, and has corresponding functional modules and effects for executing the positioning method.
- FIG. 5 it shows a schematic structural diagram of an electronic device (such as a terminal device) 500 suitable for implementing an embodiment of the present disclosure.
- the terminal device 500 in the embodiment of the present disclosure may include but not limited to mobile phones, notebook computers, digital broadcast receivers, personal digital assistants (Personal Digital Assistant, PDA), tablet computers (PAD), portable multimedia players (Portable Media Player, PMP), mobile terminals such as vehicle-mounted terminals (eg, vehicle-mounted navigation terminals), and fixed terminals such as digital televisions (Television, TV), desktop computers, and the like.
- PDA Personal Digital Assistant
- PMP portable multimedia players
- mobile terminals such as vehicle-mounted terminals (eg, vehicle-mounted navigation terminals)
- fixed terminals such as digital televisions (Television, TV), desktop computers, and the like.
- the electronic device 500 shown in FIG. 5 is only an example, and should not limit the functions and application scope of the embodiments of the present disclosure.
- an electronic device 500 may include a processing device (such as a central processing unit, a graphics processing unit, etc.) Various appropriate actions and processes are performed by a program loaded into a random access memory (Random Access Memory, RAM) 503 by 508 . In the RAM 503, various programs and data necessary for the operation of the electronic device 500 are also stored.
- the processing device 501, ROM 502, and RAM 503 are connected to each other through a bus 504.
- An input/output (Input/Output, I/O) interface 505 is also connected to the bus 504 .
- an input device 506 including, for example, a touch screen, a touchpad, a keyboard, a mouse, a camera, a microphone, an accelerometer, a gyroscope, etc.; including, for example, a liquid crystal display (Liquid Crystal Display, LCD) , an output device 507 such as a speaker, a vibrator, etc.; a storage device 508 including, for example, a magnetic tape, a hard disk, etc.; and a communication device 509.
- the communication means 509 may allow the electronic device 500 to perform wireless or wired communication with other devices to exchange data.
- FIG. 5 shows electronic device 500 having various means, it is not a requirement to implement or possess all of the means shown. More or fewer means may alternatively be implemented or provided.
- embodiments of the present disclosure include a computer program product, which includes a computer program carried on a non-transitory computer readable medium, where the computer program includes program code for executing the method shown in the flowchart.
- the computer program may be downloaded and installed from a network via communication means 509, or from storage means 508, or from ROM 502.
- the processing device 501 When the computer program is executed by the processing device 501, the above-mentioned functions defined in the methods of the embodiments of the present disclosure are executed.
- the computer-readable medium mentioned above in the present disclosure may be a computer-readable signal medium or a computer-readable storage medium, or any combination of the above two.
- a computer readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof.
- Examples of computer readable storage media may include, but are not limited to: electrical connections with one or more wires, portable computer disks, hard disks, RAM, ROM, Erasable Programmable Read-Only Memory (EPROM) or flash memory), optical fiber, portable compact disk read-only memory (Compact Disc Read-Only Memory, CD-ROM), optical storage device, magnetic storage device, or any suitable combination of the above.
- a computer-readable storage medium may be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, apparatus, or device.
- a computer-readable signal medium may include a data signal propagated in baseband or as part of a carrier wave carrying computer-readable program code therein. Such propagated data signals may take many forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the foregoing.
- a computer-readable signal medium may also be any computer-readable medium other than a computer-readable storage medium, which can transmit, propagate, or transmit a program for use by or in conjunction with an instruction execution system, apparatus, or device .
- the program code contained on the computer readable medium can be transmitted by any appropriate medium, including but not limited to: electric wire, optical cable, radio frequency (Radio Frequency, RF), etc., or any suitable combination of the above.
- the client and the server can communicate using any currently known or future network protocols such as Hypertext Transfer Protocol (HyperText Transfer Protocol, HTTP), and can communicate with digital data in any form or medium
- the communication eg, communication network
- Examples of communication networks include local area networks (Local Area Network, LAN), wide area networks (Wide Area Network, WAN), internetworks (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks), as well as any currently existing networks that are known or developed in the future.
- the above-mentioned computer-readable medium may be included in the above-mentioned electronic device, or may exist independently without being incorporated into the electronic device.
- the above-mentioned computer-readable medium carries one or more programs, and when the above-mentioned one or more programs are executed by the electronic device, the electronic device: acquires the target local semantic point cloud map, the global semantic grid map and the laser A point cloud map, wherein each grid of the global semantic grid map records the probability value of the target semantic object in the grid; based on the target local semantic point cloud map and the global semantic grid Perform pose recognition on the map to obtain a set of candidate poses; determine a target pose according to the laser point cloud map and the set of candidate poses, and the target pose includes loop closure poses and/or relocation poses.
- Computer program code for carrying out operations of the present disclosure may be written in one or more programming languages, or combinations thereof, including but not limited to object-oriented programming languages—such as Java, Smalltalk, C++, and Includes conventional procedural programming languages - such as the "C" language or similar programming languages.
- the program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
- the remote computer can be connected to the user computer through any kind of network, including a LAN or WAN, or it can be connected to an external computer (eg via the Internet using an Internet Service Provider).
- each block in a flowchart or block diagram may represent a module, program segment, or portion of code that contains one or more logical functions for implementing specified executable instructions.
- the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or they may sometimes be executed in the reverse order, depending upon the functionality involved.
- each block of the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations can be implemented by a dedicated hardware-based system that performs the specified functions or operations , or may be implemented by a combination of dedicated hardware and computer instructions.
- the units involved in the embodiments described in the present disclosure may be implemented by software or by hardware. Wherein, the name of the module does not constitute a limitation of the unit itself in one case.
- exemplary types of hardware logic components include: Field Programmable Gate Arrays (Field Programmable Gate Arrays, FPGAs), Application Specific Integrated Circuits (ASICs), Application Specific Standard Products (Application Specific Standard Parts, ASSP), System on Chip (System on Chip, SOC), Complex Programmable Logic Device (Complex Programmable Logic Device, CPLD) and so on.
- a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device.
- a machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium.
- a machine-readable medium may include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. Examples of machine-readable storage media would include one or more wire-based electrical connections, portable computer disks, hard drives, RAM, ROM, EPROM or flash memory, optical fibers, CD-ROMs, optical storage devices, magnetic storage devices, or Any suitable combination of the above.
- Example 1 provides a positioning method, including:
- each grid of the global semantic grid map records the probability of the target semantic object in the grid value
- a target pose is determined according to the laser point cloud map and the set of candidate poses, wherein the target pose includes a loop closure pose and/or a relocation pose.
- Example 2 According to the method described in Example 1, the acquisition of the target local semantic point cloud map, global semantic grid map and laser point cloud map of the current location includes:
- example 3 is based on the method described in example 2, performing pose recognition based on the target local semantic point cloud map and the global semantic grid map to obtain a candidate pose set ,include:
- example 4 is according to the method described in example 3, the first evaluation index of each grid in the target grid stack is calculated based on the target local semantic point cloud map And the first evaluation index value of at least one grid in the global semantic grid map of other levels, and determine the candidate pose according to the first evaluation index value, so as to obtain the candidate pose set, including:
- the target global semantic grid map where the current grid is located is the lowest-level semantic grid map, and if the target global semantic grid map where the current grid is located If the grid map is the lowest-level semantic grid map, the corresponding position coordinates and target angles of the current grid in the global semantic point cloud map are added as candidate poses to the candidate pose set.
- the target global semantic grid map where the grid is located is not the lowest level semantic grid map, add the grid corresponding to the current grid in the grid map of the next level to the current grid stack; return Execute the operation of controlling the popping of the current grid at the top of the current grid stack until the current grid stack is empty; wherein, the target angle is the current map relative to the target local semantic point cloud The rotation angle of the map;
- first evaluation index value is less than or equal to the first index threshold, return to the operation of controlling the popping of the current grid at the top of the current grid stack until the current grid stack is empty.
- example 5 is according to the method described in example 4, further comprising:
- Example 6 According to the method described in Example 4, the calculating the first evaluation index value of the current grid based on the current map includes:
- the first evaluation index value of the current grid is calculated according to the probability value of each semantic feature point.
- Example 7 is according to the method described in Example 6, the calculating the first evaluation index value of the current grid according to the probability value of each semantic feature point, including:
- target global semantic grid map is not the lowest-level semantic grid map, calculate the average probability of multiple semantic feature points according to the probability value of each semantic feature point as the first evaluation of the current grid Index value;
- the target global semantic grid map is the lowest-level semantic grid map. If the target global semantic grid map is the lowest-level semantic grid map, then calculate the probability average value and penalty function average value of multiple semantic feature points according to the probability value of each semantic feature point, and average the probability The difference between the value and the average value of the penalty function is used as the first evaluation index value of the current grid, wherein the average value of the penalty function is used to characterize the current map and the target global semantic grid The degree of mismatch between maps.
- example 8 is according to the method described in any one of examples 3-7, and determining the target pose according to the laser point cloud map and the candidate pose set includes:
- the first evaluation index corresponding to each candidate pose in the candidate pose set calculate the weighted average of each pose parameter of multiple candidate poses as the average pose parameter
- Example 9 according to the method described in Example 8, before selecting the pose to be searched with the largest second evaluation index value as the target pose, further includes:
- the standard deviation of the target pose parameter of the pose to be searched for whose second evaluation index value is greater than the second index threshold is smaller than the corresponding preset standard deviation threshold.
- example 10 is according to the method described in any one of examples 2-7. Before the point cloud map, it also includes:
- Example 11 is according to the method described in Example 10, the generating at least two levels of global semantic grid maps according to the global semantic point cloud map, including:
- the global semantic point cloud map is divided into grids according to the preset size, and the probability of the target semantic object in each grid is determined to obtain the lowest-level global semantic grid map;
- the global semantic grid map of the lowest level is down-sampled at least once, and the global semantic grid map obtained by each down-sampling is used as the global semantic grid map of the corresponding level.
- Example 12 according to the method described in any one of Examples 1-7, after determining the target pose according to the laser point cloud map and the candidate pose set, further includes :
- Example 13 is according to the method described in any one of Examples 1-7, before acquiring the target local semantic point cloud map, global semantic grid map and laser point cloud map of the current location ,Also includes:
- the first feature point and the second feature point are down-sampled by using different down-sampling methods, and a target local semantic point cloud map is constructed according to the feature points obtained by down-sampling.
- Example 14 is based on the method described in Figure 13, the first feature point and the second feature point are down-sampled using different down-sampling methods, and according to the down-sampling
- the sampled feature points construct the target local semantic point cloud map, including:
- Euclidean distance clustering is performed on multiple first feature points, and each cluster center after clustering is used as the first downsampling feature point;
- Example 15 is the method according to any one of Examples 1-7, and the method is applied to positioning a robot.
- Example 16 provides a positioning device, including:
- the map acquisition module is configured to acquire the target local semantic point cloud map, the global semantic grid map and the laser point cloud map of the current position, wherein the grid memory is recorded in each grid of the global semantic grid map Probability value at the target semantic object;
- the candidate pose recognition module is configured to perform pose recognition based on the target local semantic point cloud map and the global semantic grid map to obtain a candidate pose set;
- the target pose determination module is configured to determine a target pose according to the laser point cloud map and the set of candidate poses, wherein the target pose includes a loop closure pose and/or a relocation pose.
- Example 17 provides an electronic device, comprising:
- processors one or more processors
- memory configured to store one or more programs
- the one or more processors are made to implement the positioning method described in any one of Examples 1-15.
- Example 18 provides a computer-readable storage medium, on which a computer program is stored, and when the program is executed by a processor, the positioning as described in any one of Examples 1-15 is realized. method.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Geometry (AREA)
- Automation & Control Theory (AREA)
- Computer Graphics (AREA)
- Bioinformatics & Computational Biology (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Image Analysis (AREA)
Abstract
本文公开一种定位方法、装置、电子设备和存储介质。该定位方法包括:获取当前位置的目标局部语义点云地图、全局语义栅格地图和激光点云地图,其中,所述全局语义栅格地图的每个栅格中记录有所述栅格内存在目标语义对象的概率值;基于所述目标局部语义点云地图和所述全局语义栅格地图进行位姿识别,得到候选位姿集合;根据所述激光点云地图和所述候选位姿集合确定目标位姿,所述目标位姿包括回环位姿和/或重定位位姿。
Description
本申请要求在2021年06月01日提交中国专利局、申请号为202110609933.0的中国专利申请的优先权,该申请的全部内容通过引用结合在本申请中。
本公开涉及定位技术领域,例如涉及一种定位方法、装置、电子设备和存储介质。
在实现机器人的自主导航时,需要对机器人进行定位,如对机器人进行回环检测或重定位。
一般采用基于二维(2 Dimension,2D)激光雷达的即时定位与地图构建(Simultaneous Localization And Mapping,SLAM)技术来为室内机器人进行定位,采用回环检测模块将当前位置的局部激光点云与历史地图中的激光点云进行匹配,判断机器人当前所处的位置是否为其曾经经过的位置,并将检测到的回环位姿发送给后端。
然而,2D激光SLAM算法利用激光点云间匹配进行回环检测的方式,由于激光点云提供的信息有限,容易出现误匹配,进而导致地图构建出现较大误差,导致回环检测的误检率较高,无法满足定位需求。
发明内容
本公开提供一种定位方法、装置、电子设备和存储介质,以降低定位过程中的误检率。
本公开提供了一种定位方法,包括:
获取当前位置的目标局部语义点云地图、全局语义栅格地图和激光点云地图,其中,所述全局语义栅格地图的每个栅格中记录有所述栅格内存在目标语义对象的概率值;
基于所述目标局部语义点云地图和所述全局语义栅格地图进行位姿识别,得到候选位姿集合;
根据所述激光点云地图和所述候选位姿集合确定目标位姿,其中,所述目标位姿包括回环位姿和/或重定位位姿。
本公开还提供了一种定位装置,包括:
地图获取模块,设置为获取当前位置的目标局部语义点云地图、全局语义栅格地图和激光点云地图,其中,所述全局语义栅格地图的每个栅格中记录有所述栅格内存在目标语义对象的概率值;
候选位姿识别模块,设置为基于所述目标局部语义点云地图和所述全局语义栅格地图进行位姿识别,得到候选位姿集合;
目标位姿确定模块,设置为根据所述激光点云地图和所述候选位姿集合确定目标位姿,其中,所述目标位姿包括回环位姿和/或重定位位姿。
本公开还提供了一种电子设备,包括:
一个或多个处理器;
存储器,设置为存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述的定位方法。
本公开还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的定位方法。
图1为本公开实施例提供的一种定位方法的流程示意图;
图2为本公开实施例提供的另一种定位方法的流程示意图;
图3为本公开实施例提供的又一种定位方法的流程示意图;
图4为本公开实施例提供的一种定位装置的结构框图;
图5为本公开实施例提供的一种电子设备的结构示意图。
下面将参照附图描述本公开的实施例。虽然附图中显示了本公开的一些实施例,本公开可以通过多种形式来实现,提供这些实施例是为了理解本公开。本公开的附图及实施例仅用于示例性作用。
本公开的方法实施方式中记载的多个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基 于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
图1为本公开实施例提供的一种定位方法的流程示意图。该方法可以由定位装置执行,其中,该装置可以由软件和/或硬件实现,可配置于需要进行的设备中,例如,该装置可以配置于机器人中。本公开实施例提供的定位方法适用于进行回环检测和/或重定位的场景。如图1所示,本实施例提供的定位方法可以包括:
S101、获取当前位置的目标局部语义点云地图、全局语义栅格地图和激光点云地图,其中,所述全局语义栅格地图的每个栅格中记录有所述栅格内存在目标语义对象的概率值。
本实施例所提供的定位方法可应用于对需要进行重定位/回环检测的任一设备进行重定位回环检测,尤其可应用于对机器人进行重定位/回环检测,以下以对机器人进行重定位/回环检测为例进行说明。语义点云地图可以为由语义点云构成的二维地图,其可以为多通道地图,每个通道对应一个类别的语义对象,即不同类别的语义对象的点云可以位于不同的通道中。相应的,目标局部语义点云地图可以为机器人在当前位置附近一定距离(如15m等)范围之内采集得到的语义点云所构成的点云地图。全局语义栅格地图可以为与机器人在当前场景中的全局语义点云地图对应的栅格地图,全局语义栅格地图具有多个通道,每个通道的每个栅格中所记录的概率值可以为相应栅格中存在该通道对应语义类别的语义对象的概率。激光点云地图可以为由激光点云构成的二维地图,其可以包括局部激光点云地图和/或全局激光点云地图。该局部激光点云地图可以为机器人在当前位置附近一定距离之内采集得到的激光点云所构成的点云地图,该全局激光点云地图可以为机器人在当前场景中进行导航时所采用的、由激光点云构成的全局地图。
在本实施例中,机器人在运行过程中可以每间隔预设时间或者每间隔设定距离采集一帧激光点云,提取一定距离范围内采集的多个帧激光点云中局部曲率小于阈值的点,作为平面特征点,并根据采集每帧激光点云时机器人的位姿,得到每个平面特征点在地图坐标系中的二维坐标,进而得到机器人的激光点云地图。同时,机器人在运行过程中还可以采用图像采集装置进行图像采集,对所采集到的图像进行物体识别和语义分割,估计图像中的前景语义对象的中心点坐标以及背景语义对象的三维点云,将其投影至水平面,并根据进行图像采集时机器人的位姿,将投影后的中心点和三维点云转换至机器人的地图坐标系,得到前景语义对象和背景语义对象在地图坐标系中的二维坐标,进而得到机器人的语义点云地图。其中,该预设时间和该设定距离可以根据需要设置,如该预设时间可以设置为0.5s或1s等,该设定距离可以设置为0.4m或0.5m等;前景语义对象可以为可数的对象,如桌子或椅子等;背景语义对象可以为不可数的对象,如墙壁或可通行区域等。
机器人在进行回环检测/重定位的过程中,可以在当前条件符合定位的触发条件时,获取机器人在附近一定距离范围(包括在当前位置)内采集得到的语义点云构成目标局部语义点云地图、机器人进行回环检测/重定位时的全局语义地图对应的全局语义栅格地图以及机器人的激光点云地图(如机器人在附近一定距离范围内采集得到的局部激光点云地图和/或机器人进行回环检测/重定位时的全局激光点云地图)。
在本实施例中,可以仅获取一张一层级全局语义栅格地图,也可以获取多张不同层级的全局语义栅格地图,以在后续操作中基于所获取的该一张或多张全局语义栅格地图确定候选位姿,本实施例不对此进行限制。为了保证所获取的候选位姿的全面性,并减少确定候选位姿时所需的计算量,可以获取多张不同层级的全局语义栅格地图,并在后续操作中基于多张全局语义栅格地图确定候选位姿,所述获取当前位置的目标局部语义点云地图、全局语义栅格地图和激光点云地图,包括:获取当前位置的目标局部语义点云地图、至少两层级的全局语义栅格地图和激光点云地图,其中,不同层级的全局语义栅格地图的分辨率不同。
在一个实施方式中,在所述获取当前位置的目标局部语义点云地图、至少两层级的全局语义栅格地图和激光点云地图之前,还包括:根据全局语义点云地图生成至少两层级的全局语义栅格地图。
全局语义点云地图可以为多通道地图,每个通道对应一种语义类别的语义对象,该全局语义点云地图可以根据当前所执行任务的不同,采用对应的方式获得,如若当前所执行的任务为回环检测,则可以将机器人正在构建的语义点 云地图作为全局语义点云地图;若当前所执行的任务为重定位,则可以自地图库中获取预先保存的当前环境的全局语义点云地图。
机器人在进行回环检测/重定位之前,可以获取当前所执行任务的全局语义点云地图,并按照预设尺寸对该全局语义点云地图的每个通道进行栅格划分,以得到机器人的全局语义栅格地图,例如,可以按照预先设置的每层级栅格地图对应的栅格尺寸对每个通道的全局语义点云地图进行栅格划分,并计算每个栅格中存在相应通道对应语义类别的语义对象的概率,从而得到机器人的每层级的全局语义栅格地图;或者,当两层级的栅格地图的栅格尺寸成倍数关系时,也可以采用栅格尺寸较小(即分辨率较大)的栅格地图的栅格尺寸对全局语义点云地图进行栅格划分,得到该栅格尺寸较小的栅格地图,并按照此两层级栅格地图的栅格尺寸之间的倍数关系,对该栅格尺寸较小的栅格地图进行下采样,以得到另一栅格尺寸较大的栅格地图,本实施例不对此进行限制。
在本实施例中,由于全局语义栅格地图存在多个通道,每个通道对应一个语义类别,每个栅格中保存有该位置处存在该语义类别的语义对象的概率,因此无需对不同帧检测得到的物体进行数据关联,能够简化机器人的定位过程。
为了确保高层级的语义栅格地图中的每个栅格在低层级的语义栅格地图中存在唯一对应的栅格,并降低生成每层级全局语义栅格地图时所需的计算量,本实施例可以将相邻层级的栅格地图的栅格尺寸设置为成倍数关系,并通过对低层级的栅格地图进行下采用的方式得到层级与其相邻的上一层级的栅格地图,所述根据全局语义点云地图生成至少两层级的全局语义栅格地图,包括:按照预设尺寸对全局语义点云地图进行栅格划分,并确定每个栅格内存在目标语义对象的概率,以得到最低层级的全局语义栅格地图;对所述最低层级的全局语义栅格地图进行至少一次降采样,并将每次降采样得到的全局语义栅格地图作为相应层级的全局语义栅格地图。
该预设尺寸可以理解为最低层级的全局语义栅格地图所对应的栅格的长度和宽度,其可以灵活设置,如该长度和宽度可以相同或不相同,本实施例中该长度和宽度可以相同,举例而言,该预设尺寸可以为0.2m×0.2m、0.4m×0.4m或0.5m×0.5m等等。全局语义栅格地图的层级数量可以根据需要进行设置,如可以为3、4或5等。以下以栅格地图的栅格为正方向且所获取的全局语义栅格地图具有5个层级为例进行说明。
可以首先获取全局语义点云地图,按照预设尺寸c×c对全局语义点云地图进行栅格划分,并初始化每个栅格内保存的概率值为0;分别针对全局语义点云地图中每个语义类别的点云,更新该语义类别所对应的通道中的每个栅格内保存的概率值,从而得到层级最低的全局语义栅格地图。然后,对该层级最低的 全局语义栅格地图进行多次(如4次)窗口大小为n×n(如n=2、3或4等)、步长为n的下采样,以得到多个层级的全局语义栅格地图。
以c=0.2m、n=2且栅格层级数量为5举例而言,在生成全局语义栅格地图时,可以首先获取机器人的全局语义点云地图,按照0.2m×0.2m(即划分得到的每个栅格对应的实际距离为0.2m×0.2m)对全局语义点云地图的每个通道进行栅格划分,并初始化每个通道的栅格地图内每个栅格中保存的概率值为0。然后,针对每一语义类别t(如桌子、椅子、墙壁或可通行区域等)的点云,遍历该点云中的每一个点p=(x
j,y
j),并在遍历过程中按照下式更新每个栅格中保存的概率值,以得到最低层级(即第0层级)的全局语义栅格地图。
即一语义类别t对应的栅格地图中的一个栅格内存储的概率值,为该语义类别t的点云中的每个点的logit函数之和。其中,a,b为栅格地图中栅格的坐标,G
t[a,b]为语义类别t对应通道的栅格地图内在坐标为(a,b)的栅格处所保存的概率值;函数
σ为高斯分布的方差,其可以根据需要进行设置,如可以将σ设置为0.5或0.15等值,本实施例中σ可以设置为0.5;c为栅格地图中的每个栅格对应的实际距离。
此外,为了减少计算量,加快定位速度,在采用式(1)计算得到最低层级的全局语义栅格地图后,还可以按照下式更新该全局语义栅格地图中每个通道的每一个栅格内保存的概率值。
当得到最低层级的全局语义栅格地图后,可以对该最低层级的栅格地图进行窗口为2×2、步长为2的最大池化,将低分辨率的全局语义栅格地图中的一个栅格内保存的概率值确定为其在低一层级的栅格地图内对应的4个栅格内保存的概率值中的最大值,即可得到栅格尺寸为最低层级的全局语义栅格地图的栅格尺寸的2倍(如0.4m×0.4m)的第1层级的栅格地图;并对该第1层级的栅格地图再次进行窗口为2、步长为2的最大池化,得到栅格尺寸为最低层级的全局语义栅格地图的栅格尺寸的4倍(如0.8m×0.8m)的第2层级的栅格地图,以此类推,即可得到栅格尺寸为最低层级的全局语义栅格地图的栅格尺寸的8倍(如1.6m×1.6)的第3层级的全局语义栅格地图和栅格尺寸为最低层级的全局语义栅格地图的栅格尺寸的16倍(如3.2m×3.2m)的第4层级的全局语义栅格地图。
由此,即能够得到分辨率为最低层级的栅格地图的分辨率的1/2
i(i=0,1,2,3,4)的多个层级的全局语义栅格地图。
在本实施例中,可以直接将投影得到的、一定范围内的语义点云地图(即局部语义点云地图)作为目标局部语义点云地图;也可以对投影得到的局部语义点云地图内的点进行降采样,如采用预先设置的相同或不相同的降采样分别对每个前景语义对象的特征点和每个背景语义对象的特征点进行降采样,以减少机器人在进行回环检测/重定位时局部点云的数量,提高定位速度。
在一个实施方式中,在所述获取当前位置的目标局部语义点云地图、至少两层级的全局语义栅格地图和激光点云地图之前,还包括:获取当前位置的原始局部语义点云地图中的每个前景语义对象的第一特征点和每个背景语义对象的第二特征点;采用不同的降采样方式对所述第一特征点和所述第二特征点进行降采样,并根据降采样得到的特征点构建目标局部语义点云地图。
原始局部语义点云地图可以为通过将每个前景语义对象的中心点和每个背景语义对象的点云投影至地图坐标系后得到的、一定距离范围内的语义点云地图。第一特征点可以为前景语义对象的特征点;第二特征点可以为背景语义对象的特征点。
在上述实施方式中,可以采用不同的降采样方式对每个前景语义对象的第一特征点和每个背景语义对象的第二特征点进行降采样,以在提高机器人的定位速度的前提下,提高机器人回环检测/重定位的准确性。其中,对前景语义对象的第一特征点进行降采样所采用的降采样方式以及对背景语义对象的第二特征点进行降采样所采用的降采样方式可以根据需要选取,本实施例不对此进行限制。
可选的,所述采用不同的降采样方式对所述第一特征点和所述第二特征点进行降采样,并根据降采样得到的特征点构建目标局部语义点云地图,包括:对多个第一特征点进行欧式距离聚类,并将聚类后的每个聚类中心作为第一降采样特征点;对所述第二特征点进行体素化降采样,得到第二降采样特征点;根据所述第一降采样特征点和所述第二降采样特征点构建目标局部语义点云地图。
示例性的,在当前条件符合回环检测/重定位条件时,可以获取机器人在当前位置的原始语义点云地图,并针对该原始语义点云地图的每一个通道,如果该通道所对应的语义对象为前景语义对象,则可以对该语义通道中的点云进行基于欧式距离的聚类,得到聚类得到的每个类别的聚类中心,并将该通道的点云更新为由每个聚类中心构成的点云;如果该通道所对应的语义对象为背景语义对象,则可以对该通道中的点云进行体素化降采样,将该通道的点云更新为进行体素化降采样后得到的点云,并在多个通道中的点云均降采样完成后,将多个通道中降采样后的点云构成的局部语义地图确定为目标局部语义点云地图。 在此,对前景语义对象的点云进行基于欧式距离的聚类时的距离阈值以及对背景语义对象的点云进行体素化降采样时的体素大小可以根据需要灵活设置,例如该距离阈值可以设置为0.3m或0.4m等,该体素大小可以设置为0.2m×0.2m,本实施例不对此进行限制。
S102、基于所述目标局部语义点云地图和所述全局语义栅格地图进行位姿识别,得到候选位姿集合。
候选位姿集合可以为由候选位姿组成的集合,该候选位姿可以为根据机器人的语义信息对机器人进行粗定位得到的、可能为机器人的回环检测位姿和/或重定位位姿的位姿。
在本实施例中,在获取到机器人的目标局部语义点云地图和多层级的全局语义栅格地图后,可以首先根据机器人在当前位置附近的语义信息(如机器人在当前位置的目标局部语义点云地图中的每个语义特征点)进行粗定位,举例而言,利用目标局部语义点云地图中的每个语义特征点对全局语义栅格地图中的每个栅格进行评价,如利用分支定界法,在每层级的全局语义栅格地图中进行搜索,以初步识别出可能存在目标位姿的栅格,减少在利用激光点云地图确定机器人的目标位姿时所需的计算量,从而避免在回环检测/重定位时直接利用激光点云地图对机器人进行定位需要与大量的点进行匹配的情况,高效地实现回环检测/重定位。
示例性的,在获取到目标局部语义点云地图和多层级的全局语义栅格地图之后,可以将分辨率最低的全局语义栅格地图中的每个栅格作为待识别栅格,采用目标局部语义点云地图中的每个语义特征点的语义信息确定每个待识别栅格中可能存在目标位姿的栅格,确定识别得到的栅格在相邻的下一层级全局语义栅格地图中对应的栅格,作为新的待识别栅格,并返回执行上述采用目标局部语义点云地图中的每个语义特征点的语义信息确定每个待识别栅格中可能存在目标位姿的栅格的操作,直至待识别栅格不存在相邻的下一层级全局语义栅格地图为止,并在待识别栅格不存在相邻的下一层级全局语义栅格地图对应的栅格,即在待识别栅格为位于分辨率最高的全局语义栅格地图中的栅格时,基于在分辨率最高的全局语义栅格地图中识别出的可能存在候选位姿的栅格确定候选位姿。
在一个实施方式中,所述基于所述目标局部语义点云地图和所述全局语义栅格地图进行位姿识别,得到候选位姿集合,包括:获取由最高层级的全局语义栅格地图中概率值大于零的栅格构成目标栅格栈,其中,每个全局语义栅格地图的层级与分辨率负相关;基于所述目标局部语义点云地图计算所述目标栅格栈中的每个栅格的第一评价指标以及其他层级的全局语义栅格地图中的至少 一个栅格的第一评价指标值,并根据所述第一评价指标值确定候选位姿,以得到候选位姿集合。
目标栅格栈可以理解为记录有最高层级的全局语义栅格地图中所记录的概率值大于零的每个栅格的栅格信息的栈,该栅格信息可以为有栅格在其所属全局语义栅格地图中的坐标(a,b)及其所属全局语义栅格地图的层级i组成的三元组(a,b,i)。第一评价指标值可用于评估每个栅格内存在候选位姿的可能性,其可以与局部语义点云地图(包括目标局部点云地图、对目标局部语义点云地图旋转和/或平移得到的地图)中的每个语义特征点在相应栅格所位于的全局语义栅格地图中对应的栅格内存储的概率值正相关。
在上述实施方式中,在采用目标局部语义点云地图中的每个语义特征点的语义信息确定最高层级的全局语义栅格地图中可能存在目标位姿的栅格时,可以仅对所存储的、存在相应语义类别的语义对象的概率值不为零的栅格进行识别,以减少在对利用语义信息对机器人进行粗定位时所需的计算量,提高机器人的定位速度。
机器人构建一个空的栅格栈,并根据最高层级的全局语义栅格地图内的每个栅格中记录的该栅格内存在相应语义类别的语义对象的概率值,将所记录概率值不为零的栅格的栅格信息(如三元组)添加至该栅格栈中,作为目标栅格栈;利用目标局部语义点云地图中的多个语义特征点依次对目标栅格栈中的每个概率值不为零的栅格进行评价,得到每个栅格的第一评价指标值,并根据第一评价指标值大于第一指标阈值的栅格确定候选位姿,例如,直接基于目标栅格栈中第一评价指标值大于第一指标阈值的栅格在最低层级的栅格地图中所对应的栅格的第一评价指标确定候选位姿;或者,按照层级由高到低的顺序,依次判断高层级的全局语义栅格地图中第一评价指标值大于第一指标阈值的栅格在相邻低层级的全局语义栅格地图中对应的每个栅格的第一评价指标是否依旧大于第一评价指标阈值,直至判断至最低层级的全局语义栅格地图中的栅格,并将判断得到的最低层级的全局语义栅格地图中第一评价指标大于第一指标阈值的栅格对应的位姿确定为候选位姿。
在本实施例中,在构建目标栅格栈时,可以直接将所获取到的最高层级的全局语义栅格地图中所存储的概率值不为零的栅格添加至目标栅格栈中;也可以对该最高层级的全局语义栅格地图中的概率值不为零的栅格进行膨胀操作,并将膨胀后的全局语义栅格地图中概率值不为零的栅格添加至目标栅格栈中,以提高后续识别到的候选位姿的全面性,避免出现漏识别的情况。在此,在对全局语义栅格地图中概率值不为零的一栅格进行膨胀操作时,可以以该栅格为中心,将与该栅格之间的距离在设定距离(如10m等)之内且概率值为零的栅 格标记为概率值不为零,如将与该栅格之间的距离在设定距离之内且概率值为零的栅格所存储的概率值修改为一预先设置的不为零的概率值,如将其概率值修改为0.5或1等概率值。
S103、根据所述激光点云地图和所述候选位姿集合确定目标位姿,所述目标位姿包括回环位姿和/或重定位位姿。
在本实施例中,在利用语义信息对机器人进行粗定位之后,可以利用激光点云对机器人进行精定位,以判断利用语义信息识别得到的候选位姿及候选位姿附近是否包含目标位姿并在确定其候选位姿附近包含目标位姿时确定该目标位姿。
示例性的,可以针对候选位姿集合中的每个候选位姿,依次利用迭代最近点算法匹配局部激光点云地图和全局激光点云地图,并按照匹配点数由高到低的顺序,选取预设数量(如一个或多个)的候选位姿作为目标位姿;也可以计算候选位姿集合中多个候选位姿的平均候选位姿,在一定范围内对该平均候选位姿的多个位姿参数进行离散化,并针对离散化得到的每个位姿,依次利用迭代最近点算法(Iterative Closest Point,ICP)匹配局部激光点云地图和全局激光点云地图,并按照匹配点数由高到低的顺序,选取预设数量的离散化得到的位姿作为目标位姿。
本实施例提供的定位方法,获取当前位置的目标局部语义点云地图、全局语义栅格地图和激光点云地图,其中,全局语义栅格地图的每个栅格中记录有该栅格内存在目标语义对象的概率值;基于该目标局部语义点云地图和全局语义栅格地图进行位姿识别,得到候选位姿结合;根据该激光点云地图和该候选位姿集合确定机器人的回环检测位姿和/或重定位位姿。本实施例通过采用上述技术方案,首先利用语义信息对机器人进行粗定位,再利用激光点云信息对机器人进行精定位,不仅能够减少定位过程中所需的计算量,提高回环检测/重定位的速度;还能够提高回环检测/重定位的准确性,降低误检率。
图2为本公开实施例提供的另一种定位方法的流程示意图。本实施例中的方案可以与上述实施例中的一个或多个可选方案组合。可选的,所述基于所述目标局部语义点云地图计算所述目标栅格栈中的每个栅格的第一评价指标以及其他层级的全局语义栅格地图中的至少一个栅格的第一评价指标值,并根据所述第一评价指标值确定候选位姿,以得到候选位姿集合,包括:构建与所述目标局部语义点云地图相同的当前地图;创建与所述目标栅格栈相同的当前栅格栈,并控制位于所述当前栅格栈顶端的当前栅格出栈;基于所述当前地图计算所述当前栅格的第一评价指标值;如果所述第一评价指标值大于第一指标阈值, 则判断所述当前栅格所位于的目标全局语义栅格地图是否为最低层级的语义栅格地图,若当前栅格所位于的目标全局语义栅格地图为最低层级的语义栅格地图,则将所述当前栅格在全局语义点云地图中对应的位置坐标以及目标角度作为候选位姿添加至候选位姿集合中,若当前栅格所位于的目标全局语义栅格地图不为最低层级的语义栅格地图,则将所述当前栅格在下一层级的栅格地图中对应的栅格添加至所述当前栅格栈中;返回执行控制位于所述当前栅格栈顶端的当前栅格出栈的操作,直至所述当前栅格栈为空为止;其中,所述目标角度为所述当前地图相对于所述目标局部语义点云地图的旋转角度;如果所述第一评价指标值小于或等于第一指标阈值,则返回执行控制位于所述当前栅格栈顶端的当前栅格出栈的操作,直至所述当前栅格栈为空为止。
可选的,本实施例提供的定位方法还可以包括:当所述当前栅格栈为空时,将所述当前地图旋转预设旋转角度,得到旋转后的局部语义点云地图,作为当前地图,并返回执行创建与所述目标栅格栈相同的当前栅格栈的操作,直至所述当前地图旋转一周为止。
相应的,如图2所示,本实施例提供的定位方法可以包括:
S201、获取当前位置的目标局部语义点云地图、至少两层级的全局语义栅格地图和激光点云地图,其中,所述全局语义栅格地图的每个栅格中记录有所述栅格内存在目标语义对象的概率值。
S202、获取由最高层级的全局语义栅格地图中概率值大于零的栅格构成目标栅格栈,其中,每个全局语义栅格地图的层级与分辨率负相关。
S203、构建与所述目标局部语义点云地图相同的当前地图。
在本实施例中,可以复制目标局部语义点云地图,作为当前地图,并基于当前地图执行后续操作,以避免后续操作对目标局部语义点云地图造成影响。
S204、创建与所述目标栅格栈相同的当前栅格栈。
可以构建一个空的栈作为当前栅格栈,并将目标栅格栈复制给该当前栅格栈,即将目标栅格栈中存储的每个栅格的栅格信息(即三元组)写入该当前栅格栈中,以避免后续的出栈和入栈操作对目标栅格栈造成影响。
S205、控制位于所述当前栅格栈顶端的当前栅格出栈。
可以将位于当前栅格栈顶端的栅格作为当前栅格,并控制该当前栅格出栈,即自当前栅格栈中取出位于当前栅格栈顶端的栅格,并将所取出的该栅格作为当前栅格。
S206、基于所述当前地图计算所述当前栅格的第一评价指标值。
在确定当前地图与当前栅格后,可以根据当前地图计算当前栅格的第一评价指标,如根据当前地图内的每个特征点对应的概率值和/或当前地图与当前栅格所位于的全局语义栅格地图(或全局语义点云地图)之间的不匹配程度计算第一评价指标,以对当前栅格进行评价。
在一个实施方式中,所述基于所述当前地图计算所述当前栅格的第一评价指标值,包括:对所述当前地图进行平移,以将所述当前栅格在所述当前地图中对应的坐标点移动至原点位置,得到平移地图;获取所述平移地图内的每一个语义特征点在所述目标全局语义栅格地图中对应的栅格中记录的概率值,作为所述语义特征点的概率值;根据每个语义特征点的概率值计算所述当前栅格的第一评价指标值。
平移地图可以为对当前地图进行平移后得到的地图。目标全局语义栅格地图可以为当前栅格所位于的相应层级的全局语义栅格地图。
在上述实施方式中,在计算当前栅格的第一评价指标值时,可以首先依据当前栅格对当前地图进行平移,如将当前栅格在当前地图中对应的坐标点平移至地图坐标系的原点位置,以将该坐标点作为原点计算第一评价指标。
示例性的,可以首先初始化当前栅格(a,b)的第一评价指标值score1为0,并根据目标全局语义栅格地图中每个栅格对应的实际距离c
i计算当前栅格的栅格中心对应的实际位置x
m/c
i,y
m/c
i,y
i=b·c
i,并将当前地图沿地图坐标系的x轴平移x
i,将当前地图沿地图坐标系的y轴平移y
i,得到平移地图;然后针对平移地图中的每个语义特征点(假设坐标为(x
m,y
m)),根据该语义特征点的位置坐标确定该语义特征点在目标全局语义栅格地图中所对应的栅格,如将目标全局语义栅格地图中该位置坐标处的栅格(x
m/c
i,y
m/c
i)确定为该语义特征点在目标全局语义栅格地图中所对应的栅格,并将该栅格内记录的概率值作为该语义特征点的概率值;进而,可以根据平移地图中的每个语义特征点的概率值计算当前栅格的第一评价指标值,如将平移地图中多个语义特征点的概率值的平均值或中值等作为当前栅格的第一评价指标值。
在本实施例中,在计算一个栅格的第一评价指标值时,除考虑当前地图中每个语义特征点的概率值之外,也可以考虑当前地图与全局语义栅格地图(或全局语义点云)之间的不匹配程度,例如在栅格位于任一层级的全局语义栅格地图内时,或者,仅在栅格位于最低层级的全局语义栅格地图内时,根据当前地图中每个语义特征点的概率值以及当前地图与全局语义栅格地图之间的不匹配程度计算该栅格的第一评价指标值,以提高后续识别得到的候选位姿的准确性。
由于在确定位于除最低层级的全局语义栅格地图之外的其他层级的全局语 义栅格地图中的栅格的第一评价指标时,该第一评价指标仅用于确定是否需要计算其在上一层级的全局语义栅格地图中对应的栅格的第一评价指标,即仅需要考虑第一评价指标的上边界,因此,可以仅在栅格位于最低层级的全局语义栅格地图内时,根据当前地图中每个语义特征点的概率值以及当前地图与全局语义栅格地图之间的不匹配程度计算该栅格第一评价指标值。所述根据每个语义特征点的概率值计算所述当前栅格的第一评价指标值,包括:如果所述目标全局语义栅格地图不为最低层级的语义栅格地图,则根据每个语义特征点的概率值计算多个语义特征点的概率平均值,作为所述当前栅格的第一评价指标值;如果所述目标全局语义栅格地图为最低层级的语义栅格地图,则根据每个语义特征点的概率值计算多个语义特征点的概率平均值和惩罚函数平均值,并将所述概率平均值与所述惩罚函数平均值之间的差值,作为所述当前栅格的第一评价指标值,其中,所述惩罚函数平均值用于表征所述当前地图与所述目标全局语义栅格地图之间的不匹配程度。
示例性的,在基于当前地图计算当前栅格的第一评价指标值时,可以判断当前栅格所位于的目标全局语义栅格地图是否为最低层级的语义栅格地图,如判断当前栅格对应的三元组中的层级i是否为零,若当前栅格对应的三元组中的层级i为零,则根据当前地图中的每个语义特征点的概率值计算当前栅格的第一评价指标值,如可以遍历当前地图中的所有语义特征点,在遍历到每一个语义特征点时,采用下述式(3)更新当前栅格的第一评价指标值,并将所有语义特征点均遍历完成后的第一评价指标值作为当前栅格的第一评价指标值;若当前栅格对应的三元组中的层级i不为零,则根据当前地图中每个语义特征点的概率值计算多个语义特征点的概率平均值和惩罚函数平均值,并基于该概率平均值和惩罚函数平均值计算当前栅格的第一评价指标值,如可以遍历当前地图中的所有语义特征点,在遍历到每一个语义特征点时,采用下述式(4)更新当前栅格的第一评价指标值,并将所有语义特征点均遍历完成后的第一评价指标值作为当前栅格的第一评价指标值。
score1为当前栅格的第一评价指标值。N
Pt为目标局部语义点云地图中与语义类别t对应的语义点云地图中包含的语义特征点的数量。G
it[x
m/c
i,y
m/c
i]为当前所遍历到的语义特征点(x
m,y
m)在第i层级的全局语义栅格地图的与语义 类别t对应的栅格地图中对应的栅格(x
m/c
i,y
m/c
i)内保存的概率值。
与I均为当前栅格的惩罚函数,
用于表征平移地图中每个语义特征点与全局语义点云地图中相应语义特征点对应不同语义对象的情况;惩罚函数I用于表征平移地图中的语义特征点在全局语义点云地图中不存在对应的语义特征点的情况,如果G
it[x
m/c
i,y
m/c
i]=0,则Ι(G
it[x
m/c
i,y
m/c
i]=0)=1,如果G
it[x
m/c
i,y
m/c
i]≠0,则Ι(G
it[x
m/c
i,y
m/c
i]=0)=0。α
k与β
k为预定义的系数,其可以根据需要进行设置,例如可以将α
k与β
k设置为α
k=1,β
k=0.05。
S207、判断所述第一评价指标值是否大于第一指标阈值,若所述第一评价指标值大于第一指标阈值,则执行S208;若所述第一评价指标值不大于第一指标阈值,则执行S211。
S208、判断所述当前栅格所位于的目标全局语义栅格地图是否为最低层级的语义栅格地图,若所述当前栅格所位于的目标全局语义栅格地图为最低层级的语义栅格地图,则执行S209;若所述当前栅格所位于的目标全局语义栅格地图不为最低层级的语义栅格地图,则执行S210。
S209、将所述当前栅格在全局语义点云地图中对应的位置坐标以及目标角度作为候选位姿添加至候选位姿集合中,执行S211,其中,所述目标角度为所述当前地图相对于所述目标局部语义点云地图的旋转角度。
在本实施例中,在确定候选位姿时,将第一评价指标值大于第一指标阈值的所有位姿均作为候选位姿添加至候选位姿集合中,而非仅保留第一评价指标值最大的候选位姿,由此,后续可以利用多个候选位姿的标准差来判断候选位姿集合中的候选位姿是否可靠,并在判定其不可靠时不再执行后续操作,能够简化机器人的定位过程。
S210、将所述当前栅格在下一层级的栅格地图中对应的栅格添加至所述当前栅格栈中。
在本实施例中,在计算得到当前栅格的第一评价指标值之后,可以判断该第一评价指标值是否大于第一指标阈值,如果该第一评价指标值大于第一指标阈值,则确定当前栅格内可能存在候选位姿,并在当前栅格不为分辨率最高的全局语义栅格地图中的栅格时,将当前栅格在分辨率更高的上一层级的全局语义栅格地图中对应的栅格添加至当前栅格栈中,以精确候选位姿的位置。其中,该第一指标阈值可以根据需要进行设置,本实施例不对此进行限制。
当当前栅格的第一评价指标值大于第一指标阈值时,可以判断目标全局语义栅格地图是否为最低层级的全局语义栅格地图,即判断当前栅格是否为基于 全局语义栅格地图能够确定的最精确的候选位姿的位置,若目标全局语义栅格地图为最低层级的全局语义栅格地图,则可以直接确定当前栅格(a,b)所对应的候选位姿(a·c
i,b·c
i,θ),并将该候选位姿添加到候选位姿集合中;若目标全局语义栅格地图不为最低层级的全局语义栅格地图,则可以确定当前栅格在下一层级的全局语义栅格地图中所对应的栅格,并将所确定的栅格添加到当前栅格栈中,如当高层级的全局语义栅格地图的分辨率为其相邻低层级的全局语义栅格地图的分辨率的4倍时,可以将所确定的栅格的三元组(a*2,b*2,i-1)、(a*2+1,b*2,i-1)、(a*2,b*2+1,i-1)以及(a*2+1,b*2+1,i-1)添加到当前栅格栈中,并返回执行S205。其中,θ表示目标角度,即当前地图相对于目标局部语义点云地图的旋转角度。
S211、判断所述当前栅格栈是否为空,若当前栅格栈为空,则执行S212;若当前栅格栈不为空,则返回执行S205。
在本实施例中,在对当前栅格处理完成后,如在判定当前栅格的第一评价指标值小于或等于第一指标阈值(即在判定当前栅格内不存在候选位姿时)、在将当前栅格在下一层级的全局语义栅格地图中对应的栅格添加到当前栅格栈中或者在将当前栅格对应的候选位姿添加到候选位姿集合中之后,可以判断当前栅格栈是否为空,并在其不为空时,返回执行S205,以遍历当前栅格栈内的所有栅格。
S212、判断所述当前地图是否已旋转一周,若当前地图已旋转一周,则执行S213;若当前地图是未旋转一周,则执行S214。
S213、将所述当前地图旋转预设旋转角度,得到旋转后的局部语义点云地图,作为当前地图,并返回执行S204。
预设旋转角度可以根据需要设置,如该预设旋转角度可以为5°、10°或20°等角度值。
在本实施例中,除基于所获取到的目标局部语义点云地图进行位姿识别外,还可以按照预设旋转角度对目标局部语义点云地图进行多次旋转,直至旋转一周,并分别基于该多次旋转得到的多张语义点云地图进行位姿势识别,以提高候选位姿集合中所包含的候选位姿的全面性。
当基于当前地图进行候选位姿识别完成后,可以判断当前地图相对于目标局部语义点云地图是否已经旋转一周,如判断若继续将当前地图旋转预设旋转角度,其相对于目标局部语义点云地图的旋转角度是否已经超过360°,若继续将当前地图旋转预设旋转角度,其相对于目标局部语义点云地图的旋转角度已经超过360°,则可以确定当前地图已旋转一周,候选位姿识别完成,不再对当 前地图进行旋转;若继续将当前地图旋转预设旋转角度,其相对于目标局部语义点云地图的旋转角度未超过360°,则可以将当前地图继续旋转预设旋转角度,并将旋转得到的局部语义点云地图作为当前地图,并重复执行上述操作,以基于该旋转后的局部语义点云地图进行候选位姿识别。
S214、根据所述激光点云地图和所述候选位姿集合确定目标位姿,所述目标位姿包括回环位姿和/或重定位位姿。
本实施例提供的定位方法,仅在确定高层级的全局语义栅格地图的栅格的第一评价指标值大于第一指标阈值时,再计算其在低一层级的全局语义栅格地图内对应的栅格的第一评价指标值,而在高层级的全局语义栅格地图的栅格的第一评价指标值小于或等于第一指标阈值时,无需再计算其在低一层级的全局语义栅格地图内对应的栅格的第一评价指标值,能够提高回环检测/重定位的效率。并且,通过对目标局部语义点云地图进行旋转,还能够提高所确定的候选位姿的全面性,进而提高回环检测/重定位的准确性,降低误检率。
图3为本公开实施例提供的另一种定位方法的流程示意图。本实施例中的方案可以与上述实施例中的一个或多个可选方案组合。可选的,所述根据所述激光点云地图和所述候选位姿集合确定目标位姿,包括:根据所述候选位姿集合中的每个候选位姿对应的第一评价指标,计算多个候选位姿的每个位姿参数的加权平均值,作为平均位姿参数;以所述平均位姿参数为中心确定搜索空间,并对所述搜索空间进行离散化处理,得到多个待搜索位姿;采用迭代最近点算法确定每个待搜索位姿与所述激光点云地图的匹配信息,并基于所述匹配信息计算每个待搜索位姿的第二评价指标值;选取第二评价指标值最大的待搜索位姿作为目标位姿。
可选的,在所述选取第二评价指标值最大的待搜索位姿作为目标位姿之前,还包括:确定第二评价指标值大于第二指标阈值的待搜索位姿的目标位姿参数的标准差小于对应的预设标准差阈值。
可选的,在所述根据所述激光点云地图和所述候选位姿集合确定目标位姿之后,还包括:继续移动,并在继续移动预设距离后,采用所述预设距离内的局部语义点云地图对所述目标位姿进行验证,以在验证未通过时,重新进行定位。
相应的,如图3所示,本实施例提供的定位方法可以包括:
S301、获取当前位置的目标局部语义点云地图、至少两层级的全局语义栅格地图和激光点云地图,其中,所述全局语义栅格地图的每个栅格中记录有所 述栅格内存在目标语义对象的概率值。
S302、获取由最高层级的全局语义栅格地图中概率值大于零的栅格构成目标栅格栈,其中,每个全局语义栅格地图的层级与分辨率负相关。
S303、基于所述目标局部语义点云地图计算所述目标栅格栈中的每个栅格的第一评价指标以及其他层级的全局语义栅格地图中的至少一个栅格的第一评价指标值,并根据所述第一评价指标值确定候选位姿,以得到候选位姿集合。
S304、根据所述候选位姿集合中的每个候选位姿对应的第一评价指标,计算多个候选位姿的每个位姿参数的加权平均值,作为平均位姿参数。
在本步骤中,可以计算多个候选位姿的每个位姿参数的加权平均值,以使得所计算得到的平均位姿参数与第一评价指标值较高的候选位姿的位姿参数更为接近,确保当存在目标位姿时,后续所确定的搜索空间内能够涵盖该目标位姿,即确保后续能够检测到所存在的目标位姿,避免出现漏检的情况。可以采用每个候选位姿的第一评价指标值作为权重,计算候选位姿集合中的多个候选位姿的x轴坐标的加权平均值
多个候选位姿的y轴坐标的加权平均值
和多个候选位姿的角度θ的加权平均值
作为其平均位姿参数。
在本实施例中,在得到候选位姿集合后,可以不考虑候选位姿集合中的多个候选位姿之间的浮动情况,直接计算候选位姿集合中的多个候选位姿的平均位姿参数;也可以考虑候选位姿集合中多个候选位姿之间的浮动情况,仅在多个位姿参数的标准差均小于该位姿参数对应的标准差阈值时,再计算候选位姿集合中的多个候选位姿的平均位姿参数,并进行后续操作,而在存在一个或多个标准差大于或等于其对应的标准差阈值的位姿参数时,直接确定在当前时刻未检测到回环检测位姿/重定位位姿,并不再执行后续操作,以减少在回环检测/重定位过程中所需的计算量,在所述根据所述候选位姿集合中的每个候选位姿对应的第一评价指标,计算多个候选位姿的每个位姿参数的加权平均值,作为平均位姿参数之前,还包括:确定多个候选位姿参数的标准差小于相应的标准差阈值。其中,每个位姿参数对应的标准差阈值可以根据需要设置,例如可以将x对应的标准差阈值设置为1m,将y对应的标准差阈值设置为1m,将θ对应的标准差阈值设置为10°,等等。
S305、以所述平均位姿参数为中心确定搜索空间,并对所述搜索空间进行离散化处理,得到多个待搜索位姿。
在确定平均位姿参数后,可以以每个平均位姿参数为中心,按照预先设置的每个位姿参数对应的搜索范围确定搜索空间,并按照预先设置的划分间隔对该搜索空间进行划分,将划分得到的不同位姿作为待搜索位姿。例如,假设平 均位姿参数分别为
和
每个位姿参数对应的搜索范围分别为-d~d、-d~d以及-d
θ~d
θ,每个位姿参数对应的划分间隔分别为△x、△y和△θ,则可以确定搜索空间为
以△x、△y和△θ为间隔划分该搜索控件,将每一个划分得到的子空间对应的x、y、θ作为待搜索位姿,并可以将其添加至待搜索位姿集合中。其中,d、d
θ、△x、△y和△θ均可以根据需要进行设置,例如,可设置d=3△x=3△y,d
θ=3△θ,并可以取△x=△y=0.4m,△θ=5°。
S306、采用迭代最近点算法确定每个待搜索位姿与所述激光点云地图的匹配信息,并基于所述匹配信息计算每个待搜索位姿的第二评价指标值。
该匹配信息可以理解为基于每个待搜索位姿对激光点云地图进行匹配时的匹配信息,其可以包括匹配点数量和所有匹配点之间的距离之和。第二评价指标可用于评估每个待搜索位姿为目标位姿的可能性,其可以与以其作为初值时局部激光点云地图同全局激光点云地图之间的匹配程度正相关。
示例性的,可以针对每一个待搜索位姿,以该待搜索位姿的位姿参数作为初值,采用基于点到直线的ICP算法求解局部激光点云地图中的平面特征点云到全局激光点云地图中的平面特征点云的坐标变换关系,并记ICP算法最后一次迭代时的匹配点数量为n,所有匹配点之间的距离之和为l,根据该匹配点数量n和所有匹配点之间的距离之和l计算该待搜索位姿的第二评价指标值,如可以采用下式(5)计算每个待搜索位姿的第二评价指标值。
score2为第二评价指标值,n为最后一次迭代时的匹配点数量,l为最后一次迭代时所有匹配点之间的距离之和,n
p为局部激光点云地图中的平面特征点云的数量。
采用基于点到直线的ICP算法进行配准仅是本实施例进行的示例性说明,而并非限定。本实施例也可以采用其他点云配准算法,如点到点的ICP算法、正态分布变换(Normal Distributions Transform,NDT)算法或基于点云特征描述的配准方法等,进行配准。当采用除ICP算法之外的算法进行配准时,针对每一个待搜索位姿,在点云配准完成后还可以确定匹配点的数量(因为ICP算法中已包含此步骤),例如,将匹配点数量初始化为0,对于局部激光点云地图中的每一个点,找到全局激光点云地图中与该点距离最近的点,并计算此两个点之间的距离,如果该距离小于阈值(如0.5m或1m等),则认为全局激光点云地图中的上述点为局部激光点云地图中的该点的匹配点,并将匹配点数量加1,以此类推,即可得到该待搜索位姿对应的匹配点的数量。
S307、确定第二评价指标值大于第二指标阈值的待搜索位姿的目标位姿参数的标准差小于对应的预设标准差阈值。
相应的,如果第二评价指标值大于第二指标阈值的待搜索位姿的目标位姿参数中存在标准差大于或等于对应的预设标准差阈值的目标位姿参数,则可以确定当前时刻未检测到回环检测位姿/重定位位姿,并不再执行后续操作。
目标位姿参数可以包括三个位姿参数x、y和θ中的一个或多个,例如可以将x和y设置为目标位姿参数或者将x、y和θ均设置为目标位姿参数,以下以目标位姿参数包括x和y为例。第二指标阈值和每个位姿参数对应的预设标准差阈值可以根据需要进行设置,如第二指标阈值可以设置为0.3或0.4等,位姿参数x和y对应的预设标准差阈值可以设置为0.8m或0.7m等。
示例性的,在得到一待搜索位姿的第二评价指标之后,可以判断该待搜索位姿的第二评价指标是否大于第二指标阈值,如果该待搜索位姿的第二评价指标大于第二指标阈值,则将该待搜索位姿添加至一预设位姿集合中。从而,在将所有第二评价指标大于第二指标阈值的待搜索位姿均添加至该预设位姿集合之后,可以针对该预设位姿集合中的所有待搜索位姿,计算所有待搜索位姿的x轴坐标的标准差和y轴坐标的标准差,并判断计算得到的x轴坐标的标准差小于位姿参数x对应的预设标准差阈值且计算得到的y轴坐标的标准差小于位姿参数y对应的预设标准差阈值是否成立,若计算得到的x轴坐标的标准差小于位姿参数x对应的预设标准差阈值且计算得到的y轴坐标的标准差小于位姿参数y对应的预设标准差阈值成立,则执行S308;若计算得到的x轴坐标的标准差小于位姿参数x对应的预设标准差阈值且计算得到的y轴坐标的标准差小于位姿参数y对应的预设标准差阈值不成立,则可以确定在当前时刻未检测到回环检测位姿/重定位位姿,并不再执行后续操作。
S308、选取第二评价指标值最大的待搜索位姿作为目标位姿,所述目标位姿包括回环位姿和/或重定位位姿。
在本实施例中,在计算得到每个待搜索位姿的第二评价指标后,可以选取第二评价指标值最大的待搜索位姿作为目标位姿,即选取为回环检测位姿/重定位位姿的可能性最高的待搜索位姿作为目标位姿。
本实施例并不对所选取的目标位姿的数量进行限制,例如也可以选取第二评价指标值大于一预设指标阈值的所有待搜索位姿作为目标位姿,或者,按照第二评价指标值由大到小的顺序,选取预设数量(一个或多个)待搜索位姿作为目标位姿。
S309、继续移动,并在继续移动预设距离后,采用所述预设距离内的局部 语义点云地图对所述目标位姿进行验证,以在验证未通过时,重新进行定位。
在本实施例中,在确定目标位姿之后,可以控制机器人继续移动,并采用机器人在继续移动的预设距离内的语义信息对所确定的目标位姿进行验证,以验证所确定的目标位姿是否确实为回环检测位姿/重定位位姿,提高所确定的回环检测/重定位的可靠性。
示例性的,可以以所确定的目标位姿作为初始值,首先在此后机器人每运行一段距离(如1m或1.5m等)时,利用SLAM后端给出的当前时刻的位姿增量,得到机器人在当前时刻的位姿,获取机器人在当前位置的目标局部语义栅格地图,并按照式(4)计算机器人在当前时刻的位姿的第一评价指标值,依此类推,在机器人移动预设距离(如15m或20m等)的过程内,可以得到机器人的多个位姿的第一评价指标值。然后判断第一评价指标值大于第三指标阈值的位姿在该预设距离内所采集到的所有位姿中所占的比例,如果该比例大于预设比例阈值(如0.8或0.9等),则确定目标位姿验证通过,认为成功实现了回环检测/重定位;如果该比例不大于预设比例阈值,则确定目标位姿验证未通过,即确定S308所确定的目标位姿有误,可以间隔一段时间之后重新执行S301再次对机器人进行定位。其中,该第三指标阈值根据需要进行设置,如可以将第三指标阈值设置为与第一指标阈值成设定比例(如4/5等)。
本实施例提供的定位方法,根据第一评价指标的加权平均值确定搜索空间,根据激光点云数据确定搜索空间中每个待搜索控件的第二评价指标值,根据该第二评价值确定搜索空间内是否存在目标位姿以及所存在的目标位姿,并在确定目标位姿之后,继续移动,并再次基于机器人在继续移动的预设距离内的语义信息对该目标位姿进行验证,能够减少机器人定位过程中所需的计算量,并提高所确定的目标位姿的可靠性,确保能够高效可靠地实现回环检测/重定位。
图4为本公开实施例提供的一种定位装置的结构框图。该装置可以由软件和/或硬件实现,可配置于机器人,例如,该装置可以配置于室内机器人中,可通过执行定位方法进行回环检测/重定位。如图4所示,本实施例提供的定位装置可以包括:地图获取模块401、候选位姿识别模块402和目标位姿确定模块403,其中,地图获取模块401,设置为获取当前位置的目标局部语义点云地图、全局语义栅格地图和激光点云地图,其中,所述全局语义栅格地图的每个栅格中记录有所述栅格内存在目标语义对象的概率值;候选位姿识别模块402,设置为基于所述目标局部语义点云地图和所述全局语义栅格地图进行位姿识别,得到候选位姿集合;目标位姿确定模块403,设置为根据所述激光点云地图和所述候选位姿集合确定目标位姿,所述目标位姿包括回环位姿和/或重定位位姿。
本实施例提供的定位装置,通过地图获取模块获取当前位置的目标局部语义点云地图、全局语义栅格地图和激光点云地图,其中,全局语义栅格地图的每个栅格中记录有该栅格内存在目标语义对象的概率值;通过候选位姿识别模块基于该目标局部语义点云地图和全局语义栅格地图进行位姿识别,得到候选位姿结合;通过目标位姿确定模块根据该激光点云地图和该候选位姿集合确定机器人的回环检测位姿和/或重定位位姿。本实施例通过采用上述技术方案,首先利用语义信息对机器人进行粗定位,再利用激光点云信息对机器人进行精定位,不仅能够减少定位过程中所需的计算量,提高回环检测/重定位的速度;还能够提高回环检测/重定位的准确性,降低误检率。
在上述方案中,所述地图获取模块401设置为:获取当前位置的目标局部语义点云地图、至少两层级的全局语义栅格地图和激光点云地图,其中,不同层级的全局语义栅格地图的分辨率不同。
在上述方案中,所述候选位姿识别模块402可以包括:栅格栈构建单元,设置为获取由最高层级的全局语义栅格地图中概率值大于零的栅格构成目标栅格栈,其中,每个全局语义栅格地图的层级与分辨率负相关;候选位姿确定单元,设置为基于所述目标局部语义点云地图计算所述目标栅格栈中的每个栅格的第一评价指标以及其他层级的全局语义栅格地图中的至少一个栅格的第一评价指标值,并根据所述第一评价指标值确定候选位姿,以得到候选位姿集合。
在上述方案中,所述候选位姿确定单元可设置为:构建与所述目标局部语义点云地图相同的当前地图;创建与所述目标栅格栈相同的当前栅格栈,并控制位于所述当前栅格栈顶端的当前栅格出栈;基于所述当前地图计算所述当前栅格的第一评价指标值;如果所述第一评价指标值大于第一指标阈值,则判断所述当前栅格所位于的目标全局语义栅格地图是否为最低层级的语义栅格地图,若当前栅格所位于的目标全局语义栅格地图为最低层级的语义栅格地图,则将所述当前栅格在全局语义点云地图中对应的位置坐标以及目标角度作为候选位姿添加至候选位姿集合中,若当前栅格所位于的目标全局语义栅格地图不为最低层级的语义栅格地图,则将所述当前栅格在下一层级的栅格地图中对应的栅格添加至所述当前栅格栈中;返回执行控制位于所述当前栅格栈顶端的当前栅格出栈的操作,直至所述当前栅格栈为空为止;其中,所述目标角度为所述当前地图相对于所述目标局部语义点云地图的旋转角度;如果所述第一评价指标值小于或等于第一指标阈值,则返回执行控制位于所述当前栅格栈顶端的当前栅格出栈的操作,直至所述当前栅格栈为空为止。
所述候选位姿确定单元还可以设置为:在所述当前栅格栈为空时,将所述当前地图旋转预设旋转角度,得到旋转后的局部语义点云地图,作为当前地图, 并返回执行创建与所述目标栅格栈相同的当前栅格栈的操作,直至所述当前地图旋转一周为止。
在上述方案中,所述候选位姿确定单元可以包括:平移子单元,设置为对所述当前地图进行平移,以将所述当前栅格在所述当前地图中对应的坐标点移动至原点位置,得到平移地图;概率值确定子单元,设置为获取所述平移地图内的每一个语义特征点在所述目标全局语义栅格地图中对应的栅格中记录的概率值,作为所述语义特征点的概率值;指标计算子单元,设置为根据每个语义特征点的概率值计算所述当前栅格的第一评价指标值。
在上述方案中,所述指标计算子单元设置为:在所述目标全局语义栅格地图不为最低层级的语义栅格地图时,根据每个语义特征点的概率值计算多个语义特征点的概率平均值,作为所述当前栅格的第一评价指标值;在所述目标全局语义栅格地图为最低层级的语义栅格地图时,根据每个语义特征点的概率值计算多个语义特征点的概率平均值和惩罚函数平均值,并将所述概率平均值与所述惩罚函数平均值之间的差值,作为所述当前栅格的第一评价指标值,其中,所述惩罚函数平均值用于表征所述当前地图与所述目标全局语义栅格地图之间的不匹配程度。
在上述方案中,所述目标位姿确定模块403可以包括:平均值计算单元,设置为根据所述候选位姿集合中的每个候选位姿对应的第一评价指标,计算多个候选位姿的每个位姿参数的加权平均值,作为平均位姿参数;离散化单元,设置为以所述平均位姿参数为中心确定搜索空间,并对所述搜索空间进行离散化处理,得到多个待搜索位姿;指标计算单元,设置为采用迭代最近点算法确定每个待搜索位姿与所述激光点云地图的匹配信息,并基于所述匹配信息计算每个待搜索位姿的第二评价指标值;目标位姿确定单元,设置为选取第二评价指标值最大的待搜索位姿作为目标位姿。
所述目标位姿确定模块403还可以包括:标准差确定单元,设置为在所述选取第二评价指标值最大的待搜索位姿作为目标位姿之前,确定第二评价指标值大于第二指标阈值的待搜索位姿的目标位姿参数的标准差小于对应的预设标准差阈值。
本实施例提供的定位装置还可以包括:栅格地图生成模块,设置为在所述获取当前位置的目标局部语义点云地图、至少两层级的全局语义栅格地图和激光点云地图之前,根据全局语义点云地图生成至少两层级的全局语义栅格地图。
在上述方案中,所述栅格地图生成模块设置为:按照预设尺寸对全局语义点云地图进行栅格划分,并确定每个栅格内存在目标语义对象的概率,以得到最低层级的全局语义栅格地图;对所述最低层级的全局语义栅格地图进行至少 一次降采样,并将每次降采样得到的全局语义栅格地图作为相应层级的全局语义栅格地图。
本实施例提供的定位装置还可以包括:验证模块,设置为在所述根据所述激光点云地图和所述候选位姿集合确定目标位姿之后,继续移动,并在继续移动预设距离后,采用所述预设距离内的局部语义点云地图对所述目标位姿进行验证,以在验证未通过时,重新进行定位。
本实施例提供的定位装置还可以包括:特征点获取模块,设置为在所述获取当前位置的目标局部语义点云地图、至少两层级的全局语义栅格地图和激光点云地图之前,获取当前位置的原始局部语义点云地图中的每个前景语义对象的第一特征点和每个背景语义对象的第二特征点;降采样模块,设置为采用不同的降采样方式对所述第一特征点和所述第二特征点进行降采样,并根据降采样得到的特征点构建目标局部语义点云地图。
在上述方案中,所述降采样模块可以包括:聚类单元,设置为对多个第一特征点进行欧式距离聚类,并将聚类后的每个聚类中心作为第一降采样特征点;体素化单元,设置为对多个第二特征点进行体素化降采样,得到第二降采样特征点;地图构建单元,设置为根据所述第一降采样特征点和所述第二降采样特征点构建目标局部语义点云地图。
本实施例提供的定位装置可应用于对机器人进行定位。
本公开实施例提供的定位装置可执行本公开任意实施例提供的定位方法,具备执行定位方法相应的功能模块和效果。未在本实施例中详尽描述的技术细节,可参见本公开任意实施例所提供的定位方法。
下面参考图5,其示出了适于用来实现本公开实施例的电子设备(例如终端设备)500的结构示意图。本公开实施例中的终端设备500可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、个人数字助理(Personal Digital Assistant,PDA)、平板电脑(PAD)、便携式多媒体播放器(Portable Media Player,PMP)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字电视(Television,TV)、台式计算机等等的固定终端。图5示出的电子设备500仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图5所示,电子设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(Read-Only Memory,ROM)502中的程序或者从存储装置508加载到随机访问存储器(Random Access Memory,RAM)503中的程序而执行多种适当的动作和处理。在RAM 503中,还存储有 电子设备500操作所需的多种程序和数据。处理装置501、ROM 502以及RAM503通过总线504彼此相连。输入/输出(Input/Output,I/O)接口505也连接至总线504。
通常,以下装置可以连接至I/O接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(Liquid Crystal Display,LCD)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备500与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有多种装置的电子设备500,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从ROM 502被安装。在该计算机程序被处理装置501执行时,执行本公开实施例的方法中限定的上述功能。
本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、RAM、ROM、可擦式可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、射频(Radio Frequency,RF)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如超文本传输协议(HyperText Transfer Protocol,HTTP)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(Local Area Network,LAN),广域网(Wide Area Network,WAN),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取当前位置的目标局部语义点云地图、全局语义栅格地图和激光点云地图,其中,所述全局语义栅格地图的每个栅格中记录有所述栅格内存在目标语义对象的概率值;基于所述目标局部语义点云地图和所述全局语义栅格地图进行位姿识别,得到候选位姿集合;根据所述激光点云地图和所述候选位姿集合确定目标位姿,所述目标位姿包括回环位姿和/或重定位位姿。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括LAN或WAN—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开多种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在一种情况下并不构成对该单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(Field Programmable Gate Array,FPGA)、专用集成电路(Application Specific Integrated Circuit,ASIC)、专用标准产品(Application Specific Standard Parts,ASSP)、片上系统(System on Chip,SOC)、复杂可编程逻辑设备(Complex Programmable Logic Device,CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、RAM、ROM、EPROM或快闪存储器、光纤、CD-ROM、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开的一个或多个实施例,示例1提供了一种定位方法,包括:
获取当前位置的目标局部语义点云地图、全局语义栅格地图和激光点云地图,其中,所述全局语义栅格地图的每个栅格中记录有所述栅格内存在目标语义对象的概率值;
基于所述目标局部语义点云地图和所述全局语义栅格地图进行位姿识别,得到候选位姿集合;
根据所述激光点云地图和所述候选位姿集合确定目标位姿,其中,所述目标位姿包括回环位姿和/或重定位位姿。
根据本公开的一个或多个实施例,示例2根据示例1所述的方法,所述获取当前位置的目标局部语义点云地图、全局语义栅格地图和激光点云地图,包括:
获取当前位置的目标局部语义点云地图、至少两层级的全局语义栅格地图和激光点云地图,其中,不同层级的全局语义栅格地图的分辨率不同。
根据本公开的一个或多个实施例,示例3根据示例2所述的方法,所述基于所述目标局部语义点云地图和所述全局语义栅格地图进行位姿识别,得到候 选位姿集合,包括:
获取由最高层级的全局语义栅格地图中概率值大于零的栅格构成目标栅格栈,其中,每个全局语义栅格地图的层级与分辨率负相关;
基于所述目标局部语义点云地图计算所述目标栅格栈中的每个栅格的第一评价指标以及其他层级的全局语义栅格地图中的至少一个栅格的第一评价指标值,并根据所述第一评价指标值确定候选位姿,以得到候选位姿集合。
根据本公开的一个或多个实施例,示例4根据示例3所述的方法,所述基于所述目标局部语义点云地图计算所述目标栅格栈中的每个栅格的第一评价指标以及其他层级的全局语义栅格地图中的至少一个栅格的第一评价指标值,并根据所述第一评价指标值确定候选位姿,以得到候选位姿集合,包括:
构建与所述目标局部语义点云地图相同的当前地图;
创建与所述目标栅格栈相同的当前栅格栈,并控制位于所述当前栅格栈顶端的当前栅格出栈;
基于所述当前地图计算所述当前栅格的第一评价指标值;
如果所述第一评价指标值大于第一指标阈值,则判断所述当前栅格所位于的目标全局语义栅格地图是否为最低层级的语义栅格地图,若当前栅格所位于的目标全局语义栅格地图为最低层级的语义栅格地图,则将所述当前栅格在全局语义点云地图中对应的位置坐标以及目标角度作为候选位姿添加至候选位姿集合中,若响应于当前栅格所位于的目标全局语义栅格地图不为最低层级的语义栅格地图,则将所述当前栅格在下一层级的栅格地图中对应的栅格添加至所述当前栅格栈中;返回执行控制位于所述当前栅格栈顶端的当前栅格出栈的操作,直至所述当前栅格栈为空为止;其中,所述目标角度为所述当前地图相对于所述目标局部语义点云地图的旋转角度;
如果所述第一评价指标值小于或等于第一指标阈值,则返回执行控制位于所述当前栅格栈顶端的当前栅格出栈的操作,直至所述当前栅格栈为空为止。
根据本公开的一个或多个实施例,示例5根据示例4所述的方法,还包括:
当所述当前栅格栈为空时,将所述当前地图旋转预设旋转角度,得到旋转后的局部语义点云地图,作为当前地图,并返回执行创建与所述目标栅格栈相同的当前栅格栈的操作,直至所述当前地图旋转一周为止。
根据本公开的一个或多个实施例,示例6根据示例4所述的方法,所述基于所述当前地图计算所述当前栅格的第一评价指标值,包括:
对所述当前地图进行平移,以将所述当前栅格在所述当前地图中对应的坐 标点移动至原点位置,得到平移地图;
获取所述平移地图内的每一个语义特征点在所述目标全局语义栅格地图中对应的栅格中记录的概率值,作为所述语义特征点的概率值;
根据每个语义特征点的概率值计算所述当前栅格的第一评价指标值。
根据本公开的一个或多个实施例,示例7根据示例6所述的方法,所述根据每个语义特征点的概率值计算所述当前栅格的第一评价指标值,包括:
如果所述目标全局语义栅格地图不为最低层级的语义栅格地图,则根据每个语义特征点的概率值计算多个语义特征点的概率平均值,作为所述当前栅格的第一评价指标值;
如果所述目标全局语义栅格地图为最低层级的语义栅格地图,则根据每个语义特征点的概率值计算多个语义特征点的概率平均值和惩罚函数平均值,并将所述概率平均值与所述惩罚函数平均值之间的差值,作为所述当前栅格的第一评价指标值,其中,所述惩罚函数平均值用于表征所述当前地图与所述目标全局语义栅格地图之间的不匹配程度。
根据本公开的一个或多个实施例,示例8根据示例3-7任一所述的方法,所述根据所述激光点云地图和所述候选位姿集合确定目标位姿,包括:
根据所述候选位姿集合中的每个候选位姿对应的第一评价指标,计算多个候选位姿的每个位姿参数的加权平均值,作为平均位姿参数;
以所述平均位姿参数为中心确定搜索空间,并对所述搜索空间进行离散化处理,得到多个待搜索位姿;
采用迭代最近点算法确定每个待搜索位姿与所述激光点云地图的匹配信息,并基于所述匹配信息计算每个待搜索位姿的第二评价指标值;
选取第二评价指标值最大的待搜索位姿作为目标位姿。
根据本公开的一个或多个实施例,示例9根据示例8所述的方法,在所述选取第二评价指标值最大的待搜索位姿作为目标位姿之前,还包括:
确定第二评价指标值大于第二指标阈值的待搜索位姿的目标位姿参数的标准差小于对应的预设标准差阈值。
根据本公开的一个或多个实施例,示例10根据示例2-7任一所述的方法,在所述获取当前位置的目标局部语义点云地图、至少两层级的全局语义栅格地图和激光点云地图之前,还包括:
根据全局语义点云地图生成至少两层级的全局语义栅格地图。
根据本公开的一个或多个实施例,示例11根据示例10所述的方法,所述根据全局语义点云地图生成至少两层级的全局语义栅格地图,包括:
按照预设尺寸对全局语义点云地图进行栅格划分,并确定每个栅格内存在目标语义对象的概率,以得到最低层级的全局语义栅格地图;
对所述最低层级的全局语义栅格地图进行至少一次降采样,并将每次降采样得到的全局语义栅格地图作为相应层级的全局语义栅格地图。
根据本公开的一个或多个实施例,示例12根据示例1-7任一所述的方法,在所述根据所述激光点云地图和所述候选位姿集合确定目标位姿之后,还包括:
继续移动,并在继续移动预设距离后,采用所述预设距离内的局部语义点云地图对所述目标位姿进行验证,以在验证未通过时,重新进行定位。
根据本公开的一个或多个实施例,示例13根据示例1-7任一所述的方法,在所述获取当前位置的目标局部语义点云地图、全局语义栅格地图和激光点云地图之前,还包括:
获取当前位置的原始局部语义点云地图中的每个前景语义对象的第一特征点和每个背景语义对象的第二特征点;
采用不同的降采样方式对所述第一特征点和所述第二特征点进行降采样,并根据降采样得到的特征点构建目标局部语义点云地图。
根据本公开的一个或多个实施例,示例14根据示13所述的方法,所述采用不同的降采样方式对所述第一特征点和所述第二特征点进行降采样,并根据降采样得到的特征点构建目标局部语义点云地图,包括:
对多个第一特征点进行欧式距离聚类,并将聚类后的每个聚类中心作为第一降采样特征点;
对多个第二特征点进行体素化降采样,得到第二降采样特征点;
根据所述第一降采样特征点和所述第二降采样特征点构建目标局部语义点云地图。
根据本公开的一个或多个实施例,示例15根据示例1-7任一所述的方法,所述方法应用于对机器人进行定位。
根据本公开的一个或多个实施例,示例16提供了一种定位装置,包括:
地图获取模块,设置为获取当前位置的目标局部语义点云地图、全局语义栅格地图和激光点云地图,其中,所述全局语义栅格地图的每个栅格中记录有所述栅格内存在目标语义对象的概率值;
候选位姿识别模块,设置为基于所述目标局部语义点云地图和所述全局语义栅格地图进行位姿识别,得到候选位姿集合;
目标位姿确定模块,设置为根据所述激光点云地图和所述候选位姿集合确定目标位姿,其中,所述目标位姿包括回环位姿和/或重定位位姿。
根据本公开的一个或多个实施例,示例17提供了一种电子设备,包括:
一个或多个处理器;
存储器,设置为存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如示例1-15中任一所述的定位方法。
根据本公开的一个或多个实施例,示例18提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如示例1-15中任一所述的定位方法。
此外,虽然采用特定次序描绘了多个操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了多个实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的一些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的多种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
Claims (18)
- 一种定位方法,包括:获取当前位置的目标局部语义点云地图、全局语义栅格地图和激光点云地图,其中,所述全局语义栅格地图的每个栅格中记录有所述栅格内存在目标语义对象的概率值;基于所述目标局部语义点云地图和所述全局语义栅格地图进行位姿识别,得到候选位姿集合;根据所述激光点云地图和所述候选位姿集合确定目标位姿,其中,所述目标位姿包括回环位姿和重定位位姿中的至少之一。
- 根据权利要求1所述的方法,其中,所述获取当前位置的目标局部语义点云地图、全局语义栅格地图和激光点云地图,包括:获取当前位置的目标局部语义点云地图、至少两层级的全局语义栅格地图和激光点云地图,其中,不同层级的全局语义栅格地图的分辨率不同。
- 根据权利要求2所述的方法,其中,所述基于所述目标局部语义点云地图和所述全局语义栅格地图进行位姿识别,得到候选位姿集合,包括:获取由最高层级的全局语义栅格地图中概率值大于零的栅格构成的目标栅格栈,其中,每个全局语义栅格地图的层级与分辨率负相关;基于所述目标局部语义点云地图计算所述目标栅格栈中的每个栅格的第一评价指标以及其他层级的全局语义栅格地图中的至少一个栅格的第一评价指标值,并根据所述第一评价指标值确定候选位姿,以得到所述候选位姿集合。
- 根据权利要求3所述的方法,其中,所述基于所述目标局部语义点云地图计算所述目标栅格栈中的每个栅格的第一评价指标以及其他层级的全局语义栅格地图中的至少一个栅格的第一评价指标值,并根据所述第一评价指标值确定候选位姿,以得到所述候选位姿集合,包括:构建与所述目标局部语义点云地图相同的当前地图;创建与所述目标栅格栈相同的当前栅格栈,并控制位于当前栅格栈顶端的当前栅格出栈;基于当前地图计算当前栅格的第一评价指标值;在所述第一评价指标值大于第一指标阈值的情况下,判断当前栅格所位于的目标全局语义栅格地图是否为最低层级的语义栅格地图,响应于当前栅格所位于的目标全局语义栅格地图为最低层级的语义栅格地图,将当前栅格在全局语义点云地图中对应的位置坐标以及目标角度作为候选位姿添加至所述候选位 姿集合中,响应于当前栅格所位于的目标全局语义栅格地图不为最低层级的语义栅格地图,将当前栅格在下一层级的栅格地图中对应的栅格添加至当前栅格栈中;返回执行所述控制位于当前栅格栈顶端的当前栅格出栈的操作,直至当前栅格栈为空为止;其中,所述目标角度为当前地图相对于所述目标局部语义点云地图的旋转角度;在所述第一评价指标值小于或等于第一指标阈值的情况下,则返回执行所述控制位于当前栅格栈顶端的当前栅格出栈的操作,直至当前栅格栈为空为止。
- 根据权利要求4所述的方法,还包括:在当前栅格栈为空的情况下,将当前地图旋转预设旋转角度,得到旋转后的局部语义点云地图,作为当前地图,并返回执行创建与所述目标栅格栈相同的当前栅格栈的操作,直至当前地图旋转一周为止。
- 根据权利要求4所述的方法,其中,所述基于当前地图计算当前栅格的第一评价指标值,包括:对当前地图进行平移,以将当前栅格在当前地图中对应的坐标点移动至原点位置,得到平移地图;获取所述平移地图内的每一个语义特征点在所述目标全局语义栅格地图中对应的栅格中记录的概率值,作为所述语义特征点的概率值;根据每个语义特征点的概率值计算当前栅格的第一评价指标值。
- 根据权利要求6所述的方法,其中,所述根据每个语义特征点的概率值计算当前栅格的第一评价指标值,包括:在所述目标全局语义栅格地图不为最低层级的语义栅格地图的情况下,根据每个语义特征点的概率值计算多个语义特征点的概率平均值,作为当前栅格的第一评价指标值;在所述目标全局语义栅格地图为最低层级的语义栅格地图的情况下,根据每个语义特征点的概率值计算多个语义特征点的概率平均值和惩罚函数平均值,并将所述概率平均值与所述惩罚函数平均值之间的差值,作为当前栅格的第一评价指标值,其中,所述惩罚函数平均值用于表征当前地图与所述目标全局语义栅格地图之间的不匹配程度。
- 根据权利要求3-7中任一项所述的方法,其中,所述根据所述激光点云地图和所述候选位姿集合确定目标位姿,包括:根据所述候选位姿集合中的每个候选位姿对应的第一评价指标,计算多个候选位姿的每个位姿参数的加权平均值,作为平均位姿参数;以所述平均位姿参数为中心确定搜索空间,并对所述搜索空间进行离散化处理,得到多个待搜索位姿;采用迭代最近点算法确定每个待搜索位姿与所述激光点云地图的匹配信息,并基于所述匹配信息计算每个待搜索位姿的第二评价指标值;选取第二评价指标值最大的待搜索位姿作为所述目标位姿。
- 根据权利要求8所述的方法,在所述选取第二评价指标值最大的待搜索位姿作为所述目标位姿之前,还包括:确定第二评价指标值大于第二指标阈值的待搜索位姿的目标位姿参数的标准差小于预设标准差阈值。
- 根据权利要求2-7中任一项所述的方法,在所述获取当前位置的目标局部语义点云地图、至少两层级的全局语义栅格地图和激光点云地图之前,还包括:根据全局语义点云地图生成所述至少两层级的全局语义栅格地图。
- 根据权利要求10所述的方法,其中,所述根据全局语义点云地图生成所述至少两层级的全局语义栅格地图,包括:按照预设尺寸对所述全局语义点云地图进行栅格划分,并确定每个栅格内存在目标语义对象的概率,以得到最低层级的全局语义栅格地图;对所述最低层级的全局语义栅格地图进行至少一次降采样,并将每次降采样得到的全局语义栅格地图作为相应层级的全局语义栅格地图。
- 根据权利要求1-7中任一项所述的方法,在所述根据所述激光点云地图和所述候选位姿集合确定目标位姿之后,还包括:继续移动,并在继续移动预设距离后,采用所述预设距离内的局部语义点云地图对所述目标位姿进行验证,以在验证未通过的情况下,重新进行定位。
- 根据权利要求1-7中任一项所述的方法,在所述获取当前位置的目标局部语义点云地图、全局语义栅格地图和激光点云地图之前,还包括:获取当前位置的原始局部语义点云地图中的每个前景语义对象的第一特征点和每个背景语义对象的第二特征点;采用不同的降采样方式对所述第一特征点和所述第二特征点进行降采样,并根据降采样得到的特征点构建目标局部语义点云地图。
- 根据权利要求13所述的方法,其中,所述采用不同的降采样方式对所述第一特征点和所述第二特征点进行降采样,并根据降采样得到的特征点构建 目标局部语义点云地图,包括:对多个第一特征点进行欧式距离聚类,并将聚类后的每个聚类中心作为第一降采样特征点;对多个第二特征点进行体素化降采样,得到第二降采样特征点;根据所述第一降采样特征点和所述第二降采样特征点构建所述目标局部语义点云地图。
- 根据权利要求1-7中任一项所述的方法,其中,所述方法应用于对机器人进行定位。
- 一种定位装置,包括:地图获取模块,设置为获取当前位置的目标局部语义点云地图、全局语义栅格地图和激光点云地图,其中,所述全局语义栅格地图的每个栅格中记录有所述栅格内存在目标语义对象的概率值;候选位姿识别模块,设置为基于所述目标局部语义点云地图和所述全局语义栅格地图进行位姿识别,得到候选位姿集合;目标位姿确定模块,设置为根据所述激光点云地图和所述候选位姿集合确定目标位姿,其中,所述目标位姿包括回环位姿和重定位位姿中的至少之一。
- 一种电子设备,包括:至少一个处理器;存储器,设置为存储至少一个程序;当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如权利要求1-15中任一项所述的定位方法。
- 一种计算机可读存储介质,存储有计算机程序,其中,所述程序被处理器执行时实现如权利要求1-15中任一项所述的定位方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/566,500 US20240249430A1 (en) | 2021-06-01 | 2022-05-27 | Localization method and apparatus, electronic device, and storage medium |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110609933.0A CN113256712B (zh) | 2021-06-01 | 2021-06-01 | 定位方法、装置、电子设备和存储介质 |
CN202110609933.0 | 2021-06-01 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022253113A1 true WO2022253113A1 (zh) | 2022-12-08 |
Family
ID=77185699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2022/095453 WO2022253113A1 (zh) | 2021-06-01 | 2022-05-27 | 定位方法、装置、电子设备和存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240249430A1 (zh) |
CN (1) | CN113256712B (zh) |
WO (1) | WO2022253113A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116030134A (zh) * | 2023-02-14 | 2023-04-28 | 长沙智能驾驶研究院有限公司 | 定位方法、装置、设备、可读存储介质及程序产品 |
CN117593517A (zh) * | 2024-01-19 | 2024-02-23 | 南京信息工程大学 | 基于互补感知跨视图融合网络的伪装目标检测方法 |
CN117870653A (zh) * | 2024-03-13 | 2024-04-12 | 中国科学技术大学 | 一种二维差分欧几里得符号距离场地图的建立与更新方法 |
CN117991259A (zh) * | 2024-04-07 | 2024-05-07 | 陕西欧卡电子智能科技有限公司 | 基于激光雷达和毫米波雷达的无人船重定位方法及装置 |
CN118154676A (zh) * | 2024-05-09 | 2024-06-07 | 北京理工大学前沿技术研究院 | 一种基于激光雷达的场景定位方法和系统 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113256712B (zh) * | 2021-06-01 | 2023-04-18 | 北京有竹居网络技术有限公司 | 定位方法、装置、电子设备和存储介质 |
CN113763551B (zh) * | 2021-09-08 | 2023-10-27 | 北京易航远智科技有限公司 | 一种基于点云的大规模建图场景的快速重定位方法 |
CN115235482A (zh) * | 2021-09-28 | 2022-10-25 | 上海仙途智能科技有限公司 | 地图更新方法、装置、计算机设备及介质 |
CN113936046A (zh) * | 2021-11-02 | 2022-01-14 | 北京京东乾石科技有限公司 | 一种物体定位方法、装置、电子设备及计算机可读介质 |
CN114627182B (zh) * | 2022-01-26 | 2024-08-13 | 美的集团(上海)有限公司 | 机器人的定位方法、装置、电子设备及存储介质 |
CN115752476B (zh) * | 2022-11-29 | 2024-06-18 | 重庆长安汽车股份有限公司 | 一种基于语义信息的车辆地库重定位方法、装置、设备和介质 |
CN115797422A (zh) * | 2022-12-01 | 2023-03-14 | 西南交通大学 | 基于语义地图的地面到无人机激光点云跨视角重定位方法 |
CN116358573B (zh) * | 2023-05-31 | 2023-08-29 | 小米汽车科技有限公司 | 地图建立方法、装置、存储介质以及车辆 |
CN118323195B (zh) * | 2024-06-12 | 2024-09-20 | 北京易控智驾科技有限公司 | 无人车的控制方法以及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107144285A (zh) * | 2017-05-08 | 2017-09-08 | 深圳地平线机器人科技有限公司 | 位姿信息确定方法、装置和可移动设备 |
CN111596298A (zh) * | 2020-05-13 | 2020-08-28 | 北京百度网讯科技有限公司 | 目标对象的定位方法、装置、设备及存储介质 |
US20200402300A1 (en) * | 2019-06-21 | 2020-12-24 | Harbin Institute Of Technology | Terrain modeling method that fuses geometric characteristics and mechanical charateristics, computer readable storage medium, and terrain modeling system thereof |
CN112363158A (zh) * | 2020-10-23 | 2021-02-12 | 浙江华睿科技有限公司 | 机器人的位姿估计方法、机器人和计算机存储介质 |
CN112836698A (zh) * | 2020-12-31 | 2021-05-25 | 北京纵目安驰智能科技有限公司 | 一种定位方法、装置、存储介质及电子设备 |
CN113256712A (zh) * | 2021-06-01 | 2021-08-13 | 北京有竹居网络技术有限公司 | 定位方法、装置、电子设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108319655B (zh) * | 2017-12-29 | 2021-05-07 | 百度在线网络技术(北京)有限公司 | 用于生成栅格地图的方法和装置 |
-
2021
- 2021-06-01 CN CN202110609933.0A patent/CN113256712B/zh active Active
-
2022
- 2022-05-27 WO PCT/CN2022/095453 patent/WO2022253113A1/zh active Application Filing
- 2022-05-27 US US18/566,500 patent/US20240249430A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107144285A (zh) * | 2017-05-08 | 2017-09-08 | 深圳地平线机器人科技有限公司 | 位姿信息确定方法、装置和可移动设备 |
US20200402300A1 (en) * | 2019-06-21 | 2020-12-24 | Harbin Institute Of Technology | Terrain modeling method that fuses geometric characteristics and mechanical charateristics, computer readable storage medium, and terrain modeling system thereof |
CN111596298A (zh) * | 2020-05-13 | 2020-08-28 | 北京百度网讯科技有限公司 | 目标对象的定位方法、装置、设备及存储介质 |
CN112363158A (zh) * | 2020-10-23 | 2021-02-12 | 浙江华睿科技有限公司 | 机器人的位姿估计方法、机器人和计算机存储介质 |
CN112836698A (zh) * | 2020-12-31 | 2021-05-25 | 北京纵目安驰智能科技有限公司 | 一种定位方法、装置、存储介质及电子设备 |
CN113256712A (zh) * | 2021-06-01 | 2021-08-13 | 北京有竹居网络技术有限公司 | 定位方法、装置、电子设备和存储介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116030134A (zh) * | 2023-02-14 | 2023-04-28 | 长沙智能驾驶研究院有限公司 | 定位方法、装置、设备、可读存储介质及程序产品 |
CN117593517A (zh) * | 2024-01-19 | 2024-02-23 | 南京信息工程大学 | 基于互补感知跨视图融合网络的伪装目标检测方法 |
CN117593517B (zh) * | 2024-01-19 | 2024-04-16 | 南京信息工程大学 | 基于互补感知跨视图融合网络的伪装目标检测方法 |
CN117870653A (zh) * | 2024-03-13 | 2024-04-12 | 中国科学技术大学 | 一种二维差分欧几里得符号距离场地图的建立与更新方法 |
CN117870653B (zh) * | 2024-03-13 | 2024-05-14 | 中国科学技术大学 | 一种二维差分欧几里得符号距离场地图的建立与更新方法 |
CN117991259A (zh) * | 2024-04-07 | 2024-05-07 | 陕西欧卡电子智能科技有限公司 | 基于激光雷达和毫米波雷达的无人船重定位方法及装置 |
CN118154676A (zh) * | 2024-05-09 | 2024-06-07 | 北京理工大学前沿技术研究院 | 一种基于激光雷达的场景定位方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
US20240249430A1 (en) | 2024-07-25 |
CN113256712B (zh) | 2023-04-18 |
CN113256712A (zh) | 2021-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022253113A1 (zh) | 定位方法、装置、电子设备和存储介质 | |
JP6745328B2 (ja) | 点群データを復旧するための方法及び装置 | |
CN110657803B (zh) | 机器人定位方法、装置以及存储装置 | |
WO2022166400A1 (zh) | 一种处理三维点云的方法、装置、设备以及存储介质 | |
WO2019170164A1 (zh) | 基于深度相机的三维重建方法、装置、设备及存储介质 | |
KR102502651B1 (ko) | 지도를 구축하기 위한 방법 및 장치 | |
EP4056952A1 (en) | Map fusion method, apparatus, device, and storage medium | |
CN109313810A (zh) | 用于对环境进行测绘的系统和方法 | |
EP3985610A1 (en) | Audio collection device positioning method and apparatus, and speaker recognition method and system | |
JP7228623B2 (ja) | 障害物検出方法、装置、設備、記憶媒体、及びプログラム | |
US20230266470A1 (en) | Robot relocalization method and apparatus, and storage medium and electronic device | |
CN111094895A (zh) | 用于在预构建的视觉地图中进行鲁棒自重新定位的系统和方法 | |
CN114565668A (zh) | 即时定位与建图方法及装置 | |
CN112784873A (zh) | 一种语义地图的构建方法及设备 | |
CN111784776A (zh) | 视觉定位方法及装置、计算机可读介质和电子设备 | |
US20220230350A1 (en) | Position recognition method and system based on visual information processing | |
WO2023082985A1 (zh) | 用于生成电子设备的导航路径的方法和产品 | |
Lai et al. | Relative entropy rate based multiple hidden Markov model approximation | |
CN113778078A (zh) | 定位信息生成方法、装置、电子设备和计算机可读介质 | |
CN112085842B (zh) | 深度值确定方法及装置、电子设备和存储介质 | |
CN116047558A (zh) | 定位方法及装置 | |
CN114964204A (zh) | 地图构建方法、地图使用方法、装置、设备和存储介质 | |
US20200058158A1 (en) | System and method for object location detection from imagery | |
CN110399892A (zh) | 环境特征提取方法和装置 | |
CN113776530B (zh) | 一种点云地图构建方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22815159 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 18566500 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 22815159 Country of ref document: EP Kind code of ref document: A1 |