Robot positioning method and device, robot and storage medium

By combining motion sensing data and local scene point cloud information, position correction and fusion are performed, the problem of positioning abnormalities caused by environmental changes in the prior art is solved, and the accuracy of robot positioning is improved.

CN119437225APending Publication Date: 2025-02-14SHENZHEN PUDU TECH CO LTD
View PDF 0 Cites 5 Cited by

Patent Information

Application Number
CN202310975385.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-08-03
Publication Date
2025-02-14

AI Technical Summary

Technical Problem

Existing robot positioning methods are prone to positioning abnormalities or loss in scenarios with changing environments, resulting in low positioning accuracy.

Method used

By obtaining motion sensing data and local scene point cloud information, local position pose estimation is carried out, and local scene point cloud information is projected into local scene outline data, the target map is determined in the preset global map, the pose correction parameters are obtained, and the Global pose conversion and correction, and finally the local pose information is fused with the global pose information to obtain the target pose information.

Benefits of technology

Improves the accuracy of robot positioning and ensures that high-precision position information can still be maintained in the event of environmental changes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119437225A_ABST
    Figure CN119437225A_ABST
Patent Text Reader

Abstract

The invention relates to a robot positioning method and device and a robot. The method comprises the following steps: acquiring motion sensing data and local scene point cloud information, and performing local pose estimation based on the motion sensing data and the local scene point cloud information to obtain current local pose information; projecting the local scene point cloud information to obtain local scene contour data, and determining a target map corresponding to the local scene contour data in a preset global map; acquiring a corresponding pose correction parameter based on the matching degree of the target map and the local scene contour data; performing global pose conversion on the current local pose information to obtain initial global pose information, and correcting the initial global pose information by using pose correction parameters to obtain target global pose information; and fusing the current local pose information and the target global pose information to obtain target pose information. The method can improve the positioning accuracy of the robot.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of positioning, and in particular to a robot positioning method, device, robot, storage medium and computer program product. Background Art

[0002] With the development of science and technology, the robot industry is becoming more and more mature, and the application scope of robots is becoming wider and wider. For example, food delivery robots and sweeping robots can be applied to the service industry. During the movement of the robot, the robot needs to rely on positioning to determine the route and direction. Therefore, the positioning function of the robot is the basis for realizing the movement of the robot.

[0003] In traditional technical solutions, positioning is performed using artificial or natural landmarks and triangulation principles, or using sensors to sense environmental information to create a map, and then the current map is matched with a pre-stored map in the database to calculate the robot's position in the global coordinate system. However, existing robot positioning methods may have positioning anomalies or loss in scenes with changing environments, resulting in low positioning accuracy. Summary of the invention

[0004] Based on this, it is necessary to provide a robot positioning method, device, robot, computer-readable storage medium and computer program product that can improve positioning accuracy in response to the above technical problems.

[0005] A robot comprises a memory, a processor, and computer-readable instructions stored in the memory and executable on the processor, wherein the processor implements the following steps when executing the computer-readable instructions:

[0006] Acquire motion sensor data and local scene point cloud information, perform local pose estimation based on the motion sensor data and local scene point cloud information, and obtain current local pose information;

[0007] Projecting the local scene point cloud information to obtain local scene contour data, and determining the target map corresponding to the local scene contour data in the preset global map;

[0008] Obtain corresponding posture correction parameters based on the matching degree between the target map and the local scene contour data;

[0009] The current local pose information is converted into a global pose to obtain initial global pose information, and the initial global pose information is corrected using the pose correction parameter to obtain the target global pose information;

[0010] The current local pose information and the target global pose information are fused to obtain the target pose information.

[0011] A robot positioning device, the device comprising:

[0012] Front-end sensor module, used to obtain motion transmission data and local scene point cloud information;

[0013] A front-end posture prediction module is used to perform local posture estimation based on the motion sensing data and the local scene point cloud information to obtain current local posture information;

[0014] A front-end data processing module is used to project the local scene point cloud information to obtain local scene contour data;

[0015] A back-end computing module is used to determine a target map corresponding to the local scene outline data in a preset global map; obtain corresponding posture correction parameters based on the matching degree between the target map and the local scene outline data; perform a global posture conversion on the current local posture information to obtain initial global posture information, and use the posture correction parameters to correct the initial global posture information to obtain target global posture information;

[0016] The front-end posture fusion module is used to fuse the current local posture information with the target global posture information to obtain the target posture information.

[0017] A robot positioning method, characterized in that the method comprises:

[0018] Acquire motion sensor data and local scene point cloud information, perform local pose estimation based on the motion sensor data and local scene point cloud information, and obtain current local pose information;

[0019] Projecting the local scene point cloud information to obtain local scene contour data, and determining the target map corresponding to the local scene contour data in the preset global map;

[0020] Obtain corresponding posture correction parameters based on the matching degree between the target map and the local scene contour data;

[0021] The current local pose information is converted into a global pose to obtain initial global pose information, and the initial global pose information is corrected using the pose correction parameter to obtain the target global pose information;

[0022] The current local pose information and the target global pose information are fused to obtain the target pose information.

[0023] A computer-readable storage medium stores a computer program, which, when executed by a processor, causes the processor to execute the steps implemented by the robot.

[0024] The above-mentioned robot positioning method, device, robot, storage medium and computer program product, by using motion sensor data and local scene point cloud information to estimate the local pose, obtain the current local pose information, and can realize the real-time calculation of the current local pose information. Then the local scene point cloud information is projected to obtain the local scene contour data, and the target map is determined in the preset global map, and the corresponding pose correction parameters are obtained according to the matching degree between the local scene contour data and the target map number, which can ensure the accuracy of the pose correction parameters under different matching degrees. Then the current local pose information is converted into a global pose to obtain the initial global pose information, and the initial global pose is corrected using the pose correction parameters to obtain the target global pose information, thereby improving the accuracy of the target global pose information, so that the current local pose information and the target global pose information are subsequently used to fuse to obtain the target pose information, thereby ensuring the accuracy of the target pose information, thereby improving the accuracy of the robot positioning. BRIEF DESCRIPTION OF THE DRAWINGS

[0025] Figure 1 A diagram showing an application environment of a robot positioning method in one embodiment;

[0026] Figure 2 A schematic diagram of a flow chart of a robot positioning method in one embodiment;

[0027] Figure 3 A schematic diagram of a flow chart of a robot front-end algorithm in one embodiment;

[0028] Figure 4 is a schematic diagram of a map organization structure in one embodiment;

[0029] Figure 5 A schematic diagram of a process for detecting map changes in one embodiment;

[0030] Figure 6 is a schematic diagram of map changes in one embodiment;

[0031] Figure 7 A schematic diagram of a process of deleting redundant maps in one embodiment;

[0032] Figure 8 A schematic diagram of a process of robot positioning in one embodiment;

[0033] Fig. 9 is a structural block diagram of a robot positioning device in one embodiment;

[0034] Fig.10 FIG. 1 is a diagram of the internal computer structure of a robot in one embodiment. DETAILED DESCRIPTION

[0035] In order to make the purpose, technical solution and advantages of the present application more clearly understood, the present application is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.

[0036] The robot positioning method provided in the embodiment of the present application can be applied to Figure 1 In the application environment shown. It includes a robot 102 and a server 104. The robot 102 and the server 104 can be connected through a communication connection method such as Bluetooth, USB (Universal Serial Bus) or a network, and this application is not limited here. In one embodiment, the robot 102 can receive a movement instruction sent by the server 104 through a communication connection, such as a delivery instruction sent by the server 104 to the robot 102 according to the customer's order, and the robot 102 moves in response to the delivery instruction to deliver the customer. In one embodiment, the robot 102 collects environmental information through a sensor set thereon, and sends the environmental information to the server 104, and the server 104 processes the environmental information and sends the processing result back to the robot 102. Of course, the robot 102 can also perform preliminary processing on the collected environmental information and then send it to the server 104. The amount of information processed by the robot 102 and the server 104 is not specifically limited here.

[0037] In one embodiment, the robot 102 receives a movement instruction sent by the server 104, obtains motion sensor data and local scene point cloud information, performs local pose estimation based on the motion sensor data and the local scene point cloud information, and obtains current local pose information; projects the local scene point cloud information to obtain local scene contour data, and determines a target map corresponding to the local scene contour data in a preset global map; obtains corresponding pose correction parameters based on the degree of match between the target map and the local scene contour data; performs a global pose conversion on the current local pose information to obtain initial global pose information, and uses the pose correction parameters to correct the initial global pose information to obtain target global pose information; and fuses the current local pose information with the target global pose information to obtain target pose information.

[0038] Among them, the server 104 can be an independent physical server or a service node in the blockchain system. The service nodes in the blockchain system form a peer-to-peer (P2P) network. The P2P protocol is an application layer protocol running on the Transmission Control Protocol (TCP) protocol.

[0039] In addition, server 104 can also be a server cluster composed of multiple physical servers, and can be a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, content delivery networks (Content Delivery Network, CDN), as well as big data and artificial intelligence platforms.

[0040] In one embodiment, the implementation on a robot is used as an example for explanation. Figure 2 As shown, a robot is provided, comprising a memory, a processor, and computer-readable instructions stored in the memory and executable on the processor. When the processor executes the computer-readable instructions, the following steps are included:

[0041] Step 202: Acquire motion sensor data and local scene point cloud information, perform local pose estimation based on the motion sensor data and the local scene point cloud information, and obtain current local pose information.

[0042] Among them, motion sensor data refers to the sensor data collected by motion sensors during the movement of the robot. The motion sensors are installed on the robot. Motion sensors mainly include odometers and inertial measurement units. Local scene point cloud information refers to the laser point cloud data collected from the environment in the area in front of the robot. The robot collects local scene point cloud information through the installed point cloud acquisition equipment. The point cloud acquisition equipment can be a laser radar device, an optical camera device, etc. The current local pose information refers to the position coordinates and pose of the robot in the local coordinate system at the current moment. The local coordinate system refers to the coordinate system with the initial position of the robot as the coordinate origin.

[0043] Specifically, the robot collects the current motion sensor data and local scene point cloud information through the installed motion sensors and point cloud acquisition equipment. The motion sensor data mainly includes odometer data and inertial measurement data. The robot performs preprocessing such as timestamp alignment on the odometer data, inertial measurement data and local scene point cloud information to obtain preprocessed motion sensor data and local scene point cloud information.

[0044] The robot uses the odometer data and inertial measurement data to predict the pose of each laser point cloud in the local scene point cloud information, and then uses the predicted pose to correct the motion distortion of the laser point cloud data in the local scene point cloud information to obtain the corrected local scene point cloud information. The robot obtains the local map at the historical moment, which refers to the local map created by the robot using the data collected by the point cloud acquisition device at the historical moment. The robot uses the local scene point cloud information to scan and match the local map at the historical moment, detects the pose information when the local scene point cloud information has the highest matching degree in the local map, and obtains the current local pose information corresponding to the local scene point cloud information. The robot can also use the odometer data and local point cloud information at the current moment to construct the current local map, scan and match the local scene point cloud information with the current local map, and obtain the current local pose information corresponding to the local scene point cloud information.

[0045] Step 204 , projecting the local scene point cloud information to obtain local scene contour data, and determining a target map corresponding to the local scene contour data in a preset global map.

[0046] Among them, the local scene contour data refers to the projection data of the local scene point cloud information after coordinate conversion, which represents the projection data corresponding to the obstacles in the area in front of the robot. The preset global map refers to the pre-built map of the robot's movable area. The coordinate system used to build the preset global map is the world coordinate system. The target map refers to the map in the preset global map that matches the local scene contour data.

[0047] Specifically, the robot performs coordinate conversion on the local scene point cloud information according to the world coordinate system used by the preset global map to obtain local scene contour data that can be projected onto the preset global map. The robot determines the target map corresponding to the local scene contour data in the preset global map according to the edge point cloud coordinates corresponding to the local scene contour data.

[0048] Step 206, obtaining corresponding posture correction parameters based on the matching degree between the target map and the local scene contour data.

[0049] The pose correction parameter refers to the parameter used to correct the pose of the current local pose information. The matching degree indicates the degree of overlap between the obstacles in the target map and the obstacles in the local scene contour data.

[0050] Specifically, the robot matches the local scene contour data with the target map to obtain the matching degree corresponding to the local scene contour data. When the robot detects that the matching degree exceeds the preset matching degree threshold, it determines that the local scene contour information matches the target map successfully, obtains the robot's posture when the local scene contour information matches the target map successfully, and uses the posture as the posture correction parameter corresponding to the local scene point cloud information.

[0051] When the robot detects that the matching degree does not exceed the preset matching degree threshold, it determines that the local scene contour information fails to match the target map, and obtains the posture correction parameters corresponding to the historical local point cloud information.

[0052] Step 208 , converting the current local pose information into a global pose information to obtain initial global pose information, and using the pose correction parameters to correct the initial global pose information to obtain target global pose information.

[0053] The target global pose information refers to the pose of the robot on the global map, specifically the position and pose of the robot in the world coordinate system.

[0054] Specifically, the robot uses the preset coordinate system conversion parameters to convert the current local pose information in the local coordinate system into the initial global pose information in the world coordinate system. Then the robot uses the pose correction parameters to correct the initial global pose information to obtain the target global pose information.

[0055] Step 210, the current local pose information and the target global pose information are fused to obtain the target pose information.

[0056] Among them, the target posture information refers to the positioning information finally obtained by the robot.

[0057] Specifically, the robot fuses the current local pose information with the target global pose information, and specifically may use the target global pose information to perform error correction on the current local pose information to obtain the target pose information.

[0058] In the robot positioning method implemented by the above robot, the local pose is estimated by using motion sensor data and local scene point cloud information to obtain the current local pose information, which can realize real-time calculation of the current local pose information. Then the local scene point cloud information is projected to obtain the local scene contour data, and the target map is determined in the preset global map. The corresponding pose correction parameters are obtained according to the matching degree between the local scene contour data and the target map data, which can ensure the accuracy of the pose correction parameters under different matching degrees. Then the current local pose information is converted into a global pose to obtain the initial global pose information, and the initial global pose is corrected using the pose correction parameters to obtain the target global pose information, thereby improving the accuracy of the target global pose information, so that the current local pose information and the target global pose information are subsequently used to fuse to obtain the target pose information, thereby ensuring the accuracy of the target pose information, thereby improving the accuracy of the robot positioning.

[0059] In one embodiment, step 206, obtaining corresponding posture correction parameters based on the matching degree between the target map and the local scene contour data, includes:

[0060] Obtaining preset matching parameters, and offsetting the local scene contour data according to the preset matching parameters to obtain each contour data to be matched;

[0061] Match each contour data to be matched with the target map respectively, obtain the matching degree corresponding to each contour data to be matched, and calculate the projection pose of the matching degree corresponding to each contour data to be matched;

[0062] Determine the target matching degree among the matching degrees corresponding to the contour data to be matched, and when the target matching degree exceeds a preset matching degree threshold, determine the target projection posture corresponding to the target matching degree among the projection postures of the matching degrees corresponding to the contour data to be matched;

[0063] The target projection posture is used as the posture correction parameter.

[0064] Among them, the preset matching parameters refer to the parameters of the pre-set posture change, which represent the parameters for changing the global posture of the robot when collecting local scene point cloud information. The contour data to be matched refers to the local scene contour data after the posture change. The projected posture refers to the global posture information of the robot corresponding to the contour data to be matched. The target matching degree refers to the highest matching degree among the matching degrees corresponding to each contour data to be matched. The target projection posture refers to the projection posture of the contour data to be matched corresponding to the target matching degree, which represents the actual posture of the robot in the global map when collecting local scene point cloud information. The historical projection posture refers to the actual posture of the robot in the global map when collecting local scene point cloud information at a historical time.

[0065] Specifically, the robot obtains preset matching parameters, which may include a posture offset and an offset range, and offsets the posture corresponding to the local scene contour data according to the preset matching parameters to obtain each contour data to be matched. Then the robot matches each contour data to be matched with the target map respectively, and the robot may use a preset algorithm to calculate the matching degree between each contour data to be matched and the target map respectively, that is, to obtain the matching degree corresponding to each contour data to be matched, and calculate the projection posture of the matching degree corresponding to each contour data to be matched.

[0066] Specifically, the robot can determine the initial projection pose when projecting the local scene point cloud information to obtain the local scene contour data, and then the robot combines and calculates the pose offsets corresponding to each matching degree with the initial projection pose to obtain the projection pose corresponding to each contour data to be matched. For example: the preset matching parameters include displacement offset, displacement offset range, angle offset and angle offset range. The robot first performs an angle offset at the current position according to the angle offset until the angle offset range is reached; then the robot performs a position offset according to the pose offset, and performs an angle offset again according to the angle offset and the angle offset range at the offset position; the robot repeats the above steps until each position within the displacement offset range is traversed to obtain each contour data to be matched.

[0067] The robot determines the target matching degree among various matching degrees, and the target matching degree is generally the matching degree with the largest value. Then the robot compares the target matching degree with the preset matching degree threshold. When it detects that the target matching degree exceeds the preset matching degree threshold, the robot determines the target projection pose corresponding to the target matching degree among the projection poses corresponding to various matching degrees. The robot uses the target projection pose corresponding to the target matching degree as the pose correction parameter, and then converts the current local pose information into the initial global pose information, and uses the pose correction parameter to correct the initial global pose information to obtain the target global pose information corresponding to the local scene point cloud information.

[0068] In this embodiment, when the target map and the local scene contour data are successfully matched, the target projection posture is used as the posture correction parameter to ensure the accuracy of the posture correction parameter, and the initial global posture information is subsequently corrected using the posture correction parameter to obtain the target global posture information corresponding to the local scene point cloud information, thereby improving the accuracy of the target global posture information.

[0069] In one specific embodiment, after determining the target projection pose corresponding to the current local scene point cloud information, the robot can use the target projection pose and the historical projection pose to jointly optimize and update the initial global pose information corresponding to the historical local scene point cloud information and the initial global pose information corresponding to the local scene point cloud information, and obtain the historical global pose information corresponding to the historical local scene point cloud information and the target global pose information corresponding to the local scene point cloud information.

[0070] Specifically, the robot obtains the historical projection pose corresponding to the historical local scene point cloud information, the target projection pose and the historical projection pose respectively represent the local scene point cloud information and the actual global pose corresponding to the historical local scene point cloud information, then the pose correction parameters may include the actual global pose corresponding to the local scene point cloud information and the actual global pose corresponding to the historical local scene point cloud information.

[0071] Then the robot calculates the pose error between the actual global pose of the historical local scene point cloud information and the initial global pose information after the historical local pose information is converted, and calculates the pose error between the actual global pose of the local scene point cloud information and the initial global pose information. Then the robot inputs each pose error into a preset optimization algorithm, such as an optimizer, calculates the minimum pose error based on each pose error through the preset optimization algorithm, and uses the minimum pose error to correct the initial global pose information corresponding to the historical local scene point cloud information and the local scene point cloud information, respectively, to obtain the target global pose information corresponding to the local scene point cloud information.

[0072] In this embodiment, when the target map successfully matches the local scene contour data, the historical projection pose and the target projection pose are used as pose correction parameters, and the pose error of the current local scene point cloud information and the pose error of the historical local scene information are introduced to optimize the initial global pose of the local scene point cloud information, thereby improving the accuracy of the target global pose information.

[0073] In one embodiment, step 206, obtaining corresponding posture correction parameters based on the matching degree between the target map and the local scene contour data, includes:

[0074] When the target matching degree does not exceed the preset matching degree threshold, the historical projection pose corresponding to the historical local scene point cloud information is obtained, and the historical projection pose is used as the pose correction parameter.

[0075] Specifically, when the robot detects that the target matching degree does not exceed the preset matching degree threshold, it obtains the historical projection pose corresponding to each historical local scene point cloud information, that is, the actual global pose corresponding to each historical local scene point cloud information, and uses the historical projection pose corresponding to each historical local scene point cloud information as a pose correction parameter. The robot calculates the pose error between the actual global pose of each historical local scene point cloud information and the initial global pose information corresponding to it, and then the robot inputs each pose error into the preset optimization algorithm to calculate the minimum pose error. The robot corrects the initial global pose information corresponding to the historical local scene point cloud information and the local scene point cloud information according to the minimum pose error to obtain the target global pose information corresponding to the local scene point cloud information.

[0076] In this embodiment, when the target map fails to match the local scene contour data, the historical projection pose is used as a pose correction parameter, and the pose error of the historical local scene information is introduced to optimize the initial global pose of the local scene point cloud information, thereby ensuring the accuracy of the target global pose information.

[0077] In one embodiment, step 202, acquiring motion sensor data and local scene point cloud information, and performing local pose estimation based on the motion sensor data and the local scene point cloud information to obtain current local pose information, includes:

[0078] Perform local pose estimation based on motion sensor data to obtain initial local pose information;

[0079] Based on the initial local pose information, the local scene point cloud information is distorted and corrected to obtain the target local scene point cloud information;

[0080] Obtain the historical local map, match the target local scene point cloud information with the historical local map, and obtain the current local pose information corresponding to the target local scene point cloud information.

[0081] The initial local estimated pose information refers to the local pose of the robot estimated using motion sensor data. The target local scene point cloud information refers to the local scene point cloud information after distortion correction. The historical local map refers to the local map constructed based on the historical local scene point cloud information, which represents the environment map corresponding to the historical local scene point cloud information.

[0082] Specifically, the robot obtains the current motion sensor data, specifically the odometer data and inertial measurement data, and obtains the current local scene point cloud information. The robot performs preprocessing such as invalid value removal, timestamp alignment, and data format conversion on the odometer data, inertial measurement data, and local scene point cloud information to obtain preprocessed data. The robot then uses the preprocessed odometer data and inertial measurement data to predict the position and posture of each laser point cloud in the local scene point cloud information, and uses the predicted position and posture to correct the motion distortion of the local scene point cloud information to obtain the corrected target scene point cloud information.

[0083] The robot projects the target scene point cloud information to obtain the projection data corresponding to the target scene point cloud information. Then the robot obtains the historical local map of the historical time, matches the above projection data with the historical local map, and obtains the current local pose information corresponding to the target local scene point cloud information.

[0084] In a specific embodiment, Figure 3As shown, a flow chart of a robot front-end algorithm is provided. The odometer, inertial measurement unit and lidar device installed on the robot are used as the front-end device of the robot to output the current posture (i.e., the current local posture information) and the corresponding local map, and send the current posture and the corresponding local map to the back-end for map optimization. The back-end can be the computing module of the robot, the built-in computing module of the robot, or the external computing server of the robot. The back-end is used to match the current posture and the corresponding local map sent by the front-end with the preset global map, and then determine whether to update the local map according to the matching situation to achieve map optimization.

[0085] The sensor data includes motion sensor data and laser point cloud data. After synchronizing the current motion sensor data and laser point cloud data, the robot uses the predicted posture to correct the motion distortion of the laser point cloud data, and scans and matches the corrected laser point cloud data with the historical local map. The robot calculates the matching score between the laser point cloud data and the historical local map through a preset matching algorithm, that is, the matching degree between the laser point cloud data and the historical local map, and outputs the current posture and posture covariance of the robot. The posture covariance represents the local posture error of the robot.

[0086] The robot matches the current laser point cloud data with the historical local map to determine the overlap position of the current laser point cloud data in the historical local map, and then uses the preset judgment process to determine whether to insert the current laser point cloud data into the historical local map to construct the current local map corresponding to the current laser point cloud data. The specific judgment process is:

[0087] The robot obtains the acquisition time of the current laser point cloud data and the time when it was last inserted into the local map, calculates the time difference between the two, and stops processing when it detects that the time difference does not exceed the preset time interval threshold; when it detects that the time difference exceeds the preset time interval threshold, calculates the translation distance difference between the current posture and the posture of the upper layer inserted into the local map, and stops processing when it detects that the translation distance difference does not exceed the preset distance threshold; when it detects that the translation distance difference exceeds the preset distance threshold, calculates the rotation angle difference between the current posture and the posture of the upper layer inserted into the local map, and stops processing when it detects that the rotation angle difference does not exceed the preset angle threshold; when it detects that the rotation angle difference exceeds the preset angle threshold, low-pass filters the laser point cloud data, uses the filtered laser point cloud data to match the historical local map, obtains the filtered filtering matching score, calculates the difference between the matching score and the filtering matching score, and obtains the score difference, which represents the change of the laser point cloud data compared with the historical local map. When the robot detects that the score difference does not exceed the preset difference threshold, it stops processing; when it detects that the score difference exceeds the preset difference threshold, the robot inserts the current laser point cloud data into the historical local map, and the robot front end outputs the current posture and the current local map. Inserting the current laser point cloud data into the historical local map can be to update the historical local map with the laser radar data at the current moment (current frame), specifically, it can be to convert the laser point cloud data of the changed part into map data and overwrite the historical local map to build a real-time local map, for example, fill the blank local map with the laser radar data of consecutive frames.

[0088] In this embodiment, the optimal local pose can be obtained by matching the corrected laser point cloud with the local map, and by determining whether to insert the laser point cloud data into the local map through preset judgment conditions, an accurate local map can be constructed in real time. In addition, by adding the judgment condition of the difference threshold, abnormal values ​​can be filtered out. For example, when there is a delay in the robot sensor data or the robot slips, the initial pose error and the scan matching error caused by the misalignment of the laser point cloud data with the odometer data and the inertial measurement data can be filtered out, thereby improving the accuracy of the local map.

[0089] In one embodiment, a robot positioning method determines a target map corresponding to local scene contour data in a preset global map, including:

[0090] Obtaining the local matching degree corresponding to each time point in the current time period, wherein the local matching degree is the matching degree between the local scene point cloud information corresponding to each time point and the preset global map;

[0091] When it is detected that the local matching degree corresponding to each time point does not meet the preset matching success condition, the local scene point cloud information corresponding to each time point is obtained;

[0092] Based on the local scene point cloud information corresponding to each time point, map data conversion is performed to obtain the local map corresponding to each time point, and the local map corresponding to each time point is used as the updated map corresponding to the current time period;

[0093] A target update map corresponding to the local scene contour data is determined in the update map.

[0094] Among them, the local scene point cloud information corresponding to each time point represents the local scene point cloud information corresponding to each scene collected when the robot moves in the movement area. The local map corresponding to each time point represents the local map constructed using the local scene point cloud information corresponding to each time point. The updated map refers to a map with scene changes compared to the preset global map, and the changed scene is represented by the local map corresponding to the local scene point cloud information that has not been successfully matched. The target updated map refers to the local map that matches the local scene point cloud information in the updated map.

[0095] Specifically, the laser radar device at the front end of the robot collects data at a preset frequency and generates corresponding laser point cloud data frame by frame. The preset laser node frame number and the preset map node number are stored at the front end of the robot. After collecting the corresponding number of laser point cloud data frames according to the preset laser node frame number, the robot generates a laser node. After obtaining the laser nodes corresponding to the preset number of map nodes, the robot uses these laser nodes to build a local map, specifically converting the laser point cloud data in the laser node into map data to obtain the corresponding local map. The preset number of map nodes can be one or more. For example, a laser node includes 50 frames of laser point cloud data and local posture information, and 5 laser nodes build a complete local map. The front end obtains the data of the second laser node through the sensor, updates the local map, and sends the updated local map and the second laser node to the back end. The back end receives the second laser node to improve or update the local map in the back end.

[0096] Laser nodes can represent local scene point cloud information. The robot front end obtains the laser nodes corresponding to each time point in the current time period, representing the laser point cloud data corresponding to each scene collected by the robot in the current motion area. Then the robot builds the corresponding local map based on the laser nodes corresponding to the preset number of map nodes.

[0097] The robot front end sends the laser nodes and corresponding local maps at each time point to the back end. After receiving the laser nodes and corresponding local maps at each time point, the robot back end matches the laser nodes at each time point with the preset global map to obtain the local matching degree corresponding to the laser nodes at each time point. When the robot detects that the matching degree corresponding to the laser nodes at each time point in the current time period does not exceed the preset matching degree threshold, it is determined that the scene represented by each laser node in the current time period is inconsistent with the scene in the preset global map, and the preset global map has changed. The robot obtains the local map corresponding to the laser nodes at each time point in the current time period, and uses the local map corresponding to the laser nodes at each time point in the current time period as the updated map corresponding to the current time period. The updated map corresponding to the current time period specifically represents the map corresponding to the changed scene collected after the robot moves in the current motion area for a period of time.

[0098] The robot backend can also receive the laser nodes corresponding to each time point sent by the front end, convert the map data of the laser nodes corresponding to each time point, obtain the local map corresponding to each laser node, and use the local map corresponding to each laser node as the updated map corresponding to the current time period.

[0099] After obtaining the updated map, the robot obtains the current laser node and matches the current laser node with the preset global map in a preset selection order. After the robot detects that the preset global map fails to match, it selects the updated map in a preset selection order, and then matches the current laser node with the target updated map in the updated map. After detecting that the match is successful, the current local pose information corresponding to the current laser node is obtained.

[0100] In a specific embodiment, Figure 4As shown, a schematic diagram of a map organization structure is provided. After the robot moves, a motion trajectory will be formed, and the motion interval can represent the robot's motion trajectory. In the figure, N1, N2...N10 represent laser nodes. StaticMap represents a preset global map. Submap represents a local map. The line connecting the laser node and the global map represents the static map observation constraint, which is used to determine the posture error. The line connecting the laser node and the local map represents the sub-graph construction constraint, which is used to establish a matching relationship within the motion interval; the local map in the sub-graph construction constraint refers to the repeated historical local map corresponding to the laser node in the same motion interval. For example, when the robot moves in a circle, the robot detects that the current position range in the current motion trajectory (current motion interval) overlaps with the historical position range, and matches the current laser node with the historical local map in the current trajectory to establish a constraint relationship; the sub-graph construction constraint can be used to delete the laser nodes and local maps that appear repeatedly in the same motion interval. The line connecting the laser node and the local map in the same motion interval represents the closed-loop constraint in the interval, which is used to establish a matching relationship in the motion interval; the local map in the closed-loop constraint in the interval refers to the local map in which the laser nodes in the same motion interval have a matching relationship. The lines between the laser nodes and the local maps of different intervals represent the closed-loop constraints between the various motion intervals, which are used to establish the matching relationship between the motion intervals. The pose error is calculated through the global pose in the frozen historical motion trajectory (historical motion interval), and the pose error is used to optimize the motion trajectory (motion interval). For example, when the robot is retracing, the robot detects that the current motion trajectory and the historical motion trajectory have overlapping motion ranges, and matches the laser node of the current motion trajectory with the local map within the overlapping range of the historical motion trajectory and establishes a constraint relationship. The constraint represents the actual pose of the laser node on the corresponding map, and the constraint is used to optimize the local pose information of each laser node.

[0101] The robot backend pre-creates a motion interval, which is used to save the laser nodes and local maps sent by the frontend. The laser nodes and local maps stored in the motion interval can be the laser nodes collected when the robot moves in a cloud track, and the local map generated based on the laser nodes. There are constraints between the laser nodes and local maps sent by the frontend, which are established by the frontend based on the actual position of the laser node data on its corresponding local map.

[0102] The robot starts to move in the motion area, and stores the laser nodes, local maps, and constraints between the laser nodes and the corresponding local maps sent by the front end into the current motion interval, such as Figure 4In the middle movement interval 1, the robot then matches each laser node with the global map respectively, determines the successfully matched laser nodes, and establishes constraints between the successfully matched laser nodes and the global map. Generally speaking, among the laser nodes corresponding to the local map where the scene has not changed, there is at least one laser node that has successfully matched the global map. Among the laser nodes corresponding to the local map where the scene has changed, there is no laser node that has successfully matched the global map. The same laser node can establish constraints with at least one local map, that is, the laser node corresponding to the local map where the scene has changed can also establish constraints with the historical local map where the scene has not changed.

[0103] Then the robot obtains all constraints in the current motion interval and inputs each constraint into the preset optimizer. The optimizer optimizes the global poses corresponding to all laser nodes and local maps in the current motion interval. After optimization, the robot can output the target global pose information corresponding to the latest laser node.

[0104] The robot moves in the current motion range. When it detects that the environment has not changed, it continues to move in the current motion range and retains the latest two local maps and corresponding laser nodes and constraints in the current motion range. Figure 4 As shown in the motion interval 1, it is assumed that only local map 0 and local map 1 are retained in the motion interval 1. Figure 1 and their corresponding laser nodes and constraints, and local map 0 and local map Figure 1 Globally Figure 1 Then the robot receives the local Figure 2 The robot detects the local map by matching the laser nodes corresponding to the local map with the global map. Figure 2 If there is no change, delete local map 0 and its corresponding laser nodes and constraints. At this time, only the local map is retained in motion interval 1. Figure 1 and locally Figure 2 and their corresponding laser nodes and constraints, and optimize the currently retained laser nodes and local maps, and output the target global pose information corresponding to the latest laser nodes.

[0105] When the robot detects that the environment has changed and meets the preset map update conditions, it ends the current motion interval and optimizes all laser nodes and local maps in the current motion interval. After optimization, all parameters and data in the current motion interval are frozen, and then a new motion interval is created. Figure 4 As shown in the middle motion interval 1, local map 0 and local map Figure 1 There is no change, and then the local Figure 2 , locally Figure 3, ..., when the local map N changes, determine the local map in the motion interval 1 Figure 2 , locally Figure 3 , ..., the actual scene corresponding to the local map N changes. Afterwards, when the robot detects that the local map N+1 has not changed, and continues to detect that the local map N+2..., the local map N+N has not changed, it determines that the actual scene change corresponding to the local map N+1 in the motion interval 1 has ended. Then the robot stops storing new data in the motion interval 1. In general, when the robot detects that the local map has not changed, the local map has changed, and the local map has not changed in the current motion interval, it freezes the current motion interval and creates a new motion interval. The laser nodes and local maps of the frozen motion interval are no longer optimized and are stored as historical motion intervals. The historical motion interval can represent a map update interval, which is used to store the updated map corresponding to the changed scene. One motion interval represents a changed scene.

[0106] The robot takes the new motion interval as the current motion interval and receives the new laser node and the corresponding local map and constraints sent by the front end. The robot can establish constraints between laser nodes and historical motion intervals. For example, the laser node N7 in motion interval 2 and the local map in motion interval 1 in the figure are Figure 1 There are constraints between them. When there are multiple motion intervals, when the robot optimizes the current motion interval, it obtains all constraints in the current motion interval, including the constraints between the current motion interval and the historical motion interval. The robot uses all constraints in the current motion interval to optimize the laser nodes and local maps in the current motion interval.

[0107] Specifically, the backend scans and matches the laser point cloud data in the current laser node with the preset global map at intervals. If the matching score exceeds the preset threshold, a constraint relationship between the laser node and the global map is established, and the current laser node is optimized. The optimization is to convert the local pose of the lidar data calculated by the front end in the current laser node into a global pose, match it with the global map, calculate the pose error between the global pose of the laser node and the global map, and perform error correction on the laser node and the local map before the current laser node based on the pose error. After an interval, the new laser node is scanned and matched with the preset global map again, and the laser node and all previous laser nodes are optimized based on the matching score to achieve joint optimization.

[0108] In a specific embodiment, Figure 5As shown, a flowchart of detecting map changes is provided. During the movement of the robot, there are NORMAL state, PRE_UPDATE state, UPDATE state and LOST state. NORMAL state indicates that the robot is in normal positioning state and no map changes have occurred. PRE_UPDATE state indicates the state of preparing to update. UPDATE state indicates the state of map update, in which the robot continuously records the changed local map and laser nodes. LOST state indicates the state of lost positioning.

[0109] The robot moves in the movement area. During the movement of the robot, the back end of the robot continuously receives the laser nodes sent by the front end, scans and matches the laser nodes with the preset global map, and obtains the matching score corresponding to the laser node, which is represented by score. In the NORMAL state, the robot continuously determines whether the matching score of each laser node exceeds the preset threshold. The preset threshold can be represented by a, which can be 0.52. For example, the robot continuously detects score ≥ a in the NORMAL state; if the robot detects that the matching score is less than the preset threshold for the first time, that is, score < a, the robot enters the PRE_UPDATE state.

[0110] In the PRE_UPDATE state, the robot continuously determines whether the matching score is continuously less than the preset threshold. If the robot detects that the matching score exceeds the preset threshold, that is, score ≥ a, the robot immediately returns to the NORMAL state and resets the relevant variables; if the robot detects that the matching score obtained when its continuous translation distance exceeds the preset translation distance threshold, or the continuous rotation angle exceeds the preset rotation angle threshold, is continuously less than the preset threshold, that is, score < a, it indicates that the preset global map has changed, and the robot enters the UPDATE state. The preset translation distance threshold can be represented by b, which can be 1.5 meters, and the preset rotation angle threshold can be represented by c, which can be 180°

[0111] The robot continuously detects the matching score and pose covariance in the UPDATE state. If the robot detects that the matching score is continuously less than the preset threshold, and the pose covariance exceeds the preset error threshold or the cumulative rotation error exceeds the preset rotation error threshold, the robot enters the LOST state. The pose covariance can be the cumulative translation error, and the preset error threshold can be represented by d, that is, the pose covariance>d, d can be 0.3m; the preset rotation error threshold can be represented by e, that is, the cumulative rotation error>e, e can be 5°. In this LOST state, the robot issues a positioning abnormality alarm and suspends movement. For example, when the front-end calculates that the covariance of laser node 1 is 0.1, the covariance of laser node 2 is 0.2, and the covariance of laser node 3 is 0.3 and exceeds the preset error threshold, the robot is judged to be in the lost state and an alarm is issued; if the robot detects that its continuous translation distance exceeds the preset translation distance threshold, or the continuous rotation angle exceeds the preset rotation angle threshold, the matching score obtained continues to exceed the preset threshold, that is, score≥a, the robot enters the NORMAL state.

[0112] In a specific embodiment, Figure 6 As shown in FIG. 1 , a schematic diagram of map change is provided. In this embodiment, map change includes two situations: the first situation is that the local maps at the beginning and end of the motion trajectory are unchanged areas, and the local map corresponding to the middle part of the global map has changed; the second situation is that the robot moves to an unmapped area, such as Figure 6 The strong change area in the image is then returned to the global map area, which is equivalent to expanding the global map.

[0113] In this embodiment, by detecting map changes, when map changes are detected, the changed scene map is saved independently, and only the latest local map is optimized, thereby avoiding the increase in local posture errors due to greater environmental changes, thereby improving the accuracy of robot positioning.

[0114] In one embodiment, after determining the target update map corresponding to the local scene contour data in the update map, the method further includes:

[0115] Determine the current point cloud information in the local scene point cloud information corresponding to each time point, and determine the target point cloud range corresponding to the current point cloud information based on a preset coordinate range;

[0116] Determine the target local map in the local map corresponding to each time point based on the target point cloud range, calculate the similarity between the current point cloud information and the target local map, and obtain the similarity corresponding to the target local map;

[0117] When it is detected that the similarity exceeds a preset similarity threshold, the target local map is deleted from the update map corresponding to the current time period to obtain the deleted update map.

[0118] Among them, the current point cloud information is the local scene point cloud information used to construct the current local map. The current local map refers to the latest local map currently constructed by the robot. The target point cloud range refers to the distance range centered on the current point cloud information. The target local map refers to the local map corresponding to the local scene point cloud information that is not the current point cloud information and is located within the target point cloud range. Similarity refers to the degree of similarity between the current local map and the target local map within the current time period.

[0119] Specifically, the robot determines the local scene point cloud information corresponding to the current local map from the local scene point cloud information corresponding to each time point in the current time period, and uses it as the current point cloud information. Specifically, the local scene point cloud information corresponding to each time point in the current time period can represent each laser node in the current motion interval of the robot, and the current point cloud information represents each current laser node corresponding to the current local map. The robot determines the target point cloud range corresponding to the current laser node based on the preset coordinate range, and then traverses each laser node in the current motion interval based on the target point cloud range, and uses the local map corresponding to the laser node that is not the current laser node and is located within the target point cloud range as the target local map.

[0120] The robot calculates the similarity between each current laser node and the target local map to obtain the similarity corresponding to the target local map. When the robot detects that the similarity exceeds the preset similarity threshold, the target local map is deleted from the update map corresponding to the current time period to obtain the updated map after deletion, that is, the target local map is deleted within the current motion interval, and the laser nodes and constraints corresponding to the target local map are deleted.

[0121] In the updating state, the robot can calculate the similarity between the current local map in the same motion interval and the local map stored in the interval, and determine whether to delete the stored local map and retain the current local map based on the similarity.

[0122] The similarity calculation formula is:

[0123]

[0124] Among them, s represents the similarity. The numerator of this calculation formula specifically represents the number of current laser nodes that successfully match the target local map among the current laser nodes corresponding to the current local map; the denominator represents the total number of current laser nodes corresponding to the current local map under the current trajectory. For example, the total number of current laser nodes corresponding to the current local map is 5, and the number of current laser nodes that successfully match the target local map is 2, then s = 2 / 5.

[0125] In this embodiment, by calculating the similarity between the currently constructed local map and the local map created in the same motion interval in the update state, redundant maps are deleted according to the similarity, so as to avoid storing duplicate local maps in the same motion interval, such as duplicate local maps caused by the robot's return motion, thereby saving computing power resources for subsequent optimization of the motion interval and reducing memory usage.

[0126] In one embodiment, the time period includes a historical time period, and after determining in the updated map the target updated map corresponding to the local scene contour data, further includes:

[0127] Determine the current point cloud information in the local scene point cloud information corresponding to each time point in the current time period, and determine the target point cloud range corresponding to the current point cloud information based on the preset coordinate range;

[0128] Obtain a historical update map corresponding to a historical time period, determine a target local map in the historical update map based on a target point cloud range, and obtain local scene point cloud information corresponding to the target local map;

[0129] The change rate is calculated based on the current point cloud information, the target local map and the local scene point cloud information to obtain the change rate corresponding to the target local map;

[0130] When it is detected that the change rate exceeds a preset change rate threshold, the target local map is deleted from the historical update map to obtain a deleted historical update map.

[0131] The historical update map refers to the map of the changing scene stored by the robot in the historical time. The change rate refers to the degree of change between the current local map and the target local map in different time periods.

[0132] Specifically, the robot backend has a current motion interval and a historical motion interval. The robot determines the local scene point cloud information corresponding to the current local map in the local scene point cloud information corresponding to each time point in the current time period, and uses it as the current point cloud information. Specifically, the robot determines the current laser nodes corresponding to the current local map in the current motion interval. The robot determines the target point cloud range corresponding to the current laser node according to the preset coordinate range. The robot obtains the historical update map corresponding to the historical time period, that is, the historical update map corresponding to the historical motion interval. The robot traverses each laser node in each historical motion interval according to the target point cloud range, and uses the local map corresponding to the laser node that is not the current laser node within the target point cloud range as the target local map. The target local map is a local map in the historical update map corresponding to the historical motion interval, and there can be at least two target local maps.

[0133] The robot calculates the change rate based on each current point cloud information, the target local map and each laser node corresponding to the target local map, and obtains the change rate corresponding to the target local map. When the robot detects that the change rate exceeds the preset change rate threshold, it means that the historical update map corresponding to the historical motion interval has changed again in the current actual scene, and determines that the target local map in the historical motion interval is an outdated local map, deletes the target local map from the historical update map, and obtains the deleted historical update map.

[0134] The formula for calculating the rate of change is:

[0135]

[0136] Among them, o represents the rate of change. The calculation formula indicates that the robot traverses each laser node within the target point cloud range, determines the number of laser nodes within the target point cloud range corresponding to the target local map within the historical motion interval; then the robot matches each current laser node with the target local map, determines the target local map that fails to match, and obtains the number of laser nodes within the target point cloud range corresponding to the target local map that fails to match; then the robot obtains the total number of laser nodes of each local map within the historical motion interval, calculates the ratio of the number of laser nodes within the target point cloud range corresponding to the target local map that fails to match to the total number of laser nodes of each local map within the historical motion interval, and obtains the rate of change corresponding to the target local map. For example, there are 6 local maps in the historical motion interval, each local map corresponds to 5 laser nodes, and there are 4 target local maps with laser nodes within the target node range. The robot matches each current laser node with the 4 target local maps respectively, determines that 3 target local maps fail to match with each current laser node, and the total number of laser nodes within the target point cloud range corresponding to the 3 target local maps is 12, then o = 12 / (5*6) = 6 / 15.

[0137] In a specific embodiment, Figure 7As shown, a flowchart of redundant map deletion is provided. The robot detects map changes in real time, and determines the robot state according to the map changes. When the robot state is NORMAL, only the latest two local maps and corresponding laser nodes and constraints in the current motion interval are retained. When the robot state is UPDATE, in the current motion interval, the similarity between each current laser node corresponding to the current local map and the target local map is calculated. The similarity can be represented by s. When the similarity is detected to exceed the preset similarity threshold, the preset similarity threshold can be represented by S`, S` can be 0.6, that is, when s>S`, the similar target local map and the corresponding laser nodes and constraints are deleted. When the robot state is from UPDATE state to NORMAL state, the current motion interval is frozen and a new motion interval is created. In each map state, the robot can calculate the change rate of the target local map in the historical motion interval. The change rate can be represented by o. When the change rate is detected to exceed the preset change rate threshold, the preset change rate threshold can be represented by O`, O` can be 0.6, that is, when o>O`, the outdated target local map and its corresponding laser nodes and constraints in the historical motion interval are deleted.

[0138] In this embodiment, the historical motion interval stores information about the map change area. As time goes by, the map change area may change again. By calculating the change rate of the target local map within the historical motion interval, the outdated target local map that needs to be deleted is determined to avoid using the wrong historical update map for matching, thereby improving the matching accuracy of the historical update map and further improving the accuracy of the robot positioning.

[0139] In a specific embodiment, Figure 8 As shown, a schematic diagram of the process of robot positioning is provided. The robot is provided with a sensor data preprocessing module, a laser posture prediction module, a laser odometer module, a backend module and a posture fusion output module.

[0140] The sensor data preprocessing module receives odometer data (Odom data), laser point cloud data (Laser data) and inertial measurement data (IMU data), and performs preprocessing on the above data such as frequency control, timestamp detection, and data format conversion.

[0141] The laser pose prediction module receives the preprocessed odometer data and inertial measurement data, and estimates the estimated local pose (PrePose) of each measurement point of the received laser point cloud data through the odometer data, inertial measurement data and local pose data at historical moments.

[0142] The laser odometry module performs motion distortion correction and laser point cloud preprocessing on the laser point cloud data according to the PrePose estimated by the laser pose prediction module, then scans and matches the laser point cloud data with the historical local map, and constructs the local map corresponding to the laser point cloud data, and outputs the local pose (LocalPose) and local map result (LocalResult) corresponding to the laser point cloud data.

[0143] The backend module performs global positioning based on the local pose of the laser odometer module and the preloaded global map. It determines whether to update the map and optimize the global pose based on the matching of the laser point cloud data and the global map. It then uses the updated map to match the new laser point cloud data and deletes similar maps based on the matching results. The backend outputs the global pose (GlobalPose) to the pose fusion module and outputs the updated local map (UpdateMap) for storage.

[0144] The pose fusion module receives odometer data, inertial measurement data, local pose, and global pose, fuses the above data and pose using a fusion algorithm, and finally outputs a global pose (FusionGlobalPose) with the same frequency as the odometer data.

[0145] Specifically, since the amount of calculation of the global pose by the back-end is relatively complex, the output frequency of the global pose output by the back-end is lower than the output frequency of the odometer data, inertial measurement data, and local pose. When the output frequency of the global pose is not reached, the robot collects odometer data and inertial measurement data according to the data collection frequency of the odometer. The front-end prioritizes collecting odometer data and inertial measurement data. The front-end uses the odometer data and inertial measurement data to calculate and estimate the local pose data. The estimated local pose is transformed into an estimated global pose. At this time, the estimated global pose output by the front-end is used as the current global pose of the robot. When the output frequency of the global pose of the back-end is reached, the global pose estimated by the front-end is corrected using the more accurate global pose output by the back-end to obtain the final global pose, thereby achieving real-time positioning of the robot.

[0146] In this embodiment, the front-end and back-end algorithms can be run independently in different threads. The front-end executes algorithms with high real-time requirements, and the back-end executes time-consuming global map matching and pose graph optimization operations, which combines the robot's requirements for real-time positioning and accurate global positioning. In addition, the front-end laser odometer improves local positioning accuracy by building a local map in real time and matching the local map with the current laser radar data, reducing the cumulative error of the algorithm in positioning in areas with environmental changes.

[0147] It should be understood that, although the various steps in the flowcharts involved in the above-mentioned embodiments are displayed in sequence according to the indication of the arrows, these steps are not necessarily executed in sequence according to the order indicated by the arrows. Unless there is a clear explanation in this article, the execution of these steps does not have a strict order restriction, and these steps can be executed in other orders. Moreover, at least a part of the steps in the flowcharts involved in the above-mentioned embodiments can include multiple steps or multiple stages, and these steps or stages are not necessarily executed at the same time, but can be executed at different times, and the execution order of these steps or stages is not necessarily to be carried out in sequence, but can be executed in turn or alternately with other steps or at least a part of the steps or stages in other steps.

[0148] Based on the same inventive concept, the embodiment of the present application also provides a robot positioning device for implementing the robot positioning method involved above. The implementation solution provided by the device to solve the problem is similar to the implementation solution recorded in the above method, so the specific limitations in one or more robot positioning device embodiments provided below can refer to the limitations of the robot positioning method above, and will not be repeated here.

[0149] In one embodiment, Fig. 9 As shown, a robot positioning device 900 is provided, including: a front-end sensor module 902, a front-end posture prediction module 904, a front-end data processing module 906, a back-end calculation module 908 and a front-end posture fusion module 910, wherein:

[0150] Front-end sensor module 902, used to obtain motion transmission data and local scene point cloud information;

[0151] A front-end pose prediction module 904 is used to perform local pose estimation based on the motion sensing data and the local scene point cloud information to obtain current local pose information;

[0152] The front-end data processing module 906 is used to project the local scene point cloud information to obtain local scene contour data;

[0153] The back-end computing module 908 is used to determine the target map corresponding to the local scene contour data in the preset global map; obtain the corresponding posture correction parameters based on the matching degree between the target map and the local scene contour data; perform global posture conversion on the current local posture information to obtain initial global posture information, and use the posture correction parameters to correct the initial global posture information to obtain target global posture information;

[0154] The front-end posture fusion module 910 is used to fuse the current local posture information with the target global posture information to obtain the target posture information.

[0155] In one embodiment, the backend computing module 908 includes:

[0156] The matching success processing unit is used to obtain preset matching parameters, offset the local scene contour data according to the preset matching parameters, and obtain each contour data to be matched; match each contour data to be matched with the target map respectively, obtain the matching degree corresponding to each contour data to be matched, and calculate the projection posture of the matching degree corresponding to each contour data to be matched; determine the target matching degree in the matching degrees corresponding to each contour data to be matched, and when the target matching degree exceeds the preset matching degree threshold, determine the target projection posture corresponding to the target matching degree in the projection posture of the matching degree corresponding to each contour data to be matched; and use the target projection posture as a posture correction parameter.

[0157] In one embodiment, the backend computing module 908 includes:

[0158] The matching failure processing unit is used to obtain the historical projection pose corresponding to the historical local scene point cloud information when the target matching degree does not exceed the preset matching degree threshold, and use the historical projection pose as the pose correction parameter.

[0159] In one embodiment, the front-end posture prediction module 904 includes:

[0160] The local pose estimation unit is used to perform local pose estimation based on motion sensing data to obtain initial local pose information; perform distortion correction on local scene point cloud information based on the initial local pose information to obtain target local scene point cloud information; obtain historical local maps, match the target local scene point cloud information with the historical local maps, and obtain current local pose information corresponding to the target local scene point cloud information.

[0161] In one embodiment, the backend computing module 908 further includes:

[0162] A map updating unit is used to obtain the local matching degree corresponding to each time point in the current time period, where the local matching degree refers to the matching degree between the local scene point cloud information corresponding to each time point and the preset global map; when it is detected that the local matching degree corresponding to each time point does not meet the preset matching success condition, the local scene point cloud information corresponding to each time point is obtained; map data conversion is performed based on the local scene point cloud information corresponding to each time point to obtain the local map corresponding to each time point, and the local map corresponding to each time point is used as the updated map corresponding to the current time period; and a target map corresponding to the local scene contour data is determined in the preset global map, including: determining the target updated map corresponding to the local scene contour data in the updated map.

[0163] In one embodiment, the robot positioning device 900 further includes:

[0164] The similarity calculation unit is used to determine the current point cloud information in the local scene point cloud information corresponding to each time point, and determine the target point cloud range corresponding to the current point cloud information based on a preset coordinate range; determine the target local map in the local map corresponding to each time point based on the target point cloud range, perform similarity calculation based on the current point cloud information and the target local map, and obtain the similarity corresponding to the target local map; when it is detected that the similarity exceeds a preset similarity threshold, delete the target local map from the update map corresponding to the current time period to obtain the updated map after deletion.

[0165] In one embodiment, the robot positioning device 900 further includes:

[0166] A change rate calculation unit is used to determine the current point cloud information in the local scene point cloud information corresponding to each time point in the current time period, and determine the target point cloud range corresponding to the current point cloud information based on a preset coordinate range; obtain the historical update map corresponding to the historical time period, determine the target local map in the historical update map based on the target point cloud range, and obtain the local scene point cloud information corresponding to the target local map; calculate the change rate based on the current point cloud information, the target local map and the local scene point cloud information to obtain the change rate corresponding to the target local map; when it is detected that the change rate exceeds a preset change rate threshold, delete the target local map from the historical update map to obtain the deleted historical update map.

[0167] Each module in the above robot positioning device can be implemented in whole or in part by software, hardware, or a combination thereof. Each module can be embedded in or independent of the processor in the robot in the form of hardware, or can be stored in the memory in the robot in the form of software, so that the processor can call and execute the corresponding operations of each module.

[0168] In one embodiment, a robot is provided, whose internal computer structure diagram can be as follows: Fig.10As shown. The robot includes a processor, a memory, an input / output interface, a communication interface, a display unit and an input device. The processor, the memory and the input / output interface are connected via a system bus, and the communication interface, the display unit and the input device are connected to the system bus via the input / output interface. The processor of the robot is used to provide computing and control capabilities. The memory of the robot includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system and a computer program. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The input / output interface of the robot is used to exchange information between the processor and an external device. The communication interface of the robot is used to communicate with an external terminal in a wired or wireless manner, and the wireless manner can be implemented through WIFI, a mobile cellular network, NFC (near field communication) or other technologies. When the computer program is executed by the processor, a robot positioning method is implemented. The display unit of the robot is used to form a visually visible image, and can be a display screen, a projection device or a virtual reality imaging device. The display screen can be a liquid crystal display screen or an electronic ink display screen. The input device of the robot can be a touch layer covered on the display screen, or a button, trackball or touchpad set on the robot shell, or an external keyboard, touchpad or mouse, etc.

[0169] Those skilled in the art will understand that Fig.10 The structure shown in the figure is merely a block diagram of a partial structure related to the scheme of the present application, and does not constitute a limitation on the robot to which the scheme of the present application is applied. The specific robot may include more or fewer components than shown in the figure, or combine certain components, or have a different arrangement of components.

[0170] In one embodiment, a robot is further provided, including a memory and a processor, wherein a computer program is stored in the memory, and the processor implements the steps in the above-mentioned robot embodiments when executing the computer program.

[0171] In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the steps in the above-mentioned robot embodiments are implemented.

[0172] In one embodiment, a computer program product is provided, including a computer program, which implements the steps in the above-mentioned robot embodiments when executed by a processor.

[0173] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with relevant laws, regulations and standards of relevant countries and regions.

[0174] Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiment methods can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to the memory, database or other medium used in the embodiments provided in the present application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetoresistive random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. As an illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM). The database involved in each embodiment provided in this application may include at least one of a relational database and a non-relational database. Non-relational databases may include distributed databases based on blockchains, etc., but are not limited to this. The processor involved in each embodiment provided in this application may be a general-purpose processor, a central processing unit, a graphics processor, a digital signal processor, a programmable logic device, a data processing logic device based on quantum computing, etc., but are not limited to this.

[0175] The technical features of the above embodiments may be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0176] The above-described embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the present application. It should be pointed out that, for a person of ordinary skill in the art, several variations and improvements can be made without departing from the concept of the present application, and these all belong to the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the attached claims.

Claims

1. A robot comprising a memory, a processor, and computer-readable instructions stored in the memory and executable on the processor, characterized in that: When the processor executes the computer-readable instructions, the following steps are implemented: Acquire motion sensor data and local scene point cloud information, perform local pose estimation based on the motion sensor data and the local scene point cloud information, and obtain current local pose information; Projecting the local scene point cloud information to obtain local scene contour data, and determining a target map corresponding to the local scene contour data in a preset global map; Acquire corresponding posture correction parameters based on the matching degree between the target map and the local scene contour data; Performing a global pose conversion on the current local pose information to obtain initial global pose information, and correcting the initial global pose information using the pose correction parameter to obtain target global pose information; The current local pose information and the target global pose information are fused to obtain the target pose information.

2. The robot according to claim 1, characterized in that: The obtaining corresponding posture correction parameters based on the matching degree between the target map and the local scene contour data includes: Acquire preset matching parameters, and offset the local scene contour data according to the preset matching parameters to obtain each contour data to be matched; Matching each of the to-be-matched contour data with the target map respectively, obtaining a matching degree corresponding to each of the to-be-matched contour data, and calculating a projection pose of the matching degree corresponding to each of the to-be-matched contour data; Determine a target matching degree among the matching degrees corresponding to the contour data to be matched, and when the target matching degree exceeds a preset matching degree threshold, determine a target projection pose corresponding to the target matching degree among the projection poses of the matching degrees corresponding to the contour data to be matched; The target projection posture is used as the posture correction parameter.

3. The robot according to claim 2, characterized in that: The obtaining corresponding posture correction parameters based on the matching degree between the target map and the local scene contour data includes: When the target matching degree does not exceed a preset matching degree threshold, a historical projection pose corresponding to the historical local scene point cloud information is obtained, and the historical projection pose is used as the pose correction parameter.

4. The robot according to claim 1, characterized in that: The acquiring of motion sensor data and local scene point cloud information, and performing local pose estimation based on the motion sensor data and the local scene point cloud information to obtain current local pose information includes: Performing local pose estimation based on the motion sensing data to obtain initial local pose information; Based on the initial local pose information, the local scene point cloud information is subjected to distortion correction to obtain target local scene point cloud information; Acquire a historical local map, match the target local scene point cloud information with the historical local map, and obtain current local pose information corresponding to the target local scene point cloud information.

5. The robot according to claim 1, characterized in that: The step of determining a target map corresponding to the local scene contour data in a preset global map includes: Obtaining the local matching degree corresponding to each time point in the current time period, wherein the local matching degree refers to the matching degree between the local scene point cloud information corresponding to each time point and the preset global map; When it is detected that the local matching degree corresponding to each time point does not meet the preset matching success condition, obtaining the local scene point cloud information corresponding to each time point; Performing map data conversion based on the local scene point cloud information corresponding to each time point to obtain the local map corresponding to each time point, and using the local map corresponding to each time point as the updated map corresponding to the current time period; A target update map corresponding to the local scene contour data is determined in the update map.

6. The robot according to claim 5, characterized in that: After determining the target update map corresponding to the local scene outline data in the update map, the method further includes: Determine the current point cloud information in the local scene point cloud information corresponding to each time point, and determine the target point cloud range corresponding to the current point cloud information based on a preset coordinate range; Determine a target local map in the local maps corresponding to each time point based on the target point cloud range, and calculate similarity between the current point cloud information and the target local map to obtain a similarity corresponding to the target local map; When it is detected that the similarity exceeds a preset similarity threshold, the target local map is deleted from the update map corresponding to the current time period to obtain a deleted update map.

7. The robot according to claim 5, characterized in that: The time period includes a historical time period; after determining the target update map corresponding to the local scene contour data in the update map, the method further includes: Determine the current point cloud information in the local scene point cloud information corresponding to each time point in the current time period, and determine the target point cloud range corresponding to the current point cloud information based on a preset coordinate range; Acquire a historical update map corresponding to the historical time period, determine a target local map in the historical update map based on the target point cloud range, and acquire local scene point cloud information corresponding to the target local map; Calculate the change rate based on the current point cloud information, the target local map and the local scene point cloud information to obtain the change rate corresponding to the target local map; When it is detected that the change rate exceeds a preset change rate threshold, the target local map is deleted from the historical update map to obtain a deleted historical update map.

8. A robot positioning device, characterized in that: The device comprises: Front-end sensor module, used to obtain motion transmission data and local scene point cloud information; A front-end posture prediction module is used to perform local posture estimation based on the motion sensing data and the local scene point cloud information to obtain current local posture information; A front-end data processing module is used to project the local scene point cloud information to obtain local scene contour data; A back-end computing module is used to determine a target map corresponding to the local scene outline data in a preset global map; obtain corresponding posture correction parameters based on the matching degree between the target map and the local scene outline data; perform a global posture conversion on the current local posture information to obtain initial global posture information, and use the posture correction parameters to correct the initial global posture information to obtain target global posture information; The front-end posture fusion module is used to fuse the current local posture information with the target global posture information to obtain the target posture information.

9. A robot positioning method, characterized in that: The robot positioning method comprises the steps implemented by the robot described in any one of claims 1 to 7.

10. A computer-readable storage medium comprising a computer program, characterized in that: When the computer program is executed by a processor, the steps implemented by the robot according to any one of claims 1 to 7 are implemented.

Citation Information

Cited By

  • Positioning method and device based on point cloud data

    CN119846646A

  • Robot motion control method, device and equipment and storage medium

    CN120869122A

  • Robot positioning method, device and system and robot

    CN121007562A

  • Control method of industrial robot and related device

    CN122008260A

  • Control method of industrial robot and related device

    CN122008260B