Code loss self-recovery method of robot, robot and warehousing system

By identifying target markers and determining the position information of the robot, the system stagnation caused by the robot code loss incident in the storage system is solved, and the robot's independent recovery is achieved, which improves system efficiency and security.

CN119576022APending Publication Date: 2025-03-07BEIJING GEEKPLUS TECH CO LTD
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202410903256.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-07-05
Publication Date
2025-03-07

AI Technical Summary

Technical Problem

In warehousing systems, robot code loss incidents often cause system stagnation, and existing solutions rely on manual intervention, pose safety hazards and affect system efficiency.

Method used

By identifying the target markers around the robot, determining the position information of the robot in the global map, and re-finding the target identification code based on this information, thereby realizing the robot's autonomous recovery.

Benefits of technology

The robot can recover independently after the code loss incident, avoiding the safety hazards and system efficiency reduction caused by manual intervention.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119576022A_ABST
    Figure CN119576022A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of warehouse logistics, and discloses a robot code loss self-recovery method, a robot and a warehousing system. The method comprises the steps of identifying at least one target marker within a first preset range around the robot under the condition that a code losing event occurs in the robot, and obtaining a relative position relationship between each target marker and the robot; based on the relative position relationship between each target marker and the robot, determining first position information of the robot in the global map; determining second position information of the target identification code in a global map based on the first position information; and based on the first position information and the second position information, the robot moves to the target identification code and identifies the target identification code. According to the method, after the robot has the code loss event, the position of the robot can be positioned based on the markers around the robot and the global map, and the identification code is searched again, so that the robot identifies the identification code and returns to a normal working state.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of warehousing and logistics technology, and in particular to a robot's code-lost self-recovery method, a robot, and a warehousing system. Background Art

[0002] In the warehouse system, the robot can identify the identification code (such as QR code) pasted in the ground cell to determine its position in the warehouse system. If the robot's driving direction deviates during movement, the robot's driving speed is too fast when passing through a cell, or the QR code in the cell is dirty or damaged, the robot will not be able to recognize the QR code and the robot will lose the code.

[0003] When a robot loses a code, staff can usually enter the site to handle the robot that has lost the code. However, manual intervention will not only affect the normal operation of other robots in the storage system, but may also cause safety accidents to staff. Moreover, if the robot loses the code but is not handled in time, it will affect the work efficiency of the storage system and may even cause the work of the storage system to stagnate. Summary of the invention

[0004] In order to solve the above problems, the embodiment of the present application provides a robot code loss self-recovery method. In the event of a code loss event, the robot can locate its position by itself and recover from the code loss event. Specifically, the embodiment of the present application discloses the following technical solutions:

[0005] A first aspect of an embodiment of the present application provides a robot's code loss self-recovery method, which is applied to the robot, and the method includes: in the event of a code loss event in the robot, identifying at least one target marker within a first preset range around the robot, and obtaining the relative position relationship between each of the at least one target marker and the robot; based on the relative position relationship between each of the target markers and the robot, determining the first position information of the robot in the global map; based on the first position information, determining the second position information of the target identification code in the global map; based on the first position information and the second position information, the robot moves to the target identification code and identifies the target identification code.

[0006] In some embodiments, the above-mentioned determining the first position information of the robot in the above-mentioned global map based on the relative position relationship between each of the above-mentioned target markers and the above-mentioned robot includes: determining the first estimated position information of the above-mentioned robot, and determining the second estimated position information of each of the above-mentioned target markers based on the above-mentioned first estimated position information and the relative position relationship between each of the above-mentioned target markers and the above-mentioned robot; determining at least one first target offset based on the second estimated position information of each of the above-mentioned target markers and the third position information of each of the multiple markers to be matched; determining each first position information of the above-mentioned robot in the above-mentioned global map based on each of the above-mentioned first target offsets and the first estimated position information of the above-mentioned robot.

[0007] In some embodiments, the above-mentioned determination of the first estimated position information of the above-mentioned robot includes: obtaining the fourth position information of the identification code last acquired by the above-mentioned robot before the above-mentioned code loss event occurs, and the driving information of the above-mentioned robot; wherein the above-mentioned driving information includes the driving direction and the driving distance; based on the above-mentioned fourth position information and the above-mentioned driving information, the above-mentioned first estimated position information is determined.

[0008] In some embodiments, the determining of at least one first target offset based on the second estimated position information of each of the target markers and the third position information of each of the markers to be matched among the multiple markers to be matched comprises: in the case where there are multiple target markers, determining a first candidate offset between a first marker among each of the target markers and a first matching marker among each of the markers to be matched based on the second estimated position information of each of the target markers and the third position information of each of the markers to be matched; wherein the first marker is any target marker among the multiple target markers, and the first matching marker is any marker to be matched among the multiple markers to be matched; determining the corrected position information of each of the second markers based on the first candidate offset and the second estimated position information of at least one second marker; wherein the at least one second marker includes target markers other than the first marker among the multiple target markers; determining the at least one first target offset based on the corrected position information of each of the second markers and the third position information of at least one second matching marker; wherein the at least one second matching marker includes markers to be matched among the multiple markers to be matched except the first matching marker.

[0009] In some embodiments, the above-mentioned determining the at least one first target offset based on the corrected position information of each of the above-mentioned second markers and the third position information of at least one second matching marker includes: determining the number of matches of the third position information that matches the corrected position information of each of the above-mentioned second markers based on the corrected position information of each of the above-mentioned second markers and the third position information of the above-mentioned at least one second matching marker; if the above-mentioned matching number is greater than or equal to the number threshold, determining the above-mentioned first candidate offset as the above-mentioned first target offset; if the above-mentioned matching number is less than the above-mentioned number threshold, traversing the to-be-matched markers among the above-mentioned multiple to-be-matched markers except the above-mentioned first matching marker in turn until the above-mentioned at least one first target offset is determined.

[0010] In some embodiments, at least one first target offset is determined based on the second estimated position information of each of the target markers and the third position information of each of the multiple markers to be matched, including: when the number of the target marker is one, the first target offset between the target marker and each of the markers to be matched is determined based on the second estimated position information of the target marker and the third position information of each of the markers to be matched.

[0011] In some embodiments, based on the first position information and the second position information, the robot moves to the target identification code and identifies the target identification code, including: determining a second candidate offset between each first position information and the corresponding second position information based on each first position information and the second position information corresponding to each first position information; determining a second target offset from the second candidate offsets according to the number of the second candidate offsets; moving to the corresponding target identification code based on the second target offset, and identifying the target identification code.

[0012] In some embodiments, the second target offset is determined from the second candidate offsets based on the number of the second candidate offsets, including: when the number of the second candidate offsets is one, determining the second candidate offset as the second target offset; when the number of the second candidate offsets is multiple, determining the second candidate offset with the largest number of the same offset among the multiple second candidate offsets as the second target offset.

[0013] In some embodiments, the above-mentioned multiple markers to be matched are markers to be matched in the above-mentioned global map, or, the above-mentioned multiple markers to be matched are markers to be matched in the regional map; wherein, the above-mentioned regional map is determined based on the fourth position information of the identification code last acquired by the above-mentioned robot before the above-mentioned code loss event occurs.

[0014] In some embodiments, the second position information of the target identification code is determined in the global map based on the first position information, including: determining at least one candidate identification code closest to the robot in the global map based on the first position information; determining the target identification code based on the at least one candidate identification code, and determining the position of the target identification code in the global map as the second position information.

[0015] In some embodiments, the above-mentioned determination of the target identification code based on the above-mentioned at least one candidate identification code includes: determining any identification code among the above-mentioned at least one candidate identification code as the above-mentioned target identification code; or, determining the offset angle between each of the above-mentioned candidate identification codes among the above-mentioned at least one candidate identification code and the above-mentioned robot, and determining the candidate identification code with the smallest offset angle with the above-mentioned robot as the above-mentioned target identification code.

[0016] In some embodiments, before the robot moves to the target identification code based on the first position information and the second position information, the method further includes: the robot sends a locking request to the control device; wherein the locking request is used to request the control device to lock at least one target cell so that other robots cannot move in the locked at least one target cell; wherein the at least one target cell includes a cell corresponding to the target identification code, and / or the robot moves to a cell on a moving path corresponding to the target identification code.

[0017] In some embodiments, the method further includes: if the robot recognizes the target identification code, determining a first offset between the target identification code and the robot, and adjusting the posture of the robot based on the first offset so that the first offset after the posture adjustment is less than or equal to a preset threshold.

[0018] In some embodiments, the method further includes: when the robot recognizes the target identification code, the robot sends an unlock request to the control device; wherein the unlock request is used to request the control device to unlock at least one target cell that is in a locked state so that other robots can move in the at least one target cell.

[0019] In some embodiments, the method further includes: if the robot fails to recognize the target identification code, the robot moves within a second preset range around the robot and re-recognizes the target identification code during the movement; if the robot re-recognizes the target identification code during the movement, the second offset between the target identification code and the robot is determined, and the posture of the robot is adjusted based on the second offset so that the second offset after the posture adjustment is less than or equal to a preset threshold.

[0020] In some embodiments, the method further includes: acquiring status information of the robot; if an abnormal event is determined to have occurred based on the status information of the robot, determining whether the abnormal event is the code loss event.

[0021] In some embodiments, the above method also includes: if it is determined that the above abnormal event is an unrecoverable event or the above code loss event, then reporting fault information to the control device; wherein the above fault information includes the type of fault event; in the case where the above fault event type is the above code loss event, if the above robot moves to the above target identification code and recognizes the above target identification code, then sending fault resolution information to the above control device so that the above control device clears the fault information corresponding to the above code loss event.

[0022] In some embodiments, in the event that a code loss event occurs in the robot, identifying at least one target marker within a first preset range around the robot includes: in the event that a code loss event occurs in the robot, sending a self-recovery request to a control device; and in the event that the control device allows the robot to self-recover, identifying the at least one target marker within the first preset range.

[0023] A second aspect of an embodiment of the present application provides a robot's code loss self-recovery method, which is applied to a control device, and the method includes: in the event of a code loss event in the robot, obtaining fault information reported by the above-mentioned robot; before the above-mentioned robot moves to the above-mentioned target identification code based on the first position information of the above-mentioned robot and the second position information of the above-mentioned target identification code, obtaining a locking request sent by the above-mentioned robot; wherein the above-mentioned second position information is determined based on the above-mentioned first position information of the above-mentioned robot in the global map, and the above-mentioned first position information is determined based on the relative position relationship between the above-mentioned robot and at least one target marker within a first preset range around the above-mentioned robot; based on the above-mentioned locking request, locking at least one target cell so that other robots cannot move in the above-mentioned at least one locked target cell; wherein the above-mentioned at least one target cell includes a cell corresponding to the above-mentioned target identification code, and / or the above-mentioned robot moves to a cell on the moving path corresponding to the above-mentioned target identification code.

[0024] In some embodiments, the method further includes: when the robot recognizes the target identification code, obtaining an unlock request sent by the robot; based on the unlock request, unlocking at least one target cell that is in a locked state, so that other robots can move in the at least one target cell.

[0025] In some embodiments, the method further includes: if no new fault information reported by the robot is received within a preset time period, determining that the robot has recognized the target identification code; unlocking the at least one target cell that is in a locked state so that other robots can move in the at least one target cell.

[0026] A second aspect of an embodiment of the present application provides a robot, comprising: an identification module, configured to, in the event of a code loss event in the robot, identify at least one target marker within a first preset range around the robot, and obtain a relative position relationship between each of the at least one target marker and the robot; a determination module, configured to determine a first position information of the robot in the global map based on the relative position relationship between each of the target markers and the robot; and, based on the first position information, determine a second position information of a target identification code in the global map; and a moving module, configured to move the robot to the target identification code based on the first position information and the second position information, and identify the target identification code.

[0027] A third aspect of an embodiment of the present application provides a warehousing system, which includes: a robot, configured to send a self-recovery request to a control device in the event that the robot loses a code; when the control device allows the robot to self-recover, identify at least one target marker within a first preset range around the robot, and obtain the relative position relationship between each of the at least one target marker and the robot; based on the relative position relationship between each of the target markers and the robot, determine the first position information of the robot in the global map; based on the first position information, determine the second position information of the target identification code in the global map; based on the first position information and the second position information, the robot moves to the target identification code and identifies the target identification code; the control device is configured to obtain the self-recovery request sent by the robot, and send a notification of allowing self-recovery to the robot.

[0028] The fourth aspect of an embodiment of the present application provides an electronic device, comprising: a processor and a memory, the memory being used to store computer executable instructions; the processor being used to read the instructions from the memory and execute the instructions to implement the robot's lost code self-recovery method as described in the first aspect above.

[0029] A fifth aspect of an embodiment of the present application provides a computer-readable storage medium, wherein the storage medium stores computer program instructions. When a computer reads the instructions, the robot's code loss self-recovery method described in the first aspect is executed.

[0030] A sixth aspect of an embodiment of the present application provides a computer program product, which includes a computer program stored on a non-transitory computer-readable storage medium, and the computer program includes program instructions. When the program instructions are executed by a computer, the computer executes the robot's lost code self-recovery method described in the first aspect above.

[0031] In the robot's code loss self-recovery method provided in the embodiment of the present application, in the case of a code loss event of the robot, the robot can identify at least one target marker within the first preset range around it, and obtain the relative position relationship between at least one target marker and the robot. Moreover, it can determine the first position information of the robot in the global map based on the relative position relationship between at least one target marker and the robot, and determine the second position information of the target identification code in the global map based on the first position information. And, based on the first position information and the second position information, move to the target identification code and identify the target identification code. Applying the technical solution of the present application, after a code loss event occurs, the robot can determine the first position information of the robot in the global map based on the markers and the global map around it, and can re-search the target identification code based on the first position information, thereby identifying the target identification code and restoring the normal state by itself, avoiding the safety problems caused by relying on manual processing of code loss events and the problems affecting the working efficiency of the storage system. BRIEF DESCRIPTION OF THE DRAWINGS

[0032] In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the drawings required for use in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.

[0033] Figure 1 A schematic diagram of a storage system provided for some embodiments of the present application;

[0034] Figure 2A flowchart of a robot's code loss self-recovery method provided in some embodiments of the present application;

[0035] Figure 3 A schematic diagram of the structure of a robot provided in some embodiments of the present application;

[0036] Figure 4 A scene diagram of a robot's code loss self-recovery method provided in some embodiments of the present application;

[0037] Figure 5 A flowchart of another robot's code loss self-recovery method provided in some embodiments of the present application;

[0038] Figure 6 A flowchart of another robot's code loss self-recovery method provided in some embodiments of the present application;

[0039] Figure 7 A flowchart of another robot's code loss self-recovery method provided in some embodiments of the present application;

[0040] Fig. 8A A schematic diagram of adjusting the posture of a robot provided in some embodiments of the present application;

[0041] Figure 8B A schematic diagram of another method for adjusting the posture of a robot provided in some embodiments of the present application;

[0042] Fig. 9 A schematic diagram of a robot re-identifying a target identification code provided in some embodiments of the present application;

[0043] Fig.10 A flowchart of another robot's code loss self-recovery method provided in some embodiments of the present application;

[0044] Fig.11 An interaction diagram between a robot and a control device provided in some embodiments of the present application;

[0045] Fig.12 A schematic diagram of the structure of another robot provided in some embodiments of the present application;

[0046] Fig.13 A schematic diagram of another storage system provided for some embodiments of the present application;

[0047] Fig.14 A schematic diagram of an electronic device according to some embodiments of the present application. DETAILED DESCRIPTION

[0048] In order to enable those skilled in the art to better understand the technical solutions in the embodiments of the present invention and to make the above-mentioned purposes, features and advantages of the embodiments of the present invention more obvious and understandable, the technical solutions in the embodiments of the present invention are further described in detail below with reference to the accompanying drawings.

[0049] Figure 1 A schematic diagram of a warehousing system provided for some embodiments of the present application.

[0050] In some embodiments, Figure 1 As shown, the storage system 100 includes a plurality of robots 110 and a control device 120. It should be noted that: Figure 1 Shown is a top view of a portion of the storage system.

[0051] In some examples, the robot 110 can move in the storage system 100. The robot 110 can be a handling robot, a picking robot, a cargo box robot, etc. The type of the robot 110 is not limited in the embodiments of the present application.

[0052] In some examples, the robot 110 can communicate with the control device 120 through a network. The control device 120 may include a server or a terminal. The terminal may include at least one of a personal computer, a laptop, a smart phone, a tablet computer, and a portable wearable device; the server may include an independent server or a server cluster composed of multiple servers. For example, the control device 120 may be a robot management system (RMS), and the type of the control device 120 is not limited in this embodiment.

[0053] In some embodiments, the warehousing system 100 further includes a plurality of carriers 11, and the plurality of carriers 11 can be placed in a preset arrangement. For example, the plurality of carriers 11 can be arranged in a single column and multiple rows. The passage formed between two adjacent carriers 11 can be referred to as an alley. Exemplarily, if the type of the robot 110 is a transport robot, the transport robot 110 is used to transport goods, containers (such as cargo boxes) or carriers (such as shelves), and the transport robot 110 can move between the inventory area and the workstation, can move in the alley, and can also move at the bottom of the carrier 11. If the type of the robot 110 is a cargo box robot, the cargo box robot 110 can move in the alley.

[0054] In some embodiments, the floor of the storage system 100 may be divided into a plurality of cells, and a corresponding identification code 130 may be set in each cell. The identification code 130 may be a QR code, a bar code, etc., and the form of the identification code 130 is not limited in the embodiment of the present application. The identification code 130 may store the location information of the cell in the storage system. For example, the location information stored in the identification code 130 may be: the cell corresponding to the identification code is the cell in the 10th row and the 20th column in the storage system 100.

[0055] In some embodiments, the robot 110 can identify the identification code 130, and determine the location information of the robot 110 in the storage system 100 according to the location information identified from the identification code 130. Exemplarily, when the robot 110 moves to the identification code 130, it can identify the identification code 130 and obtain the location information corresponding to the identification code 130, so that the location information of the robot 130 in the storage system 100 can be determined according to the location information.

[0056] Furthermore, the robot 130 may report its location information in the warehousing system 100 to the control device 120 , so that the control device 120 may manage the robot 110 according to the location information of the robot 110 .

[0057] In some embodiments, if the robot 110 deviates in its driving direction while driving in the warehouse system 100, or drives too fast when passing through a cell, or the identification code 130 in the cell becomes dirty or damaged, or other situations occur that cause the robot 110 to be unable to recognize the identification code 130, then it is determined that the robot 110 has lost the code.

[0058] In the event of a code loss event, the robot 110 can send a self-recovery request to the control device 120; and when the control device 120 allows the robot 110 to self-recover, the robot 110 can identify the target marker within the first preset range around it, and obtain the relative position relationship between the target marker and the robot 110. Among them, the target marker can be a marker that can be recognized by the robot, such as the carrier leg of the carrier 11 (i.e., the shelf leg), the identification code on the crossbeam of the carrier 11 (i.e., the identification code on the shelf crossbeam), etc., and the embodiment of the present application does not limit the type of the target marker. Then, the robot 110 can determine the first position information of the robot 110 in the global map based on the relative position relationship between the robot and the target marker, thereby realizing the relocation of the robot. After the robot is relocated, the second position information of the target identification code can be determined in the global map based on the first position information. Afterwards, the robot 110 can move to the target identification code based on the first position information and the second position information, and identify the target identification code, so that when a code loss event occurs, the robot can autonomously recover from the code loss event.

[0059] The following is a detailed description of the robot's code loss self-recovery method provided by the present application in conjunction with the accompanying drawings.

[0060] Figure 2 A flowchart of a robot's code loss self-recovery method provided in some embodiments of the present application. Figure 2 The robot's code loss self-recovery method shown can be implemented by the robot 110 in the storage system 100 of the above embodiment. Figure 2 As shown, the robot's code loss self-recovery method may include steps 210 to 240.

[0061] Step 210, when a code loss event occurs in the robot, at least one target marker within a first preset range around the robot is identified, and a relative position relationship between the at least one target marker and the robot is obtained.

[0062] refer to Figure 3 The schematic diagram of the structure of a robot is shown in FIG. Figure 3 As shown, the robot may be equipped with an identification code camera 101, an event monitoring module 102, a laser radar 103, a data collection module 104, a code search module 105, a storage module 106, and a control module 107. The storage module 106 may be a memory; the control module 107 may be a microcontroller unit (MCU).

[0063] In some embodiments, when the robot is traveling in a warehousing system, the identification code in the ground cell can be identified by the identification code camera 101 to determine the position information of the robot in the warehousing system based on the position information stored in the identified identification code.

[0064] In some embodiments, the event monitoring module 102 can obtain the status information of the robot in real time to determine whether an abnormal event occurs to the robot. The abnormal event may include a code loss event, a device failure event, a communication abnormality event, etc. For example, if the robot is traveling in the storage system, the driving direction is offset, or the driving speed is too fast when passing through a cell, or the identification code in the cell is dirty or damaged, etc., and the identification code cannot be recognized, then it is determined that the robot has a code loss event.

[0065] In some embodiments, when an abnormal event occurs in the robot, if the abnormal event is an unrecoverable event (i.e., an event that the robot cannot recover by itself), the event monitoring module 102 may report fault information to the control device (such as the robot management system RMS) at a certain period and wait for processing. The fault information may include the type of fault event, for example, the type of fault event is a device fault event.

[0066] In some embodiments, when an abnormal event occurs in the robot, if the abnormal event is a code loss event, the event monitoring module 102 may send a self-recovery request to the control device. After receiving the self-recovery request sent by the robot, the control device may issue a self-recovery permission to the robot, or send a self-recovery permission notification to the robot (i.e., allow the robot to perform self-recovery). When the control device allows the robot to self-recover, the robot begins to execute the self-recovery process.

[0067] In some embodiments, if the event monitoring module 102 fails to apply for self-recovery from the control device (for example, the network communication between the robot and the control device may be poor, or the control device does not allow the robot to perform self-recovery, etc.), the event monitoring module 102 may report fault information to the control device at a certain period and wait for processing. The fault information includes the fault event type, for example, the fault event type is a code loss event.

[0068] In some embodiments, if the robot is in an immovable state (for example, if the robot is in a loaded state or a lifting state, the cargo box or shelf carried by the robot may collide with other robots or obstacles when the robot moves), the event monitoring module 102 can report fault information to the control device according to a certain period and wait for processing. The fault information includes the fault event type, for example, the fault event type is a code loss event.

[0069] In some embodiments, when the robot performs the self-recovery process, it can first detect the environment within a first preset range around the robot through the laser radar 103, and obtain corresponding laser radar data (for example: full waveform data, photon counting data, discrete point cloud data, etc.). The first preset range can be the maximum range that the laser radar 103 can detect.

[0070] In some embodiments, some objects in the storage system can be used as markers to assist the robot in positioning, such as identification codes on shelf legs and shelf beams, etc. The type of markers is not limited in the embodiments of the present application. Thus, in the event of a robot losing a code, the robot can determine the robot's position information in the storage system based on the position information of these markers.

[0071] In the event of a code loss event in the robot, the robot can detect the environment within the first preset range around the robot through the laser radar 103 and obtain laser radar data, which includes laser points corresponding to one or more objects and the relative position relationship between the laser points corresponding to each object and the robot. Among them, the objects in the laser radar data include markers and / or non-marker objects (for example, other robots, cargo boxes, etc.); the relative position relationship between the laser points corresponding to each object and the robot may include: the distance between the laser points corresponding to each object and the robot, and the angle between the laser points corresponding to each object and the robot, etc.

[0072] In some examples, when a robot loses a code, a laser radar may be used to identify one or more target markers around the robot. The embodiments of the present application do not limit the number of target markers that can be identified, and the number of target markers is related to parameters such as the position and angle of the robot when it loses the code and the layout of the warehouse system.

[0073] After the laser radar 103 acquires the laser radar data, the data collection module 104 sends the laser radar data to the code search module 105. Since the laser points of the markers are more numerous and more concentrated than the laser points of non-markers in the absence of obvious obstruction, the code search module 105 can parse the laser radar data based on the target detection algorithm of the laser points after receiving the laser radar data, so as to determine the laser point corresponding to at least one target marker in the laser radar data, and the relative position relationship between the laser point corresponding to at least one target marker and the robot (i.e., the distance between the laser point corresponding to each target marker and the robot, and the angle between the laser point corresponding to each target marker and the robot).

[0074] refer to Figure 4 The scene diagram of a robot's code loss self-recovery method is shown in FIG. Figure 4 As shown, taking the case where the robot 110 loses the code after passing the identification code A as an example, when executing the self-recovery process, the robot 110 can first obtain the laser radar data within the first preset range around the robot 110 through the laser radar 103. Taking the target marker as the shelf leg 1 (leg1) as an example, the code finding module 105 can obtain multiple laser points corresponding to leg1 from the laser radar data based on the target detection algorithm of the laser point, as well as the relative position relationship between each of the multiple laser points and the robot 110. Further, the code finding module 105 can determine the center point a of leg1 based on the multiple laser points corresponding to leg1, and determine the relative position relationship between the center point a and the robot 110 based on the relative position relationship between each laser point and the robot 110 (such as the distance between the center point a of leg1 and the robot 110, and the angle relationship between the center point a of leg1 and the robot 110, etc.).

[0075] In some embodiments, if the laser radar 103 does not detect a marker within the first preset range around the robot (such as the marker is blocked, or there is no marker within the first preset range, etc.), or cannot calculate the relative position relationship between the target marker and the robot, the event monitoring module 102 can report fault information to the control device according to a certain period and wait for processing. The fault information includes the fault event type, for example, the fault event type is a code loss event.

[0076] Step 220: Determine the first position information of the robot in the global map based on the relative position relationship between each target marker and the robot.

[0077] In some embodiments, a global map corresponding to the warehousing system can be pre-configured in the storage module 106 of the robot. The global map may include location information of multiple markers to be matched in the warehousing system, location information of multiple identification codes, and status information of cells corresponding to each identification code.

[0078] Figure 5 A flowchart of another robot's code loss self-recovery method provided in some embodiments of the present application. Figure 5 As shown, the above step 220 may include steps 510 to 520.

[0079] Step 510, determining the first estimated position information of the robot, and determining the second estimated position information of each target marker based on the first estimated position information and the relative position relationship between each target marker and the robot.

[0080] In some embodiments, the above-mentioned determination of the first estimated position information of the robot includes: obtaining the fourth position information of the identification code last acquired by the robot before the code loss event occurs, and the driving information of the robot; based on the fourth position information and the driving information, determining the first estimated position information.

[0081] Exemplarily, after determining the relative position relationship between the target marker and the robot, the code-seeking module 105 can first obtain from the data collection module 104 the identification code recognition result corresponding to the identification code last recognized by the robot before the code loss event occurs (i.e., obtain the fourth position information of the identification code last recognized) and the robot's driving information.

[0082] The driving information of the robot may at least include the driving direction and driving distance after the robot recognized the identification code for the last time before the robot lost the code. The driving direction of the robot can be obtained by a detection device such as a gyroscope in the robot, and the driving distance of the robot can be obtained by an odometer in the robot. The method of obtaining the driving information of the robot is not limited in the embodiments of the present application.

[0083] Exemplarily, the code-finding module 105 can determine the first estimated position information of the robot based on the fourth position information and the driving information. It is understandable that since the driving information obtained by the robot through devices such as an odometer and a gyroscope may not be accurate enough, the first estimated position information may not be the actual position information of the robot. Therefore, it is necessary to further calibrate the first estimated position information of the robot to obtain more accurate position information of the robot (i.e., the first position information).

[0084] like Figure 4 As shown, if the robot 110 loses the code after passing the identification code A, the code search module 105 can determine that the first estimated position information of the robot 110 is the position information corresponding to point O based on the fourth position information of the identification code A and the driving information of the robot 110.

[0085] In some embodiments, after determining the first estimated position information of the robot, the code search module 105 can determine the position information of each detected target marker (i.e., the second estimated position information) based on the first estimated position information and the relative position relationship between the above-mentioned target markers and the robot.

[0086] Step 520: Determine at least one first target offset based on the second estimated position information of each target marker and the third position information of each marker to be matched among the multiple markers to be matched.

[0087] Exemplarily, the number of target markers recognized by the robot may be one or more. When the robot recognizes multiple target markers, the second estimated positions of the multiple target markers can be matched with the third position information of each marker to be matched in the map to determine the most matching target offset, thereby achieving accurate positioning of the robot in the map. When the robot recognizes a target marker, the offset between the second estimated position of the target marker and the third position of each marker to be matched in the map can be determined to further determine which offset the robot uses to find the code. It should be noted that when the robot recognizes a target marker, there is no need to determine the exact position of the robot in the map. It only needs to travel according to the largest number of target offsets to find the target identification code.

[0088] The following describes the method for determining the first target offset in combination with different numbers of target markers.

[0089] In some embodiments, when there are multiple target markers, the above step 520 may include: determining a first candidate offset between a first marker in each target marker and a first matching marker in each marker to be matched based on the second estimated position information of each target marker and the third position information of each marker to be matched; determining a corrected position information of each second marker based on the first candidate offset and the second estimated position information of at least one second marker; and determining at least one first target offset based on the corrected position information of each second marker and the third position information of at least one second matching marker.

[0090] Exemplarily, the code-finding module 105 can obtain the global map corresponding to the storage system from the storage module 106, and the global map can store the actual location information (i.e., the third location information) of all the markers in the storage system. The code-finding module 105 can use all the markers in the global map as markers to be matched; or, the code-finding module 105 can also obtain the area map near the identification code in the global map based on the fourth location information of the identification code recognized last time, and use the markers in the area map as markers to be matched. Figure 4 As shown, taking the identification code A as the last identification code recognized by the robot before the code loss event occurs, the code search module 105 can obtain the corresponding area map in the global map based on the fourth position information of the identification code A.

[0091] It is understandable that since the distance between the position of the robot when the code loss event occurs and the position of the identification code it recognized last time is not too far, the markers to be matched in the regional map include the target markers recognized by the robot. In addition, since the regional map is smaller than the global map, when the markers in the regional map are used as markers to be matched, the time for determining the target offset can be shortened due to the small number of markers to be matched, thereby improving the efficiency of code loss self-recovery.

[0092] In some embodiments, when the robot recognizes multiple target markers, any of the recognized target markers can be matched with the markers to be matched in the map. For example, the code search module 105 can use any of the multiple target markers as the first marker, and use any of the multiple markers to be matched as the first matching marker, to determine the first candidate offset between the first marker and the first matching marker.

[0093] For example, the multiple target markers identified by the robot are Figure 4 For example, the shelf legs 1 (leg1), 2 (leg2), 3 (leg3) and 4 (leg4) in the shelf 11 are multiple markers to be matched, and the multiple markers to be matched are the shelf legs A (legA), B (legB), C (legC), D (legD), E (legE), F (legF), G (legG) and H (legH) in the shelf 11. If leg1 is determined as the first marker, the second estimated position information of leg1 is (x1, y1), and legA is determined as the first matching marker, the third position information of legA is (x A ,y A ), based on the second estimated position information (x1, y1) and the third position information (x A ,y A ) can determine the first candidate offset offset1 between leg1 and legA. The first candidate offset offset1 can include the offset between leg1 and legA on the horizontal axis, and the offset between leg1 and legA on the vertical axis. For example, the offset offset1.x between leg1 and legA on the horizontal axis can be: x A -x1, the offset on the ordinate offset1.y can be: y A -y1.

[0094] In some embodiments, after determining the above-mentioned first candidate offset, the code search module 105 can determine the corrected position information of each second marker based on the first candidate offset and the second estimated position information of at least one second marker. Among them, the at least one second marker includes target markers other than the first marker (such as leg1) among multiple target markers, such as leg2, leg3 and leg4. That is to say, after determining the first candidate offset, the position information of other markers among multiple target markers other than the first marker can be corrected based on the first candidate offset. The corrected position information of the second marker can be determined based on the sum of the first candidate offset offset1 and the second estimated position information. For example, taking the second estimated position information of leg2 as (x2, y2) as an example, the corrected position information of leg2 can be: (x2+offset1.x, y2+offset1.y).

[0095] In some embodiments, the above-mentioned determining at least one first target offset based on the corrected position information of each second marker and the third position information of at least one second matching marker includes: determining the number of matches of the third position information that matches the corrected position information of each second marker based on the corrected position information of each second marker and the third position information of at least one second matching marker; if the number of matches is greater than or equal to a number threshold, determining the first candidate offset as the first target offset; if the number of matches is less than the number threshold, traversing the multiple markers to be matched except the first matching marker in turn until at least one first target offset is determined.

[0096] Exemplarily, after determining the corrected position information of each of the above-mentioned second markers, the corrected position information of each of the second markers can be matched with the third position information of at least one second matching marker among the multiple markers to be matched, and the number of matches of the third position information that matches the corrected position information of each of the second markers can be determined. Wherein, at least one second matching marker includes markers to be matched other than the first matching marker (such as legA) among the multiple markers to be matched, such as legB, legC, ...legH. Wherein, the quantity threshold can be determined according to the product of the total number of second markers and a preset ratio. For example, if the preset ratio is 2 / 3, then when the total number of second markers is 3, the quantity threshold is 2.

[0097] If the number of matches of the third position information that matches the corrected position information of each second marker is large, it means that the first marker matches the first matching marker, and the first candidate offset can be directly determined as the target offset; if the number of matches of the third position information that matches the corrected position information of each second marker is small, it means that the first marker does not match the first matching marker, and the first marker can continue to be matched with the next marker to be matched until a marker to be matched that matches the first marker is found.

[0098] Taking the number threshold equal to 2 as an example, if the corrected position information of leg2 matches the third position information of legB, the corrected position information of leg3 matches the third position information of legC, and the corrected position information of leg4 does not match the third position information of legC, legD...legH, then the number of matches is equal to the number threshold, indicating that leg1 successfully matches legA, then the first candidate offset offset1 determined based on the second estimated position information of leg1 and the third position information of legA can be determined as the first target offset. If the corrected position information of leg2, leg3 and leg4 does not match the third position information of legA, legB,...legH, then continue to traverse the markers to be matched (such as legB, legC...legH) except legA, until the first candidate offset corresponding to the number of matches exceeding the number threshold is determined, and the first candidate offset is determined as the first target offset.

[0099] For example, when matching the first marker with multiple markers to be matched, it is possible to determine one marker to be matched that matches the first marker, or it is possible to determine multiple markers to be matched that match the first marker. When only one marker to be matched matches the first marker, there is only one first target offset. When multiple markers to be matched match the first marker, there may be multiple first target offsets.

[0100] In other embodiments, when the number of target markers is one, the above step 502 may include: determining a first target offset between the target marker and each marker to be matched based on the second estimated position information of the target marker and the third position information of each marker to be matched.

[0101] For example, when the number of target markers identified by the robot is one, the code finding module 105 can determine the first target offset between the target marker and each marker to be matched based on the second estimated position information of the target marker and the third position information of each marker to be matched. Figure 4As shown, if the target marker identified by the robot is shelf leg 1 (leg1), the code search module 105 can determine the first target offset between leg1 and legA, legB, legC...legH respectively based on the second estimated position information of leg1 and the third position information of each marker to be matched, legA, legB, legC...legH.

[0102] In some embodiments, if there is no third position information of a marker to be matched in the global map or the regional map that can match the second estimated position information of at least one target marker, it will be impossible to determine at least one first position information of the robot, and thus it will be impossible to determine the target identification code closest to the robot based on the first position information. Therefore, when the robot fails to determine at least one first position information, the event monitoring module 102 can report fault information to the control device at a certain period and wait for processing. The fault information includes the fault event type, for example, the fault event type is a code loss event.

[0103] Step 530: Determine each first position information of the robot in the global map based on each first target offset and the first estimated position information of the robot.

[0104] In some embodiments, when there are multiple target markers, if there are multiple situations in which each target marker successfully matches each marker to be matched, then the number of first target offsets is multiple; if there is only one situation in which each target marker successfully matches each marker to be matched, then the number of first target offsets is one. When there is one target marker and multiple markers to be matched, the number of first target offsets is multiple.

[0105] like Figure 4 As shown, when the target markers are leg1, leg2, leg3 and leg4, if leg1, leg2, leg3 and leg4 match legA, legB, legC and legD respectively, and also match legE, legF, legG and legH respectively, then the first target offsets are offset1 and offset2 respectively; if leg1, leg2, leg3 and leg4 only match legE, legF, legG and legH, then the first target offset is offset2. When the target marker is only leg1, the first target offsets between leg1 and legA, legB, legC...legH can be determined respectively.

[0106] In some embodiments, when the number of first target offsets is one, a first position information of the robot in the global map can be determined based on the first target offset and the first estimated position information of the robot; when the number of first target offsets is multiple, each first position information of the robot in the global map can be determined based on each first target offset and the first estimated position information of the robot. In other words, the first position information can be one or multiple, and this application does not limit this.

[0107] like Figure 4 As shown, when the number of first target offsets is one, taking the first target offset as offset2 as an example, based on the first target offset offset2 and the first estimated position information O of the robot 110, it can be determined that the first position information of the robot 110 is the position information corresponding to point O", thereby accurately locating the position information of the robot in the map.

[0108] In the case where there are multiple first target offsets, taking the first target offsets as offset1 and offset2 as an example, based on the first target offset offset1 and the first estimated position information O of the robot 110, it can be determined that the first position information of the robot 110 is the position information corresponding to point O'; based on the first target offset offset2 and the first estimated position information O of the robot 110, it can be determined that another first position information of the robot 110 is the position information corresponding to point O". That is, in the case where there are multiple first target offsets, although the position information of the robot in the map cannot be accurately located, the offset between each first position information of the robot and the second position information of the corresponding identification code can be combined to determine the offset with the largest number of the same offsets (such as the second target offset), and the identification code can be found by driving according to the offset.

[0109] Step 230: Determine second location information of the target identification code in the global map based on the first location information.

[0110] In some embodiments, after determining the at least one first position information of the robot, the code-seeking module 105 can further determine the second position information corresponding to the target identification code to which the robot can move next based on the at least one first position information, so that the robot can identify the target identification code and recover from the code loss event.

[0111] In some embodiments, when the number of first location information is one, the code search module 105 can determine the second location information of a target identification code corresponding to the first location information in the global map. When the number of first location information is multiple, the code search module 105 can determine the second location information of each target identification code corresponding to each first location information in the global map.

[0112] Figure 6 A flowchart of another robot's code loss self-recovery method provided in some embodiments of the present application. Figure 6 As shown, the above step 230 may include steps 610 to 620.

[0113] Step 610: Based on the first position information, determine at least one candidate identification code closest to the robot in the global map.

[0114] In some embodiments, the code finding module 105 can determine at least one candidate identification code closest to the robot in the global map or the regional map based on each first position information, wherein the distance between the identification code and the robot can be determined according to the position information of the identification code and the first position information of the robot.

[0115] like Figure 4 As shown, if the identification codes closest to the center point O' (determined according to the first position information of the robot) of the robot 110 are identification code C and identification code D (the distances O'C and O'D between identification code C and identification code D and the robot are both m), then identification code C and identification code D can be determined as candidate identification codes.

[0116] Step 620: determine a target identification code based on at least one candidate identification code, and determine a position of the target identification code in the global map as second position information.

[0117] In some embodiments, the code search module 105 can determine any identification code among at least one candidate identification code as the target identification code; or, the code search module 105 can determine the offset angle between each candidate identification code among at least one candidate identification code and the robot, and determine the candidate identification code with the smallest offset angle with the robot as the target identification code.

[0118] Exemplarily, the offset angle between the candidate identification code and the robot can be: the angle between the line between the center point of the candidate identification code and the center point of the robot and the direction of the robot's head. The center point of the candidate identification code can be determined based on the position information of the candidate identification code; the center point of the robot can be determined based on the first position information of the robot; the position information of the robot can be determined by the control module 107, and the data collection module 104 sends the position information of the robot to the code search module 105, so that the code search module 105 can determine the direction of the robot's head based on the position information of the robot.

[0119] It can be understood that when the robot moves to the target identification code that is closest to it and has the smallest offset angle with it, the angle required to rotate on the spot is the smallest and the moving distance is the shortest, that is, the movement cost required for the robot to move to the target identification code is the smallest.

[0120] like Figure 4 As shown, any one of the candidate identification codes C and the candidate identification code D can be determined as the target identification code; alternatively, the offset angles between the candidate identification code C and the candidate identification code D and the robot can be determined respectively. If the offset angle α between the candidate identification code C and the robot is smaller than the offset angle β between the candidate identification code D and the robot, the candidate identification code C can be determined as the target identification code.

[0121] It should be noted that the above method of determining the target identification code is only an example and is not limited in the embodiments of the present application. For example, the identification code along the robot head direction can also be directly determined as the target identification code, so that the robot does not need to turn and move after moving to the target identification code.

[0122] In some embodiments, if the state of the cell where the target identification code is located is a prohibited movement state (for example, a cargo box is placed in the cell), or the type of the robot does not match the type of the cell, that is, the robot cannot move in the cell (for example, if the cell is a cell at the bottom of the shelf, and the type of the robot is a cargo box robot, then the robot cannot move in the cell at the bottom of the shelf), then the code search module 105 can determine the target identification code from the candidate identification codes other than the target identification code. If all candidate identification codes cannot be used as target identification codes, the event monitoring module 102 can report fault information to the control device according to a certain period and wait for processing. Among them, the fault information includes the type of fault event, for example, the fault event type is a code loss event.

[0123] Step 240: Based on the first position information and the second position information, the robot moves to the target identification code and identifies the target identification code.

[0124] In some embodiments, after the code searching module 105 determines the second position information corresponding to each target identification code corresponding to each first position information, the control module 107 can control the robot to move to the target identification code based on each first position information and the second position information corresponding to each target identification code, so that the robot can identify the target identification code through the identification code camera 101 and recover from the code loss event.

[0125] Exemplarily, the above-mentioned step 240 may include: determining a second candidate offset between each first position information and the corresponding second position information based on each first position information and the second position information corresponding to each first position information; determining a second target offset in the second candidate offsets according to the number of second candidate offsets; moving to the corresponding target identification code based on the second target offset, and identifying the target identification code.

[0126] In some examples, the number of the second candidate offsets may be one or more. The determining the second target offset from the second candidate offsets according to the number of the second candidate offsets includes: if the number of the second candidate offsets is one, determining the second candidate offset as the second target offset; if the number of the second candidate offsets is more than one, determining the second candidate offset with the largest number of the same offsets among the multiple second candidate offsets as the second target offset.

[0127] In some examples, the code finding module 105 can determine each second candidate offset between each first position information and each second position information based on each first position information of the robot and the second position information of each target identification code corresponding to each first position information, wherein the second candidate offset includes the distance and angle relationship between the target identification code and the robot.

[0128] Exemplarily, when the number of first position information is one, the number of determined target identification codes is also one, then the code search module 105 can determine a second candidate offset based on the first position information of the robot and the second position information of the target identification code, and determine the second candidate offset as the second target offset and send it to the event monitoring module 102. After receiving the second target offset, the event monitoring module 102 can send the second target offset to the control module 107. Thus, the control module 107 can control the robot to move to the target identification code based on the second target offset, so that the robot can identify the target identification code through the identification code camera 101.

[0129] like Figure 4As shown, taking the first position information of the robot 110 as the position information corresponding to point O', and the target identification code as identification code C as an example, the robot 110 can rotate clockwise by an angle β and move a distance m according to the second candidate offset between the target identification code C and the robot 110 (i.e., the second target offset), thereby moving to the target identification code C.

[0130] Through the above scheme, when the number of second candidate offsets between the first position information and the corresponding second position information is one, a first position information of the robot in the global map can be determined, so that the robot can be relocated. At this time, the second candidate offset is the second target offset. Then, based on the second target offset, the robot moves to the target identification code and identifies the target identification code to recover from the code loss event.

[0131] Exemplarily, in the case where there are multiple first position information, a target identification code can be determined according to each first position information, so the number of determined target identification codes is also multiple, so the code search module 105 can determine multiple second candidate offsets based on each first position information of the robot and the second position information of the corresponding target identification code. Then, among the multiple second candidate offsets, the second candidate offset with the largest number of the same offset is determined as the second target offset, so that the control module 107 can control the robot to move to the corresponding target identification code based on the second target offset, and identify the target identification code to recover from the code loss event. That is, in the case where there are multiple first target offsets, there is no need to accurately locate the position information of the robot in the map, and the second candidate offsets between each second position information of the robot and the corresponding identification code can be combined to determine the second candidate offset with the largest number of the same offset, and the identification code can be found by driving according to the offset.

[0132] like Figure 4As shown, it is taken that the first position information of the robot 110 is the position information corresponding to the point O', point O", and point O"', and the target identification codes corresponding to each of the first position information are target identification code C, target identification code B, and target identification code E. If the offset distance corresponding to the second candidate offset O'C between the target identification code C and the point O' is m, and the offset angle is β, the offset distance corresponding to the second candidate offset O"B between the target identification code B and the point O" is m, and the offset angle is β, and the offset distance corresponding to the second candidate offset O"'E between the target identification code E and the point O"' is n, and the offset angle is θ, then among the second candidate offset O'C, the second candidate offset O"B, and the second candidate offset O"'E, the second candidate offset with the largest number of the same offset is the second candidate offset with an offset distance of m and an offset angle of β, then the second candidate offset can be The offset O'C or the second candidate offset O"B is selected to be determined as the second target offset. Therefore, the control module 107 can control the robot to move to the target identification code based on the second target offset (the target identification code may be the target identification code B or the target identification code C). In this case, it does not matter whether the target identification code is the identification code B or the identification code C. The target identification code can be found as long as the robot travels according to the second target offset. After the robot travels according to the second target offset, the identification code camera 101 can identify the target identification code B or the target identification code C and recover from the code loss event.

[0133] Through the above scheme, when there are multiple second candidate offsets between the first position information and the corresponding second position information, the robot only needs to determine the second candidate offset with the largest number of the same offsets among the multiple second candidate offsets as the second target offset, and move to the target identification code based on the second target offset. In this way, when the actual position of the robot in the global map cannot be accurately located, the robot can also move to the target identification code according to the second target offset and recover from the code loss event.

[0134] In some embodiments, before the control module 107 controls the robot to move to the target identification code based on the second target offset, the event monitoring module 102 may send a lock request to the control device. The lock request is used to request the control device to lock at least one target cell. The at least one target cell may include a cell corresponding to the target identification code, and / or a cell on a moving path corresponding to the target identification code to which the robot moves.

[0135] In some examples, the robot may or may not pass through other cells when it moves to the target identification code. Therefore, if the robot does not need to pass through other cells when it moves to the target identification code, the at least one target cell that is locked includes the cell corresponding to the target identification code; if the robot passes through other cells when it moves to the target identification code, the at least one target cell that is locked includes the cell corresponding to the target identification code and other cells that the robot passes through when it moves to the target identification code.

[0136] Exemplarily, the event monitoring module 102 may send a locking request to the control device, and the locking request may include the first position information of the robot, the second position information of the target identification code, and the second target offset. Thus, after receiving the locking request, the control device may lock the cell corresponding to the target identification code according to the second position information of the target identification code; and the control device may determine the movement path of the robot to the target identification code, and whether there are other cells on the movement path (i.e., whether the robot needs to pass through other cells in the process of moving to the target identification code) according to the first position information of the robot, the second position information of the target identification code, and the second target offset; if there are other cells on the movement path, the control device may also lock the cells on the movement path.

[0137] When a robot successfully applies to lock a cell, other robots in the storage system cannot move or stay in at least one locked target cell, thereby preventing other robots from hindering the robot's self-recovery.

[0138] like Figure 4 As shown, taking the target identification code as the target identification code E as an example, the event monitoring module 102 can send a lock request to the control device so that the control device locks at least one target cell. Since the robot 110 does not need to pass through other cells when moving to the target identification code E, the control device can lock the target cell corresponding to the target identification code E, so that other robots in the storage system cannot move in the target cell.

[0139] In some embodiments, if the event monitoring module 102 fails to apply to the control device to lock at least one target cell (for example, the network communication between the robot and the control device may be poor, or the target cell has been occupied by other robots, etc.), the event monitoring module 102 can continue (for example, according to a certain period) to report fault information to the control device and wait for processing. The fault information includes the fault event type, for example, the fault event type is a code loss event.

[0140] Through the above scheme, after determining the second position information of the target identification code, the robot can first send a locking request to the control device to request the control device to lock at least one target cell, so that other robots in the storage system cannot move or stay in at least one locked target cell, thereby avoiding other robots from hindering the self-recovery of the robot.

[0141] Figure 7 A flowchart of another robot's code loss self-recovery method provided in some embodiments of the present application. Figure 7 As shown, the robot's code loss self-recovery method provided in the embodiment of the present application also includes steps 710 to 730.

[0142] Step 710: If the robot recognizes the target identification code, a first offset between the target identification code and the robot is determined, and the posture of the robot is adjusted based on the first offset so that the first offset after the posture adjustment is less than or equal to a preset threshold.

[0143] In some embodiments, after the robot moves to the target identification code according to the second target offset, the target identification code can be identified by the identification code camera 101. If the robot can identify the target identification code (that is, after the robot identifies the target identification code through the identification code camera 101, the second position information stored in the target identification code can be obtained), then the fault relief information and the unlock request can be sent to the control device. After the control device receives the fault relief information, the fault information corresponding to the code loss event can be cleared; after the control device receives the unlock request, at least one target cell that is already in a locked state can be unlocked based on the unlock request, so that other robots in the storage system can move in at least one target cell.

[0144] In some examples, the control device may also poll the robot at preset time intervals to see whether it has sent new fault information. The preset time can be determined based on the time it takes for the robot to recover. For example, if the estimated maximum time required for the robot to successfully recover is 10 seconds, the preset time can be set to 10 seconds. If the control device does not receive new fault information reported by the robot within the preset time, it is determined that the robot has identified the target identification code (i.e., the robot has successfully recovered from the code loss event). When the control device determines that the robot has successfully recovered from the code loss event, the fault information corresponding to the code loss event can be cleared, and at least one target cell that has been in a locked state can be unlocked so that other robots can move in at least one target cell.

[0145] In some embodiments, after determining that the robot has recognized the target identification code, the control device can re-determine the task to be processed and the corresponding moving path for the robot based on the second position information of the target identification code, so that the robot can move to the destination corresponding to the task to be processed based on the moving path to perform the task to be processed.

[0146] In some embodiments, after the robot moves to the target identification code, there may still be an offset (i.e., a first offset) between the robot and the target identification code, wherein the first offset includes the distance and angle relationship between the center point of the robot and the center point of the target identification code. Therefore, the robot can adjust the posture of the robot based on the first offset to reduce the first offset between the robot and the target identification code. For example, the robot can identify the target identification code through the identification code camera 101 and obtain the first offset between the robot and the target identification code, so that the control module 107 can adjust the posture of the robot according to the first offset, and make the first offset between the robot and the target identification code less than or equal to the preset threshold after the posture adjustment.

[0147] Among them, the preset threshold can be set according to actual needs, and the specific value of the preset threshold is not limited in the embodiment of the present application. It should be noted that when the preset threshold is 0, the distance between the center point of the robot and the center point of the target identification code is 0. In other words, when the preset threshold is 0, the center point of the robot after posture adjustment coincides with the center point of the target identification code.

[0148] It should be noted that when the robot is adjusting its posture, there is no need to adjust the direction of the robot's front to coincide with a normal driving direction (for example, the forward driving direction). The subsequent control device re-plans the moving path for the robot based on the robot's position information (i.e., the second position information of the target identification code), and the robot then adjusts the direction of its front according to the driving direction of the moving path.

[0149] refer to Fig. 8A A schematic diagram of adjusting the robot posture is shown and Figure 8B Another schematic diagram of adjusting the robot posture is shown in FIG. Fig. 8A As shown, if the robot 110 moves to the target identification code C according to the second target offset and can identify the target identification code C, but there is still a first offset between the robot 110 and the target identification code C, the control module 107 can adjust the posture of the robot 110 based on the first offset, so that the first offset between the robot 110 and the target identification code C after the posture adjustment is less than or equal to the preset threshold. Figure 8BAs shown, when the preset threshold is 0, the center point O' of the robot 110 after posture adjustment coincides with the center point c of the target identification code C.

[0150] Step 720: If the robot fails to recognize the target identification code, the robot moves within a second preset range around the robot and re-recognizes the target identification code during the movement.

[0151] In some embodiments, since the target detection algorithm of the laser point may have errors in the recognition effect of the marker, the relative position relationship between the robot and the target marker measured by the laser radar 103 may be inaccurate, so when the first position information of the robot is determined based on the relative position relationship and the third position information of the target marker, the first position information of the robot may be biased. Therefore, when the robot moves to the target identification code based on the first position information, it may fail to recognize the target identification code after moving to the target identification code.

[0152] When the robot fails to recognize the target identification code, the control module 107 can control the robot to move within a second preset range around it, and the robot can recognize the target identification code through the identification code camera 101 during the movement. The robot moving within the second preset range around it may include the robot rotating, moving forward, moving backward, etc. within the second preset range around it.

[0153] It is understandable that when the first position information of the robot deviates, the determined second target offset will also deviate, but the deviation is usually not too large, so after the robot moves according to the second target offset, it is still located at a position close to the target identification code. Therefore, the robot can move within a small range to find the target identification code. The second preset range can be a smaller area.

[0154] refer to Fig. 9 A schematic diagram of a robot re-identifying a target identification code is shown in FIG. Fig. 9 As shown, if the robot 110 moves to the target identification code C according to the second target offset, the robot 110 cannot recognize the target identification code C because the second target offset is inaccurate. Therefore, the robot 110 can move within the second preset range around it (for example Fig. 9 ), and identifies the target identification code C during the movement.

[0155] Step 730: If the robot re-identifies the target identification code during the movement, a second offset between the target identification code and the robot is determined, and the posture of the robot is adjusted based on the second offset so that the second offset after the posture adjustment is less than or equal to a preset threshold.

[0156] In some embodiments, after the robot re-identifies the target identification code during movement, there may still be an offset (i.e., a second offset) between the robot and the target identification code, wherein the second offset includes the distance and angle relationship between the center point of the robot and the center point of the target identification code. Therefore, the robot can adjust the posture of the robot based on the second offset to reduce the second offset between the robot and the target identification code. For example, the robot can identify the target identification code through the identification code camera 101, and obtain the second offset between the robot and the target identification code, so that the control module 107 can adjust the posture of the robot according to the second offset, and make the robot after the posture is adjusted. The second offset between the robot and the target identification code is less than or equal to the preset threshold. Among them, the description of the preset threshold can refer to the above embodiment, which will not be repeated here.

[0157] In some embodiments, after the robot re-identifies the target identification code, it can send fault resolution information and unlocking request to the control device. After the control device receives the fault resolution information, it can clear the fault information corresponding to the code loss event; after the control device receives the unlocking request, it can unlock at least one target cell that is already in a locked state based on the unlocking request, so that other robots in the storage system can move in the at least one target cell.

[0158] In some examples, the control device may also poll the robot at preset intervals to see whether it has sent new fault information. If the control device does not receive new fault information reported by the robot within the preset period, it may be determined that the robot has identified the target identification code (i.e., the robot has successfully recovered from the code loss event). When the control device determines that the robot has successfully recovered from the code loss event, it may clear the fault information corresponding to the code loss event and unlock at least one target cell that has been locked, so that other robots can move in at least one target cell.

[0159] In some embodiments, after the control device determines that the robot has recognized the target identification code, it can redetermine the task to be processed and the corresponding movement path for the robot based on the second position information of the target identification code.

[0160] In some embodiments, if the robot still fails to identify the target identification code while moving within the second preset range around it, the event monitoring module 102 can report fault information to the control device at a certain period and wait for processing. The fault information includes the fault event type, for example, the fault event type is a code loss event.

[0161] Through the above scheme, after the robot moves to the target identification code according to the second target offset, if it can identify the target identification code, it can adjust the robot's posture based on the first offset between the target identification code and the robot; if the robot fails to identify the target identification code, it can enter the secondary code search stage, that is, the robot can re-identify the target identification code within the second preset range around it. Therefore, even if the second target offset is deviated, the robot can move within a small range to find the target identification code and re-identify the target identification code, thereby improving the success rate of the robot's recovery from the code loss event.

[0162] Fig.10 A flowchart of another robot's code loss self-recovery method provided in some embodiments of the present application. Fig.10 As shown, the method is applied to a robot, and the method includes steps 1010 to 1140.

[0163] Step 1010, obtaining status information of the robot.

[0164] In some embodiments, the robot can obtain the robot's status information in real time to determine whether the robot has a code loss event.

[0165] Step 1020, determining whether a code loss event occurs in the robot according to the status information.

[0166] In some embodiments, if the robot determines that a code loss event occurs based on the state information, the robot executes step 1030 ; if an unrecoverable event other than a code loss event occurs to the robot, the robot executes step 1140 .

[0167] It can be understood that the implementation of step 1010 and step 1020 can refer to the relevant description of step 210, which will not be repeated here.

[0168] Step 1030: Send a self-recovery request to the control device.

[0169] In some embodiments, in the event of a code loss event in the robot, a self-recovery request may be sent to the control device.

[0170] Step 1040, determining whether the control device allows the robot to self-recover.

[0171] In some embodiments, if the robot applies for self-recovery successfully (such as receiving a notification of allowing self-recovery sent by the control device), that is, the control device allows the robot to perform self-recovery, the robot executes step 1050; if the robot applies for self-recovery unsuccessfully, that is, the control device does not allow the robot to perform self-recovery, the robot executes step 1140.

[0172] It can be understood that the implementation of step 1030 and step 1040 can refer to the relevant description of step 210, which will not be repeated here.

[0173] Step 1050: Detect target markers within a first preset range around the robot.

[0174] In some embodiments, when the control device allows the robot to perform self-recovery, the robot can detect target markers within a first preset range around it and determine the relative position relationship between the target marker and the robot.

[0175] Step 1060, determine whether the robot detects the target marker.

[0176] In some embodiments, if the robot detects the target marker within the first preset range and can determine the relative position relationship between the target marker and the robot, the robot executes step 1070; if the robot does not detect the target marker within the first preset range, or fails to determine the relative position relationship between the target marker and the robot, the robot executes step 1140.

[0177] It can be understood that the implementation of step 1050 and step 1060 can refer to the relevant description of step 210, which will not be repeated here.

[0178] Step 1070: Determine first position information of the robot in the global map based on the relative position relationship between the target marker and the robot.

[0179] In some embodiments, if the robot can detect the target marker and determine the relative position relationship between the target marker and the robot, it can first match the target marker in the global map and determine the third position information of the target marker in the global map; and then determine the first position information of the robot in the global map based on the relative position relationship and the third position information.

[0180] Step 1080, determining whether the robot can determine the first position information of the robot.

[0181] In some embodiments, if the robot matches the target marker in the global map and determines the first position information of the robot in the global map, the robot executes step 1090. If the robot does not match the target marker in the global map, and thus fails to determine the first position information of the robot, or the robot is in an immobile state at this time, the robot executes step 1140.

[0182] It can be understood that the implementation of step 1070 and step 1080 can refer to the relevant description of step 510 and step 520, which will not be repeated here.

[0183] Step 1090, based on the first position information, determine the target identification code closest to the robot, move to the target identification code, and identify the target identification code.

[0184] In some embodiments, after determining the first position information of the robot, the robot can further determine the target identification code closest to the robot based on the first position information; thereafter, based on its first position information and the second position information of the target identification code, determine the second target offset between the target identification code and the robot, thereby moving to the target identification code according to the second target offset and identifying the target identification code.

[0185] Step 1100, determining whether the robot can recognize the target identification code.

[0186] In some embodiments, if the robot can recognize the target identification code, the robot executes step 1130 ; if the robot cannot recognize the target identification code, the robot executes step 1110 .

[0187] It can be understood that the implementation of step 1090 and step 1100 can refer to the relevant description of step 230 and step 240, which will not be repeated here.

[0188] Step 1110: While the robot is moving within a second preset range around itself, the robot re-identifies the target identification code.

[0189] In some embodiments, if the robot fails to recognize the target identification code, the robot may move within a second preset range around it and re-recognize the target identification code during the movement.

[0190] Step 1120, determining whether the robot has re-recognized the target identification code.

[0191] In some embodiments, if the robot is able to re-identify the target identification code, the robot executes step 1130 ; if the robot is unable to re-identify the target identification code, the robot executes step 1140 .

[0192] It can be understood that the implementation of step 1110 and step 1120 can refer to the relevant description of step 720, which will not be repeated here.

[0193] Step 1130, adjusting the position and posture of the robot based on the offset between the target identification code and the robot.

[0194] In some embodiments, if the robot can identify the target identification code in step 1100, or re-identify the target identification code in step 1120, the robot successfully recovers from the code loss event. Furthermore, the robot can also adjust the robot's posture based on the offset between the target identification code and the robot (i.e., the first offset or the second offset), so that the first offset or the second offset between the robot and the target identification code after the posture adjustment is less than or equal to the preset threshold.

[0195] It can be understood that the implementation method of step 1130 can refer to the relevant description of step 710 and step 730, which will not be repeated here.

[0196] Step 1140, report the fault information to the control device and wait for processing.

[0197] In some embodiments, if the robot cannot self-recover, it can continue to report fault information to the control device and wait for further processing.

[0198] Fig.11 An interaction diagram between a robot and a control device provided in some embodiments of the present application. Fig.11 As shown, the method includes steps 1101 to 1120.

[0199] Step 1101, when a code loss event occurs in the robot, the robot sends fault information and a self-recovery request to the control device.

[0200] In some embodiments, in the event of a code loss event, the robot sends a fault message and a self-recovery request to the control device.

[0201] Step 1102: If the control device fails to respond, the robot continues to send fault information to the control device.

[0202] In some embodiments, if the control device fails to successfully respond to the self-recovery request sent by the robot, the robot may continue to send fault information to the control device.

[0203] Step 1103: If the control device responds successfully, the robot is allowed to recover itself.

[0204] In some embodiments, if the control device successfully responds to the self-recovery request sent by the robot, the robot may be allowed to perform self-recovery. For example, the control device may send a self-recovery permission notification to the robot, or issue a self-recovery permission to the robot.

[0205] Step 1104: before the robot moves to the target identification code, the robot sends a locking request to the control device.

[0206] In some embodiments, before the robot moves to the target identification code based on its first position information and the second position information of the target identification code, a locking request may be sent to the control device.

[0207] Step 1105: The control device locks at least one target cell.

[0208] In some embodiments, after receiving a locking request, the control device may lock at least one target cell (including a cell corresponding to a target identification code, and / or a cell on a moving path corresponding to the target identification code where the robot moves) so that other robots in the storage system cannot move in at least one locked target cell.

[0209] Step 1106: If the robot recovers successfully, it sends fault resolution information and a lock release request to the control device.

[0210] In some embodiments, if the robot successfully identifies the target identification code, the robot self-recovers successfully and can send fault resolution information and unlocking request to the control device.

[0211] Step 1107: The control device clears the fault information and unlocks at least one target cell that is in a locked state.

[0212] In some embodiments, after receiving the fault clearing information, the control device clears the fault information corresponding to the code loss event; after receiving the unlocking request, the control device unlocks at least one target cell that is in a locked state so that other robots in the storage system can move in these target cells.

[0213] Step 1108: If the robot fails to recover itself, a fault message is sent to the control device.

[0214] In some embodiments, if the robot fails during the self-recovery process (for example, the target marker is not detected within the first preset range, the relative position relationship between the target marker and the robot cannot be determined, the first position information of the robot cannot be determined, the robot is in an immobile state, the target identification code cannot be determined, the application for locking the cell fails, the target identification code cannot be recognized, etc.), a fault message can be sent to the control device and wait for processing.

[0215] Step 1109: The control device displays fault information.

[0216] In some embodiments, the control device can display the fault information sent by the robot so that personnel can view and process the fault information.

[0217] The robot's code loss self-recovery method provided in the present application can detect at least one target marker within a first preset range around it, and determine the first position information of the robot in the global map based on the relative position relationship between each target marker and the robot, thereby achieving the robot's repositioning after a code loss event occurs.

[0218] Then, the robot can determine the target identification code that is closest to it based on the first position information, and move to the target identification code based on the second target offset between the robot and the target identification code. If the robot can recognize the target identification code, the robot successfully recovers from the code loss event, and can further adjust its position to eliminate the deviation between the robot and the target identification code. If the robot fails to recognize the target identification code, it can move within a second preset range around it, and re-identify the target identification code during the movement. If the robot re-identifies the target identification code, the robot successfully recovers from the code loss event, and can further adjust its position to eliminate the deviation between the robot and the target identification code. Thus, the robot can automatically restore to normal after a code loss event occurs, avoiding safety issues caused by relying on manual processing of code loss events and problems that affect the work efficiency of the warehousing system.

[0219] In addition, the robot can also interact with the control device to ensure the safety of the robot when performing self-recovery. For example, before the robot moves to the target identification code, it can send a lock request to the control device so that the control device locks at least one target cell (including the cell corresponding to the target identification code, and / or the cell on the moving path corresponding to the target identification code where the robot moves), so that other robots in the storage system cannot move in the at least one locked target cell to avoid other robots hindering the self-recovery of the robot; and, during the process of the robot's self-recovery, if the self-recovery fails, the robot can continue to send fault information to the control device, so that the control device or personnel can promptly handle the robot's code loss event to avoid affecting the task execution of the robot and other robots.

[0220] Fig.12 A schematic diagram of another robot structure provided in some embodiments of the present application. Fig.12 As shown, the robot 1200 includes a recognition module 1201 , a first determination module 1202 , a second determination module 1203 and a movement module 1204 .

[0221] The identification module 1201 is configured to identify at least one target marker within a first preset range around the robot when a code loss event occurs in the robot, and obtain a relative position relationship between each target marker in the at least one target marker and the robot.

[0222] The first determination module 1202 is configured to determine first position information of the robot in the global map based on the relative position relationship between each target marker and the robot.

[0223] The second determination module 1203 is configured to determine second position information of the target identification code in the global map based on the first position information.

[0224] The moving module 1204 is configured to move the robot to the target identification code based on the first position information and the second position information, and identify the target identification code.

[0225] In some embodiments, the first determination module 1202 is specifically configured to: determine the first estimated position information of the robot, and based on the first estimated position information and the relative position relationship between each target marker and the robot, determine the second estimated position information of each target marker; based on the second estimated position information of each target marker and the third position information of each marker to be matched among multiple markers to be matched, determine at least one first target offset; based on each first target offset and the first estimated position information of the robot, determine each first position information of the robot in the global map.

[0226] In some embodiments, the first determination module 1202 is specifically configured to: obtain the fourth position information of the identification code that was last acquired by the robot before the code loss event occurred, and the driving information of the robot; wherein the driving information includes the driving direction and the driving distance; based on the fourth position information and the driving information, determine the first estimated position information.

[0227] In some embodiments, the first determination module 1202 is specifically configured as follows: when there are multiple target markers, based on the second estimated position information of each target marker and the third position information of each marker to be matched, determine the first candidate offset between the first marker in each target marker and the first matching marker in each marker to be matched; wherein the first marker is any target marker among the multiple target markers, and the first matching marker is any marker to be matched among the multiple markers to be matched; based on the first candidate offset and the second estimated position information of at least one second marker, determine the corrected position information of each second marker; wherein at least one second marker includes target markers other than the first marker among the multiple target markers; based on the corrected position information of each second marker and the third position information of at least one second matching marker, determine at least one first target offset; wherein at least one second matching marker includes markers to be matched other than the first matching marker among the multiple markers to be matched.

[0228] In some embodiments, the first determination module 1202 is specifically configured to: determine the number of matches of the third position information that matches the corrected position information of each second marker based on the corrected position information of each second marker and the third position information of at least one second matching marker; if the number of matches is greater than or equal to a quantity threshold, determine the first candidate offset as the first target offset; if the number of matches is less than the quantity threshold, traverse the multiple markers to be matched except the first matching marker in turn until at least one first target offset is determined.

[0229] In some embodiments, the moving module 1204 is specifically configured to: determine a second candidate offset between each first position information and the corresponding second position information based on each first position information and the second position information corresponding to each first position information; determine a second target offset in the second candidate offsets according to the number of second candidate offsets; move to the corresponding target identification code based on the second target offset, and identify the target identification code.

[0230] In some embodiments, the moving module 1204 is specifically configured to: when the number of second candidate offsets is one, determine the second candidate offset as the second target offset; when the number of second candidate offsets is multiple, determine the second candidate offset with the largest number of the same offset among the multiple second candidate offsets as the second target offset.

[0231] In some embodiments, the multiple markers to be matched are markers to be matched in a global map, or the multiple markers to be matched are markers to be matched in a regional map; wherein the regional map is determined based on the fourth position information of the identification code last acquired by the robot before the code loss event occurs.

[0232] In some embodiments, the second determination module 1203 is specifically configured to: determine at least one candidate identification code closest to the robot in the global map based on the first position information; determine the target identification code based on at least one candidate identification code, and determine the position of the target identification code in the global map as the second position information.

[0233] In some embodiments, the first determination module 1202 is specifically configured to: determine any identification code among at least one candidate identification code as the target identification code; or, determine the offset angle between each candidate identification code among at least one candidate identification code and the robot, and determine the candidate identification code with the smallest offset angle with the robot as the target identification code.

[0234] like Fig.12 As shown, the robot 1200 also includes a sending module 1205 .

[0235] In some embodiments, the sending module 1205 is configured as follows: the robot sends a locking request to the control device; wherein the locking request is used to request the control device to lock at least one target cell so that other robots cannot move in the at least one locked target cell; wherein, at least one target cell includes a cell corresponding to a target identification code, and / or the robot moves to a cell on a moving path corresponding to the target identification code.

[0236] In some embodiments, the mobile module 1204 is specifically configured to: when the number of first position information is one, determine the first offset between the target identification code and the robot based on the first position information and the second position information; the robot moves to the target identification code based on the first offset and identifies the target identification code.

[0237] like Fig.12 As shown, the robot 1200 also includes a posture adjustment module 1206 .

[0238] In some embodiments, the posture adjustment module 1206 is specifically configured as follows: if the robot recognizes the target identification code, it determines a first offset between the target identification code and the robot, and adjusts the posture of the robot based on the first offset so that the first offset after the posture adjustment is less than or equal to a preset threshold.

[0239] In some embodiments, the sending module 1205 is also configured to: when the robot recognizes the target identification code, the robot sends an unlock request to the control device; wherein the unlock request is used to request the control device to unlock at least one target cell that is in a locked state so that other robots can move in at least one target cell.

[0240] In some embodiments, the moving module 1204 is further configured as follows: if the robot fails to recognize the target identification code, the robot moves within a second preset range around the robot and re-identifies the target identification code during the movement; the posture adjustment module 1205 is further configured as follows: if the robot re-identifies the target identification code during the movement, a second offset between the target identification code and the robot is determined, and the posture of the robot is adjusted based on the second offset so that the second offset after the posture adjustment is less than or equal to a preset threshold.

[0241] In some embodiments, the first determination module 1202 is further configured to: obtain status information of the robot; if an abnormal event is determined to have occurred according to the status information of the robot, determine whether the abnormal event is a code loss event.

[0242] In some embodiments, the sending module 1205 is further configured to: if the abnormal event is determined to be an unrecoverable event or a code loss event, report fault information to the control device; wherein the fault information includes the type of fault event; in the case where the fault event type is a code loss event, if the robot moves to the target identification code and identifies the target identification code, then send fault resolution information to the control device to enable the control device to clear the fault information corresponding to the code loss event.

[0243] In some embodiments, the identification module 1201 is specifically configured to: send a self-recovery request to the control device when a code loss event occurs in the robot; and identify at least one target marker within a first preset range when the control device allows the robot to self-recover.

[0244] Fig.13 A schematic diagram of another storage system provided in some embodiments of the present application. Fig.13 As shown, the warehousing system 1300 includes a robot 1301 and a control device 1302 .

[0245] Robot 1301 is configured as follows:

[0246] In the event of a code loss event in the robot, a self-recovery request is sent to the control device;

[0247] When the control device allows the robot to self-recover, identifying at least one target marker within a first preset range around the robot, and obtaining a relative position relationship between each target marker in the at least one target marker and the robot;

[0248] Based on the relative position relationship between each target marker and the robot, determine the first position information of the robot in the global map;

[0249] Based on the first position information, determining second position information of the target identification code in the global map;

[0250] Based on the first position information and the second position information, the robot moves to the target identification code and identifies the target identification code.

[0251] The control device 1302 is configured to obtain a self-recovery request sent by the robot and send a self-recovery permission notification to the robot.

[0252] In some embodiments, robot 1301 is specifically configured to: determine the first estimated position information of the robot, and based on the first estimated position information and the relative position relationship between each target marker and the robot, determine the second estimated position information of each target marker; based on the second estimated position information of each target marker and the third position information of each marker to be matched among multiple markers to be matched, determine at least one first target offset; based on each first target offset and the first estimated position information of the robot, determine each first position information of the robot in the global map.

[0253] In some embodiments, the robot 1301 is specifically configured to: obtain the fourth position information of the identification code that the robot last obtained before the code loss event occurs, and the driving information of the robot; wherein the driving information includes the driving direction and the driving distance; based on the fourth position information and the driving information, determine the first estimated position information.

[0254] In some embodiments, the robot 1301 is specifically configured as follows: when there are multiple target markers, based on the second estimated position information of each target marker and the third position information of each marker to be matched, determine the first candidate offset between the first marker in each target marker and the first matching marker in each marker to be matched; wherein the first marker is any target marker in the multiple target markers, and the first matching marker is any marker to be matched in the multiple markers to be matched; based on the first candidate offset and the second estimated position information of at least one second marker, determine the corrected position information of each second marker; wherein at least one second marker includes target markers other than the first marker among the multiple target markers; based on the corrected position information of each second marker and the third position information of at least one second matching marker, determine at least one first target offset; wherein at least one second matching marker includes markers to be matched other than the first matching marker among the multiple markers to be matched.

[0255] In some embodiments, the robot 1301 is specifically configured to: determine the number of matches of the third position information that matches the corrected position information of each second marker based on the corrected position information of each second marker and the third position information of at least one second matching marker; if the number of matches is greater than or equal to a quantity threshold, determine the first candidate offset as the first target offset; if the number of matches is less than the quantity threshold, traverse the multiple markers to be matched except the first matching marker in turn until at least one first target offset is determined.

[0256] In some embodiments, the robot 1301 is specifically configured to: determine a second candidate offset between each first position information and the corresponding second position information based on each first position information and the second position information corresponding to each first position information; determine a second target offset in the second candidate offsets according to the number of second candidate offsets; move to the corresponding target identification code based on the second target offset, and identify the target identification code.

[0257] In some embodiments, the robot 1301 is specifically configured to: when the number of second candidate offsets is one, determine the second candidate offset as the second target offset; when the number of second candidate offsets is multiple, determine the second candidate offset with the largest number of the same offset among the multiple second candidate offsets as the second target offset.

[0258] In some embodiments, the multiple markers to be matched are markers to be matched in a global map, or the multiple markers to be matched are markers to be matched in a regional map; wherein the regional map is determined based on the fourth position information of the identification code last acquired by the robot before the code loss event occurs.

[0259] In some embodiments, robot 1301 is specifically configured to: determine at least one candidate identification code closest to the robot in the global map based on the first position information; determine the target identification code based on at least one candidate identification code, and determine the position of the target identification code in the global map as the second position information.

[0260] In some embodiments, the robot 1301 is specifically configured to: determine any identification code among at least one candidate identification code as the target identification code; or, determine the offset angle between each candidate identification code among at least one candidate identification code and the robot, and determine the candidate identification code with the smallest offset angle with the robot as the target identification code.

[0261] In some embodiments, robot 1301 is also configured as follows: the robot sends a lock request to the control device; wherein the lock request is used to request the control device to lock at least one target cell so that other robots cannot move in the at least one locked target cell; wherein the at least one target cell includes a cell corresponding to a target identification code, and / or the robot moves to a cell on a moving path corresponding to the target identification code.

[0262] In some embodiments, the robot 1301 is specifically configured to: when the number of first position information is one, determine a first offset between the target identification code and the robot based on the first position information and the second position information; the robot moves to the target identification code based on the first offset, and identifies the target identification code.

[0263] In some embodiments, the robot 1301 is further configured to: if the robot recognizes a target identification code, determine a first offset between the target identification code and the robot, and adjust the posture of the robot based on the first offset so that the first offset after the posture adjustment is less than or equal to a preset threshold.

[0264] In some embodiments, robot 1301 is also configured to: when the robot recognizes the target identification code, the robot sends an unlock request to the control device; wherein the unlock request is used to request the control device to unlock at least one target cell that is in a locked state so that other robots can move in at least one target cell.

[0265] In some embodiments, the robot 1301 is further configured as follows: if the robot fails to recognize the target identification code, the robot moves within a second preset range around the robot and re-recognizes the target identification code during the movement; if the robot re-recognizes the target identification code during the movement, the second offset between the target identification code and the robot is determined, and the posture of the robot is adjusted based on the second offset so that the second offset after the posture adjustment is less than or equal to a preset threshold.

[0266] In some embodiments, the robot 1301 is further configured to: obtain status information of the robot; if an abnormal event is determined to have occurred based on the status information of the robot, determine whether the abnormal event is a code loss event.

[0267] In some embodiments, the robot 1301 is also configured to: if the abnormal event is determined to be an unrecoverable event or a code loss event, report fault information to the control device; wherein the fault information includes the type of fault event; in the case where the fault event type is a code loss event, if the robot moves to the target identification code and identifies the target identification code, then send fault resolution information to the control device to enable the control device to clear the fault information corresponding to the code loss event.

[0268] In some embodiments, the robot 1301 is specifically configured to: send a self-recovery request to the control device when a code loss event occurs in the robot; and identify at least one target marker within a first preset range when the control device allows the robot to self-recover.

[0269] Fig.14 A schematic diagram of an electronic device provided for some embodiments of the present application. In some embodiments, the electronic device includes one or more processors and a memory. The memory is configured to store one or more programs. When the one or more programs are executed by the one or more processors, the one or more processors implement the robot's code loss self-recovery method in the above-mentioned embodiment.

[0270] like Fig.14 As shown, the electronic device 1400 includes: a processor (processor) 1401 and a memory 1402. Exemplarily, the electronic device 1400 may also include: a communication interface (Communications Interface) 1403 and a communication bus 1404.

[0271] The processor 1401, the memory 1402 and the communication interface 1403 communicate with each other via the communication bus 1404. The communication interface 1403 is used to communicate with other devices such as client or other server network elements.

[0272] In some embodiments, the processor 1401 is used to execute the program 1405, and specifically can execute the relevant steps in the above-mentioned robot code loss self-recovery method embodiment. Specifically, the program 1405 can include program code, and the program code includes computer executable instructions.

[0273] Exemplarily, the processor 1401 may be a central processing unit (CPU), or an application-specific integrated circuit (ASIC), or one or more integrated circuits configured to implement some embodiments of the present application. The electronic device 1400 may include one or more processors, which may be processors of the same type, such as one or more CPUs; or processors of different types, such as one or more CPUs and one or more ASICs.

[0274] In some embodiments, the memory 1402 is used to store the program 1405. The memory 1402 may include a high-speed RAM memory, and may also include a non-volatile memory (NVM), such as at least one disk memory.

[0275] Program 1405 can be specifically called by processor 1401 to enable electronic device 1400 to execute the robot's lost code self-recovery method operation.

[0276] Some embodiments of the present application provide a computer-readable storage medium, which stores at least one executable instruction. When the executable instruction is executed on the electronic device 1400, the electronic device 1400 executes the robot's code loss self-recovery method in the above embodiment.

[0277] The executable instructions can be specifically used to enable the electronic device 1400 to execute the robot's lost code self-recovery method operation.

[0278] For example, the computer readable storage medium may be a read-only memory (ROM), a random access memory (RAM), a compact disc (CD-ROM), a magnetic tape, a floppy disk, an optical data storage device, and the like.

[0279] The beneficial effects that can be achieved by the computer-readable storage medium provided in some embodiments of the present application can be referred to the beneficial effects of the corresponding robot's lost code self-recovery method provided above, and will not be repeated here.

[0280] It should be noted that, in the application, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, the elements defined by the sentence "including a ..." do not exclude the existence of other identical elements in the process, method, article or device including the elements.

[0281] Each embodiment in this specification is described in a related manner, and the same or similar parts between the embodiments can be referred to each other, and each embodiment focuses on the differences from other embodiments. In particular, for the device embodiment, since it is basically similar to the method embodiment, the description is relatively simple, and the relevant parts can be referred to the partial description of the method embodiment.

[0282] The logic and / or steps represented in the flowchart or otherwise described herein, for example, can be considered as an ordered list of executable instructions for implementing logical functions, which can be embodied in any computer-readable medium for use by an instruction execution system, apparatus or device (such as a computer-based system, a system including a processor or other system that can fetch instructions from an instruction execution system, apparatus or device and execute instructions), or used in combination with these instruction execution systems, apparatuses or devices.

[0283] For the purposes of this specification, a "computer-readable medium" can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by an instruction execution system, apparatus, or device or in conjunction with such instruction execution system, apparatus, or device.

[0284] More specific examples (a non-exhaustive list) of computer-readable media include the following: an electrical connection having one or more wires (electronic device), a portable computer disk case (magnetic device), a random access memory (RAM), a read-only memory (ROM), an erasable and programmable read-only memory (EPROM or flash memory), a fiber optic device, and a portable compact disk read-only memory (CDROM).

[0285] In addition, the computer readable medium can even be a paper or other suitable medium on which the program can be printed, because the program can be obtained electronically, for example, by optically scanning the paper or other medium, and then editing, interpreting or processing in other suitable ways as necessary, and then storing it in the computer memory. It should be understood that various parts of the present application can be implemented in hardware, software, firmware or a combination thereof.

[0286] In the above embodiments, multiple steps or methods may be implemented by software or firmware stored in a memory and executed by a suitable instruction execution system. For example, if implemented by hardware, as in another embodiment, it may be implemented by any one of the following technologies known in the art or a combination thereof: a discrete logic circuit having a logic gate circuit for implementing a logic function on a data signal, a dedicated integrated circuit having a suitable combination of logic gate circuits, a programmable gate array (PGA), a field programmable gate array (FPGA), etc.

[0287] The above-described embodiments of the present application do not constitute a limitation on the protection scope of the present application.

Claims

1. A robot code loss self-recovery method, characterized in that: Applied to a robot, the method comprises: In the event of a code loss event occurring to the robot, identifying at least one target marker within a first preset range around the robot, and obtaining a relative positional relationship between each of the at least one target marker and the robot; Determining first position information of the robot in the global map based on the relative position relationship between each of the target markers and the robot; Based on the first position information, determining second position information of the target identification code in the global map; Based on the first position information and the second position information, the robot moves to the target identification code and identifies the target identification code.

2. The method according to claim 1, characterized in that The determining, based on the relative positional relationship between each of the target markers and the robot, first position information of the robot in the global map comprises: Determine first estimated position information of the robot, and determine second estimated position information of each target marker based on the first estimated position information and a relative position relationship between each target marker and the robot; Determining at least one first target offset based on the second estimated position information of each of the target markers and the third position information of each of the markers to be matched among the multiple markers to be matched; Based on each of the first target offsets and the first estimated position information of the robot, each first position information of the robot in the global map is determined.

3. The method according to claim 2, characterized in that The determining the first estimated position information of the robot includes: Acquire the fourth position information of the identification code acquired by the robot for the last time before the code loss event occurs, and the driving information of the robot; wherein the driving information includes the driving direction and the driving distance; The first estimated position information is determined based on the fourth position information and the driving information.

4. The method according to claim 2, characterized in that: The determining at least one first target offset based on the second estimated position information of each target marker and the third position information of each marker to be matched among the multiple markers to be matched comprises: In the case where there are multiple target markers, based on the second estimated position information of each target marker and the third position information of each marker to be matched, determine a first candidate offset between a first marker in each target marker and a first matching marker in each marker to be matched; wherein the first marker is any target marker in the multiple target markers, and the first matching marker is any marker to be matched in the multiple markers to be matched; Determining corrected position information of each second marker based on the first candidate offset and second estimated position information of at least one second marker; wherein the at least one second marker includes a target marker other than the first marker among the plurality of target markers; The at least one first target offset is determined based on the corrected position information of each second marker and the third position information of at least one second matching marker; wherein the at least one second matching marker includes the markers to be matched among the multiple markers to be matched except the first matching marker.

5. The method according to claim 4, characterized in that The determining the at least one first target offset based on the corrected position information of each of the second markers and the third position information of at least one second matching marker comprises: Determining a matching number of third position information that matches the corrected position information of each of the second markers based on the corrected position information of each of the second markers and the third position information of the at least one second matching marker; If the matching quantity is greater than or equal to a quantity threshold, determining the first candidate offset as the first target offset; If the matching quantity is less than the quantity threshold, the markers to be matched except the first matching marker in the plurality of markers to be matched are traversed in sequence until the at least one first target offset is determined.

6. The method according to claim 2, wherein: The determining at least one first target offset based on the second estimated position information of each target marker and the third position information of each marker to be matched among the multiple markers to be matched comprises: When the number of the target marker is one, the first target offset between the target marker and each of the markers to be matched is determined based on the second estimated position information of the target marker and the third position information of each of the markers to be matched.

7. The method according to claim 1, wherein: Based on the first position information and the second position information, the robot moves to the target identification code and identifies the target identification code, including: Determine, based on each of the first position information and the second position information corresponding to each of the first position information, a second candidate offset between each of the first position information and the corresponding second position information; determining a second target offset from the second candidate offsets according to the number of the second candidate offsets; The target identification code is moved to the corresponding target identification code based on the second target offset, and the target identification code is identified.

8. The method according to claim 7, wherein: The determining a second target offset from the second candidate offsets according to the number of the second candidate offsets includes: When the number of the second candidate offsets is one, determining the second candidate offset as the second target offset; When there are multiple second candidate offsets, the second candidate offset with the largest number of the same offsets among the multiple second candidate offsets is determined as the second target offset.

9. The method according to claim 2, characterized in that: The multiple markers to be matched are markers to be matched in the global map, or the multiple markers to be matched are markers to be matched in the regional map; wherein the regional map is determined based on the fourth position information of the identification code last acquired by the robot before the code loss event occurs.

10. The method according to any one of claims 1 to 9, characterized in that The determining, based on the first position information, second position information of the target identification code in the global map comprises: Based on the first position information, determining at least one candidate identification code closest to the robot in the global map; The target identification code is determined based on the at least one candidate identification code, and the position of the target identification code in the global map is determined as the second position information.

11. The method according to claim 10, characterized in that The determining the target identification code based on the at least one candidate identification code comprises: Determine any one of the at least one candidate identification code as the target identification code; or, The offset angle between each of the at least one candidate identification code and the robot is determined, and the candidate identification code with the smallest offset angle with the robot is determined as the target identification code.

12. The method according to any one of claims 1 to 9, characterized in that Before the robot moves to the target identification code based on the first position information and the second position information, the method further includes: The robot sends a locking request to the control device; wherein the locking request is used to request the control device to lock at least one target cell so that other robots cannot move in the locked at least one target cell; wherein the at least one target cell includes a cell corresponding to the target identification code, and / or the robot moves to a cell on a moving path corresponding to the target identification code.

13. The method according to any one of claims 1 to 9, characterized in that The method further comprises: If the robot recognizes the target identification code, a first offset between the target identification code and the robot is determined, and the posture of the robot is adjusted based on the first offset so that the first offset after the posture adjustment is less than or equal to a preset threshold.

14. The method according to any one of claims 1 to 9, characterized in that The method further comprises: When the robot recognizes the target identification code, the robot sends an unlock request to the control device; wherein the unlock request is used to request the control device to unlock at least one target cell that is in a locked state so that other robots can move in the at least one target cell.

15. The method according to any one of claims 1 to 9, characterized in that The method further comprises: If the robot fails to recognize the target identification code, the robot moves within a second preset range around the robot and re-recognizes the target identification code during the movement; If the robot re-identifies the target identification code during movement, a second offset between the target identification code and the robot is determined, and the posture of the robot is adjusted based on the second offset so that the second offset after the posture adjustment is less than or equal to a preset threshold.

16. The method according to any one of claims 1 to 9, characterized in that The method further comprises: Obtaining status information of the robot; If it is determined that an abnormal event occurs according to the state information of the robot, it is determined whether the abnormal event is the code loss event.

17. The method according to claim 16, characterized in that The method further comprises: If it is determined that the abnormal event is an unrecoverable event or the code loss event, reporting fault information to the control device; wherein the fault information includes the type of fault event; In the case where the fault event type is the code loss event, if the robot moves to the target identification code and recognizes the target identification code, fault resolution information is sent to the control device so that the control device clears the fault information corresponding to the code loss event.

18. The method according to any one of claims 1 to 9, characterized in that When a code loss event occurs to the robot, identifying at least one target marker within a first preset range around the robot includes: When the robot encounters the code loss event, sending a self-recovery request to the control device; When the control device allows the robot to self-recover, the at least one target marker within the first preset range is identified.

19. A robot code loss self-recovery method, characterized in that: Applied to a control device, the method comprises: In the event of a code loss event in the robot, obtaining fault information reported by the robot; Before the robot moves to the target identification code based on the first position information of the robot and the second position information of the target identification code, obtaining a locking request sent by the robot; wherein the second position information is determined based on the first position information of the robot in the global map, and the first position information is determined based on the relative position relationship between each of the target markers in at least one target marker within a first preset range around the robot and the robot; Based on the locking request, at least one target cell is locked so that other robots cannot move in the locked at least one target cell; wherein the at least one target cell includes a cell corresponding to the target identification code, and / or the robot moves to a cell on a moving path corresponding to the target identification code.

20. The method according to claim 19, characterized in that The method further comprises: When the robot recognizes the target identification code, obtaining a release request sent by the robot; Based on the unlocking request, the at least one target cell that is in a locked state is unlocked so that other robots can move in the at least one target cell.

21. The method according to claim 19, characterized in that The method further comprises: If no new fault information reported by the robot is received within a preset time period, it is determined that the robot has recognized the target identification code; The at least one target cell that is in a locked state is unlocked so that other robots can move in the at least one target cell.

22. A robot, characterized in that: The robot comprises: an identification module, configured to identify at least one target marker within a first preset range around the robot when a code loss event occurs to the robot, and obtain a relative position relationship between each of the at least one target marker and the robot; A determination module is configured to determine first position information of the robot in the global map based on the relative position relationship between each of the target markers and the robot; and determine second position information of the target identification code in the global map based on the first position information; The moving module is configured to move the robot to the target identification code and identify the target identification code based on the first position information and the second position information.

23. A storage system, characterized in that: include: The robot is configured to send a self-recovery request to the control device in the event of a code loss event occurring in the robot; When the control device allows the robot to self-recover, identifying at least one target marker within a first preset range around the robot, and acquiring a relative position relationship between each of the at least one target marker and the robot; Determine first position information of the robot in the global map based on the relative position relationship between each of the target markers and the robot; determine second position information of the target identification code in the global map based on the first position information; Based on the first position information and the second position information, the robot moves to the target identification code and identifies the target identification code; The control device is configured to obtain a self-recovery request sent by the robot and send a self-recovery permission notification to the robot.

24. An electronic device, characterized in that: include: one or more processors; and A memory configured to: store one or more programs; Wherein, when the one or more programs are executed by the one or more processors, the one or more processors implement the robot's lost code self-recovery method according to any one of claims 1-18, or implement the robot's lost code self-recovery method according to any one of claims 19-21.

25. A computer-readable storage medium, characterized in that: A computer program is stored thereon, and when the computer program is executed by a processor, the robot's lost code self-recovery method according to any one of claims 1-18 is implemented, or the robot's lost code self-recovery method according to any one of claims 19-21 is implemented.

26. A computer program product, characterized in that The computer program product includes a computer program stored on a non-transitory computer-readable storage medium, and the computer program includes program instructions. When the program instructions are executed by a computer, the computer executes the robot's lost code self-recovery method as described in any one of claims 1-18, or executes the robot's lost code self-recovery method as described in any one of claims 19-21.

Citation Information

Cited By

  • Code loss self-recovery method for robot, and robot and warehousing system

    WO2026008067A1