A landmark-based positioning data screening method

By using a landmark-based localization data filtering method, target localization data is filtered using the concentration of landmark feature points and a preset displacement range. Angle difference filtering and average value processing are performed to solve the localization error problem in robot SLAM and improve the accuracy and real-time performance of robot map conversion.

CN117553769BActive Publication Date: 2026-07-07AMICRO SEMICONDUCTOR CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
AMICRO SEMICONDUCTOR CO LTD
Filing Date
2022-08-05
Publication Date
2026-07-07

AI Technical Summary

Technical Problem

In existing robot SLAM technologies, errors in vision or laser sensors and ambient lighting factors can cause errors in robot localization information, making it difficult to accurately find the correct localization data.

Method used

By using a landmark-based positioning data filtering method, the concentration of landmark feature points is used to determine the landmarks that have been successfully located. A preset displacement range is configured to filter target positioning data, and angle difference filtering and average value processing are performed to select the optimal positioning data to reduce errors.

Benefits of technology

It effectively reduces errors in robot localization, improves the accuracy and real-time performance of robot map conversion, and ensures that the most accurate localization data is selected from a set of localization data to serve the robot map conversion.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117553769B_ABST
    Figure CN117553769B_ABST
Patent Text Reader

Abstract

The application discloses a landmark-based positioning data screening method, which comprises the following steps: 1, determining the landmark with successful positioning according to the concentration of the feature points corresponding to the landmark, and marking the positioning data of the landmark with successful positioning as target positioning data; 2, when the robot traverses one target positioning data, screening the target positioning data falling within the preset displacement range of the target positioning data, performing angle difference filtering on the screened target positioning data, and then obtaining the reference positioning data group and the target positioning data existing in the reference positioning data group; 3, performing average value processing on the target positioning data in the reference positioning data group to obtain average positioning data, and selecting the target positioning data with the smallest pose difference degree relative to the average positioning data from the target positioning data in the reference positioning data group to set as optimal positioning data.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention belongs to the field of robot map positioning information processing, specifically involving a landmark-based positioning data filtering method. Background Technology

[0002] In a manner understandable to those skilled in the art, during the execution of SLAM (simultaneous localization and mapping), a robot performs localization, mapping, and navigation in an unknown environment. Each time, the robot saves the features of the surrounding environment as a map, creating a historical map. Before the robot revisits the same environment, this historical map can be displayed beforehand. This establishes a relationship between the historical and current maps, indicating a transformation between them, and the historical map requires a localization process. Based on the pose determined from the historical map and the current map, the transformation relationship between the two maps is established, allowing the historical map to be rotated and translated to align with the current map.

[0003] Currently, there are two main types of SLAM technology applications: laser SLAM (based on lidar for mapping and navigation) and visual SLAM (vSLAM, based on single / binocular camera vision for mapping and navigation). Due to sensor errors and the influence of ambient lighting, both vision and laser methods will have errors in the self-localization or landmark localization of mobile robots. How to find the correct localization information from the existing erroneous or incorrect robot map localization information has become a technical problem that needs to be solved. Summary of the Invention

[0004] To address the technical problem of finding correct positioning information from existing, erroneous, or inaccurate robot map positioning data, this invention discloses a landmark-based positioning data filtering method. This method addresses the aspects of comparison, filtering, and selection of positioning data, enabling the identification of the most accurate positioning data from a dataset to serve the robot map. The specific technical solution is as follows:

[0005] A landmark-based positioning data filtering method includes: Step 1, determining successfully positioned landmarks based on the concentration of feature points corresponding to the landmarks, and then marking the positioning data of the successfully positioned landmarks as target positioning data; Step 2, for each target positioning data traversed by the robot, selecting target positioning data falling within a preset displacement range of the target positioning data, then performing angle difference filtering on the selected target positioning data, and then obtaining a reference positioning data group and the target positioning data contained therein; Step 3, the robot performs average processing on the target positioning data in the reference positioning data group to obtain average positioning data, and then selects the target positioning data with the smallest pose difference relative to the average positioning data from the target positioning data in the reference positioning data group as the optimal positioning data.

[0006] Further, the positioning data includes the conversion relationship between the pose of the same landmark in the historical map and the pose in the current map; or the positioning data includes the conversion relationship between the map coordinate system of the historical map and the map coordinate system of the current map; the landmark is a reference object configured for robot positioning or a reference coordinate position in the robot map; the conversion relationship is represented by a rotation angle and a coordinate offset, or the conversion relationship is represented by a rotation matrix calculated from the rotation angle and a translation vector calculated from the coordinate offset; each landmark corresponds to one positioning data, and each positioning data corresponds to a rotation angle and a coordinate offset; the robot configures the preset displacement range of a target positioning data as: a set of positioning data centered on the target positioning data, where the absolute value of the difference between the coordinate offset and the coordinate offset of the centered positioning data in each coordinate axis direction is less than or equal to a preset coordinate difference threshold.

[0007] Further, in step 2, whenever the robot selects a target positioning data whose coordinate offset falls within the preset displacement range of the corresponding target positioning data, the selected target positioning data is marked as positioning data to be matched, and the target positioning data whose coordinate offset falls within the same preset displacement range are counted. The rotation angle of the positioning data to be matched is accumulated within the preset displacement range until the robot has selected all target positioning data whose coordinate offset falls within the positioning data to be matched. The accumulated angle value and the number of target positioning data whose coordinate offset falls within the preset displacement range are obtained. The ratio of the accumulated angle value to the number of target positioning data whose coordinate offset falls within the preset displacement range is then calculated to obtain the average angle value.

[0008] Further, step 2 includes: for each target positioning data, the robot sequentially filters out target positioning data whose coordinate offset falls within the corresponding preset displacement range, then groups all target positioning data filtered by the robot within the preset displacement range of the same target positioning data into a positioning group, and marks the target positioning data in the positioning group as positioning data to be matched, and accumulates the rotation angles of the positioning data to be matched, and after accumulating the rotation angles of all positioning data to be matched in the same positioning group, obtains the accumulated angle value, and then averages the latest obtained accumulated angle value to obtain the average angle value belonging to the positioning group, and then within the positioning group, the robot compares the rotation angle of the positioning data to be matched with the currently obtained average angle value, and then, based on the comparison result, removes the positioning data to be matched from the positioning group whose rotation angle does not meet the preset angle difference condition; after the robot removes the positioning data to be matched whose rotation angle does not meet the preset angle difference condition in each positioning group, the positioning group with the most positioning data to be matched from all existing positioning groups is set as the reference positioning data group.

[0009] Further, in step 2, the method for filtering the selected target positioning data by angle difference includes: whenever the robot obtains the average angle value belonging to a positioning group, the rotation angle of each positioning data to be matched within the positioning group is sequentially controlled to be subtracted from the average angle value to obtain the angle difference value of the corresponding positioning data to be matched; whenever the absolute value of the obtained angle difference value is greater than a preset angle threshold, the positioning data to be matched corresponding to the angle difference value is removed from the positioning group, and it is determined that the positioning data to be matched whose rotation angle does not meet the preset angle difference condition is removed from the positioning group, and the positioning group after removing the positioning data to be matched is updated to the positioning group; after the robot performs angle difference filtering on the positioning data to be matched in each positioning group, the positioning group with the most positioning data to be matched is selected from all the latest obtained positioning groups and set as the reference positioning data group, and the target positioning data within the reference positioning data group is obtained.

[0010] Further, each target positioning data includes coordinate offset and rotation angle; in step 3, the robot performs average processing on the target positioning data within the reference positioning data group to obtain the average positioning data. The method includes: within the same reference positioning data group, the robot accumulates the coordinate offset of the target positioning data in the X-axis direction to obtain the accumulated X-axis coordinate offset within the reference positioning data group, and then calculates the average of the accumulated X-axis coordinate offset to obtain the average X-axis coordinate offset; the robot also accumulates the coordinate offset of the target positioning data in the Y-axis direction to obtain the accumulated Y-axis coordinate offset within the reference positioning data group, and then calculates the average of the accumulated Y-axis coordinate offset to obtain the average Y-axis coordinate offset; the robot also accumulates the rotation angle of the target positioning data to obtain the accumulated rotation angle within the reference positioning data group, and then calculates the average of the accumulated rotation angle to obtain the average rotation angle.

[0011] Further, in step 3, the method of selecting the target positioning data with the smallest pose difference relative to the average positioning data from the target positioning data within the reference positioning data group as the optimal positioning data includes: within the same reference positioning data group, for each target positioning data, the robot calculates the absolute value of the difference between the coordinate offset of the target positioning data in the X-axis direction and the average offset of the X-axis coordinate, and marks the absolute value of the difference as the first translational statistical difference; the robot calculates the absolute value of the difference between the coordinate offset of the target positioning data in the Y-axis direction and the average offset of the Y-axis coordinate, and marks the absolute value of the difference as the second translational statistical difference; the robot calculates the target positioning data... The absolute value of the difference between the rotation angle and the average rotation angle is used, and this absolute value is marked as the statistical angle difference. Then, the sum of the first translation statistical difference, the second translation statistical difference, and the statistical angle difference is configured as the statistical distance generated by the target positioning data relative to the average positioning data. The average positioning data includes the average offset of the X-axis coordinate, the average offset of the Y-axis coordinate, and the average rotation angle. Within the same reference positioning data group, the robot sets the target positioning data with the smallest statistical distance relative to the average positioning data as the optimal positioning data. Then, the rotation angle and coordinate offset included in the optimal positioning data are used to represent the transformation relationship between the map coordinate system of the historical map and the map coordinate system of the current map.

[0012] Further, in step 1, the method for determining a successfully located landmark based on the concentration of feature points corresponding to the landmark includes: when the robot repeatedly determines that the same landmark is in a consistent positioning state, it determines whether the concentration of feature points corresponding to the landmark is greater than a preset density threshold. If so, it determines that the feature points corresponding to the landmark are concentrated; otherwise, it determines that the feature points corresponding to the landmark are not concentrated and that the landmark is a successfully located landmark. When the robot determines that the feature points corresponding to the current landmark are concentrated, and there are landmarks to which feature points that are not concentrated belong in a consistent positioning state with the current landmark, it determines that the current landmark is a successfully located landmark.

[0013] Furthermore, the robot is configured to represent each landmark by at least two feature points; and a density count value is configured; whenever the robot detects that the Euclidean distance between two feature points representing the same landmark is less than a preset distance threshold, the density count value is counted once; after the robot has repeatedly detected the Euclidean distance between any two feature points representing the same landmark, it is determined whether the ratio of the density count value to the robot's total number of detections is greater than the preset density threshold. If it is, the feature point distribution corresponding to the landmark is determined to be concentrated; otherwise, the feature point distribution corresponding to the landmark is determined to be unconcentrated; wherein, the robot configures the ratio of the density count value to the robot's total number of detections as the concentration.

[0014] Furthermore, the robot assigns an index number to each landmark to distinguish different landmarks. When the robot determines that the difference between the positioning data obtained successively for the landmark corresponding to the same index number meets the preset error condition, it determines that the landmark corresponding to the index number is in a consistent positioning state. After the number of times the landmark corresponding to the same index number is determined to be in a consistent positioning state reaches a preset number, the robot begins to determine whether the concentration of the feature points corresponding to the landmark is greater than the preset density threshold.

[0015] Furthermore, the robot assigns an index number to each landmark to distinguish between different landmarks; when the robot determines that the difference between the positioning data of a landmark corresponding to one index number and the positioning data of a landmark corresponding to another index number meets the preset error condition, it determines that the landmarks corresponding to the two index numbers are in a consistent positioning state.

[0016] Furthermore, the positioning data of the landmark includes coordinate offset and rotation angle; the difference between the positioning data of two landmarks, or the difference between the positioning data of the same landmark at different times, includes the difference in coordinate offset in the X-axis direction, the difference in coordinate offset in the Y-axis direction, and the difference in rotation angle; during the process of the robot detecting the difference between the two positioning data, when the robot detects that the difference in coordinate offset in the X-axis direction is less than the first preset translation error value, and the difference in coordinate offset in the Y-axis direction is less than the second preset translation error value, and the difference in rotation angle is less than the preset angle error value, it is determined that the difference between the two positioning data meets the preset error condition.

[0017] Furthermore, step 1 also includes: the robot sequentially storing the target positioning data into the linear storage space; after the robot has stored all the target positioning data into the linear storage space, if the robot detects that the number of target positioning data stored in the linear storage space is less than a preset number threshold, the target positioning data stored in the linear storage space is configured as the target positioning data in the reference positioning data group, and then step 3 is executed; the preset number threshold is less than the maximum data capacity of the linear storage space.

[0018] The beneficial technical effects of this invention are as follows: The robot, by configuring a preset displacement range for target positioning data, searches for other target positioning data that are relatively close to that target positioning data. Then, it averages the rotation angles of these searched target positioning data to filter out target positioning data with rotation angles that deviate significantly from the average, thereby eliminating landmarks with large pointing errors. Next, it can filter out the set of remaining target positioning data with the largest number of data points, forming an optimized set of positioning data, from which more representative and effective data can be selected. Within this optimized set of positioning data, the robot calculates the average values ​​of its translation and rotation, selecting the positioning data whose Euclidean distance is closest to the corresponding average value as the final historical map-to-current map conversion relationship. This reduces positioning errors present in concentrated distribution of positioning data, enabling the robot to find the most accurate positioning data from a set of data to serve robot map conversion and robot localization. Attached Figure Description

[0019] Figure 1 This is a flowchart of a landmark-based location data filtering method disclosed in one embodiment of the present invention.

[0020] Figure 2 This is a flowchart of a method for determining successful road sign positioning, as disclosed in one embodiment of the present invention. Detailed Implementation

[0021] To facilitate understanding and implementation of the present invention by those skilled in the art, the present invention will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the embodiments described herein are for illustration and explanation only and are not intended to limit the present invention. The technical solutions of the present invention will be further specifically described below through embodiments and with reference to the accompanying drawings. Note that, where used, "further," "preferably," "even further," and "more preferably" are simple starting points for describing another embodiment based on the foregoing embodiments, and the content following "further," "preferably," "even further," or "more preferably" combined with the foregoing embodiments constitutes the complete configuration of another embodiment. Any combination of several "further," "preferably," "even further," or "more preferably" settings following the same embodiment constitutes yet another embodiment.

[0022] It should be noted that relational terms such as "first" and "second" are used merely to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.

[0023] Figure 1This is a flowchart of an embodiment of a landmark-based location data filtering method provided by the present invention. The executing subject of this location data filtering method is a robot, specifically a robot with internally stored historical maps, and the landmarks in the historical maps can be pre-located successfully. The robot walks on the ground using drive wheels mounted on its bottom. After the robot starts walking, it collects landmarks within various angle ranges in its environment through visual sensors (such as monocular cameras, binocular cameras, and depth cameras). The terrain contours in the map describe the contours of the robot's current environment. The map previously built by the robot or a map built earlier is a historical map of the robot's current environment relative to the map currently built by the robot. The historical map and the current map are abstracted from the robot's environment into a series of landmarks. These landmarks represent scene points within the indoor environment and are configured as reference objects or reference coordinate positions within the robot's map for localization. The localization data for each landmark includes the transformation relationship between the pose of the same landmark in the historical map and its pose in the current map; or the localization data includes the transformation relationship between the coordinate systems of the historical map and the current map. This enables the transformation of the coordinate systems between the current and historical maps, or the transformation of the grid coordinates between the current and historical maps, specifically involving rotation transformation (using a rotation matrix) and translation transformation (using a displacement vector). The current map is an environmental map built in real-time by the robot within a preset working area. The transformation relationship is represented by rotation angles and coordinate offsets, or by a rotation matrix calculated from the rotation angles and a translation vector calculated from the coordinate offsets. Each landmark corresponds to one set of localization data, specifically the rotation angle and coordinate offset included in each landmark's localization data.

[0024] Preferably, the robot can pre-set a landmark database. The landmark database includes a set of landmark images obtained by exploring and visiting the same physical location multiple times under different ground media, lighting and other conditions. The landmarks are generally represented by objects on the walking plane that are not easily deformed, such as the supporting legs of furniture, door frames, walls, corridor lines, indoor columns, and step surfaces in the robot's environment.

[0025] As one example, such as Figure 1 As shown, the location data filtering method includes:

[0026] Step S1: The robot determines the successfully located landmarks based on the concentration of feature points corresponding to the landmarks, and then marks the location data of the successfully located landmarks as target location data; then, step S2 is executed. Specifically, the robot can filter successfully located landmarks based on the concentration of feature points detected by the same landmark in different time periods, and the concentration of feature points corresponding to different landmarks in the same time period. Preferably, when the robot traverses a landmark and needs to calculate the concentration of its feature points, it needs to add the traversed new landmark or the index number of the new landmark to a specific cache space to obtain more complete map information. In some embodiments, the landmarks whose concentration needs to be calculated can be pre-set standard landmarks or pre-stored landmarks. The target location data here can be regarded as location data that has been filtered once. It can be stored in a specific linear storage space and a unique index number can be configured for each target location data. This also makes it easier for the robot to search for the corresponding target location data or perform further filtering optimization from the corresponding address location (corresponding to the configured index number) in the storage space.

[0027] Step S2: For each target positioning data traversed by the robot, target positioning data falling within a preset displacement range of the target positioning data are selected. Then, within the preset displacement range or a smaller numerical range of the target positioning data, angle difference filtering is performed on the selected target positioning data. The robot then obtains target positioning data within the reference positioning data group; one target positioning data corresponds to a preset displacement range. Then, step S3 is executed. In this embodiment, the robot can traverse the target positioning data in the linear storage space in ascending or descending order of index number. For target positioning data falling within the preset displacement range of the target positioning data (including coordinate offset), it is also traversed in ascending or descending order of index number. From all the target positioning data, target positioning data that is close to the target positioning data corresponding to the preset displacement range is selected in an orderly manner. Thus, for each target positioning data, target positioning data with smaller pose difference values ​​are searched to form a more effective and complete detection range. Then, within this detection range, angle difference filtering is performed on the selected target positioning data to filter out target positioning data with excessive deviations in rotation angle from the average level.

[0028] In this embodiment, the robot configures the preset displacement range of a target positioning data as follows: Taking the target positioning data as the center, the set of positioning data whose absolute values ​​of the differences between their coordinate offsets and the coordinate offsets of the center positioning data in each coordinate axis direction are less than or equal to a preset coordinate difference threshold are considered the set of positioning data. This is also equivalent to the range of coordinate offset values, thus determining the target positioning data whose coordinate offsets fall within the preset displacement range of the corresponding target positioning data. Within this preset displacement range, the maximum coordinate offset obtained in the positive X-axis direction is equal to the sum of the X-axis coordinate offset of the center positioning data and the preset coordinate difference threshold. Similarly, the minimum coordinate offset obtained in the negative X-axis direction is equal to the difference between the X-axis coordinate offset of the center positioning data and the preset coordinate difference threshold. The maximum coordinate offset obtained in the positive Y-axis direction is equal to the sum of the Y-axis coordinate offset of the center positioning data and the preset coordinate difference threshold. Similarly, the minimum coordinate offset obtained in the negative Y-axis direction is equal to the difference between the Y-axis coordinate offset of the center positioning data and the preset coordinate difference threshold. It should be noted that the positioning data includes the conversion relationship between the pose of the same landmark in the historical map and the pose in the current map; or the positioning data includes the conversion relationship between the map coordinate system of the historical map and the map coordinate system of the current map; the landmark is a reference object configured for robot positioning or a reference coordinate position in the robot map; the conversion relationship is represented by a rotation angle and a coordinate offset, or the conversion relationship is represented by a rotation matrix calculated from the rotation angle and a translation vector calculated from the coordinate offset; each landmark corresponds to one positioning data, and each positioning data corresponds to a rotation angle and a coordinate offset.

[0029] Equivalently, if a preset displacement range of a target positioning data is considered as a square region, the coordinate offset of the target positioning data can be set as the coordinates of the center of the square region, which in some embodiments can be considered as the origin coordinates; the side length of the square region is equal to twice the preset coordinate difference threshold. In this square region, the length of the boundary line in the X-axis direction is equal to the length of the boundary line in the Y-axis direction, and the boundary line length is preferably 6, that is, the side length of the square is preferably 6; the coordinate difference formed by the coordinate offset of the target positioning data falling within the square region relative to the coordinate offset of the center positioning data is less than or equal to half the side length of the square region. Here, the set of coordinate offsets included in the target positioning data is the set of coordinate offsets formed by each coordinate position relative to the center, including the coordinate offsets in the X-axis direction and the Y-axis direction, which is equivalent to the value range of the coordinate offsets in the two coordinate axis directions.

[0030] Step S3: The robot performs average processing on the target positioning data within the reference positioning data group to obtain average positioning data. Preferably, this average processing can be a weighted average calculation or an average calculation after removing the maximum and minimum values. Furthermore, it can simultaneously calculate the average of the coordinate offsets and rotation angles along each coordinate axis included in the target positioning data. Then, from the target positioning data within the reference positioning data group, the target positioning data with the smallest pose difference relative to the average positioning data is selected as the optimal positioning data. This is achieved by filtering the target positioning data for the corresponding landmarks in step S2 within a preset displacement range using average filtering. Specifically, one or more optimal positioning data are selected. This serves as the final historical map and current map conversion relationship, forming the optimal positioning result.

[0031] In summary, the robot searches for other target positioning data that are relatively close to the target positioning data by configuring a preset displacement range for the target positioning data. Then, it averages the rotation angles of these searched target positioning data to filter out target positioning data with rotation angles that deviate significantly from the average, thus eliminating landmarks with large pointing errors. Next, it selects the set of remaining target positioning data with the largest number of data points, forming an optimized set of positioning data for selecting more representative and effective data. Within this optimized set of positioning data, the robot calculates the average translation and rotation values, selecting the positioning data whose Euclidean distance is closest to the corresponding average as the final historical map-to-current map conversion relationship. This reduces positioning errors caused by concentrated positioning data, enabling the robot to find the most accurate positioning data from a set of data to serve map conversion and robot localization.

[0032] It is worth noting that compared to inertial navigation, where errors accumulate over time, and laser navigation, which is costly and susceptible to signal obstruction, visual images contain more complete environmental information. Visual navigation utilizes landmarks to provide the conversion relationship between the current and historical maps, and to represent the pose information of feature points representing landmarks. Landmarks can be divided into natural landmarks and artificial landmarks. Artificial landmarks have specific structures and can be embedded in the robot's internal controller or memory with pre-measured position information. Visual navigation based on artificial landmarks can improve the accuracy and real-time performance of positioning and navigation by simplifying landmark recognition algorithms. In some embodiments, [the text abruptly ends here]. A color-coded road sign is developed, using color histogram features as templates for road sign detection through matching. A grayscale artificial road sign is also designed, embedding coded information for detection; similarly, it can be detected through matching, allowing for the calculation of the pose of the same road sign in the historical map and the current map. In images containing road signs captured by a camera mounted on the robot, the road signs can be positioned at the origin of the world coordinate system, such as the origin of the current map's coordinate system. If the direction information of the road sign is detected from the image, the angle between the world coordinate system and the image coordinate system can be obtained; this angle serves as the robot's heading angle. Based on a pinhole camera model, and assuming no severe distortion, the line segment lengths in the image coordinate system and the world coordinate system are proportional. Thus, by using the position information embedded in the road sign, the robot's position and heading angle can be calculated. This ensures that the directions of the road signs required for visual navigation, including the robot's direction in both the current and historical maps, must be detected.

[0033] As one embodiment, in step S2, whenever the robot selects (without repetition) a target positioning data whose coordinate offset falls within a preset displacement range of the corresponding target positioning data from the linear storage space, the selected target positioning data is marked as positioning data to be matched; wherein, in this embodiment, the corresponding target positioning data is used as center positioning data; when the robot detects target positioning data whose absolute value of the difference between the coordinate offset and the coordinate offset of the center positioning data in each coordinate axis direction is less than or equal to a preset coordinate difference threshold, the target positioning data is set as target positioning data whose coordinate offset falls within the preset displacement range of the corresponding target positioning data. Preferably, one positioning group corresponds to one preset displacement range and one center positioning data. Simultaneously, the target positioning data whose coordinate offsets fall within the same preset displacement range are counted. This can be understood as counting the number of target positioning data to be matched within the positioning group. The rotation angle of each target positioning data to be matched is accumulated within the preset displacement range until the robot has filtered all target positioning data whose coordinate offsets fall within the target positioning data. The target positioning data filtered by the robot includes the center positioning data of the target positioning data, which can also be understood as existing within the corresponding positioning group. Then, the cumulative calculation of all target positioning data to be matched is completed within the same preset displacement range or positioning group, obtaining the cumulative angle value, which corresponds to the cumulative result of the rotation angles of all target positioning data falling within the detection range of the positioning data. The ratio of this cumulative angle value to the number of target positioning data whose coordinate offsets fall within the preset displacement range (corresponding to the number of rotation angles of all target positioning data to be matched obtained by the robot within the preset displacement range) is calculated to obtain the average angle value. This yields the average level of rotation angles for target positioning data whose coordinate offsets fall within a single preset displacement range.

[0034] Based on the above embodiments, step S2 specifically includes: for each target positioning data, which can be a positioning data that needs to be used as the search center, the robot sequentially filters out target positioning data whose coordinate offsets fall within the corresponding preset displacement range (specifically, the preset displacement range of the corresponding center positioning data). Then, all target positioning data filtered by the robot within the preset displacement range of the same target positioning data are grouped into a positioning group, and the target positioning data within this positioning group are marked as positioning data to be matched. This achieves the marking of filtered (which may be non-repeatedly filtered) target positioning data as positioning data to be matched. The positioning data to be matched within this positioning group includes the center positioning data corresponding to the aforementioned preset displacement range, which corresponds to the positioning data used as the search center. Preferably, multiple positioning data to be matched have the same coordinate offset but different rotation angles. Then, the rotation angles of the positioning data to be matched are accumulated. So, whenever the robot filters out a positioning data to be matched from a positioning group, the rotation angles within that positioning group are incremented. When there is only one target positioning data to be accumulated, the currently selected positioning data to be matched is added to the previously selected positioning data to be matched. When there are two or more target positioning data that have been accumulated in the positioning group, the currently selected positioning data to be matched is added to the previously accumulated angle and value. After the robot has accumulated the rotation angles of all positioning data to be matched in the same positioning group, the accumulated angle value is obtained. Then, the latest accumulated angle value is averaged to obtain the average angle value of the positioning group. Then, the robot compares the rotation angle of the positioning data to be matched with the currently obtained average angle value. Based on the comparison result, the positioning data to be matched that does not meet the preset angle difference condition is removed from the positioning group. The absolute value of the difference between the rotation angle of the removed positioning data and the currently obtained average angle value in the positioning group is greater than the preset angle threshold. The removed positioning data is no longer marked as falling into the positioning group, but can fall into other untraversed or previously traversed positioning groups. This iterative filtering process continues until the robot removes all target positioning data from each positioning group whose rotation angle exceeds a preset angle threshold. This may result in the removal of all target positioning data that fall into one of the positioning groups, rendering that positioning group an invalid value range that can be ignored. Then, the robot selects the positioning group with the most target positioning data from all existing positioning groups as the reference positioning data group and can acquire all target positioning data within that reference positioning data group.

[0035] As one embodiment, in step S2, the method for filtering the selected target positioning data by angle difference includes: whenever the robot obtains the average angle value belonging to a positioning group, the rotation angle of each positioning data to be matched within the positioning group is sequentially controlled to be subtracted from the average angle value to obtain the angle difference value of the corresponding positioning data to be matched, that is, one angle difference value corresponds to one positioning data to be matched, and thus corresponds to one landmark; whenever the absolute value of the angle difference value obtained by the robot is greater than a preset angle threshold, the positioning data to be matched is removed from the positioning group, and the rotation angle of the positioning data to be matched does not meet the preset angle difference condition, at least not within the positioning group. The preset angle threshold is preferably 5 degrees, and it is determined that the data to be matched is removed from the positioning group. Within a positioning group, matching positioning data whose rotation angle does not meet the preset angle difference condition is removed, thereby reducing the number of matching positioning data in the positioning group or keeping the number of matching positioning data in the positioning group unchanged. The positioning group after removing the matching positioning data is updated to become the positioning group, which is a preset displacement range after angle difference filtering, or a preset displacement range after angle difference filtering of target positioning data, or a positioning group after angle difference filtering of target positioning data, or a positioning group after angle difference filtering, or a preset displacement range after angle difference filtering of matching positioning data, or a positioning group after angle difference filtering of matching data; thus, valid positioning data can be obtained within the corresponding preset displacement range or positioning group. Based on this, after the robot performs angle difference filtering on the matching positioning data (equivalent to the filtered target positioning data) in each positioning group, that is, after processing the positioning group corresponding to each target positioning data in the same linear storage space in sequence according to the aforementioned angle difference filtering method, the robot selects the positioning group with the most matching positioning data from all the latest obtained positioning groups as the reference positioning data group. Preferably, there is only one reference positioning data group. Next, obtain the target positioning data or the positioning data to be matched within the reference positioning data group to execute step S3. This results in obtaining a set of pose transformations (rotation angles and coordinate offsets) with the most effective positioning data, and the differences between the positioning data within this set are relatively small. In other words, the robot obtains a positioning group with a relatively dense distribution of positioning data, which facilitates targeted processing of the target positioning data within this type of positioning group in the future.

[0036] As one embodiment, each target positioning data includes coordinate offset and rotation angle. In step S3, the robot performs average processing on the target positioning data within the reference positioning data group to obtain the average positioning data. The method includes: within the same reference positioning data group, the robot accumulates the coordinate offset of the target positioning data in the X-axis direction to obtain the accumulated X-axis coordinate offset within the reference positioning data group, and then calculates the average of the accumulated X-axis coordinate offset to obtain the average X-axis coordinate offset; the robot also accumulates the coordinate offset of the target positioning data in the Y-axis direction to obtain the accumulated Y-axis coordinate offset within the reference positioning data group, and then calculates the average of the accumulated Y-axis coordinate offset to obtain the average Y-axis coordinate offset; the robot also accumulates the rotation angle of the target positioning data to obtain the accumulated rotation angle within the reference positioning data group, and then calculates the average of the accumulated rotation angle to obtain the average rotation angle. In some embodiments, for each target positioning data acquired by the robot, the coordinate offset in the X-axis direction, the coordinate offset in the Y-axis direction, and the rotation angle of the target positioning data can be calculated simultaneously; it is also allowed to calculate the coordinate offset in the X-axis direction, the coordinate offset in the Y-axis direction, and the rotation angle of the target positioning data in chronological order.

[0037] Based on the above embodiments, in step S3, the method of selecting the target positioning data with the smallest pose difference relative to the average positioning data from the target positioning data within the reference positioning data group as the optimal positioning data includes: within the same reference positioning data group, for each target positioning data, the robot calculates the absolute value of the difference between the coordinate offset of the target positioning data in the X-axis direction and the average offset of the X-axis coordinate, and marks the absolute value of the difference as the first translational statistical difference; the robot calculates the absolute value of the difference between the coordinate offset of the target positioning data in the Y-axis direction and the average offset of the Y-axis coordinate, and marks the absolute value of the difference as the second translational statistical difference; the robot calculates the absolute value of the difference between the rotation angle of the target positioning data and the average rotation angle, and marks the absolute value of the difference as the statistical angle difference. Preferably, the robot is configured to synchronously calculate the corresponding first translational statistical difference, second translational statistical difference, and statistical angle difference for each target positioning data. The robot then configures the sum of the first translational statistical difference, the second translational statistical difference, and the statistical angle difference as the statistical distance generated by the target positioning data relative to the average positioning data, to represent the degree of pose difference generated by the target positioning data relative to the average positioning data. Here, the statistical distance can be understood as the sum of the error amounts of pose information in various dimensions. The average positioning data includes the average offset of the X-axis coordinate, the average offset of the Y-axis coordinate, and the average rotation angle. In some embodiments, the robot can control the weighted sum of the first translational statistical difference, the second translational statistical difference, and the statistical angle difference as the statistical distance generated by the target positioning data relative to the average positioning data. The weights applied to the average offset of the X-axis coordinate, the average offset of the Y-axis coordinate, and the average rotation angle are determined based on the environment in which the robot is located or the shape characteristics of the object represented by the landmark. Then, within the same reference positioning data group, the robot sets the target positioning data with the smallest statistical distance relative to the average positioning data as the optimal positioning data. The robot can obtain the index number of the target positioning data, the detection range of the positioning data it falls into, and its index address information in the linear storage space in real time to avoid repeated traversal. Then, the robot uses the rotation angle and coordinate offset included in the optimal positioning data to represent the transformation relationship between the map coordinate system of the historical map and the map coordinate system of the current map, so as to find the most correct positioning data among the positioning data of multiple pre-stored landmarks to serve the robot map transformation and robot positioning.

[0038] As one embodiment, in step S1, the method for determining a successfully located landmark based on the concentration of feature points corresponding to the landmark includes: when the robot repeatedly determines that the same landmark is in a consistent positioning state, it determines whether the concentration of feature points corresponding to the landmark is greater than a preset density threshold. If so, it determines that the feature points corresponding to the landmark are concentrated, but it is still not possible to determine whether the landmark is successfully located, so relatively accurate positioning data (the conversion relationship between historical maps and the current map) and the coordinate location information of the landmark are obtained; otherwise, it determines that the feature points corresponding to the landmark are not concentrated and that the landmark is successfully located. It should be noted that when the associated positioning information of the landmark determined by the robot each time is the same within the error allowable range, or the distance between the feature points associated with the landmark is relatively small, the landmark is determined to be in a consistent positioning state. Specifically, the robot repeatedly determining that the same landmark is in a consistent positioning state can be manifested as the robot obtaining positioning data of the same landmark in succession in a consistent positioning state.

[0039] Based on this, when the robot determines that the feature points corresponding to the current landmark are concentrated, and there are landmarks to which feature points that are not concentrated are in a consistent positioning state with the current landmark, it determines that the current landmark is a successfully positioned landmark. Otherwise, it can be determined that the current landmark is not a successfully positioned landmark, and the current landmark may have failed to be positioned, resulting in errors in the obtained positioning data. The landmarks to which the feature points that are not concentrated are two different landmarks from the current landmark. They may fall within the same positioning group or the same preset displacement range of the same target positioning data disclosed in the aforementioned embodiments, or they may be located in two different positioning groups or within the preset displacement range of two different target positioning data.

[0040] In summary, during the localization and navigation process using a robot map, the robot can confirm the consistency of the localization data for the same landmark multiple times. When it determines that the feature points of a landmark are sparsely distributed (the feature points corresponding to the landmark are not concentrated), it can determine that the landmark has been successfully located. Conversely, when it determines that the feature points of a landmark are concentrated but its localization is consistent with other landmarks whose feature points are not concentrated, it can also determine that the landmark with concentrated feature point distribution has been successfully located. This allows the robot to determine whether a landmark has been successfully located by analyzing the changes in its localization data at different times and the differences between its localization data and that of other landmarks. This facilitates the extraction of landmarks and their localization data with a high success rate.

[0041] As one example, after the robot begins using a landmark for visual navigation and localization, it needs to first assess the success rate of landmark localization, such as... Figure 2 As shown, the specific methods for determining successful road sign positioning include:

[0042] Step A1: Check if the number of times the robot detects the same landmark being identified as being in a consistent positioning state has reached a preset number. If yes, proceed to step A3; otherwise, proceed to step A2. The preset number is preferably 3. The specific value of the preset number can be determined based on the distribution density of the feature points corresponding to the landmark. Specifically, the distance between two feature points is used to describe the distribution density of the feature points. The greater the distance between two feature points, the lower the distribution density of the corresponding feature points; the smaller the distance between two feature points, the higher the distribution density of the corresponding feature points.

[0043] Step A2: The robot determines whether the positioning data of the landmarks obtained in Step A1 are in a consistent positioning state. If yes, Step A1 is executed; otherwise, the positioning of the landmark in Step A1 is determined to be unsuccessful, and the positioning data of that landmark is not marked as the target positioning data disclosed in the aforementioned embodiment. The robot then traverses another landmark for visual navigation and repeatedly determines whether the other landmark is in a consistent positioning state before proceeding to Step A1. This process continues until all the landmarks currently collected by the robot have been traversed.

[0044] Step A3: Determine whether the concentration of the feature points corresponding to the road sign mentioned in step A1 is greater than the preset density threshold. If yes, it is determined that the feature points corresponding to the road sign are concentrated, but it is still not possible to determine whether the road sign is a successfully located road sign. Then proceed to step A5. Otherwise, proceed to step A4.

[0045] Step A4: Determine that the feature points corresponding to the landmark mentioned in Step A1 are not concentrated and confirm that the landmark has been successfully located. Then, traverse another landmark for visual navigation and repeatedly determine whether the other landmark is in a consistent positioning state to proceed to Step A1. Continue until all the landmarks currently collected by the robot have been traversed.

[0046] Step A5: The robot determines whether there is a reference landmark that is in a consistent positioning state with the landmark described in Step A1. If yes, proceed to Step A6; otherwise, directly determine that the landmark described in Step A1 has failed to locate, and do not mark the landmark's positioning data as the target positioning data disclosed in the aforementioned embodiment. Then, traverse another landmark for visual navigation and repeatedly determine whether the other landmark is in a consistent positioning state to proceed to Step A1. This continues until all the landmarks currently collected by the robot have been traversed. The reference landmark is the landmark to which the feature points are not concentrated and is different from the landmark described in Step A1. Therefore, when determining that the feature points corresponding to the landmark described in Step A1 are concentrated, it is necessary to determine whether there are other landmarks (where the concentration of feature points is relatively low) that are in a consistent positioning state with the landmark described in Step A1.

[0047] In step A5, it is determined that the reference landmark and the landmark described in step A1 are in a consistent positioning state. Specifically, it is determined that the positioning data of the reference landmark obtained at the same time is consistent with the positioning data of the landmark described in step A1, or it is determined that the positioning data of the reference landmark obtained later is consistent with the positioning data of the landmark described in step A1 obtained earlier.

[0048] Step A6: Confirm that the landmark location described in Step A1 was successful. Therefore, a landmark must be in the same location state multiple times within a certain period of time for the landmark to be considered successfully located.

[0049] In summary, this judgment method obtains successfully located landmarks through steps A4 and A6, filters all landmarks currently collected by the robot, and then obtains the target positioning data (positioning data of successfully located landmarks) mentioned in step S1. Especially in areas where image feature points are too concentrated (densely distributed), such as environments with glass walls or long corridors where a large number of feature points are densely distributed, it overcomes the positioning error accumulated by a large number of feature points gathered in the same area by repeatedly judging whether the same landmark is consistently located and judging whether two different landmarks are consistently located.

[0050] Specifically, in step A3, the robot configures each landmark to be represented by at least two feature points; and configures a density count value to indicate the number of times the feature points corresponding to the landmark are detected as densely distributed; whenever the robot detects that the Euclidean distance between two feature points representing the same landmark is less than a preset distance threshold, specifically, the distance between the coordinate positions of the two feature points in the image coordinate system is less than the preset distance threshold, the robot counts the density count value once, which is configured to increment by one starting from the value 0; after the robot has repeatedly detected the Euclidean distance between any two feature points representing the same landmark, it determines the density count value and the robot's... If the ratio of the cumulative total number of detections is greater than the preset density threshold, then the feature point distribution corresponding to the road sign is determined to be concentrated; otherwise, the feature point distribution corresponding to the road sign is determined to be unconcentrated. The robot configures the ratio of the density count value to the robot's cumulative total number of detections as the concentration, which can be stored in the information structure of the corresponding detected road sign. Each time the robot calculates the Euclidean distance between two feature points representing the same road sign, it counts as one detection. Preferably, the preset density threshold is within the range of 60% to 80%. The preset distance threshold is set to less than 3, generally between 0 and 1. This allows the distance between multiple feature points corresponding to a road sign to describe the density of the feature point distribution. In this embodiment, among the feature points representing the same road sign, if every two feature points are counted as a feature point pair, then there are feature point pairs exceeding a certain percentage (corresponding to the ratio of the density count value to the robot's cumulative total number of detections, i.e., the concentration) where the distance between them is very close. These are considered road signs with a relatively high density, thus determining that the feature point distribution corresponding to that road sign is concentrated.

[0051] Specifically, in step A2, the robot pre-configures an index number for each landmark. This index number serves as the identification information for each landmark, distinguishing different landmarks within the same linear storage space, image coordinate system, robot map, or the robot's actual environment, facilitating the retrieval of the corresponding landmark's location data. Based on this, when the robot determines that the differences in location data between landmarks corresponding to the same index number meet a preset error condition, it determines that the landmark corresponding to that index number is in a consistent location state. In some embodiments, this can be considered as the landmark having the same location, meaning that the coordinates of the landmark calculated each time are always in the same position. At the same location; where the difference in the positioning data of the landmark corresponding to the same index number is judged at different times refers to the difference in pose information, then the preset error condition represents the error threshold information of the corresponding coordinate difference and angle difference; until the number of times the landmark corresponding to the same index number is judged to be in the same positioning state reaches the preset number (which can be obtained by the judgment method of implementing step A1), it can be considered that the same landmark has been positioned the same multiple times, then the error interference in the positioning data is reduced, and then the concentration of the feature points corresponding to the landmark is judged to be greater than the preset density threshold, in order to judge whether the landmark has been successfully positioned.

[0052] Specifically, in step A5, the robot assigns an index number to each landmark to distinguish different landmarks. Each index number corresponds to a landmark and its positioning data. When the robot determines that the difference between the positioning data of a landmark corresponding to one index number and the positioning data of a landmark corresponding to another index number meets a preset error condition, it determines that the landmarks corresponding to the two index numbers are in a consistent positioning state. Here, the two index numbers are different, but the positioning data of the landmarks corresponding to them are relatively close, that is, the pose information in each dimension is relatively close. Only then is the difference between the positioning data considered to meet the preset error condition. The preset error condition represents the error threshold information for the corresponding coordinate difference and angle difference. This judgment method is applicable to any two different landmarks collected by the robot, improving the robustness of the landmark positioning success judgment algorithm.

[0053] Based on the aforementioned embodiments, the location data of the road sign includes coordinate offset and rotation angle, specifically the transformation relationship between the map coordinate system of the historical map and the map coordinate system of the current map. The rotation angle includes the angle between the X-axis of the historical map coordinate system and the X-axis of the current map coordinate system. The coordinate offset includes the X-axis and Y-axis coordinate offsets between the origin of the historical map coordinate system and the origin of the current map coordinate system. Specifically, the difference between the location data of two road signs, or the difference between the same road sign at different times, includes the difference in coordinate offsets in the X-axis direction, the difference in coordinate offsets in the Y-axis direction, and the difference in rotation angle. During the robot's detection of the difference between the two location data, when the robot detects that the difference in coordinate offsets in the X-axis direction is less than a first preset translation error value, the difference in coordinate offsets in the Y-axis direction is less than a second preset translation error value, and the difference in rotation angle is less than a preset angle error value, it determines that the difference between the two location data meets the preset error condition. To improve the accuracy of the judgment, the values ​​of the first preset translation error value, the second preset translation error value, and the difference in rotation angle are all configured to be between 0 and 1.

[0054] As one embodiment, step S1 further includes: the robot sequentially stores the location data of successfully located landmarks into a linear storage space. Preferably, the robot uses a first-in-first-out queue to store the target location data, thereby caching the location results filtered by the aforementioned steps. Furthermore, the robot configures an index number for the location data stored in the linear storage space; specifically, each time a location data is stored in the linear storage space, a count is incremented, and the resulting count value represents the number of target location data stored in the linear storage space, which can correspond to the number of landmarks stored. This count value can be associated with the index number of the location data or with the order of the location data's storage address in the linear storage space, facilitating the robot's search for the corresponding target location data. In some embodiments, the index number is configured to be associated with the storage address of the linear storage space.

[0055] In this embodiment, a positioning data point is represented as a combination of a set of coordinate offsets (including X-axis and Y-axis) and a rotation angle. That is, storing a positioning data point represents storing the corresponding set of coordinate offsets (including X-axis and Y-axis) and a rotation angle. In this embodiment, the robot is configured to store only one positioning data point for each landmark in the same linear storage space, and the storage time is recorded during storage. This ensures that the positioning data for the same landmark can only be stored once within a certain time frame, avoiding the storage of target positioning data that has exceeded the timeout period and reducing the accumulation of errors.

[0056] In some embodiments, the robot initially stores target positioning data or landmarks in the linear storage space at a value of 0. Each time a target positioning data is stored in the linear storage space, a preset address offset is added to the storage address to form the storage address for the next landmark or positioning data to be stored. This continues until the address value (current storage address plus the preset address offset) equals the maximum address value of the queue, meaning the number of positioning data stored in the queue equals the preset maximum capacity of positioning data. Before the queue is full, the number of valid target positioning data stored in the queue equals the number of address offsets. After the queue is full, the number of valid target positioning data stored in the queue equals the preset maximum capacity of positioning data. The valid target positioning data stored in the queue can be filtered out during steps S2 and S3, and can also fall within the preset displacement range of one of the target positioning data.

[0057] Based on the above embodiments, step S1 further includes: after the robot stores the positioning data of all successfully located landmarks into the linear storage space, that is, after storing all currently obtained target positioning data into the linear storage space, if the robot count detects that the number of positioning data stored in the linear storage space is less than a preset number threshold, the positioning data stored in the linear storage space is directly configured as target positioning data in the reference positioning data group. The preset number threshold is preferably 3, which is less than the maximum data capacity of the linear storage space. The maximum data capacity of the linear storage space is the preset maximum capacity of positioning data. Specifically, the target positioning data currently stored in the linear storage space are all considered target positioning data falling within the preset displacement range of the same target positioning data, which can be understood as belonging to the same positioning group. This positioning group directly becomes the positioning group with the most selected positioning data among all existing positioning groups, and is therefore set as the reference positioning data group. Then, step S3 disclosed in the aforementioned embodiments is executed. Thus, when there is a small amount of target positioning data, the filtering step corresponding to step S2 is skipped, accelerating the execution of the positioning data filtering method.

[0058] In summary, the robot uses a single linear storage space to cache the location data of multiple different landmarks. This allows the robot to sequentially search, eliminate, and classify different landmarks based on their index numbers, or repeatedly query the location data of the same landmark, thus saving the robot's memory space. Furthermore, it records the storage time, ensuring that the location of the same landmark is stored only once within a certain timeframe.

[0059] It should be noted that the robot can acquire the pose information of a location within the current map, and then, by combining the transformation relationship between the current map and historical maps, calculate the pose information of that location within the historical map, thereby achieving localization on the historical map. Specifically, the pose information of the location within the current map is calculated by the robot during the scanning of the surrounding environment using a ranging sensor. This is achieved by establishing a triangulation model based on point cloud data scanned by a laser sensor or two consecutive frames of images acquired by a vision sensor. Then, using the principle of trigonometric functions, the feature points on the same epipolar line extracted from the point cloud data reflected back from obstacles or from the two frames are converted into the coordinate information of that location within the current map. This allows the calculation of the robot's coordinate information within the current map. The transformation relationship can be represented by a rotation matrix and a translation vector as a vector relationship between the pose information of the same location in one map and the pose information in another map. It can also be represented in other forms; it is understood that the vector relationship can be represented in any reasonable form. This embodiment does not limit the specific representation of the transformation relationship. The scope of protection of this invention is not limited to the above embodiments. Obviously, those skilled in the art can make various modifications and variations to this invention without departing from its scope and spirit. If these modifications and variations fall within the scope of the claims of this invention and their equivalents, then the intent of this invention also includes these modifications and variations.

[0060] It should be understood that various parts of the present invention can be implemented in hardware, software, or a combination thereof. In the above embodiments, multiple steps or methods can be implemented in software or firmware stored in memory and executed by a suitable instruction execution system. For example, if implemented in hardware, as in another embodiment, it can be implemented using any one or a combination of the following techniques known in the art: discrete logic circuits having logic gates for implementing logical functions on data signals, application-specific integrated circuits (ASICs) having suitable combinational logic gates, programmable gate arrays (PGAs), field-programmable gate arrays (FPGAs), etc.

[0061] Those skilled in the art will understand that all or part of the steps of the methods described in the above embodiments can be implemented by a program instructing related hardware. The program can be stored in a computer-readable storage medium, and when executed, it includes one or a combination of the steps of the method embodiments. Furthermore, the functional units in the various embodiments of the present invention can be integrated into a processing module, or each unit can exist physically separately, or two or more units can be integrated into a module. The integrated module can be implemented in hardware or as a software functional module. If the integrated module is implemented as a software functional module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. The storage medium mentioned above can be a read-only memory, a disk, or an optical disk, etc.

[0062] In the description of this specification, references to terms such as "one embodiment," "some embodiments," "example," "specific example," or "some examples," etc., indicate that a specific feature, structure, material, or characteristic described in connection with that embodiment or example is included in at least one embodiment or example of the invention. In this specification, the illustrative expressions of the above terms do not necessarily refer to the same embodiment or example. Furthermore, the specific features, structures, materials, or characteristics described may be combined in any suitable manner in one or more embodiments or examples.

[0063] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention and not to limit them; although the present invention has been described in detail with reference to preferred embodiments, those skilled in the art should understand that modifications can still be made to the specific implementation of the present invention or equivalent substitutions can be made to some technical features without departing from the spirit of the technical solutions of the present invention, and all such modifications and substitutions should be covered within the scope of the technical solutions claimed in the present invention.

Claims

1. A method for filtering location data based on road signs, characterized in that, The location data filtering method includes: Step 1: Based on the concentration of feature points corresponding to the landmarks, identify the landmarks that have been successfully located, and then mark the location data of the successfully located landmarks as the target location data. Step 2: For each target positioning data traversed by the robot, target positioning data that falls within the preset displacement range of the target positioning data are selected. Then, the selected target positioning data are filtered by angle difference. The robot then obtains the reference positioning data group and the target positioning data contained within it. Step 3: The robot performs average processing on the target positioning data in the reference positioning data group to obtain average positioning data. Then, from the target positioning data in the reference positioning data group, the target positioning data with the smallest pose difference relative to the average positioning data is selected as the optimal positioning data. In step 1, the method for determining successfully located landmarks based on the concentration of feature points corresponding to the landmarks includes: When the robot repeatedly determines that the same landmark is in a consistent positioning state, it determines whether the concentration of the feature points corresponding to the landmark is greater than the preset density threshold. If yes, it determines that the feature points corresponding to the landmark are concentrated; otherwise, it determines that the feature points corresponding to the landmark are not concentrated and that the landmark is a successfully positioned landmark. When the robot determines that the feature points corresponding to the current landmark are concentrated, and there are feature points that are not concentrated, the landmarks to which the current landmarks belong are in the same location state as the current landmarks, the robot determines that the current landmarks are successfully located landmarks.

2. The location data filtering method according to claim 1, characterized in that, The positioning data includes the conversion relationship between the pose of the same landmark in the historical map and the pose in the current map; or the positioning data includes the conversion relationship between the map coordinate system of the historical map and the map coordinate system of the current map; the landmark is a reference object configured for robot positioning or a reference coordinate position in the robot map; The transformation relationship is represented by a rotation angle and a coordinate offset, or by a rotation matrix calculated from the rotation angle and a translation vector calculated from the coordinate offset; each landmark corresponds to a positioning data, and each positioning data corresponds to a rotation angle and a coordinate offset; The robot configures the preset displacement range of a target positioning data as: a set of positioning data centered on the target positioning data, where the absolute value of the difference between the coordinate offset and the coordinate offset of the center positioning data in each coordinate axis direction is less than or equal to a preset coordinate difference threshold.

3. The location data filtering method according to claim 2, characterized in that, In step 2, whenever the robot selects a target positioning data whose coordinate offset falls within the preset displacement range of the corresponding target positioning data, the selected target positioning data is marked as positioning data to be matched. The target positioning data whose coordinate offset falls within the same preset displacement range are counted, and the rotation angle of the positioning data to be matched is accumulated within the preset displacement range. This process continues until the robot has selected all target positioning data whose coordinate offset falls within the positioning data to be matched. The accumulated angle value and the number of target positioning data whose coordinate offset falls within the preset displacement range are obtained. The ratio of the accumulated angle value to the number of target positioning data whose coordinate offset falls within the preset displacement range is then calculated to obtain the average angle value.

4. The location data filtering method according to claim 3, characterized in that, Step 2 includes: For each target positioning data, the robot sequentially filters out target positioning data whose coordinate offset falls within the corresponding preset displacement range. Then, all target positioning data filtered by the robot within the preset displacement range of the same target positioning data are grouped into a positioning group. The target positioning data in this positioning group are marked as positioning data to be matched. The rotation angle of the positioning data to be matched is accumulated. After accumulating the rotation angles of all positioning data to be matched in the same positioning group, the accumulated angle value is obtained. Then, the latest accumulated angle value is averaged to obtain the average angle value of the positioning group. Then, within the positioning group, the robot compares the rotation angle of the positioning data to be matched with the currently obtained average angle value. Based on the comparison result, the positioning data to be matched that does not meet the preset angle difference condition is removed from the positioning group. After the robot removes the positioning data to be matched that does not meet the preset angle difference condition in each positioning group, it selects the positioning group with the most positioning data to be matched from all existing positioning groups and sets it as the reference positioning data group.

5. The location data filtering method according to claim 4, characterized in that, In step 2, the method for filtering the selected target positioning data by angle difference includes: Whenever the robot obtains the average angle value belonging to a positioning group, it sequentially controls the rotation angle of each positioning data to be matched within that positioning group to be subtracted from the average angle value to obtain the angle difference value of the corresponding positioning data to be matched; whenever the absolute value of the obtained angle difference value is greater than a preset angle threshold, the positioning data to be matched corresponding to the angle difference value is removed from the positioning group, and it is determined that the positioning data to be matched whose rotation angle does not meet the preset angle difference condition is removed from the positioning group, and the positioning group after removing the positioning data to be matched is updated to the positioning group; After the robot performs angle difference filtering on the positioning data to be matched in each positioning group, it selects the positioning group with the most positioning data to be matched from all the latest obtained positioning groups and sets it as the reference positioning data group, and obtains the target positioning data in the reference positioning data group.

6. The location data filtering method according to claim 2, characterized in that, Each target positioning data includes coordinate offset and rotation angle; In step 3, the robot performs average processing on the target positioning data within the reference positioning data group to obtain the average positioning data. The method includes: within the same reference positioning data group, the robot accumulates the coordinate offset of the target positioning data in the X-axis direction to obtain the accumulated X-axis coordinate offset within the reference positioning data group, and then calculates the average of the accumulated X-axis coordinate offset to obtain the average X-axis coordinate offset; the robot also accumulates the coordinate offset of the target positioning data in the Y-axis direction to obtain the accumulated Y-axis coordinate offset within the reference positioning data group, and then calculates the average of the accumulated Y-axis coordinate offset to obtain the average Y-axis coordinate offset. The robot also accumulates the rotation angles of the target positioning data to obtain the accumulated rotation angles within the reference positioning data group, and then calculates the average value of the accumulated rotation angles to obtain the average rotation angle.

7. The location data filtering method according to claim 6, characterized in that, In step 3, the method of selecting the target positioning data with the smallest pose difference relative to the average positioning data from the target positioning data within the reference positioning data group as the optimal positioning data includes: Within the same reference positioning data group, for each target positioning data, the robot calculates the absolute value of the difference between the target positioning data's coordinate offset in the X-axis direction and the average X-axis coordinate offset, and marks this absolute value as the first translational statistical difference. The robot calculates the absolute value of the difference between the target positioning data's coordinate offset in the Y-axis direction and the average Y-axis coordinate offset, and marks this absolute value as the second translational statistical difference. The robot calculates the absolute value of the difference between the target positioning data's rotation angle and the average rotation angle, and marks this absolute value as the statistical angle difference. Then, the sum of the first translational statistical difference, the second translational statistical difference, and the statistical angle difference is configured as the statistical distance generated by the target positioning data relative to the average positioning data. The average positioning data includes the average X-axis coordinate offset, the average Y-axis coordinate offset, and the average rotation angle. Within the same set of reference positioning data, the robot sets the target positioning data that has the smallest statistical distance relative to the average positioning data as the optimal positioning data. Then, it uses the rotation angle and coordinate offset included in the optimal positioning data to represent the transformation relationship between the map coordinate system of the historical map and the map coordinate system of the current map.

8. The location data filtering method according to claim 2, characterized in that, The robot is configured to represent each landmark by at least two feature points and to configure dense count values. Whenever the robot detects that the Euclidean distance between two feature points representing the same landmark is less than a preset distance threshold, it counts the density value once. After the robot has repeatedly detected the Euclidean distance between any two feature points representing the same landmark, it determines whether the ratio of the density count to the robot's total number of detections is greater than the preset density threshold. If it is, it determines that the feature points corresponding to the landmark are concentrated; otherwise, it determines that the feature points corresponding to the landmark are not concentrated. The robot configures the ratio of the density count to the robot's total number of detections as the concentration.

9. The location data filtering method according to claim 2, characterized in that, The robot is assigned an index number to each landmark to distinguish between different landmarks; When the robot determines that the difference between the location data obtained successively for the same index number of a landmark meets the preset error condition, it determines that the landmark corresponding to the index number is in a consistent location state. After the number of times the landmark corresponding to the same index number is determined to be in a consistent location state reaches the preset number, it starts to determine whether the concentration of the feature points corresponding to the landmark is greater than the preset density threshold.

10. The location data filtering method according to claim 2, characterized in that, The robot assigns an index number to each landmark to distinguish between different landmarks. When the robot determines that the difference between the positioning data of a landmark corresponding to one index number and the positioning data of a landmark corresponding to another index number meets the preset error condition, it determines that the landmarks corresponding to the two index numbers are in a consistent positioning state.

11. The location data filtering method according to claim 9 or 10, characterized in that, The location data of the road sign includes coordinate offset and rotation angle; The differences in the positioning data of two landmarks, or the differences in the positioning data of the same landmark at different times, include the difference in coordinate offset in the X-axis direction, the difference in coordinate offset in the Y-axis direction, and the difference in rotation angle. During the process of the robot detecting the difference between two positioning data, when the robot detects that the difference in coordinate offset in the X-axis direction is less than the first preset translation error value, the difference in coordinate offset in the Y-axis direction is less than the second preset translation error value, and the difference in rotation angle is less than the preset angle error value, it determines that the difference between the two positioning data meets the preset error conditions.

12. The location data filtering method according to claim 2, characterized in that, Step 1 further includes: the robot sequentially storing the target positioning data into a linear storage space; After the robot stores all target positioning data into the linear storage space, if the robot detects that the number of target positioning data stored in the linear storage space is less than a preset number threshold, the target positioning data stored in the linear storage space is configured as the target positioning data in the reference positioning data group, and then step 3 is executed. The preset quantity threshold is the maximum data capacity that is less than the linear storage space.