Robot repositioning method and apparatus, storage medium, and electronic device
By collecting point cloud data on the robot for preliminary matching and brief exploration, and updating and verifying candidate poses using target pose parameters, the problem of mismatch in robot relocalization was solved, and higher relocalization accuracy was achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- DREAM INNOVATION TECH (SUZHOU) CO LTD
- Filing Date
- 2022-05-13
- Publication Date
- 2026-06-05
AI Technical Summary
Existing robot relocalization methods are prone to mismatches in similar environments, resulting in low relocalization accuracy.
By collecting point cloud data on the robot and performing preliminary matching, the candidate poses are updated using the target pose parameters. During the movement, a brief exploration is conducted, and the updated point cloud data is used for verification to select the accurate repositioning pose.
This improves the accuracy of robot relocalization, reduces the possibility of mismatch, and enhances the precision of relocalization.
Smart Images

Figure CN122156293A_ABST
Abstract
Description
[0001] This application is a divisional application of application number 202210521936.3, filed on May 13, 2022, entitled "Robot Relocation Method and Apparatus, Storage Medium and Electronic Device". [Technical Field] This application relates to the field of robotics, and more specifically, to a robot relocation method and apparatus, a storage medium, and an electronic device. [Background Technology] Currently, when performing robot relocalization, the robot is generally relocalized by matching the point cloud to the map in place. That is, the robot position and the score of the robot point cloud matching with the map are obtained for each match, and the position with the highest score (i.e., the solution with the highest score) is determined as the current position of the robot.
[0004] However, the robot relocalization method described above only obtains the solution with the highest score, which may lead to relocalization failures in scenarios with similar environments on the map. Therefore, it is evident that the robot relocalization methods in related technologies suffer from low accuracy due to the susceptibility to mismatches. [Summary of the Invention] The purpose of this application is to provide a robot relocation method and apparatus, storage medium and electronic device, so as to at least solve the problem of low accuracy of robot relocation caused by the easy occurrence of mismatch in the robot relocation method of the related art.
[0006] The purpose of this application is to achieve the following technical solution: According to one aspect of the embodiments of this application, a robot relocalization method is provided, comprising: performing point cloud matching between first point cloud data collected by a mobile robot at a first position and a target area map to obtain a set of candidate poses; acquiring second point cloud data collected by the mobile robot as it moves to a second position; updating the set of candidate poses using target pose parameters to obtain a set of updated poses, wherein the target pose parameters are used to represent the pose change that occurs when the mobile robot moves from the first position to the second position; and relocalizing the mobile robot using the second point cloud data and the set of updated poses.
[0007] In an exemplary embodiment, the target pose parameters of the mobile robot are obtained by acquiring the mileage increment generated when the mobile robot moves from the first position to the second position using a target odometer on the mobile robot, thereby obtaining target mileage information, wherein the target pose parameters include the target mileage information.
[0008] In an exemplary embodiment, relocalizing the mobile robot using the second point cloud data and the set of updated poses includes: determining point cloud data in the target area map corresponding to each updated pose in the set of updated poses; and relocalizing the mobile robot based on the matching degree between the point cloud data corresponding to each updated pose and the second point cloud data.
[0009] In an exemplary embodiment, the relocalization of the mobile robot based on the matching degree between the point cloud data corresponding to each updated pose and the second point cloud data includes: performing the following operations sequentially on each updated pose until a verification stop condition is met, wherein each updated pose is the current updated pose during the operation, and the verification stop condition includes at least one of the following: the mobile robot relocalizes successfully and all updated poses have been verified: if the matching degree between the point cloud data corresponding to the current updated pose and the second point cloud data is greater than or equal to a matching degree threshold, the verification of the current updated pose is determined to be passed, wherein the pose relocalized by the mobile robot is the current updated pose; if the matching degree between the point cloud data corresponding to the current updated pose and the second point cloud data is less than a matching degree threshold, the verification of the current updated pose is determined to be failed, wherein the pose relocalized by the mobile robot is not the current updated pose.
[0010] In an exemplary embodiment, the step of relocalizing the mobile robot based on the matching degree between the point cloud data corresponding to each updated pose and the second point cloud data includes: determining the updated pose in the set of updated poses that has the highest matching degree between the corresponding point cloud data and the second point cloud data and is greater than or equal to the matching degree threshold as the pose to which the mobile robot has been relocalized.
[0011] In an exemplary embodiment, the step of performing point cloud matching between the first point cloud data collected by the mobile robot at a first location and the target area map to obtain a set of candidate poses includes: determining a set of grid cells to be matched from the target area map, wherein the target area map is a grid map, and each grid cell to be matched in the set of grid cells to be matched is a grid cell in the target area map that the mobile robot is allowed to enter; and performing point cloud matching between the first point cloud data and the point cloud data corresponding to each grid cell to be matched to obtain the set of candidate poses.
[0012] In one exemplary embodiment, the method further includes: determining a plurality of candidate movement directions, wherein each of the plurality of candidate movement directions is a movement direction allowed for the mobile robot at the first position; selecting the movement direction with the largest corresponding point cloud data volume from the plurality of candidate movement directions to obtain a target movement direction; and controlling the mobile robot to move along the target movement direction until the second position.
[0013] According to another aspect of the embodiments of this application, a robot relocalization device is provided, comprising: a matching unit, configured to perform point cloud matching between first point cloud data collected by a mobile robot at a first position and a target area map to obtain a set of candidate poses; a first acquisition unit, configured to acquire second point cloud data collected by the mobile robot as it moves to a second position; an update unit, configured to update the set of candidate poses using target pose parameters to obtain a set of updated poses, wherein the target pose parameters represent the pose change that occurs when the mobile robot moves from the first position to the second position; and a relocalization unit, configured to relocalize the mobile robot using the second point cloud data and the set of updated poses.
[0014] In one exemplary embodiment, the apparatus further includes: a second acquisition unit, configured to acquire the target pose parameters of the mobile robot by acquiring the mileage increment generated by the mobile robot from the first position to the second position through a target odometer on the mobile robot, thereby obtaining target mileage information, wherein the target pose parameters include the target mileage information.
[0015] In an exemplary embodiment, the relocalization unit includes: a first determining module, configured to determine point cloud data in the target area map corresponding to each updated pose in the set of updated poses; and a relocalization module, configured to relocalize the mobile robot based on the matching degree between the point cloud data corresponding to each updated pose and the second point cloud data.
[0016] In an exemplary embodiment, the relocation module includes: an execution submodule, configured to sequentially perform the following operations on each updated pose until a verification stop condition is met, wherein each updated pose is the current updated pose during the operation, and the verification stop condition includes at least one of the following: the mobile robot relocation is successful, and all updated poses have been verified: a first determining submodule, configured to determine that the verification of the current updated pose is passed if the matching degree between the point cloud data corresponding to the current updated pose and the second point cloud data is greater than or equal to a matching degree threshold, wherein the pose relocated by the mobile robot is the current updated pose; a second determining submodule, configured to determine that the verification of the current updated pose is failed if the matching degree between the point cloud data corresponding to the current updated pose and the second point cloud data is less than a matching degree threshold, wherein the pose relocated by the mobile robot is not the current updated pose.
[0017] In an exemplary embodiment, the relocalization module includes a third determining submodule, configured to determine the updated pose in the set of updated poses that has the highest matching degree between the corresponding point cloud data and the second point cloud data and is greater than or equal to the matching degree threshold as the pose to which the mobile robot has been relocalized.
[0018] In an exemplary embodiment, the matching unit includes: a second determining module, configured to determine a set of grid cells to be matched from the target area map, wherein the target area map is a grid map, and each grid cell to be matched in the set of grid cells to be matched is a grid cell in the target area map that allows the mobile robot to enter; and a matching module, configured to perform point cloud matching between the first point cloud data and the point cloud data corresponding to each grid cell to be matched, to obtain the set of candidate poses.
[0019] In one exemplary embodiment, the apparatus further includes: a determining unit, configured to determine a plurality of candidate movement directions, wherein each of the plurality of candidate movement directions is a movement direction permitted for the mobile robot at the first position; a selecting unit, configured to select the movement direction with the largest corresponding point cloud data volume from the plurality of candidate movement directions to obtain a target movement direction; and a controlling unit, configured to control the mobile robot to move along the target movement direction until it reaches the second position.
[0020] According to another aspect of the embodiments of this application, a computer-readable storage medium is also provided, wherein a computer program is stored in the computer-readable storage medium, and the computer program is configured to execute the above-described robot relocation method at runtime.
[0021] According to another aspect of the embodiments of this application, an electronic device is also provided, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the robot relocation method described above through the computer program.
[0022] In this embodiment, a method is adopted to first determine candidate solutions based on point cloud matching, and then filter them by briefly exploring the candidate solutions. First, the first point cloud data collected by the mobile robot at the first position is matched with the target area map to obtain a set of candidate poses; second, the second point cloud data collected by the mobile robot when it moves to the second position is obtained; the set of candidate poses is updated using target pose parameters to obtain a set of updated poses, where the target pose parameters represent the pose change that occurs when the mobile robot moves from the first position to the second position; the mobile robot is relocalized using the second point cloud data and the set of updated poses. Since the robot is relocalized... In the process, multiple candidate poses (i.e., candidate solutions) are first selected based on point cloud data. Then, after the robot moves a certain distance (i.e., a brief exploration), the candidate poses are updated based on the changes in pose. The candidate poses are verified by the point cloud data collected at the moved position, thereby relocalizing the robot. By conducting a brief exploration and selecting candidate solutions for relocalization, the occurrence of mismatches can be reduced, thus improving the accuracy of robot relocalization. This solves the problem of low accuracy in robot relocalization methods in related technologies due to the susceptibility to mismatches. [Attached Image Description] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with this application and, together with the description, serve to explain the principles of this application.
[0024] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, for those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0025] Figure 1 This is a schematic diagram of the hardware environment of an optional robot relocation method according to an embodiment of this application; Figure 2 This is a flowchart illustrating an optional robot relocation method according to an embodiment of this application; Figure 3 This is a flowchart illustrating another optional robot relocation method according to an embodiment of this application; Figure 4This is a structural block diagram of an optional robot relocation device according to an embodiment of this application; Figure 5 This is a structural block diagram of an optional electronic device according to an embodiment of this application.
Detailed Implementation Methods
[0027] It should be noted that the terms "first," "second," etc., in the specification, claims, and drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence.
[0028] According to one aspect of the embodiments of this application, a robot relocalization method is provided. Optionally, in this embodiment, the above-described robot relocalization method can be applied to, for example... Figure 1 The hardware environment shown consists of terminal device 102, mobile robot 104, and server 106. For example... Figure 1 As shown, the terminal device 102 can connect to the mobile robot 104 and / or the server 106 (e.g., an IoT platform or a cloud server) via a network to control the mobile robot 104, such as binding to the mobile robot 104 and configuring the tasks to be performed by the mobile robot 104.
[0029] The aforementioned network may include, but is not limited to, at least one of the following: wired network, wireless network. The aforementioned wired network may include, but is not limited to, at least one of the following: wide area network (WAN), metropolitan area network (MAN), local area network (LAN). The aforementioned wireless network may include, but is not limited to, at least one of the following: Wi-Fi (Wireless Fidelity), Bluetooth, infrared. The network used by terminal device 102 to communicate with mobile robot 104 and / or server 106 may be the same as or different from the network used by mobile robot 104 to communicate with server 106.
[0030] The terminal device 102 is not limited to PCs, mobile phones, tablets, etc.; the mobile robot 104 can be a cleaning robot, such as a sweeping robot, a floor washing robot, a robot that integrates washing and mopping, or other robots with cleaning functions. The mobile robot 104 can also be a delivery robot, such as a food delivery robot, a package delivery robot, or a robot that delivers other items. In this embodiment, the types of terminal devices and mobile robots are not limited.
[0031] The robot relocation method of this application embodiment can be executed by the mobile robot 104 alone, or it can be executed jointly by the mobile robot 104, the terminal device 102, and the server 106. Alternatively, the robot relocation method of this application embodiment can be executed by the terminal device 102 or the mobile robot 104 by a client installed on it.
[0032] Taking the robot relocation method in this embodiment executed by mobile robot 104 as an example, Figure 2 This is a flowchart illustrating an optional robot relocalization method according to an embodiment of this application, as shown below. Figure 2 As shown, the process of this method may include the following steps: Step S202: The first point cloud data collected by the mobile robot at the first position is matched with the target area map to obtain a set of candidate poses.
[0033] The robot relocalization method in this embodiment can be applied to scenarios where the robot is relocalized based on point cloud data collected by a mobile robot. The mobile robot can be the aforementioned cleaning robot, delivery robot, flying robot, or other types of robot. The relocalization can be performed in an indoor environment, and is not limited here. The relocalization can be performed after the mobile robot has been picked up and placed back on the ground, or when its current position cannot be determined, or in other scenarios. This embodiment does not limit these possibilities.
[0034] Optionally, the mobile robot is equipped with a perception sensor for point cloud data acquisition. This perception sensor can be a TOF (Time of Flight) sensor, LiDAR, depth camera, monocular camera, binocular stereo camera, etc. For example, the perception sensor can be a LiDAR, such as an LDS (Laser Distance Sensor). A LiDAR can be a radar system that detects the position, velocity, and other characteristics of a target by emitting a laser beam. The laser of the LiDAR can convert electrical pulses into light pulses and emit them. The optical receiver of the LiDAR converts the light pulses reflected from the target back into electrical pulses and sends them to the display for display (i.e., display in the form of point cloud).
[0035] In this embodiment, when repositioning is required, the mobile robot can collect point cloud data at a first position (e.g., in place) using its sensing sensors to obtain first point cloud data. For example, it can emit a laser beam into the surrounding space using the light emitter of its lidar, and the light receiver of the lidar can restore the light pulse reflected from the target into an electrical pulse, thereby obtaining the point cloud data corresponding to the current pose of the mobile robot, i.e., the first point cloud data.
[0036] After acquiring the first point cloud data, the mobile robot can perform point cloud matching between the first point cloud data and a target area map. This target area map is a pre-saved map of a region, such as the area of a user's home. During point cloud matching, the first point cloud data can be projected onto the target area map according to a preset pose. If there is a position on the target area map with a matching degree greater than or equal to a first matching degree threshold, this position on the target area map can be combined with the preset pose as a candidate pose—that is, the mobile robot's current possible pose. In this way, a set of candidate poses can be obtained.
[0037] For example, when a mobile robot needs to perform relocalization by matching point cloud data with a saved map while in place, it uses the SLAM (Simultaneous Localization and Mapping) algorithm to perform point cloud matching, obtains the pose (i.e., the solution), and then retains all candidate poses with scores exceeding a threshold, i.e., candidate solutions, to obtain a set of candidate solutions.
[0038] Step S204: Obtain the second point cloud data collected by the mobile robot when it moves to the second position.
[0039] In this embodiment, after acquiring the first point cloud data, the mobile robot can be controlled to move. The direction of movement of the mobile robot can be arbitrary or selected based on the point cloud data in various movement directions; this embodiment does not limit this. After controlling the mobile robot to move, the mobile robot can collect point cloud data through a sensing sensor at the second position it reaches, obtaining the second point cloud data. The sensing sensor used to collect the second point cloud data can be the same as the sensing sensor used to collect the first point cloud data, or it can be different; this embodiment does not limit this.
[0040] Step S206: Update a set of candidate poses using the target pose parameters to obtain a set of updated poses, wherein the target pose parameters are used to represent the pose change that occurs when the mobile robot moves from the first position to the second position.
[0041] In this embodiment, during the movement of the mobile robot, the pose of the first point cloud data can be used as the initial pose. The pose change from the position where the first point cloud data was collected to the position where the second point cloud data was collected is statistically analyzed to obtain the target pose parameters. It should be noted that the pose of the mobile robot can include both position and orientation. If the orientation of the mobile robot cannot be determined, only the position of the mobile robot can be relocated. In this case, the orientation of the mobile robot can be a preset orientation; for example, the mobile robot can be assumed to be located on a plane with a fixed orientation.
[0042] For a set of candidate poses, the mobile robot can add the pose change indicated by the target pose parameter to each candidate pose to obtain an updated pose corresponding to each candidate pose, thus obtaining a set of updated poses. When updating each candidate pose, the robot can add the position change indicated by the target pose parameter to the candidate position in each candidate pose to obtain the updated position in the corresponding updated pose; and add the posture change indicated by the target pose parameter to the candidate posture in each candidate pose to obtain the updated posture in the corresponding updated pose, thus obtaining an updated pose corresponding to each candidate pose.
[0043] Step S208: Relocalize the mobile robot using the second point cloud data and a set of updated poses.
[0044] In this embodiment, a set of updated poses can be verified using second point cloud data to obtain verification results for at least a portion of the updated poses, thereby determining the relocalization result of the mobile robot. Here, a verification result for an updated pose indicates the confidence (or probability, credibility, etc.) that the updated pose represents the pose the mobile robot is in. The relocalization result can be a successful relocalization of the mobile robot, such as the pose the mobile robot has relocated to, or a failed relocalization.
[0045] There are several ways to relocalize a mobile robot using second point cloud data and a set of updated poses. For example, the second point cloud data can be matched with the target area map to obtain a set of reference poses. The method for obtaining a set of reference poses is similar to that for obtaining a set of candidate poses, and will not be elaborated here. After obtaining a set of reference poses, a filtering operation can be performed on a set of updated poses based on the set of reference poses to relocalize the mobile robot.
[0046] The method for performing a filtering operation on a set of updated poses based on a set of reference poses can be as follows: determine the matching degree between the reference poses in the set of reference poses and the updated poses in the set of updated poses, for example, the pose difference between the reference poses and the updated poses; and relocalize the mobile robot based on the matching degree between the reference poses and the updated poses.
[0047] Optionally, relocalizing the mobile robot based on the matching degree between the reference pose and the updated pose may include: performing the following operations sequentially on each updated pose until a matching stop condition is met, wherein each updated pose is the current updated pose during the operation, and the matching stop condition includes at least one of the following: the mobile robot relocalization is successful, and all updated poses have been matched; sequentially determining the pose difference between the current updated pose and each reference pose; and determining the current updated pose as the pose to which the mobile robot has been relocalized if there is a reference pose whose pose difference with the current updated pose is less than or equal to a pose difference threshold.
[0048] Optionally, relocalizing the mobile robot based on the matching degree between the reference pose and the updated pose may include: determining the minimum pose difference between each updated pose and a reference pose in a set of reference poses to obtain the minimum pose difference corresponding to each updated pose; and determining the updated pose with the smallest corresponding minimum pose difference and the corresponding minimum pose difference being less than or equal to the pose difference threshold as the pose to which the mobile robot has been relocalized.
[0049] Through steps S202 to S208, the first point cloud data collected by the mobile robot at the first position is matched with the target area map to obtain a set of candidate poses; the second point cloud data collected by the mobile robot when it moves to the second position is obtained; the set of candidate poses is updated using the target pose parameters to obtain a set of updated poses, wherein the target pose parameters are used to represent the pose change that occurs when the mobile robot moves from the first position to the second position; the mobile robot is relocalized using the second point cloud data and the set of updated poses, which solves the problem of low accuracy of robot relocalization caused by the easy occurrence of mismatches in the robot relocalization method in the related technology, and improves the accuracy of robot relocalization.
[0050] In one exemplary embodiment, the target pose parameters of the mobile robot are obtained in the following manner: S11, the target mileage information is obtained by acquiring the mileage increment generated when the mobile robot moves from the first position to the second position through the target odometer on the mobile robot, wherein the target pose parameters include the target mileage information.
[0051] In this embodiment, the target pose parameters may include target mileage information, that is, mileage information (or travel information) generated from the first position to the second position. The mobile robot may be equipped with a target odometer, such as an IMU (Inertial Measurement Unit), which may be set at a predetermined position on the mobile robot, such as the chassis of the mobile robot, or other positions on the mobile robot.
[0052] During the movement of a mobile robot, the mileage increment caused by the robot's movement can be recorded by a target odometer to obtain target mileage information. This mileage increment can be obtained by IMU integration. The obtained target mileage information can be used as target pose parameters, or it can be used together with pose parameters detected by other components that detect changes in the robot's pose as target pose parameters.
[0053] This embodiment improves the ease of determining pose changes by acquiring the increment of the odometer on the mobile robot.
[0054] In one exemplary embodiment, relocalizing a mobile robot using second point cloud data and a set of updated poses includes: S21, Determine the point cloud data in the target area map corresponding to each updated pose in a set of updated poses; S22, the mobile robot is relocalized based on the matching degree between the point cloud data corresponding to each updated pose and the second point cloud data.
[0055] In this embodiment, the mobile robot can be relocalized based on the matching degree between the point cloud data corresponding to each updated pose in the target area map and the second point cloud data. For each updated pose, the point cloud data corresponding to each updated pose in the target area map can be determined, and the matching degree between the point cloud data corresponding to each updated pose and the second point cloud data can be determined. The mobile robot is relocalized based on the matching degree between the point cloud data corresponding to each updated pose and the second point cloud data. The method for determining the matching degree between the two point cloud data can refer to relevant technologies, and is not limited in this embodiment.
[0056] Based on the matching degree between the point cloud data corresponding to each updated pose and the second point cloud data, there are multiple ways to relocalize the mobile robot. The updated pose with the highest matching degree with the second point cloud data can be determined as the pose to which the mobile robot has been relocalized. Alternatively, an updated pose with a matching degree that reaches the second matching degree threshold with the second point cloud data can be determined as the pose to which the mobile robot has been relocalized. Other relocalization methods are also possible, but this embodiment does not limit them.
[0057] In this embodiment, the mobile robot is relocalized based on the matching degree between the point cloud data corresponding to the updated pose in the regional map and the collected point cloud data, which can improve the efficiency of mobile robot relocalization.
[0058] In an exemplary embodiment, the mobile robot is relocalized based on the matching degree between the point cloud data corresponding to each updated pose and the second point cloud data, including: S31, Perform the following operations sequentially for each updated pose until the verification stop condition is met. During the operation, each updated pose is the current updated pose. The verification stop condition includes at least one of the following: the mobile robot has successfully relocalized, and all updated poses have been verified: If the matching degree between the point cloud data corresponding to the current updated pose and the second point cloud data is greater than or equal to the matching degree threshold, the current updated pose is determined to be verified. The pose repositioned by the mobile robot is the current updated pose. If the matching degree between the point cloud data corresponding to the current updated pose and the second point cloud data is less than the matching degree threshold, it is determined that the verification of the current updated pose has failed, wherein the pose repositioned by the mobile robot is not the current updated pose.
[0059] In this embodiment, each updated pose can be verified based on the matching degree between the point cloud data corresponding to each updated pose and the second point cloud data. The verification checks whether the updated pose is the current pose of the mobile robot. For each updated pose, it can be used as the current updated pose to perform the following operations until the verification stop condition is met. The verification stop condition includes at least one of the following: the mobile robot relocalizes successfully, and all updated poses have been verified: If the matching degree between the point cloud data corresponding to the current updated pose and the second point cloud data is greater than or equal to the matching degree threshold, the mobile robot can be repositioned to the current updated pose. At this time, the current updated pose verification passes. If the matching degree between the point cloud data corresponding to the current updated pose and the second point cloud data is less than the matching degree threshold, it can be determined that the pose of the mobile robot is not the current updated pose. In this case, the current updated pose verification fails.
[0060] In this embodiment, by sequentially traversing each updated pose and verifying the current updated pose based on the matching degree between the point cloud data corresponding to the current updated pose and the point cloud data collected by the mobile robot at its current location, the efficiency of mobile robot relocalization can be improved.
[0061] In an exemplary embodiment, the mobile robot is relocalized based on the matching degree between the point cloud data corresponding to each updated pose and the second point cloud data, including: S41, the updated pose that has the highest matching degree between the corresponding point cloud data and the second point cloud data in a set of updated poses, and is greater than or equal to the matching degree threshold, is determined as the pose that the mobile robot has relocalized.
[0062] Optionally, in a set of updated poses, the number of updated poses whose matching degree between the corresponding point cloud data and the second point cloud data is greater than or equal to the matching degree threshold can be one or more, or it can be zero. If it is zero, at least one of the following processes can be performed: control the mobile robot to explore the current area as a new area, issue a relocation failure prompt message through the mobile robot, and send a relocation failure prompt message to the terminal device matched with the mobile robot. If the number of updated poses whose matching degree between the corresponding point cloud data and the second point cloud data is greater than or equal to the matching degree threshold is one, this updated pose can be determined as the pose relocated by the mobile robot.
[0063] If there are multiple updated poses where the matching degree between the corresponding point cloud data and the second point cloud data is greater than or equal to the matching degree threshold, then the updated pose with the highest matching degree can be determined as the pose relocalized by the mobile robot. Optionally, the mobile robot can be controlled to perform a brief re-probe, and then the relocalized pose can be selected from the multiple updated poses.
[0064] In this embodiment, the updated pose with the highest matching degree is selected as the pose to which the mobile robot is relocalized according to the matching degree threshold, which can improve the accuracy of mobile robot relocalization.
[0065] In one exemplary embodiment, point cloud data collected by the mobile robot at a first location is matched with a target area map to obtain a set of candidate poses, including: S51, determine a set of grid cells to be matched from the target area map, wherein the target area map is a grid map, and each grid cell to be matched in the set of grid cells to be matched is a grid cell in the target area map that the mobile robot is allowed to enter. S52, perform point cloud matching between the first point cloud data and the point cloud data corresponding to each grid cell to be matched, and obtain a set of candidate poses.
[0066] In this embodiment, the target area map can be a raster map, which can contain multiple pre-divided raster cells, each of which can be the same size. The information recorded in each raster cell of the target area map can include the passability value of each raster cell, which can range from [0, 1], where 0 indicates impassable and 1 indicates fully passable. In addition, the target area map can also record the size of gaps in open areas, etc.
[0067] When performing point cloud matching between the first point cloud data and the target area map, the target area map can be filtered first, and grid cells that the mobile robot may enter can be selected as grid cells for point cloud matching with the mobile robot: a set of grid cells to be matched can be determined from the target area map, and each grid cell to be matched is a grid cell in the target area map that the mobile robot is allowed to enter.
[0068] For example, grid cells with passability values greater than or equal to the passability threshold are identified as grid cells to be matched; or, the grid cells that the mobile robot can enter are determined by comparing the passability value and the size of the gaps in the target area map with the size of the mobile robot.
[0069] After obtaining a set of grid cells to be matched, the first point cloud data can be matched with the point cloud data corresponding to each grid cell to obtain a set of candidate poses. Determining a set of candidate poses can be the process of solving candidate poses. Since solving candidate poses is transformed from solving the entire image to solving only the grid cells that the mobile robot is allowed to enter, the amount of data required to solve candidate poses can be reduced, thus improving the efficiency of candidate pose determination.
[0070] In this embodiment, by filtering out the grid cells that the mobile robot may enter and solving for candidate poses, the amount of data required to solve for candidate poses can be reduced, and the efficiency of determining candidate poses can be improved.
[0071] In one exemplary embodiment, the above method further includes: S61, determine multiple candidate movement directions, wherein each of the multiple candidate movement directions is a movement direction allowed for the mobile robot in the first position; S62, Select the movement direction with the largest point cloud data volume from multiple candidate movement directions to obtain the target movement direction; S63 controls the mobile robot to move along the target direction of movement until it reaches the second position.
[0072] In this embodiment, when controlling the mobile robot to move, multiple candidate movement directions can be determined first. These candidate movement directions are the movement directions allowed by the mobile robot in the first position. The multiple candidate movement directions can be sensed by the sensing sensors on the mobile robot. For example, the direction whose corresponding passable width is greater than the width of the mobile robot, sensed by the sensing sensors, or the passable direction selected from a set of preset directions. In this embodiment, the method of determining the candidate movement directions is not limited.
[0073] For each candidate movement direction, point cloud data can be collected using the sensing sensors on the mobile robot to obtain point cloud data corresponding to each candidate movement direction (the point cloud data corresponding to each candidate movement direction can also be determined from the first point cloud data). The movement direction with the largest corresponding point cloud data volume among multiple candidate movement directions is determined as the target movement direction of the mobile robot. Optionally, the mobile robot can also determine the target movement position corresponding to the target movement direction, such as the distance moved along the target movement direction.
[0074] After determining the target movement direction, the mobile robot can move along the target movement direction. The distance it moves can be the distance determined above along the target movement direction, or it can be the distance determined according to the preset movement rules, thereby reaching the second position mentioned above.
[0075] In this embodiment, the movement direction of the mobile robot is determined based on the amount of corresponding point cloud data, which can improve the flexibility of mobile robot movement control and the accuracy of mobile robot repositioning.
[0076] The robot relocation method in this embodiment will be explained below with reference to an optional example. In this optional example, the mobile robot is an LDS robot, and the mobile robot is currently in an indoor environment (the relocation method in other environments is similar).
[0077] In related technologies, LDS robots perform point cloud-to-map matching and relocalization in-situ. The above method only obtains the solution with the highest score (i.e., the robot's position), and the score only considers the proportion of points in the point cloud that can be matched with the grid cells on the map. If all candidate solutions exceeding a certain threshold are taken, the in-situ filtering cannot be completed.
[0078] To address at least some of the aforementioned technical problems, this optional example provides a solution for improving the relocation performance of LDS robots in indoor environments, such as... Figure 3 As shown, the robot relocalization method in this optional example may include the following steps: In step S302, the LDS robot performs relocalization in place by matching the point cloud to the saved map, and retains all candidate solutions with scores exceeding the threshold, i.e., the robot's pose.
[0079] In step S304, the LDS robot briefly explores the new environment, during which it verifies the previously retained candidate solutions.
[0080] The above verification process can be as follows: When the LDS robot moves, it first obtains the odometry increment, uses the increment to combine with the candidate solution to obtain the prior of radar matching, and then uses the current point cloud to combine with the prior point cloud to obtain the updated candidate solution based on radar matching, that is, the increment based on radar matching. The two increments are compared. If the difference is not large, the verification passes; if the difference is large or the current radar matching fails, the verification fails.
[0081] Step S306: Relocation ends when candidate solutions have been filtered out during or after the exploration is completed.
[0082] This example improves the robot's relocation performance in indoor environments and reduces the likelihood of saved maps becoming invalid.
[0083] It should be noted that, for the sake of simplicity, the foregoing method embodiments are all described as a series of actions. However, those skilled in the art should understand that this application is not limited to the described order of actions, as some steps may be performed in other orders or simultaneously according to this application. Furthermore, those skilled in the art should also understand that the embodiments described in the specification are preferred embodiments, and the actions and modules involved are not necessarily essential to this application.
[0084] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods according to the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product is stored in a storage medium (such as ROM (Read-Only Memory) / RAM (Random Access Memory), magnetic disk, optical disk), and includes several instructions to cause a terminal device (which may be a mobile phone, computer, server, or network device, etc.) to execute the methods described in each embodiment of this application.
[0085] According to another aspect of the embodiments of this application, a robot relocation apparatus for implementing the above-described robot relocation method is also provided. Figure 4 This is a structural block diagram of an optional robot relocation device according to an embodiment of this application, such as... Figure 4 As shown, the device may include: Matching unit 402 is used to match the first point cloud data collected by the mobile robot at the first position with the target area map to obtain a set of candidate poses; The first acquisition unit 404 is connected to the matching unit 402 and is used to acquire the second point cloud data collected by the mobile robot at the location it has moved to. The update unit 406 is connected to the first acquisition unit 404 and is used to update a set of candidate poses using the target pose parameters to obtain a set of updated poses. The target pose parameters are used to represent the pose change that occurs when the mobile robot moves from the first position to the second position. The relocation unit 408, connected to the update unit 406, is used to relocate the mobile robot using the second point cloud data and a set of updated poses.
[0086] It should be noted that the matching unit 402 in this embodiment can be used to perform the above step S202, the first acquisition unit 404 in this embodiment can be used to perform the above step S204, the update unit 406 in this embodiment can be used to perform the above step S206, and the relocation unit 408 in this embodiment can be used to perform the above step S208.
[0087] Through the above modules, the first point cloud data collected by the mobile robot at the first position is matched with the target area map to obtain a set of candidate poses; the second point cloud data collected by the mobile robot when it moves to the second position is obtained; the set of candidate poses is updated using the target pose parameters to obtain a set of updated poses, where the target pose parameters represent the pose change that occurs when the mobile robot moves from the first position to the second position; the mobile robot is relocalized using the second point cloud data and the set of updated poses. This solves the problem of low accuracy in robot relocalization methods in related technologies due to the easy occurrence of mismatches, and improves the accuracy of robot relocalization.
[0088] In one exemplary embodiment, the above-described apparatus further includes: The second acquisition unit is used to acquire the target pose parameters of the mobile robot in the following manner: by acquiring the mileage increment generated when the mobile robot moves from the first position to the second position through the target odometer on the mobile robot, and obtaining the target mileage information, wherein the target pose parameters include the target mileage information.
[0089] In one exemplary embodiment, the relocation unit includes: The first determining module is used to determine the point cloud data in the target area map corresponding to each updated pose in a set of updated poses; The relocalization module relocalizes the mobile robot based on the matching degree between the point cloud data corresponding to each updated pose and the second point cloud data.
[0090] In one exemplary embodiment, the relocation module includes: The execution submodule is used to perform the following operations sequentially on each updated pose until the verification stop condition is met. During the operation, each updated pose is the current updated pose. The verification stop condition includes at least one of the following: the mobile robot has successfully relocalized, and all updated poses have been verified: If the matching degree between the point cloud data corresponding to the current updated pose and the second point cloud data is greater than or equal to the matching degree threshold, the current updated pose is determined to be verified. The pose repositioned by the mobile robot is the current updated pose. If the matching degree between the point cloud data corresponding to the current updated pose and the second point cloud data is less than the matching degree threshold, it is determined that the verification of the current updated pose has failed, wherein the pose repositioned by the mobile robot is not the current updated pose.
[0091] In one exemplary embodiment, the relocation module includes: The determination submodule is used to determine the updated pose that has the highest matching degree between the corresponding point cloud data and the second point cloud data in a set of updated poses, and that is greater than or equal to the matching degree threshold, as the pose that the mobile robot has relocalized.
[0092] In one exemplary embodiment, the matching unit includes: The second determining module is used to determine a set of grid cells to be matched from the target area map, wherein the target area map is a grid map, and each grid cell to be matched in the set of grid cells to be matched is a grid cell in the target area map that allows the mobile robot to enter. The matching module is used to perform point cloud matching between the first point cloud data and the point cloud data corresponding to each grid cell to be matched, so as to obtain a set of candidate poses.
[0093] In one exemplary embodiment, the above-described apparatus further includes: A determining unit is used to determine multiple candidate movement directions, wherein each of the multiple candidate movement directions is a movement direction allowed for the mobile robot in a first position; The selection unit is used to select the movement direction with the largest point cloud data volume from multiple candidate movement directions to obtain the target movement direction. The control unit is used to control the mobile robot to move along the target direction of movement until it reaches the second position.
[0094] It should be noted that the examples and application scenarios implemented by the above modules and corresponding steps are the same, but are not limited to the content disclosed in the above embodiments. It should also be noted that the above modules, as part of a device, can operate in environments such as... Figure 1 The hardware environment shown can be implemented through software or hardware, and the hardware environment includes the network environment.
[0095] According to another aspect of the embodiments of this application, a storage medium is also provided. Optionally, in this embodiment, the storage medium can be used to execute program code for any of the robot relocation methods described above in the embodiments of this application.
[0096] Optionally, in this embodiment, the storage medium may be located on at least one of the network devices in the network shown in the above embodiment.
[0097] Optionally, in this embodiment, the storage medium is configured to store program code for performing the following steps: S1, perform point cloud matching between the first point cloud data collected by the mobile robot at the first position and the target area map to obtain a set of candidate poses; S2, acquire the second point cloud data collected when the mobile robot moves to the second position, and acquire the target pose parameters of the mobile robot; S3, update a set of candidate poses using the target pose parameters to obtain a set of updated poses, wherein the target pose parameters are used to represent the pose change that occurs when the mobile robot moves from the first position to the second position; S4 uses the second point cloud data and a set of updated poses to relocalize the mobile robot.
[0098] Optionally, in this embodiment, the storage medium may include, but is not limited to, various media capable of storing program code, such as USB flash drives, ROMs, RAMs, portable hard drives, magnetic disks, or optical disks.
[0099] According to another aspect of the embodiments of this application, an electronic device for implementing the above-described robot relocation method is also provided. The electronic device may be a server, a terminal, or a combination thereof.
[0100] Figure 5 This is a structural block diagram of an optional electronic device according to an embodiment of this application, such as... Figure 5 As shown, it includes a processor 502, a communication interface 504, a memory 506, and a communication bus 508. The processor 502, communication interface 504, and memory 506 communicate with each other via the communication bus 508. Memory 506 is used to store computer programs; When processor 502 executes a computer program stored in memory 506, it performs the following steps: S1, perform point cloud matching between the first point cloud data collected by the mobile robot at the first position and the target area map to obtain a set of candidate poses; S2, acquire the second point cloud data collected by the mobile robot when it moves to the second position; S3, update a set of candidate poses using the target pose parameters to obtain a set of updated poses, wherein the target pose parameters are used to represent the pose change that occurs when the mobile robot moves from the first position to the second position; S4 uses the second point cloud data and a set of updated poses to relocalize the mobile robot.
[0101] Optionally, in this embodiment, the communication bus can be a PCI (Peripheral Component Interconnect) bus or an EISA (Extended Industry Standard Architecture) bus, etc. This communication bus can be divided into an address bus, a data bus, a control bus, etc. For ease of illustration, Figure 5 The symbol is represented by a single thick line, but this does not indicate that there is only one bus or one type of bus. The communication interface is used for communication between the aforementioned electronic device and other devices.
[0102] The aforementioned memory may include RAM, or non-volatile memory, such as at least one disk storage device. Optionally, the memory may also be at least one storage device located remotely from the aforementioned processor.
[0103] As an example, the memory 506 described above may include, but is not limited to, the matching unit 402, the first acquisition unit 404, the update unit 406, and the relocation unit 408 from the control device of the aforementioned device. Furthermore, it may include, but is not limited to, other module units from the control device of the aforementioned device, which will not be elaborated upon in this example.
[0104] The processor mentioned above can be a general-purpose processor, including but not limited to: CPU (Central Processing Unit), NP (Network Processor), etc.; it can also be DSP (Digital Signal Processor), ASIC (Application Specific Integrated Circuit), FPGA (Field-Programmable Gate Array) or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components.
[0105] Optionally, specific examples in this embodiment can refer to the examples described in the above embodiments, and will not be repeated here.
[0106] Those skilled in the art will understand that Figure 5 The structure shown is for illustrative purposes only. The device that implements the above robot relocation method can be a terminal device, such as a smartphone (e.g., Android phone, iOS phone), tablet computer, PDA, mobile Internet device (MID), PAD, etc. Figure 5 This does not limit the structure of the aforementioned electronic device. For example, the electronic device may also include components that are more... Figure 5 The more or fewer components shown (such as network interfaces, display devices, etc.), or having the same Figure 5 The different configurations shown.
[0107] Those skilled in the art will understand that all or part of the steps in the various methods of the above embodiments can be implemented by a program instructing the hardware related to the terminal device. The program can be stored in a computer-readable storage medium, which may include: flash drive, ROM, RAM, disk or optical disk, etc.
[0108] The sequence numbers of the embodiments in this application are for descriptive purposes only and do not represent the superiority or inferiority of the embodiments.
[0109] If the integrated units in the above embodiments are implemented as software functional units and sold or used as independent products, they can be stored in the aforementioned computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause one or more computer devices (which may be personal computers, servers, or network devices, etc.) to execute all or part of the steps of the methods described in each embodiment of this application.
[0110] In the above embodiments of this application, the description of each embodiment has its own emphasis. For parts not described in detail in a certain embodiment, please refer to the relevant descriptions of other embodiments.
[0111] In the several embodiments provided in this application, it should be understood that the disclosed client can be implemented in other ways. The device embodiments described above are merely illustrative; for example, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces, indirect coupling or communication connection between units or modules, and may be electrical or other forms.
[0112] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of the solution provided in this embodiment, depending on actual needs.
[0113] Furthermore, the functional units in each embodiment of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated units described above can be implemented in hardware or as software functional units.
[0114] The above description is only a preferred embodiment of this application. It should be noted that for those skilled in the art, several improvements and modifications can be made without departing from the principle of this application, and these improvements and modifications should also be considered within the scope of protection of this application.
Claims
1. A robot relocalization method, characterized in that, include: The first point cloud data collected by the mobile robot at the first position is matched with the point cloud of the target area map to obtain a set of candidate poses. Acquire the second point cloud data collected by the mobile robot as it moves to the second position; The set of candidate poses is updated using the target pose parameters to obtain a set of updated poses, wherein the target pose parameters are used to represent the pose change that occurs when the mobile robot moves from the first position to the second position; The mobile robot is relocalized using the second point cloud data and the set of updated poses; The step of relocalizing the mobile robot using the second point cloud data and the set of updated poses includes: The second point cloud data is matched with the target area map to obtain a set of reference poses; The mobile robot is relocalized based on the matching degree between the reference pose and the updated pose. The relocalization of the mobile robot based on the matching degree between the reference pose and the updated pose includes: Determine the minimum pose difference between each updated pose and the reference pose in the set of reference poses, and obtain the minimum pose difference corresponding to each updated pose; The updated pose that corresponds to the minimum pose difference and is less than or equal to the pose difference threshold is determined as the pose to which the mobile robot has been repositioned.
2. The method according to claim 1, characterized in that, The target pose parameters of the mobile robot are obtained in the following manner: The target mileage information is obtained by acquiring the mileage increment generated when the mobile robot moves from the first position to the second position using the target odometer on the mobile robot, wherein the target pose parameter includes the target mileage information.
3. The method according to claim 1, characterized in that, The step of relocalizing the mobile robot using the second point cloud data and the set of updated poses includes: Determine the point cloud data in the target area map corresponding to each updated pose in the set of updated poses; The mobile robot is repositioned based on the matching degree between the point cloud data corresponding to each updated pose and the second point cloud data.
4. The method according to claim 3, characterized in that, The step of relocalizing the mobile robot based on the matching degree between the point cloud data corresponding to each updated pose and the second point cloud data includes: The following operations are performed sequentially on each updated pose until the verification stop condition is met. During the operation, each updated pose is the current updated pose. The verification stop condition includes at least one of the following: the mobile robot has successfully repositioned, and all updated poses have been verified: If the matching degree between the point cloud data corresponding to the current updated pose and the second point cloud data is greater than or equal to the matching degree threshold, it is determined that the current updated pose has passed the verification, wherein the pose repositioned by the mobile robot is the current updated pose. If the matching degree between the point cloud data corresponding to the current updated pose and the second point cloud data is less than the matching degree threshold, it is determined that the verification of the current updated pose has failed, wherein the pose repositioned by the mobile robot is not the current updated pose.
5. The method according to claim 3, characterized in that, The step of relocalizing the mobile robot based on the matching degree between the point cloud data corresponding to each updated pose and the second point cloud data includes: The updated pose that has the highest matching degree between the corresponding point cloud data and the second point cloud data in the set of updated poses, and is greater than or equal to the matching degree threshold, is determined as the pose to which the mobile robot has been relocalized.
6. The method according to claim 1, characterized in that, The step involves matching the first point cloud data collected by the mobile robot at the first location with the target area map to obtain a set of candidate poses, including: A set of grid cells to be matched is determined from the target area map, wherein the target area map is a grid map, and each grid cell to be matched in the set of grid cells to be matched is a grid cell in the target area map that allows the mobile robot to enter; The first point cloud data is matched with the point cloud data corresponding to each grid cell to be matched to obtain the set of candidate poses.
7. The method according to claim 1, characterized in that, The step of relocalizing the mobile robot using the second point cloud data and the set of updated poses further includes: The second point cloud data is matched with the target area map to obtain a set of reference poses; After obtaining the set of reference poses, a filtering operation is performed on the set of updated poses based on the set of reference poses to determine the pose difference between the reference poses in the set of reference poses and the updated poses in the set of updated poses. Perform the following operations sequentially for each updated pose until the matching stop condition is met, causing the mobile robot to reposition itself; During the operation, each updated pose is the current updated pose, and the matching stopping condition includes at least one of the following: After the mobile robot has successfully repositioned and all updated poses have been matched, the pose difference between the current updated pose and each reference pose is determined sequentially. If there exists a reference pose whose pose difference from the current updated pose is less than or equal to a pose difference threshold, the current updated pose is determined as the pose to which the mobile robot has repositioned.
8. The method according to any one of claims 1 to 7, characterized in that, The method further includes: Multiple candidate movement directions are determined, wherein each of the multiple candidate movement directions is a movement direction allowed for the mobile robot at the first position; The target movement direction is obtained by selecting the movement direction with the largest point cloud data volume from the multiple candidate movement directions. Control the mobile robot to move along the target movement direction until it reaches the second position.
9. A robot repositioning device, characterized in that, include: The matching unit is used to perform point cloud matching between the first point cloud data collected by the mobile robot at the first position and the target area map to obtain a set of candidate poses; The first acquisition unit is used to acquire the second point cloud data collected by the mobile robot when it moves to the second position; An update unit is used to update the set of candidate poses using target pose parameters to obtain a set of updated poses, wherein the target pose parameters are used to represent the pose change that occurs when the mobile robot moves from the first position to the second position. A relocalization unit is used to relocalize the mobile robot using the second point cloud data and the set of updated poses; The step of relocalizing the mobile robot using the second point cloud data and the set of updated poses includes: The second point cloud data is matched with the target area map to obtain a set of reference poses; The mobile robot is relocalized based on the matching degree between the reference pose and the updated pose. The relocalization of the mobile robot based on the matching degree between the reference pose and the updated pose includes: Determine the minimum pose difference between each updated pose and the reference pose in the set of reference poses, and obtain the minimum pose difference corresponding to each updated pose; The updated pose that corresponds to the minimum pose difference and is less than or equal to the pose difference threshold is determined as the pose to which the mobile robot has been repositioned.
10. A computer-readable storage medium, characterized in that, The computer-readable storage medium includes a stored program, wherein the program, when executed, performs the method of any one of claims 1 to 8.
11. An electronic device comprising a memory and a processor, characterized in that, The memory stores a computer program, and the processor is configured to execute the method of any one of claims 1 to 8 through the computer program.