Robot positioning method, robot, storage medium, equipment and program product
By using keyframes and computed frame matching distance judgment and local map update technology in robot navigation, the problem of low positioning accuracy in complex environments is solved, and higher positioning accuracy, robustness, adaptability and real-timeness are achieved.
Patent Information
- Application Number
- CN202411090497.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-08-08
- Publication Date
- 2024-12-20
- Estimated Expiration
- 2044-08-08
AI Technical Summary
Existing robot navigation technology has low positioning accuracy in complex environments, especially in the case of sudden changes in the field of view and slippage, making it difficult to maintain an accurate trajectory, resulting in positioning deviations and matching failures.
By projecting the keyframe into the local map using the initial pose of the keyframe, and judging the matching accuracy based on the matching distance between the laser point and the feature point, pose determination is only used to match the correct laser point, which enhances positioning accuracy and robustness and increase feature point density and environment description capability by computing frame selective updates to local maps.
It significantly improves the positioning accuracy and robustness of the robot in complex environments, reduces positioning errors and calculation redundancy, enhances the adaptability and real-time performance to environmental changes, and ensures the successful execution of tasks.
Smart Images

Figure CN119164393A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the technical field of robot positioning algorithms, and in particular to a robot positioning method, a robot, a storage medium, a device and a program product. Background Art
[0002] In recent years, robots have been widely used in various application scenarios, including commercial cleaning, industrial logistics, commercial food delivery and other fields. The core of robots performing tasks in these scenarios is their autonomous navigation capabilities, which usually rely on precise positioning technology. At present, the common method of robot navigation is to first build a map of the activity scene. Related robot navigation methods include reflective column navigation, QR code navigation, etc. However, these methods need to rely on artificial marking features for positioning, which not only requires advance construction and layout, but also comes with high maintenance costs, so they are subject to certain limitations in practical applications.
[0003] At present, contour navigation has gradually attracted attention as an alternative. Contour navigation relies on the natural point cloud features in the environment and does not require additional transformation and marking of the environment. Therefore, it is considered to be an efficient and flexible navigation solution. In contour navigation, laser point cloud data of the environment is obtained through laser sensors, and local maps are constructed using these data to achieve real-time positioning and path planning. In simple environments, such as flat ground and simple environmental structures, robots can achieve reliable positioning through scan-to-scan or scan-to-map methods. However, in more complex environments, such as when the ground is stained with water or oil, bumpy, with many obstacles and the environment changes frequently, the robot may encounter positioning errors or even slippage, and the related inter-frame matching method is prone to failure, resulting in inaccurate positioning. In addition to the slippage that occurs in various harsh conditions mentioned above, during the navigation process, if the robot experiences a complex scene with a sudden change in vision, such as entering an open scene from a narrow area, and slips once or multiple times, the algorithm is often difficult to cope with, and the difficulty of positioning will be further increased.
[0004] Based on this, the present application provides a robot positioning method, a robot, a storage medium, a device and a program product to improve the relevant technology. Summary of the invention
[0005] The purpose of this application is to provide a robot positioning method, a robot, a storage medium, a device and a program product, which improve the positioning accuracy of the robot in a complex environment.
[0006] The purpose of this application is achieved by the following technical solutions:
[0007] In a first aspect, the present application provides a robot positioning method, which is applied to a robot working in a target area, and the method comprises:
[0008] Using an initial pose corresponding to a key frame, projecting the key frame into a local map; the key frame is obtained using a laser sensor corresponding to the robot;
[0009] For at least one first laser point in the key frame, determining whether the first laser point is matched correctly or incorrectly according to a matching distance between the first laser point and a nearest feature point of the first laser point in the local map;
[0010] Based on matching the correct first laser point in the key frame, the key frame is matched with the local map to determine the local pose of the robot corresponding to the key frame in the local map.
[0011] In some embodiments, before projecting the keyframe into the local map, the method further comprises:
[0012] Projecting the calculation frame onto the local map to determine the moving distance between the calculation frame and the local map; the calculation frame is obtained using the corresponding laser sensor of the robot, and there is at least one calculation frame corresponding to any two adjacent key frames;
[0013] When the moving distance between the calculation frame and the local map is less than the first target distance, the local map is updated by using the calculation frame to increase the feature points in the local map.
[0014] In some embodiments, the updating of the local map using the computing frame includes:
[0015] For at least one second laser point in the calculation frame, determining a position type of a corresponding grid of the second laser point in the local map, wherein the position type includes an obstacle point and an unexplored area;
[0016] Updating the obstacle points and the unexplored areas in the local map using second laser points corresponding to the obstacle points and the unexplored areas;
[0017] Based on the obstacle points in the local map, feature points in the local map are determined.
[0018] In some embodiments, the updating of the obstacle points and the unexplored areas in the local map using the second laser points corresponding to the obstacle points and the unexplored areas includes:
[0019] The number of times the second laser point corresponding to the obstacle point and the unexplored area occupies the corresponding grid in the local map is increased by one, but the number of times the second laser point corresponding to the passable area occupies and penetrates the corresponding grid in the local map is not operated;
[0020] Obstacle points and unexplored areas in the local map are determined according to the number of occupancy and penetration of the grids in the local map.
[0021] In some embodiments, determining whether the first laser point is matched correctly or incorrectly based on a matching distance between the first laser point and a nearest feature point of the first laser point in the local map includes:
[0022] Matching the first laser point with a plurality of feature points in the local map to calculate a matching distance between the first laser point and the plurality of feature points;
[0023] The feature point with the smallest matching distance is used as the nearest feature point of the first laser point in the local map. When the matching distance between the first laser point and the nearest feature point is greater than the second target distance, it is determined that the first laser point is matched incorrectly; or, when the matching distance between the first laser point and the nearest feature point is not greater than the second target distance, it is determined that the first laser point is matched correctly.
[0024] In some embodiments, the second target distance is obtained by amplifying the slip distance, and the slip distance is obtained using the corresponding odometer of the robot.
[0025] In some embodiments, the matching of the key frame with the local map based on the first laser point that matches correctly in the key frame to determine the local pose of the robot in the local map corresponding to the key frame includes:
[0026] Cutting out the first laser point with incorrect matching from the key frame, so that the key frame only includes the first laser point with correct matching;
[0027] The cropped key frame is matched with the local map to obtain the local pose of the robot in the local map corresponding to the key frame.
[0028] In some embodiments, the method is applicable to scenarios where the robot experiences a sudden change in field of view and / or slips.
[0029] In a second aspect, the present application provides a robot comprising a control module and a laser sensor, wherein the control module is used to execute any one of the above methods to determine the local pose of a key frame in the local map; and the laser sensor is used to scan and obtain a laser frame.
[0030] In a third aspect, the present application provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and the computer program implements any of the above methods when executed by a processor.
[0031] In a fourth aspect, the present application provides a computer device, comprising a memory and a processor, wherein the memory stores a computer program, and the processor implements any one of the above methods when executing the computer program.
[0032] In a fifth aspect, the present application provides a computer program product, wherein the computer program product comprises a computer program, and the computer program implements any one of the above methods when executed by a processor.
[0033] The present application provides a robot positioning method, a robot, a storage medium, a device and a program product. First, the initial pose corresponding to the key frame is used to project it into a local map. Then, for one or more first laser points in the key frame, the matching distance between the first laser point and the nearest feature point in the local map is calculated to determine whether the first laser point is matched correctly. Only the first laser point that matches the nearest feature point in the local map correctly will be used in the pose determination process to determine the local pose of the key frame in the local map. The above robot positioning method only uses the first laser point that matches correctly to match the key frame with the local map, which significantly improves the positioning accuracy and robustness of the robot in complex environments such as sudden changes in vision and / or slippage. On the one hand, the method judges the matching accuracy of the first laser point by matching the distance, reduces the positioning error caused by laser point matching errors in complex environments, and thus improves the positioning accuracy. In addition, only some of the first laser points that match correctly participate in the key frame matching, and the calculation efficiency is improved, so that the robot can determine the pose more quickly in dynamic changes or complex scenes, and avoid obstacles more effectively. BRIEF DESCRIPTION OF THE DRAWINGS
[0034] The present application is further described below in conjunction with the accompanying drawings and specific implementation methods.
[0035] Figure 1 It is a flow chart of a robot positioning method provided in an embodiment of the present application.
[0036] Figure 2 It is a structural block diagram of a robot provided in an embodiment of the present application.
[0037] Figure 3 It is a structural block diagram of a computer device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0038] The following will be combined with the drawings in this application to clearly and completely describe the technical solutions in the implementation mode of this application. Obviously, the described implementation mode is only a part of the implementation mode of this application, not all the implementation modes. Based on the implementation mode in this application, all other implementation modes obtained by those skilled in the art without creative work are within the scope of protection of this application.
[0039] In the description of the embodiments of the present application, it should be understood that the terms "first" and "second" are used for descriptive purposes only and should not be understood as indicating or implying relative importance or implicitly indicating the number of technical features indicated. Thus, features defined as "first" and "second" may explicitly or implicitly include one or more of the features. In the description of the embodiments of the present application, the meaning of "multiple" is two or more, unless otherwise clearly and specifically defined.
[0040] First, a brief explanation of the terms used in this article is given.
[0041] Reflective column: A cylinder that can reflect back most of the energy of the laser.
[0042] Posture: includes position and attitude. In two-dimensional space, the position can be expressed by (x, y) coordinates and the attitude can be expressed by azimuth.
[0043] Profile data: Point cloud data from laser sensors.
[0044] Reflective column navigation: Use reflective columns placed in the environment for navigation.
[0045] QR code navigation: Navigate using QR codes posted in the environment.
[0046] Contour navigation: Exploiting natural point cloud features in the environment for navigation.
[0047] Obstacle point: The point left on the map when the laser point hits an obstacle.
[0048] Passable area: The area between the laser sensor and the obstacle that is penetrated.
[0049] Unexplored area: The area in the environment that has not been explored by the laser sensor.
[0050] Robot slipping: There is a large error between the robot's odometer posture (i.e., initial posture) and the actual posture.
[0051] Laser frame: laser point cloud data obtained by scanning with the laser sensor on the robot.
[0052] Keyframe: The laser frame after the robot moves a certain distance or angle.
[0053] Calculation frame: A laser frame formed by a shorter distance or angle between key frames.
[0054] At present, in the fields of commercial cleaning, industrial logistics, and commercial food delivery, mobile robot navigation requires building a map of the activity scene first. Related robot navigation technologies use artificial features, such as reflective column navigation and QR code navigation. However, these features need to be constructed and laid out in advance, and the subsequent maintenance costs are high, and customer acceptance is low. For this reason, the applicant proposed to use contour navigation as a substitute. Compared with reflective column navigation and QR code navigation, contour navigation reduces the need for environmental modification and complex subsequent maintenance costs, and has become an important navigation solution.
[0055] Before using contour navigation, a high-quality contour map needs to be constructed. The contour map may include, for example, obstacle points, passable areas, and unexplored areas. Obstacle points are used for positioning, and passable areas are used for navigation route planning. First, inter-frame matching is performed to obtain the pose of the current laser frame, and then loop detection is performed. After the loop is determined, global pose optimization is performed. For inter-frame matching, the odometer can be used to obtain the distance the robot has moved. After the distance reaches a certain threshold, the current laser frame is aligned with the previous laser frame to achieve a scan to scan matching method. In order to make the algorithm more robust, the first few frames of the current laser frame can be processed to obtain a local map to achieve a scan to map matching method.
[0056] In some simple scenarios, such as a small environment, a flat ground, and a slow robot movement, the robot usually does not slip, and both scan to scan and scan to map matching methods can meet the matching requirements. In some complex situations, such as bumpy roads, water or oil stains on the ground, violent robot movement, and robot collisions, the robot may slip once or multiple times. At this time, the initial position provided by the odometer often has a large error with the true value, and it is difficult to obtain the correct matching results using scan to scan or scan to map matching methods. Even if the correct loop is performed, due to one or more abnormal matches, the contour map generated using all the trajectories after the loop will also have errors such as ghosting.
[0057] In this article, in addition to the above-mentioned slippage that occurs in various harsh conditions, if the robot is in the process of moving from a narrow area to an open scene, the field of view changes suddenly, and one or more slips occur. The algorithm is often difficult to cope with. The applicant proposes an adaptive algorithm that can not only cope with slippage in general harsh conditions, but also can cope normally if such slippage occurs in the case of a sudden change in field of view, and obtain correct matching results.
[0058] When using a mobile robot to construct a contour map, the sensors used may include, for example, an odometer, an IMU (inertial measurement unit), a laser sensor, etc. The odometer and IMU provide the initial position of the laser frame. By matching the laser frame with the local map, the precise position of the laser frame in the local map can be obtained. By projecting the laser frame onto the grid map using the precise position, a global map containing obstacle points, traversable areas, and unexplored areas can be formed.
[0059] In bad situations such as bumpy roads, water or oil stains on the ground, violent robot movement, and collisions, the robot may slip once or multiple times. When this slip is combined with a sudden change in the field of view, the relevant slip matching method often has difficulty reaching the set matching score threshold due to the small number of matching laser points, resulting in matching failure after slipping. The adaptive algorithm proposed by the applicant can effectively deal with this situation. In related technologies, the matching score is also called the matching rate, which is similar and is used to evaluate the degree of matching.
[0060] The implementation methods of the present application will be described in detail below.
[0061] See also Figure 1 , Figure 1 It is a flow chart of a robot positioning method provided in an embodiment of the present application.
[0062] When the robot is in the process of sudden change of field of view, even if the robot does not slip, the laser point cloud data (i.e., laser points) within a certain range may not be matched to the historical laser point cloud data. At this time, a small amount of laser point cloud data and accurate initial posture can also be used for correct matching. When the robot is in the process of sudden change of field of view, and the robot slips, and the initial posture is poor, the relevant technology will traverse and search for possible postures within a certain range, and then use the searched postures for matching. At this time, the matching score is often difficult to reach the matching score threshold set for slipping in the case of good field of view. In order to adapt to slipping in the case of sudden change of field of view, the laser frame can be processed, and only the first laser point that matches correctly is used to implement the scan to map matching method.
[0063] In order to improve the relevant technology, an embodiment of the present application provides a robot positioning method, which is applied to a robot working in a target area. The method includes steps S101 to S103.
[0064] Step S101: using the initial posture corresponding to the key frame, projecting the key frame into the local map; the key frame is obtained using the corresponding laser sensor of the robot.
[0065] Step S102: for at least one first laser point in the key frame, determining whether the first laser point is matched correctly or incorrectly according to a matching distance between the first laser point and a nearest feature point of the first laser point in the local map.
[0066] Step S103: Based on the first laser point that matches correctly in the key frame, the key frame is matched with the local map to determine the local pose of the robot in the local map corresponding to the key frame.
[0067] In some embodiments, the method can be applied to a scenario where the robot has a sudden change in field of view and / or slips. As an example, when the robot enters an open scene from a narrow area, it can be considered that the robot has a sudden change in field of view. The above embodiments do not limit the reasons for the robot to slip, for example, it may be caused by bumpy roads, water or oil stains on the ground, violent movement of the robot, collision of the robot, etc.
[0068] In some embodiments, the local map may adopt a grid map, and the grids in the local map may be classified into obstacle points, passable areas, and unexplored areas according to the number of occupancy and the number of penetration. As an example, when the ratio of the number of occupancy and the number of penetration corresponding to the grid is greater than the target ratio, the grid is identified as an obstacle point; when the ratio of the number of occupancy and the number of penetration corresponding to the grid is not greater than the target ratio, the grid is identified as a passable area; when the sum of the number of occupancy and the number of penetration corresponding to the grid is less than the target sum value, the grid is identified as an unexplored area. Among them, the target ratio is, for example, 20%, 30%, 40%, 50%, etc., and the target sum value is, for example, 1, 2, 3, 5, etc.
[0069] Among them, the robot can be a biped robot (also known as a humanoid robot, a humanoid robot), a quadruped robot, a wheeled robot, an AGV car or other self-moving equipment. In terms of application fields, the robot can be a cleaning robot, a distribution robot, a disinfection robot, an inspection robot, a navigation robot, a companion robot, etc. A key frame is, for example, a laser frame selected according to a specified moving distance or rotation angle during the movement of the robot. The key frame contains rich environmental information and feature point data, which can be used for subsequent matching and positioning. The initial pose refers to the estimated position and posture of the robot at a moment obtained by an odometer, IMU (inertial measurement unit) or other sensor, which provides a starting point for subsequent precise positioning and matching. The initial pose corresponding to the key frame refers to, for example, the initial pose of the robot when the key frame is collected. The local map can be obtained, for example, based on multiple key frames before the current key frame, such as including laser point cloud data of the robot in multiple key frames. The laser sensor can include a 2D laser sensor and / or a 3D laser sensor. In this article, "first laser point" and "second laser point" are both laser points, and the prefixes "first" and "second" serve to distinguish the laser points in the key frame from the laser points in the calculation frame. The local map includes multiple feature points, which refer to points in the environment that have significant characteristics and are easy to identify and match, helping the robot to identify its position in the environment. Feature points can be regarded as points formed in the local map by natural features in the target area. As an example, feature points can include corners, edges and other unique geometric structures. Feature points can be identified by analyzing and processing laser point cloud data. It should be noted that an object can form one or more feature points. As an example, a rectangular box can have multiple corner points, each of which can form a feature point. Feature points can be represented by feature descriptors, which can be, for example, six-dimensional vectors, the first three-dimensional vectors are used to describe three-dimensional color features, and the latter three-dimensional vectors are used to describe three-dimensional structural features. The nearest feature point of the first laser point in the local map refers to the feature point that is closest to the first laser point among the multiple feature points in the local map after the laser frame is projected onto the local map. The distance between the feature point and the first laser point is called the "matching distance", which is distinguished from the "moving distance", "slipping distance" and so on mentioned below. The local pose can be regarded as a precise pose, which is determined by matching the laser frame with the local map to determine the exact position and pose of the robot corresponding to the laser frame in the local map. As the laser frame and subsequent laser frames are processed, the local map is updated and ultimately the global map is constructed. The global map is, for example, a contour map corresponding to the target area, which can be in the form of a grid map, where each grid can be divided into obstacle points, passable areas or unexplored areas.
[0070] In a scene with a complex and changeable environment, for example, when a robot enters an open scene from a narrow area, the relevant robot positioning method has the risk of key frame matching failure, which affects the accuracy and robustness of positioning. The above embodiment optimizes the matching process between the key frame and the local map, projects the key frame into the local map through the initial position of the key frame, and performs matching evaluation in combination with the matching distance of the feature point, thereby enhancing the positioning accuracy and stability of the robot in complex scenes. Specifically, the laser point cloud data of the robot's surrounding environment is obtained by a laser sensor, and the key frame is selected as a reference. Using the initial position, the key frame is projected into the local map, and the matching distance between some or all of the first laser points in the key frame and the nearest feature point in the local map is obtained. According to the size of the matching distance, the matching accuracy of the first laser point is judged, the first laser point with the correct matching is identified, and further accurate matching is performed based on these correctly matched first laser points to determine the local position of the key frame in the local map. Through the above steps, the risk of key frame matching failure in complex scenes can be reduced, especially in the harsh conditions where the robot's field of view suddenly changes and / or one or more slips occur.
[0071] The above embodiment uses the matching optimization of key frames and local maps to help improve the matching score of key frames and local maps, thereby improving the matching success rate of key frames and enhancing the positioning accuracy of the robot under sudden changes in vision and adverse conditions. By processing the laser data of the key frames, it is possible to maintain high positioning accuracy and stability under different environmental conditions, which is conducive to building a global map of the target area.
[0072] In some embodiments, determining whether the first laser point is correctly matched or incorrectly matched based on the matching distance between the first laser point and the nearest feature point of the first laser point in the local map may include: matching the first laser point with multiple feature points in the local map to calculate the matching distance between the first laser point and the multiple feature points; using the feature point with the smallest matching distance as the nearest feature point of the first laser point in the local map, and determining that the first laser point is incorrectly matched when the matching distance between the first laser point and the nearest feature point is greater than a second target distance; or determining that the first laser point is correctly matched when the matching distance between the first laser point and the nearest feature point is not greater than the second target distance.
[0073] In some embodiments, the second target distance may be determined based on the slip distance.
[0074] In some embodiments, the second target distance may be obtained by amplifying the slip distance.
[0075] In some embodiments, the slip distance may be obtained using an odometer corresponding to the robot.
[0076] In the above embodiment, the matching distance refers to the distance between the first laser point and the feature point in the local map during the point cloud data matching process, and the distance adopts the Euclidean distance, for example. The nearest feature point is the feature point with the smallest matching distance with the first laser point. By calculating the distances between multiple feature points and the first laser point, the feature point closest to the first laser point in the local map is determined, which is used as a matching reference. The second target distance is, for example, a distance threshold for judging the correctness of the matching of the first laser point. As an example, the second target distance can be set according to the slip distance. The second target distance can be equal to the slip distance, or it can be N times the slip distance, where N is an integer greater than 1. In practical applications, N can be selected or preset as needed. The above embodiment does not limit the setting method of the second target distance, and the second target distance can also be a non-integer multiple of the slip distance. Among them, the slip distance, for example, refers to the distance that the robot deviates from the true trajectory due to instability of motion. During the movement of the robot, the robot may slip due to factors such as slippery or bumpy ground, resulting in positioning errors. As an example, the slip distance can be estimated by sensor data such as odometers.
[0077] Due to the complex changes and uncertainties of the environment, the accuracy and stability of the relevant robot positioning methods are insufficient in dealing with extreme situations such as slipping and sudden changes in vision. For example, when slipping or the ground conditions are poor, it is difficult for the robot to maintain an accurate trajectory, resulting in positioning deviation. The above embodiment accurately matches the first laser point with the feature points in the local map to correct the positioning deviation caused by factors such as slipping. By calculating the matching distance between the first laser point and multiple feature points in the local map, the feature point with the smallest matching distance is selected as the nearest feature point. In order to enhance the accuracy of matching, the second target distance is set as a threshold: when the matching distance between the first laser point and the nearest feature point is less than or equal to the threshold, the match is considered correct, otherwise the match is wrong. The second target distance can be determined, for example, based on the slip distance of the robot, which can be the slip distance itself, or the slip distance can be amplified to adapt to the complexity of different environments. The above embodiment improves the positioning accuracy and robustness in complex scenes by adopting multi-feature point matching and amplification of the slip distance. By combining the first laser point matching with the feature points of the local map and dynamically adjusting the matching accuracy using the second target distance, the impact of slipping on positioning is effectively reduced. At the same time, by optimizing the matching distance, only the first correctly matched laser point is used to calculate the local pose, which reduces the probability of mismatching and improves the matching success rate and positioning efficiency of the robot in the case of sudden changes in the field of view.
[0078] In some embodiments, matching the key frame with the local map based on the correctly matched first laser point in the key frame to determine the local pose of the robot in the local map corresponding to the key frame may include: cropping the incorrectly matched first laser point from the key frame so that the key frame only includes the correctly matched first laser point; matching the cropped key frame with the local map to obtain the local pose of the robot in the local map corresponding to the key frame.
[0079] Among them, cropping refers to removing the first laser point with a matching error from the key frame, so that the key frame only includes the first laser point with a correct matching, thereby improving the accuracy and success rate of key frame matching. In the process of robot navigation and positioning, the accurate matching of the key frame with the local map is the key to ensuring the accuracy of robot positioning. However, the complexity of the environment and the sensor noise may cause the first laser point to match incorrectly, thereby affecting the accuracy of pose estimation. In the related method, all laser points of the key frame are used for matching, which easily leads to computational redundancy and error accumulation. The above embodiment optimizes the matching process between the key frame and the local map by cropping the first laser point with a matching error, improves the matching accuracy and computational efficiency, and enhances the positioning ability of the robot in a complex environment. First, the first laser point in the key frame is detected and identified, and it is matched with the feature points in the local map to determine the matching accuracy of each first laser point. For the first laser point with a matching error identified, it is cropped from the key frame, and only the first laser point with a correct matching is retained. This process ensures that only high-quality first laser points are used in the matching between the key frame and the local map. Next, the cropped keyframes are matched with the local map to calculate the local pose of the robot corresponding to the keyframe in the local map. By using only the first laser point that matches correctly, noise and errors can be significantly reduced, and the accuracy of matching can be enhanced. In practical applications, this method effectively reduces the pose calculation error caused by matching errors and improves the positioning accuracy of the robot in complex environments. The cropped matching process not only reduces the computational burden, but also enhances the algorithm's adaptability to environmental changes. As a result, the robot can navigate and avoid obstacles more reliably and achieve more stable autonomous operation. In addition, the cropping strategy also improves the real-time and response speed of the robot's positioning, allowing the robot to quickly adjust its pose in a dynamic environment to ensure the successful execution of the task.
[0080] For example, assuming that the distance between the first laser point P in the key frame and the nearest feature point Q in the local map is greater than the second target distance (for example, the second target distance is three times the slip distance), it is considered that the first laser point P cannot find a correctly matched feature point in the local map, that is, the first laser point P is considered to be incorrectly matched, and the first laser point P is filtered out from the key frame. This step can effectively find all the first laser points in the key frame that may be successfully matched.
[0081] When the field of view of the related robot positioning method suddenly changes, the matching failure is easy to occur due to the sparse or unstable feature points. In some embodiments, before projecting the key frame into the local map, the method may also include: projecting the calculation frame into the local map to determine the moving distance between the calculation frame and the local map; the calculation frame is obtained using the corresponding laser sensor of the robot, and there is at least one calculation frame corresponding to any two adjacent key frames; when the moving distance between the calculation frame and the local map is less than the first target distance, the local map is updated using the calculation frame to increase the feature points in the local map.
[0082] In some embodiments, the method may further include: if the moving distance between the calculation frame and the local map is not less than the first target distance, not performing any operation.
[0083] A computational frame refers to a laser frame generated between two adjacent key frames, which is used to fill in the information gaps between key frames and assist in updating the local map. The density of the computational frame can be flexibly adjusted to balance computing resources, operating efficiency, and map accuracy. Similar to the key frame, the computational frame can be obtained through a laser sensor. The moving distance can be regarded as the displacement of all point clouds in the computational frame relative to the corresponding point cloud in the local map. By evaluating the moving distance, the degree of movement of the robot in the local map can be determined, and it is used to control whether the computational frame is used to update the local map. The first target distance is, for example, a distance threshold specified or pre-set in the algorithm, which is used to determine whether the moving distance is within an acceptable range. If the moving distance is less than the first target distance, the computational frame can be used to update the local map, thereby optimizing the refinement and real-time performance of the local map, for example, to increase the number of feature points in the local map. If the moving distance is not less than the first target distance, the computational frame will not be used to update the local map, reducing the situation where the computational frame is misaligned and causes ghosting in the local map, and reducing the risk of key frame matching failure caused by the computational frame projection.
[0084] It can be seen that in the above embodiment, in addition to the key frames, a plurality of calculation frames are generated during the movement of the robot, and these calculation frames record the movement state of the robot between two key frames. The calculation frame captures the second laser point through the laser sensor and is used to continuously detect and evaluate the environment. Determine the moving distance between the calculation frame and the local map, for example, the moving distances of the plurality of second laser points in the calculation frame relative to the corresponding points in the local map can be statistically calculated, and the moving distances between the calculation frame and the local map can be obtained by processing. As an example, the moving distances between the plurality of second laser points and their corresponding points are calculated, and the average of these moving distances is obtained as the moving distance between the calculation frame and the local map.
[0085] In the local map, the second laser point in each calculation frame can correspond to a known point, which is recorded in the past map update or scan, and the known point is used as the corresponding point of the second laser point in the local map. For example, assuming that the position of the second laser point B in the calculation frame is represented as (2,3), and the position of the corresponding point of the second laser point B recorded in the local map is represented as (2.5,3.2), then the moving distance between the second laser point B and its corresponding point is
[0086] Using the calculation frame to update the local map means accepting the update of the local map by the calculation frame. For example, the information of the calculation frame can be selectively integrated into the current local map.
[0087] When the calculation frame is acquired, it is first projected into the current local map, and the moving distance between the calculation frame and the local map is calculated. If the moving distance is less than the first target distance, it means that the matching accuracy between the calculation frame and the local map is high, and the feature points of the calculation frame can be safely used to update the local map. This update process can increase the density of feature points in the local map and enhance the description ability and accuracy of the local map for the environment. On the contrary, when the moving distance between the calculation frame and the local map is not less than the first target distance, no update operation will be performed, reducing the risk of ghosting and the accumulation of errors caused by mismatching. This selective update strategy ensures the accuracy and computational efficiency of map updates. By introducing the calculation frame and the selective map update mechanism, the positioning accuracy and efficiency of the robot in complex environments are significantly improved. First, the use of the calculation frame makes up for the time interval between key frames, making the local map update more continuous and refined, thereby improving the responsiveness to environmental changes. Second, by setting the first target distance as the update judgment criterion, the accumulation of map errors caused by mismatching can be effectively reduced, and the reliability of positioning can be enhanced. In addition, the selective update strategy reduces unnecessary computational burden, improves the real-time performance of the robot, and ensures that the robot can navigate and plan paths quickly and stably in dynamic environments.
[0088] In some embodiments, updating the local map using the computing frame may include: determining, for at least one second laser point in the computing frame, a position type of a corresponding grid of the second laser point in the local map, the position type including an obstacle point and an unexplored area; updating the obstacle points and the unexplored area in the local map using the second laser points corresponding to the obstacle points and the unexplored area; and determining feature points in the local map based on the obstacle points in the local map.
[0089] In the above embodiment, the robot uses the laser data in the calculation frame to dynamically update the distribution of feature points of the local map. Specifically, some or all of the second laser points in the calculation frame will be analyzed to determine the position type of the corresponding grid in the local map. The position type of the grid includes obstacle points and unexplored areas. In some embodiments, the position type of the grid may also include a passable area. First, the second laser point of the calculation frame is acquired by a laser sensor and matched with the local map to identify which second laser points correspond to obstacle points or unexplored areas. For the second laser points corresponding to the identified obstacle points and unexplored areas, the status of these grids in the local map will be updated, for example, the number of occupancy of these grids can be updated to achieve the update of obstacle points and unexplored areas. After the update is completed, based on the latest obstacle point data, the feature points in the local map can be re-evaluated, and the number of feature points used to match the first laser point in the key frame can be increased. By dynamically updating obstacle points and unexplored areas in the local map, the robot can quickly adapt to environmental changes, effectively fill the information gaps caused by the long key frame intervals during the map construction process, increase the number and density of feature points in the local map, and thus improve the overall positioning accuracy and environmental perception capabilities.
[0090] In some embodiments, the updating of obstacle points and unexplored areas in the local map using the second laser points corresponding to obstacle points and unexplored areas may include: adding one to the number of occupation times of the corresponding grids in the local map by the second laser points corresponding to the obstacle points and unexplored areas, but not operating the number of occupation times and penetration times of the corresponding grids in the local map by the second laser points corresponding to the passable areas; and determining the obstacle points and unexplored areas in the local map based on the number of occupation times and penetration times of the grids in the local map.
[0091] The second laser point is a laser point in the calculation frame, which is used to determine obstacles and unexplored areas in the local map. The grid is, for example, the basic unit of the local map, which is used to represent the spatial distribution and physical characteristics in the local map. Each grid can record its occupancy and penetration times to help identify obstacle points, passable areas, and unexplored areas in the local map. This different occupancy attribute can be called the position type of the grid. Obstacle points are inaccessible areas in the local map, marking areas that the robot should avoid. Unexplored areas, for example, refer to areas in the local map that have not been fully measured and analyzed by sensor data. These areas may represent unknown environments and need to be treated with caution in navigation to avoid potential obstacles. Passable areas are areas in the local map that have been determined to be safe to pass through. Through multiple observations, the penetration times and occupation times are accumulated to confirm the passability and safety of these areas. The occupation times, for example, refer to the number of times a grid is covered by a laser point. If the first laser point in the key frame covers grid A, the occupation times of grid A will increase by one; if the second laser point in the calculation frame covers grid A, the occupation times of grid A will also increase by one. As an example, a higher number of occupancy times (e.g., greater than 5 times) or a higher occupancy ratio (e.g., greater than 30%) indicates that the grid may be an obstacle point. The number of penetrations, for example, refers to the number of times the laser beam passes through the grid without hitting an obstacle. As an example, a higher number of penetrations (e.g., 3 times) may indicate that the area is a passable area. By counting the number of occupancy times and the number of penetrations to determine the spatial state of the grid, the accuracy of the local map in identifying environmental features can be improved.
[0092] In the above embodiment, the robot updates the map information by analyzing the relationship between the second laser point and the local map grid. Specifically, the robot determines whether the second laser point is projected to the grid where the obstacle point or the unexplored area is located according to the second laser point projected to the grid in the local map. For each second laser point projected to the grid where the obstacle point or the unexplored area is located, the number of occupations of the grid where it is located (indicating the number of times the grid is considered to be an obstacle) will increase. This cumulative statistical method allows the robot to more accurately identify and locate obstacles based on empirical data. In addition, for those second laser points projected to the grid where the passable area is located, the number of occupations and penetrations of the grid where it is located is not updated. By regularly analyzing (for example, storing key frames of a certain time sequence in the form of a sliding window, and the sliding window can have a fixed length) the number of occupations and penetrations of each grid in the local map, the robot can re-determine which grids represent obstacles, which grids are unexplored areas, and which grids are passable. This process effectively improves the dynamic update capability and accuracy of map information, and supports the robot to perform more sophisticated path planning and navigation in complex environments.
[0093] In some embodiments, determining the feature points in the local map based on the obstacle points in the local map may include: determining one or more obstacles in the local map based on the obstacle points in the local map; for at least one obstacle, identifying the corner points of the obstacle, and using the identified corner points as feature points in the local map.
[0094] In the above embodiment, the robot uses the obstacle points in the local map to identify and determine the feature points. The robot can obtain the laser frame through the laser sensor to build a local map, and mark all the identified obstacle points in the local map. These obstacle points constitute the actual obstacle structure in the environment. Next, these obstacle points can be analyzed to identify and define one or more complete obstacle shapes. For each obstacle, further geometric analysis can be performed to identify the corner points in its structure. Corner points are locations with obvious features in the geometric shape of the obstacle, such as the corners or edge mutations of an object. The process of identifying corner points may involve calculating the boundaries of the obstacle and analyzing angle changes. You can refer to related technologies according to the needs of practical applications, and this article will not go into details. Corner points can be used as feature points in the local map, providing a stable and easy-to-identify reference, which can be used for precise positioning and map matching, so that the robot can more accurately perform path planning, navigation adjustment and environmental understanding. Using the corner points of the obstacle as feature points, the robot can more clearly identify the structure of the environment and improve the perception of the shape of obstacles in complex scenes. This method enhances the map's level of detail, allowing the robot to quickly identify and locate key environmental features during navigation, optimize path selection, and reduce collision risks. In addition, identifying corner points as feature points reduces the instability of map updates caused by noise or errors, and improves the robot's adaptability to dynamic environmental changes.
[0095] For key frames, due to the long moving distance, the key frames will participate in the matching of scan to map, calculate the accurate local pose, and then project the key frames to the local map to form effective obstacle points. For calculation frames, they can be densely projected to the local map to increase the number of feature points in the local map, but in order to balance computing resources and operating efficiency, the calculation frames do not participate in matching. Considering that if the calculation frame is misplaced, it will directly cause ghosting in the local map, which may cause the key frame matching to fail. Therefore, the above embodiment projects the calculation frame into the local map, counts the moving distance between the calculation frame point cloud and the corresponding point of the local map, and obtains the moving distance between the calculation frame and the local map. Only when the moving distance of the calculation frame relative to the local map is small enough and meets a certain threshold (for example, less than the first target distance), it is actually projected into the local map. It should be noted that the "real projection" here is relative to the "projection" in the previous "projecting the calculation frame into the local map to determine the moving distance between the calculation frame and the local map". The two have different purposes. The previous "projection" is to calculate the moving distance, and the "real projection" here is to update the data in the calculation frame to the local map. Moreover, the "real projection" here does not update all the data in the calculation frame to the local map, but selectively projects the calculation frame. For example, there are three map forms (or location types) in the local map, namely obstacle points, passable areas and unexplored areas. Since the calculation frame is not matched, in order to further reduce the occurrence of ghosting in the local map and to increase the number of feature points in the local map, the calculation frame is only projected on the grid where the obstacle points and unexplored areas are located in the local map, and the second laser point projected in the passable area is filtered out. Through the above steps, the feature points in the local map can be effectively increased to meet the problem of few feature points in the local map when the field of view changes suddenly.
[0096] The above embodiment adopts the scan to map matching method to increase the success rate of key frame matching as much as possible. In a rapidly changing environment, key frames alone may not be enough to capture all details. For the maintenance of the local map, for example, the successfully matched laser frames can be projected into the local map in a certain number. For normal matching and slippage matching under normal environment, since there are enough environmental features seen under the current laser frame position in the local map, the slippage matching can have a higher matching score. In the case of sudden changes in the field of view, there will be a situation where only the successfully matched laser frames are projected into the local map, resulting in too few environmental features. At the same time, the feature points participating in the matching in the local map can only be proved to be stable and reliable features and participate in the matching if they are observed multiple times. Therefore, the number of feature points that actually participate in the matching in the local map will be further reduced. The above embodiment improves the relevant technology. In addition to the key frames that can be used to update the local map, the calculation frame can also be used to update the local map. By only updating the calculation frames whose moving distance is less than the first target distance, excessive calculation can be avoided, resources can be saved, and the algorithm operation efficiency and robot positioning efficiency can be improved. Small-scale and high-frequency updates based on computational frames can respond to environmental changes more quickly and improve the accuracy and stability of robot positioning and path planning.
[0097] In practical applications, robots may slip in extreme situations due to sudden changes in field of vision (such as entering an open scene from a narrow area). By reasonably cropping the key frames and using the computational frames and key frames to simultaneously project the local map, the cropped key frames are matched with the local map with richer features (after being processed by the computational frames). This can effectively improve the matching score between the key frames and the local map after slipping, thereby improving the success rate of key frame matching, or achieving a higher matching success rate.
[0098] The embodiment of the present application also provides a robot positioning device, which is applied to a robot working in a target area, and the device includes a key frame projection module, a laser point matching module and a posture determination module. The key frame projection module is used to project the key frame into a local map using the initial posture corresponding to the key frame; the key frame is obtained using the laser sensor corresponding to the robot. The laser point matching module is used to determine whether the first laser point in the key frame is correctly matched or incorrectly matched according to the matching distance between the first laser point and the nearest feature point of the first laser point in the local map. The posture determination module is used to match the key frame with the local map based on the correctly matched first laser point in the key frame, so as to determine the local posture of the robot in the local map corresponding to the key frame.
[0099] In some embodiments, the device may also include a feature point adding module, which is used to project a calculation frame into the local map before projecting the key frame into the local map to determine the moving distance between the calculation frame and the local map; the calculation frame is obtained using the corresponding laser sensor of the robot, and there is at least one calculation frame corresponding to any two adjacent key frames; when the moving distance between the calculation frame and the local map is less than the first target distance, the local map is updated using the calculation frame to add feature points in the local map.
[0100] In some embodiments, the feature point adding module can update the local map using the calculation frame in the following manner: for at least one second laser point in the calculation frame, determine the position type of the corresponding grid of the second laser point in the local map, and the position type includes obstacle points and unexplored areas; use the second laser points corresponding to the obstacle points and unexplored areas to update the obstacle points and unexplored areas in the local map; based on the obstacle points in the local map, determine the feature points in the local map.
[0101] In some embodiments, the feature point adding module can update the obstacle points and unexplored areas in the local map using the second laser points corresponding to the obstacle points and the unexplored areas in the following manner: the number of occupation times of the corresponding grids in the local map by the second laser points corresponding to the obstacle points and the unexplored areas is increased by one, but the number of occupation times and the number of penetration times of the corresponding grids in the local map by the second laser points corresponding to the passable areas are not operated; the obstacle points and the unexplored areas in the local map are determined according to the number of occupation times and the number of penetration times of the grids in the local map.
[0102] In some embodiments, the laser point matching module may determine whether the first laser point is correctly matched or incorrectly matched based on the matching distance between the first laser point and the nearest feature point of the first laser point in the local map in the following manner: matching the first laser point with multiple feature points in the local map to calculate the matching distance between the first laser point and the multiple feature points; taking the feature point with the smallest matching distance as the nearest feature point of the first laser point in the local map, and determining that the first laser point is incorrectly matched when the matching distance between the first laser point and the nearest feature point is greater than the second target distance; or determining that the first laser point is correctly matched when the matching distance between the first laser point and the nearest feature point is not greater than the second target distance.
[0103] In some embodiments, the second target distance may be obtained by amplifying the slip distance, and the slip distance may be obtained by using a corresponding odometer of the robot.
[0104] In some embodiments, the posture determination module can match the key frame with the local map based on the correctly matched first laser point in the key frame to determine the local posture of the robot in the local map corresponding to the key frame in the following manner: crop the incorrectly matched first laser point from the key frame so that the key frame only includes the correctly matched first laser point; match the cropped key frame with the local map to obtain the local posture of the robot in the local map corresponding to the key frame.
[0105] In some embodiments, the method may be applicable to scenarios where the robot experiences a sudden change in field of view and / or slips.
[0106] See also Figure 2 , Figure 2 It is a structural block diagram of a robot provided in an embodiment of the present application.
[0107] An embodiment of the present application also provides a robot, which includes a control module and a laser sensor. The control module is used to execute any of the above methods to determine the local position of the key frame in the local map; the laser sensor is used to scan and obtain a laser frame.
[0108] In some embodiments, the laser sensor may include a 2D laser sensor and / or a 3D laser sensor.
[0109] In some embodiments, the robot may also include an odometer and / or an IMU.
[0110] In some embodiments, the robot may also include one or more of a camera, an angle encoder, a torque sensor, and a PIR sensor.
[0111] In some embodiments, the robot may be a multi-jointed robot.
[0112] An embodiment of the present application further provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, any of the above methods is implemented.
[0113] An embodiment of the present application further provides a computer program product, which includes a computer program, and when the computer program is executed by a processor, any of the above methods is implemented.
[0114] The computer program product may be a portable compact disk read-only memory (CD-ROM) and include program code, and may be run on a terminal device, such as a personal computer. However, the computer program product of the present application is not limited thereto, and the computer program product may be any combination of one or more computer readable media.
[0115] An embodiment of the present application further provides a computer device, which includes a memory and a processor, wherein the memory stores a computer program, and the processor implements any of the above methods when executing the computer program.
[0116] See also Figure 3 , Figure 3 It is a structural block diagram of a computer device provided in an embodiment of the present application.
[0117] The embodiments of the present application do not limit the computer device, which may be, for example, a local computer device, a cloud computer device, a distributed computer device, etc.
[0118] The computer device may include: a memory 110, a processor 120, and a communication interface 130. The memory 110, the processor 120, and the communication interface 130 are connected via an internal connection path.
[0119] The memory 110 is used to store computer programs. In some implementations, the computer programs may include codes for implementing the methods of the embodiments of the present application.
[0120] The processor 120 is used to execute the computer program stored in the memory 110 to control the communication interface 130 to receive input data and information and output data such as operation results. In some implementations, when the solution of the embodiment of the present application is implemented by software or firmware, the computer program for implementing the solution of the embodiment of the present application can be stored in the processor 120 and executed by the processor 120.
[0121] The memory 110 may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memories. Among them, the non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (Programmable ROM, PROM), an erasable programmable read-only memory (Erasable PROM, EPROM), an electrically erasable programmable read-only memory (EEPROM) or a flash memory. The volatile memory may be a random access memory (RAM). It should be noted that the memory 110 described herein is intended to include, but is not limited to, any memory of these and other suitable types. As an example, the memory 110 includes a random access memory (RAM), a cache memory and a read-only memory (ROM). Among them, the memory 110 stores a computer program, and the computer program can be executed by the processor 120 so that the processor 120 implements the steps of any of the above methods.
[0122] The processor 120 may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field programmable gate arrays (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general-purpose processor may be a microprocessor, or the processor 120 may be any conventional processor, etc.
[0123] In the implementation process, each step of the above method can be completed by an integrated logic circuit of hardware in the processor 120 or an instruction in the form of software. The method disclosed in conjunction with the embodiment of the present application can be directly embodied as a hardware processor for execution, or a combination of hardware and software modules in the processor 120 for execution. The software module can be located in a mature storage medium in the art such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory, or an electrically erasable programmable memory, a register, etc. The storage medium is located in the memory 110, and the processor 120 reads the information in the memory 110 and completes the steps of the above method in conjunction with its hardware. To avoid repetition, it is not described in detail here.
[0124] In some implementations, in addition to the hardware units described above, the computer device may also include software modules, where the software modules may be, for example, an operating system, a basic input output system (BIOS), application software, etc.
[0125] The operating system is used to manage the hardware and / or software resources of computer devices and is the core and cornerstone of computer devices. The operating system needs to handle basic tasks such as managing and configuring memory, determining the priority of system resource supply and demand, controlling input and output devices, operating networks, and managing file systems. In order to facilitate user operations, most operating systems will provide an operating interface for users to interact with the system.
[0126] BIOS is used to run hardware initialization during the power-on boot phase and provide runtime services for the operating system and application programs. In some implementations, BIOS can also monitor and display processor temperature and execute functions such as adjusting temperature protection strategies.
[0127] Application software is also called application program, which can be understood as software written for a specific application purpose of the user. It is one of the main categories of computer software. For example, application software can be a program used to achieve power control, temperature management, etc.
[0128] It should be noted that although some embodiments of the present application take mobile robots as examples, the present application can be applied to other bionic robots, such as AGVs, drones, etc., and the present application is not limited to this.
[0129] It should be understood that the specific examples in this specification are only intended to help those skilled in the art to better understand the implementation methods of the present application, rather than to limit the scope of protection of the present application.
[0130] It is understood that in the various implementations of this specification, the size of the sequence number of each process does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of this application.
[0131] It can be understood that the various implementation modes described in this specification can be implemented individually or in combination, and this application is not limited to this.
[0132] Unless otherwise specified, all technical and scientific terms used in this specification have the same meaning as those generally understood by those skilled in the art of the technical field of this specification. The terms used in this specification are only for the purpose of describing specific embodiments and are not intended to limit the scope of this specification. The term "and / or" used in this specification includes any and all combinations of one or more related listed items. The singular forms of "a", "above", and "the" used in this specification and the appended claims are also intended to include plural forms, unless the context clearly indicates other meanings.
[0133] Those skilled in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this specification.
[0134] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working process of each embodiment described above can refer to the corresponding process in other embodiments and will not be repeated here.
[0135] In the several embodiments provided in this specification, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of units is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
[0136] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the technical solution of the present application.
[0137] In addition, each functional unit in each embodiment of the present specification may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
[0138] If the function is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this specification, or the part that contributes to the prior art or the part of the technical solution, can be embodied in the form of a software product. The computer software product is stored in a storage medium, including a number of instructions for a computer device (which can be a personal computer, server, or network device, etc.) to perform all or part of the steps of the method described in each embodiment of this specification. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), disk or optical disk, etc., various media that can store program codes.
[0139] The above are only specific implementations of this specification, but the protection scope of this application is not limited thereto. Any technician familiar with the technical field can easily think of changes or substitutions within the technical scope disclosed in this specification, which should be included in the protection scope of this specification. Therefore, the protection scope of this application should be based on the protection scope of the claims.
Claims
1. A robot positioning method, characterized in that: Applied to a robot working in a target area, the method comprises: Using an initial pose corresponding to a key frame, projecting the key frame into a local map; the key frame is obtained using a laser sensor corresponding to the robot; For at least one first laser point in the key frame, determining whether the first laser point is matched correctly or incorrectly according to a matching distance between the first laser point and a nearest feature point of the first laser point in the local map; Based on matching the correct first laser point in the key frame, the key frame is matched with the local map to determine the local pose of the robot corresponding to the key frame in the local map.
2. The robot positioning method according to claim 1, characterized in that: Before projecting the key frame into the local map, the method further includes: Projecting the calculation frame onto the local map to determine the moving distance between the calculation frame and the local map; the calculation frame is obtained using the corresponding laser sensor of the robot, and there is at least one calculation frame corresponding to any two adjacent key frames; When the moving distance between the calculation frame and the local map is less than the first target distance, the local map is updated by using the calculation frame to increase the feature points in the local map.
3. The robot positioning method according to claim 2, characterized in that: The updating of the local map by using the calculation frame includes: For at least one second laser point in the calculation frame, determining a position type of a corresponding grid of the second laser point in the local map, wherein the position type includes an obstacle point and an unexplored area; Updating the obstacle points and the unexplored areas in the local map using second laser points corresponding to the obstacle points and the unexplored areas; Based on the obstacle points in the local map, feature points in the local map are determined.
4. The robot positioning method according to claim 3, characterized in that: The updating of the obstacle points and the unexplored areas in the local map by using the second laser points corresponding to the obstacle points and the unexplored areas includes: The number of times the second laser point corresponding to the obstacle point and the unexplored area occupies the corresponding grid in the local map is increased by one, but the number of times the second laser point corresponding to the passable area occupies and penetrates the corresponding grid in the local map is not operated; Obstacle points and unexplored areas in the local map are determined according to the number of occupancy and penetration of the grids in the local map.
5. The robot positioning method according to claim 1, characterized in that: The determining, based on a matching distance between the first laser point and a nearest feature point of the first laser point in the local map, that the first laser point is matched correctly or incorrectly, includes: Matching the first laser point with a plurality of feature points in the local map to calculate a matching distance between the first laser point and the plurality of feature points; The feature point with the smallest matching distance is used as the nearest feature point of the first laser point in the local map. When the matching distance between the first laser point and the nearest feature point is greater than the second target distance, it is determined that the first laser point is matched incorrectly; or, when the matching distance between the first laser point and the nearest feature point is not greater than the second target distance, it is determined that the first laser point is matched correctly.
6. The robot positioning method according to claim 5, characterized in that: The second target distance is obtained by amplifying the slip distance, and the slip distance is obtained by using the corresponding odometer of the robot.
7. The robot positioning method according to claim 1, characterized in that: The matching of the key frame with the local map based on the first laser point that matches correctly in the key frame to determine the local pose of the robot in the local map corresponding to the key frame includes: Cutting out the first laser point with incorrect matching from the key frame, so that the key frame only includes the first laser point with correct matching; The cropped key frame is matched with the local map to obtain the local pose of the robot in the local map corresponding to the key frame.
8. The robot positioning method according to claim 1, characterized in that: The method is applicable to a scenario where the robot experiences a sudden change in field of view and / or slips.
9. A robot, characterized in that: The robot includes a control module and a laser sensor, wherein the control module is used to execute the method described in any one of claims 1 to 8 to determine the local pose of the key frame in the local map; and the laser sensor is used to scan and obtain a laser frame.
10. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the method according to any one of claims 1 to 8 is implemented.
11. A computer device, characterized in that: The computer device comprises a memory and a processor, the memory stores a computer program, and the processor implements the method according to any one of claims 1 to 8 when executing the computer program.
12. A computer program product, characterized in that The computer program product comprises a computer program, and when the computer program is executed by a processor, the method according to any one of claims 1 to 8 is implemented.
Citation Information
Patent Citations
Determination method and apparatus for poses of mobile robot
CN105953798A
Synchronous positioning and map-constructing method for mobile robot facing indoor dynamic environment
CN109387204A
Dynamic scene mapping and positioning method based on ORB-SLAM2
CN110378997A
Repositioning method based on visual characteristics in combination with laser SLAM
CN110796683A
Method and equipment for carrying out SLAM initialization
CN111161347A
Cited By
Navigation method and device of mobile robot, electronic equipment and storage medium
CN119806154A
