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

By using robots to identify surrounding target markers, determine their location, and move to the identification code, the safety hazards and low efficiency of manual handling in code loss incidents are resolved, and autonomous recovery is achieved.

WO2026008067A1PCT designated stage Publication Date: 2026-01-08BEIJING GEEKPLUS TECH CO LTD
View PDF 8 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/107164
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-07-05
Filing Date
2025-07-04
Publication Date
2026-01-08

AI Technical Summary

Technical Problem

In warehousing systems, when robots lose their identification codes (code loss events), manual intervention is required, which affects system efficiency and poses security risks.

Method used

The robot determines its own position by recognizing surrounding target landmarks and identifies target identification codes during movement, thus achieving self-recovery.

Benefits of technology

It improves the efficiency of robots in recovering from code loss events and avoids security issues and reduced system efficiency caused by manual processing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025107164_08012026_PF_FP_ABST
    Figure CN2025107164_08012026_PF_FP_ABST
Patent Text Reader

Abstract

The present disclosure relates to the technical field of warehousing logistics. Disclosed are a code loss self-recovery method for a robot, and a robot and a warehousing system. The method comprises: in the event of a code loss incident on a robot, identifying at least one target marker within a first preset range around the robot; on the basis of the at least one target marker, determining first position information of the robot; and the robot moving on the basis of the first position information, and identifying a target identification code during the movement.
Need to check novelty before this filing date? Find Prior Art

Description

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

[0001] This application claims priority to Chinese Patent Application No. 202410903256.7, filed on July 5, 2024, the entire contents of which are incorporated herein by reference. TECHNICAL FIELD

[0002] The present disclosure relates to the technical field of warehouse logistics, and in particular to a code loss self-recovery method of a robot, a robot and a warehouse system. BACKGROUND

[0003] In a warehouse system, a robot can identify an identification code (such as a two-dimensional code) pasted in a ground cell to determine its position in the warehouse system. During movement, the robot may experience a code loss event, i.e., the robot cannot identify the two-dimensional code. In this case, a worker usually needs to enter the site to handle the robot that has experienced the code loss event, and the manual intervention not only affects the normal travel of other robots in the warehouse system, but also may cause safety accidents for the worker. At the same time, the manual handling process takes a long time, which affects the work efficiency of the warehouse system, and may even cause the work of the warehouse system to stop, etc. SUMMARY

[0004] The present disclosure provides a code loss self-recovery method of a robot, a robot and a warehouse system.

[0005] The first aspect of the embodiments of the present disclosure provides a code loss self-recovery method of a robot, applied to the robot, and the method comprises: in the case that the robot experiences a code loss event, identifying at least one target marker within a first preset range around the robot; determining first position information of the robot based on the at least one target marker; and moving the robot based on the first position information, and identifying a target identification code during the movement.

[0006] The second aspect of the embodiments of the present disclosure provides a code loss self-recovery method of a robot, applied to a control device, and the method comprises: in the case that the robot experiences a code loss event, obtaining fault information reported by the robot; and obtaining a locking request sent by the robot before the robot moves to the target identification code based on first position information of the robot; wherein the first position information is determined based on at least one target marker within a first preset range around the robot; and based on the locking request, locking at least one target cell to prevent other robots from moving in the at least one target cell; wherein the at least one target cell includes a cell corresponding to the target identification code and / or a cell on a movement path to which the robot moves to the target identification code.

[0007] In a third aspect, the present disclosure provides a robot, comprising: an identification module configured to identify at least one target marker within a first preset range around the robot in the case of a lost code event of the robot; a determination module configured to determine first position information of the robot based on the at least one target marker; and a movement module configured to move to a target identification code based on the first position information and identify the target identification code in the process of movement.

[0008] In a fourth aspect, the present disclosure provides a warehouse system, comprising: a robot configured to send a self-recovery request to a control device in the case of a lost code event of the robot; identify at least one target marker within a first preset range around the robot and determine first position information of the robot based on the at least one target marker in the case that the control device allows the robot to self-recover; and move to a target identification code based on the first position information and identify the target identification code in the process of movement; and the control device configured to obtain the self-recovery request sent by the robot and send an allow self-recovery notification to the robot.

[0009] In a fifth aspect, the present disclosure provides an electronic device, comprising: a processor and a memory, the memory being configured to store computer executable instructions; and the processor being configured to read the instructions from the memory and execute the instructions to implement the lost code self-recovery method of the robot according to the first aspect.

[0010] In a sixth aspect, the present disclosure provides a computer readable storage medium, the storage medium storing computer program instructions, and the computer program instructions being configured to implement the lost code self-recovery method of the robot according to the first aspect when read by a computer.

[0011] In a seventh aspect, the present disclosure provides a computer program product, the computer program product comprising a computer program stored on a non-transitory computer readable storage medium, the computer program comprising program instructions, and the program instructions being configured to cause a computer to execute the lost code self-recovery method of the robot according to the first aspect when executed by the computer. BRIEF DESCRIPTION OF DRAWINGS

[0012] FIG. 1 is a schematic diagram of a warehouse system according to some embodiments of the present disclosure;

[0013] FIG. 2A is a schematic diagram of a lost code self-recovery method of a robot according to some embodiments of the present disclosure;

[0014] FIG. 2B is a schematic diagram of another lost code self-recovery method of a robot according to some embodiments of the present disclosure;

[0015] FIG. 3 is a schematic diagram of a structure of a robot according to some embodiments of the present disclosure;

[0016] FIG. 4 is a scenario diagram of a method for self-recovery of lost codes of a robot according to some embodiments of the present disclosure;

[0017] FIG. 5 is a schematic diagram of another method for self-recovery of lost codes of a robot according to some embodiments of the present disclosure;

[0018] FIG. 6 is a schematic diagram of yet another method for self-recovery of lost codes of a robot according to some embodiments of the present disclosure;

[0019] FIG. 7 is a schematic diagram of still another method for self-recovery of lost codes of a robot according to some embodiments of the present disclosure;

[0020] FIG. 8A is a schematic diagram of adjusting a pose of a robot according to some embodiments of the present disclosure;

[0021] FIG. 8B is a schematic diagram of adjusting a pose of a robot according to some embodiments of the present disclosure;

[0022] FIG. 9 is a schematic diagram of a robot re-identifying a target identification code according to some embodiments of the present disclosure;

[0023] FIG. 10 is a schematic diagram of still another method for self-recovery of lost codes of a robot according to some embodiments of the present disclosure;

[0024] FIG. 11 is an interaction diagram of a robot and a control device according to some embodiments of the present disclosure;

[0025] FIG. 12 is a schematic diagram of another structure of a robot according to some embodiments of the present disclosure;

[0026] FIG. 13 is a schematic diagram of another warehouse system according to some embodiments of the present disclosure;

[0027] FIG. 14 is a schematic diagram of an electronic device according to some embodiments of the present disclosure. DETAILED DESCRIPTION

[0028] In order to better understand the technical solutions in the embodiments of the present application by those skilled in the art, and to make the above-mentioned purposes, features and advantages of the embodiments of the present application more apparent and easy to understand, the technical solutions in the embodiments of the present application will be further described in detail below with reference to the drawings.

[0029] FIG. 1 is a schematic diagram of a warehouse system according to some embodiments of the present disclosure.

[0030] In some embodiments, as shown in FIG. 1, the warehouse system 100 includes a plurality of robots 110 and a control device 120. It should be noted that FIG. 1 shows a top view of a part of the warehouse system 100

[0031] In some examples, the robot 110 can move in the warehouse system 100. The robot 110 can be a transport robot, a picking robot, a bin robot, etc., and the type of the robot 110 is not limited in the embodiments of the present disclosure.

[0032] In some examples, the robot 110 can communicate with the control device 120 through a network. The control device 120 can include a server or a terminal. The terminal can include at least one of a personal computer, a notebook computer, a smart phone, a tablet computer, and a portable wearable device, and the server can include a stand-alone server or a server cluster composed of multiple servers. For example, the control device 120 can be a robot management system (RMS), and the type of the control device 120 is not limited in the embodiments of the present disclosure.

[0033] In some embodiments, as shown in FIG. 1, the warehouse system 100 further includes a plurality of carriers 11, which can be placed according to a preset arrangement manner. 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 a lane.

[0034] For example, when the type of the robot 110 is a transport robot, the robot 110 (i.e., the transport robot) is used to transport goods, containers (such as bins) or carriers (such as shelves), and the transport robot can move between the inventory area and the workstations, can move in the lane, and can also move at the bottom of the carrier 11. When the type of the robot 110 is a bin robot, the robot 110 (the bin robot) can move in the lane.

[0035] In some embodiments, as shown in FIG. 1, the ground of the warehouse system 100 can be divided into a plurality of unit cells, and a corresponding identification code 130 can be arranged in each unit cell. The identification code 130 can be a two-dimensional code, a bar code, etc., and the form of the identification code 130 is not limited in the embodiments of the present disclosure.

[0036] In some examples, the identification code 130 can store the position information of the unit cell in the warehouse system, for example, the position information stored in the identification code 130 can be that the unit cell corresponding to the identification code is the 10th row and the 20th column unit cell in the warehouse system 100.

[0037] In some embodiments, the robot 110 can recognize the identification code 130 and determine the position information of the robot 110 in the warehouse system 100 according to the position information recognized from the identification code 130. For example, when the robot 110 moves to the identification code 130, the robot 110 can recognize the identification code 130 and obtain the position information corresponding to the identification code 130, so as to determine the position information of the robot 110 in the warehouse system 100 according to the position information.

[0038] In some examples, the robot 110 can report the position information of the robot 110 in the warehouse system 100 to the control device 120, so that the control device 120 can manage and schedule the robot 110 according to the position information of the robot 110.

[0039] In some embodiments, when the robot 110 travels in the warehouse system 100, the traveling direction deviates, the traveling speed of the robot 110 is too fast when passing through a certain cell, the identification code 130 in the cell is dirty or damaged, or other situations that cause the robot 110 to fail to recognize the identification code 130 occur, the robot 110 can be determined to have a lost code event.

[0040] In some examples, when the lost code event occurs, 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 recognize a target marker within a first preset range around the robot 110 and obtain the relative position relationship between the target marker and the robot 110. The target marker can be a robot leg of the carrier 11 (i.e., a shelf leg), an identification code on a beam of the carrier 11 (i.e., an identification code on a beam of the shelf), or any marker that can be recognized by the robot. The type of the target marker is not limited in the embodiments of the present disclosure. 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 110 and the target marker, so as to realize the repositioning of the robot 110. After the repositioning of the robot 110, the second position information of the target identification code in the global map can be determined based on the first position information. Then, the robot 110 can move to the target identification code based on the first position information and the second position information, and recognize the target identification code, so that the robot can autonomously recover from the lost code event when the lost code event occurs.

[0041] The lost code self-recovery method of the robot provided by the present disclosure will be described in detail below with reference to the accompanying drawings.

[0042] FIG. 2A is a schematic diagram of a method for self-recovery of a lost code of a robot according to some embodiments of the present disclosure. The method for self-recovery of a lost code of a robot shown in FIG. 2A can be implemented by the robot 110 in the warehouse system 100 according to the above embodiments. As shown in FIG. 2A, the method for self-recovery of a lost code of a robot can include the following steps 201-203.

[0043] In step 201, at least one target marker within a first preset range around the robot is identified when the robot has a lost code event.

[0044] In some examples, a plurality of different acquisition devices can be provided on the robot, and the functions of the acquisition devices can be different. For example, the acquisition devices on the robot can include a laser radar sensor (hereinafter referred to as a laser radar) and an image sensor. For example, when the robot has a lost code event, at least one target marker within a first preset range around the robot can be detected by the laser radar, and at least one target marker within a first preset range around the robot can also be detected by the image sensor (such as a camera).

[0045] In some examples, the target marker can include a shelf leg of a shelf around the robot, an identification on a crossbeam, a ground identification, and the like, which can be used to locate the robot. For example, taking the target marker as a shelf leg as an example, when the robot has a lost code event, the shelf leg around the robot can be detected by the laser radar; for another example, taking the target marker as a ground identification code as an example, when the robot has a lost code event, the ground image around the robot can be acquired by the camera to identify the identification code.

[0046] In step 202, first position information of the robot is determined based on the at least one target marker.

[0047] In some examples, the first position information of the robot can include a position change of the robot. For example, the robot can acquire a ground image by an image sensor during movement to determine a position change of the robot.

[0048] For example, when the robot has a lost code event, the robot can generate a path corresponding to a space-filling curve according to a preset traversal space size and a preset space-filling curve. The preset traversal space size can be determined based on a route offset amount when the robot navigates based on the acquired positioning identification, and the route offset amount can be determined according to a field of view range of an image sensor used by the robot.

[0049] In some examples, after determining the path corresponding to the preset space-filling curve, the robot can generate the first action instruction and the collection instruction according to the path, and send the collection instruction to the image sensor. The robot moves along the path corresponding to the preset space-filling curve based on the first action instruction. During the movement of the robot, the image sensor continuously collects the ground images based on the collection instruction, and sends the collected ground images to the robot. The robot determines the position change of the robot according to the received ground images.

[0050] In some examples, the first position information of the robot can be the position of the robot in the global map. For example, after the code loss occurs, the robot can collect the shelf legs around the robot through the laser radar to determine the relative position relationship between the robot and the shelf legs, and then determine the first position information of the robot in the global map based on the relative position relationship.

[0051] In step 203, the robot moves based on the first position information, and identifies the target identification code during the movement.

[0052] In some examples, after determining the position change of the robot, the robot can generate a second action instruction of the robot at the next moment according to the path corresponding to the space-filling curve and the position change of the robot. The robot continues to move along the path corresponding to the space-filling curve according to the second action instruction, and continues to receive the ground images collected by the image sensor. Until the robot identifies the identification code (i.e., the target identification code) from the ground images collected by the image sensor.

[0053] For example, when the robot identifies the target identification code from the ground images collected by the image sensor, the robot can determine the position where the robot is located based on the target identification code, and then continue to move based on the position determined based on the target identification code. That is, in the embodiment of the present disclosure, the robot can repeat the above steps 210 to 203 until the target identification code is identified from the ground images collected by the image sensor.

[0054] In some examples, the robot can determine the second position information of the target identification code in the global map based on the first position information of the robot in the global map, and then move to the target identification code based on the first position information of the robot and the second position information of the target identification code, and identify the target identification code.

[0055] The method for self-recovery of a robot from a lost code event provided by the embodiments of the present disclosure can identify a marker code (such as a ground two-dimensional code) in a ground image captured by a camera during movement of the robot when the robot has a lost code event, and determine that the robot has self-recovered from the lost code event when the marker code is identified. The robot can also be positioned by a laser radar detecting a marker such as a shelf leg, and the position of a target marker code is determined according to the position information of the robot, and then the robot moves to the target marker code to identify the target marker code. Therefore, the efficiency of the robot recovering from the lost code event can be improved, and the safety problem caused by relying on manual processing of the lost code event and the problem of affecting the work efficiency of the warehouse system can be avoided.

[0056] FIG. 2B is a schematic diagram of another method for self-recovery of a robot from a lost code event provided by some embodiments of the present disclosure. As shown in FIG. 2B, the method includes steps 210 to 240 as shown below. The steps 201 to 202 described above can be implemented by steps 210 to 220 in FIG. 2B, and the step 203 can be implemented by steps 230 to 240 in FIG. 2B.

[0057] Step 210, in the case that the robot has a lost code event, at least one target marker in 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.

[0058] FIG. 3 is a schematic diagram of a structure of a robot provided by some embodiments of the present disclosure.

[0059] As shown in FIG. 3, the robot 110 can be configured with a marker code camera 101, an event monitoring module 102, an acquisition device 103, a data collection module 104, a marker searching module 105, a storage module 106, and a control module 107. The storage module 106 can be a memory, and the control module 107 can be a microcontroller unit (MCU).

[0060] In some embodiments, when the robot moves in the warehouse system, the marker code in the ground cell can be identified by the marker code camera 101 to determine the position information of the robot in the warehouse system according to the position information stored in the identified marker code.

[0061] In some embodiments, the event monitoring module 102 can obtain the state information of the robot in real time to determine whether an abnormal event occurs to the robot. The abnormal event can include a missing code event, a device failure event, a communication abnormal event, etc. For example, when the robot travels in the warehouse system, the robot can be determined to have a missing code event if the traveling direction deviates, the traveling speed is too fast when passing through a certain cell, or the identification code in the cell is dirty or damaged and cannot be identified.

[0062] In some embodiments, when the robot has an abnormal event and the abnormal event is an unrecoverable event (i.e., an event that the robot cannot recover by itself), the event monitoring module 102 can 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 can include a fault event type, for example, the fault event type is a device failure event.

[0063] In some embodiments, when the robot has an abnormal event and the abnormal event is a missing code event, the event monitoring module 102 can send a self-recovery request to the control device. After the control device receives the self-recovery request sent by the robot, the control device can 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 perform self-recovery, the robot starts to perform a self-recovery process.

[0064] In some embodiments, when the event monitoring module 102 fails to apply for self-recovery to the control device, such as when the network communication between the robot and the control device is not smooth or the control device does not allow the robot to perform self-recovery, 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 a fault event type, for example, the fault event type is a missing code event.

[0065] In some embodiments, when the robot is in an immovable state, 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 a fault event type, for example, the fault event type is a missing code event.

[0066] For example, the robot in an immovable state can include that when the robot is in a load state or a lifting state, the cargo box or the cargo shelf carried by the robot in the moving process can collide with other robots or obstacles, thereby causing the robot to be immovable.

[0067] In some embodiments, the robot performs a self-recovery process, which can include detecting an environment within a first preset range around the robot by the acquisition device 103 and obtaining at least one target marker. The acquisition device 103 can be a laser radar sensor (hereinafter referred to as a laser radar) or an image sensor (e.g., a camera). The laser radar is used to detect markers such as shelf legs within the first preset range around the robot, which can be used to locate the position of the robot. The camera is used to detect a ground image during movement of the robot, which can include an identification code. It should be noted that the following embodiments are exemplarily described by taking the laser radar as an example to acquire the shelf legs.

[0068] In some examples, the robot can first detect an environment within a first preset range around the robot by the laser radar and obtain corresponding laser radar data. For example, the laser radar data obtained by the laser radar can be full waveform data, photon counting data, or discrete point cloud data, etc. The first preset range can be the maximum range that the laser radar can detect.

[0069] In some embodiments, some objects in the warehouse system can be used as markers to assist in positioning the robot, such as shelf legs, identification codes on shelf beams, etc. The type of marker is not limited in the embodiments of the present disclosure. In the case of a lost code event of the robot, the robot can determine the position information of the robot in the warehouse system based on the position information of the markers.

[0070] For example, in the case of a lost code event of the robot, the robot can detect an environment within a first preset range around the robot by the laser radar and obtain laser radar data, which includes one or more objects corresponding to laser points and a relative positional relationship between the laser points corresponding to each object and the robot. The objects in the laser radar data can include markers and / or non-markers. The markers can be shelf legs, identification codes on shelf beams, etc. The non-markers can be other robots, boxes, etc. The relative positional relationship between the laser points corresponding to each object and the robot can 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.

[0071] In some examples, in the case of a lost code event of the robot, one target marker or multiple target markers can be identified by the laser radar. The number of target markers identified is not limited in the embodiments of the present disclosure, which is related to the position, angle, and layout of the warehouse system when the robot loses the code, etc.

[0072] For example, as shown in FIG. 3, after obtaining the lidar data, the data collection module 104 sends the lidar data to the code searching module 105. In the case of no obvious occlusion, the laser points of the markers are more and more concentrated than the laser points of non-markers. Therefore, after receiving the lidar data, the code searching module 105 can analyze the lidar data based on the target detection algorithm of the laser points to determine the laser points corresponding to at least one target marker in the lidar data, and the relative positional relationship between the laser points corresponding to the at least one target marker and the robot, i.e., the distance between the laser points corresponding to each target marker and the robot, and the angle between the laser points corresponding to each target marker and the robot.

[0073] FIG. 4 is a scene diagram of a code loss self-recovery method of a robot according to some embodiments of the present disclosure.

[0074] As shown in FIG. 4, taking the case that the robot 110 loses the code after passing the marker code A as an example, when the robot 110 executes the self-recovery process, the robot 110 can first obtain the lidar data within a first preset range around the robot 110 through the lidar. Taking the target marker, i.e., the shelf leg 1 (leg 1) as an example, the code searching module 105 can obtain the laser points corresponding to the leg 1 and the relative positional relationship between each laser point in the laser points and the robot 110 from the lidar data based on the target detection algorithm of the laser points.

[0075] In some examples, after obtaining the laser points corresponding to the leg 1 and the relative positional relationship between each laser point in the laser points and the robot 110, the code searching module 105 can determine the center point a of the leg 1 according to the laser points corresponding to the leg 1, and determine the relative positional relationship between the center point a and the robot 110 according to the relative positional relationship between each laser point and the robot 110, such as the distance between the center point a of the leg 1 and the robot 110, and the angle relationship between the center point a of the leg 1 and the robot 110, etc.

[0076] In some embodiments, in the case that the markers are occluded or there are no markers within the first preset range around the robot, the lidar can not be able to detect the markers or calculate the relative positional relationship between the target markers and the robot within the first preset range around the robot. In this case, the event monitoring module 102 can report the fault information to the control device according to a certain period and wait for processing. The fault information includes a fault event type, and the fault event type is the code loss event.

[0077] Step 220, determining the first position information of the robot in the global map based on the relative positional relationship between each target marker and the robot.

[0078] In some embodiments, the storage module 106 of the robot can be preconfigured with a global map corresponding to the warehouse system, which can include position information of a plurality of to-be-matched markers in the warehouse system, position information of a plurality of identification codes, and state information of a cell corresponding to each identification code, and the like.

[0079] FIG. 5 is a schematic diagram of another code loss self-recovery method of a robot according to some embodiments of the present disclosure. As shown in FIG. 5, the step 220 can include steps 510-530 as shown below.

[0080] In step 510, the first estimated position information of the robot is determined, and based on the first estimated position information and the relative positional relationship between each target marker and the robot, the second estimated position information of each target marker is determined.

[0081] In some embodiments, the step 510 of determining the first estimated position information of the robot includes: obtaining fourth position information of an identification code last obtained by the robot before the code loss event occurs, and travel information of the robot; and determining the first estimated position information based on the fourth position information and the travel information.

[0082] For example, after determining the relative positional relationship between the target marker and the robot, the code searching module 105 can first obtain, from the data collection module 104, an identification code recognition result corresponding to the identification code last recognized by the robot before the code loss event occurs, and travel information of the robot, wherein the identification code recognition result is the fourth position information of the identification code last recognized.

[0083] In some examples, the travel information of the robot can at least include a travel direction and a travel distance of the robot after the last identification code is recognized before the code loss event occurs. The travel direction of the robot can be obtained by a gyroscope or other detection device in the robot, and the travel distance of the robot can be obtained by an odometer in the robot. The manner of obtaining the travel information of the robot is not limited in the embodiments of the present disclosure.

[0084] For example, the code searching module 105 can determine the first estimated position information of the robot based on the fourth position information and the travel information. It should be noted that the first estimated position information of the robot may not be the actual position information of the robot because the travel information obtained by the robot through the odometer and the gyroscope and the like may not be accurate enough. Therefore, the first estimated position information of the robot needs to be further calibrated to obtain more accurate position information of the robot (i.e., the first position information).

[0085] As shown in FIG. 4, when the robot 110 loses the code after passing the identification code A, the code searching module 105 can determine, based on the fourth position information of the identification code A and the travel information of the robot 110, that the first estimated position information of the robot 110 can be the position information corresponding to the point O.

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

[0087] At step 520, at least one first target offset is determined based on the second estimated position information of each target marker and the third position information of each to-be-matched marker in the plurality of to-be-matched markers.

[0088] For example, the number of target markers recognized by the robot can 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 to-be-matched marker in the map respectively to determine the most matched target offset, so as to realize accurate positioning of the robot in the map. When the robot recognizes one target marker, the offset between the second estimated position of the target marker and the third position information of each to-be-matched marker in the map can be determined to further determine the target offset according to which the robot finds the code.

[0089] It should be noted that, in the case where the robot recognizes one target marker, it is not necessary to determine the accurate position of the robot in the map, and the robot can find the target identification code by traveling according to the target offset with the largest number.

[0090] The determination of the first target offset will be described below in combination with different numbers of target markers.

[0091] In some embodiments, in the case where the number of target markers is multiple, the above step 520 can include: determining a first candidate offset between a first target marker and a first matched marker based on the second estimated position information of each target marker and the third position information of each to-be-matched marker; determining the corrected position information of each second target marker based on the first candidate offset and the second estimated position information of at least one second target marker; and determining at least one first target offset based on the corrected position information of each second target marker and the third position information of at least one second matched marker.

[0092] In some examples, the first marker is any of the target markers, and the first matched marker is any of the to-be-matched markers. The at least one second marker includes a target marker other than the first marker among the target markers, and the at least one second matched marker includes a to-be-matched marker other than the first matched marker among the to-be-matched markers.

[0093] Exemplarily, the code searching module 105 can acquire a global map corresponding to the warehouse system from the storage module 106. The global map can store actual position information (i.e., the third position information) of all markers in the warehouse system. The code searching module 105 can take all markers in the global map as to-be-matched markers. Alternatively, the code searching module 105 can acquire a regional map in the vicinity of the last identified marker based on the fourth position information of the last identified marker, and take markers in the regional map as to-be-matched markers.

[0094] For example, as shown in FIG. 4, taking the last marker identified by the robot before the code loss event as marker A as an example, the code searching module 105 can acquire a corresponding regional map in the global map based on the fourth position information of the marker A.

[0095] It should be noted that, since the distance between the position of the robot when the code loss event occurs and the position of the last identified marker is not too far, the to-be-matched markers in the regional map contain the target markers identified by the robot. Moreover, since the range of the regional map is smaller than that of the global map, the number of to-be-matched markers is smaller when the markers in the regional map are taken as to-be-matched markers, thereby shortening the time for determining the target offset and improving the efficiency of the code loss self-recovery.

[0096] In some embodiments, when the number of target markers identified by the robot is a plurality, any of the identified target markers can be matched with the to-be-matched markers in the map. For example, the code searching module 105 can take any of the plurality of target markers as a first marker, and take any of the above plurality of to-be-matched markers as a first matched marker, to determine a first candidate offset between the first marker and the first matched marker.

[0097] Exemplarily, as shown in FIG. 4, taking the multiple target markers recognized by the robot as shelf legs 1 (leg1), 2 (leg2), 3 (leg3) and 4 (leg4), and the multiple to-be-matched markers as shelf legs A (legA), B (legB), C (legC), D (legD), E (legE), F (legF), G (legG) and H (legH) in a shelf 11 as examples, in a case where leg1 is determined as the first marker, the second estimated position information of leg1 is (x1, y1), legA is determined as the first matched marker, and the third position information of legA is (x A , y A ), the first candidate offset offset1 between leg1 and legA can be determined based on the second estimated position information (x1, y1) and the third position information (x A , y A ). The first candidate offset offset1 can include an offset in the horizontal coordinate between leg1 and legA, and an offset in the vertical coordinate between leg1 and legA, such as an offset in the horizontal coordinate offset1.x between leg1 and legA, which can be x A -x1, and an offset in the vertical coordinate offset1.y between leg1 and legA, which can be y A -y1.

[0098] In some embodiments, after determining the first candidate offset, the code searching 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 the at least one second marker. The at least one second marker includes target markers other than the first marker (such as leg1) in the multiple target markers, such as leg2, leg3 and leg4. That is, after determining the first candidate offset, the position information of the other markers in the 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 according to 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).

[0099] In some embodiments, determining the at least one first target offset based on the corrected position information of each second marker and the third position information of the at least one second matched marker includes: determining a matching number of the third position information matched with the corrected position information of each second marker based on the corrected position information of each second marker and the third position information of the at least one second matched marker; determining the first candidate offset as the first target offset when the matching number is greater than or equal to a number threshold; and sequentially traversing the at least one second matched marker until the at least one first target offset is determined when the matching number is less than the number threshold.

[0100] For example, after the corrected position information of each second marker is determined, the corrected position information of each second marker can be matched with the third position information of the at least one second matched marker in the plurality of to-be-matched markers, and a matching number of the third position information matched with the corrected position information of each second marker can be determined. The at least one second matched marker includes the to-be-matched markers other than the first matched marker (e.g., legA) in the plurality of to-be-matched markers, such as legB, legC, …, and legH.

[0101] For example, the number threshold can be determined according to the product of the total number of second markers and a preset ratio. For example, when the preset ratio is 2 / 3 and the total number of second markers is 3, the number threshold can be 2.

[0102] In some examples, when the matching number of the third position information matched with the corrected position information of each second marker is large, it indicates that the first marker is matched with the first matched marker, and the first candidate offset can be directly determined as the target offset. When the matching number of the third position information matched with the corrected position information of each second marker is small, it indicates that the first marker is not matched with the first matched marker, and the first marker can be matched with the next to-be-matched marker until the to-be-matched marker matched with the first marker is found.

[0103] For example, taking the quantity threshold equal to 2 as an example, in a case where 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, the matching quantity is equal to the quantity threshold, indicating that legl and legA are successfully matched, and thus the first candidate offset offsetl determined based on the second estimated position information of legl and the third position information of legA can be determined as the first target offset. In a case where the corrected position information of leg2, leg3, and leg4 does not match the third position information of legA, legB, …, legH, other to-be-matched markers (such as legB, legC, …, legH) other than legA are continuously traversed until a first candidate offset corresponding to a matching quantity exceeding the quantity threshold is determined, and the first candidate offset is determined as the first target offset.

[0104] Exemplarily, when matching the first marker with the plurality of to-be-matched markers, one to-be-matched marker that matches the first marker can be determined, or a plurality of to-be-matched markers that match the first marker can be determined. In a case where only one to-be-matched marker matches the first marker, there is only one first target offset. In a case where a plurality of to-be-matched markers match the first marker, there can be a plurality of first target offsets.

[0105] In some other embodiments, in a case where the quantity of target markers is one, the step 520 can include determining a first target offset between the target marker and each to-be-matched marker based on the second estimated position information of the target marker and the third position information of each to-be-matched marker.

[0106] Exemplarily, in a case where the quantity of target markers recognized by the robot is one, the code searching module 105 can determine a first target offset between the target marker and each to-be-matched marker based on the second estimated position information of the target marker and the third position information of each to-be-matched marker.

[0107] For example, as shown in FIG. 4, taking a target marker recognized by the robot as a shelf leg 1 (legl) as an example, the code searching module 105 can determine a first target offset between legl and each of legA, legB, legC, …, legH based on the second estimated position information of legl and the third position information of each of legA, legB, legC, …, legH.

[0108] In some embodiments, in a case where the third position information of the to-be-matched marker in the global map or the regional map cannot be matched with the second estimated position information of the at least one target marker, the at least one first position information of the robot cannot be determined, and thus the target identification code closest to the robot cannot be determined based on the first position information. Therefore, in a case where the robot fails to determine the at least one first position information, 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 a fault event type, for example, the fault event type is a code loss event.

[0109] In step 530, based on the first target offset and the first estimated position information of the robot, each first position information of the robot in the global map is determined.

[0110] In some embodiments, in a case where the number of target markers is multiple, there are multiple cases of successful matching between each target marker and each to-be-matched marker, and the number of first target offsets is multiple; there is only one case of successful matching between each target marker and each to-be-matched marker, and the number of first target offsets is one. In a case where the number of target markers is one and the number of to-be-matched markers is multiple, the number of first target offsets is multiple.

[0111] As shown in FIG. 4, in a case where the target markers are leg1, leg2, leg3, and leg4, leg1, leg2, leg3, and leg4 are matched with legA, legB, legC, and legD respectively, and are also matched with legE, legF, legG, and legH respectively, and the first target offsets are offset1 and offset2 respectively. In a case where leg1, leg2, leg3, and leg4 are only matched with legE, legF, legG, and legH, the first target offset is offset2. In a case where the target marker is only leg1, each first target offset between leg1 and legA, legB, legC, …, legH can be determined respectively.

[0112] In some embodiments, in a case where the number of first target offsets is one, one 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; in a case where 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. That is, the first position information can be one or multiple, which is not limited in the embodiments of the present disclosure.

[0113] As shown in FIG. 4, for example, in the case that the number of the first target offset is one, taking the first target offset offset2 as an example, the first position information of the robot 110 can be determined as 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, so as to accurately locate the position information of the robot in the map.

[0114] For another example, in the case that the number of the first target offset is multiple, taking the first target offsets offset1 and offset2 as an example, the first position information of the robot 110 can be determined as the position information corresponding to point O’ based on the first target offset offset1 and the first estimated position information O of the robot 110, and another first position information of the robot 110 can be determined as 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. That is, in the case that the number of the first target offset is multiple, although the position information of the robot in the map cannot be accurately located, the same offset with the largest number (e.g., the second target offset) can be determined based on the offsets between the first position information of the robot and the second position information of the corresponding identification code, and the robot can move according to the offset to find the identification code.

[0115] In step 230, the second position information of the target identification code is determined in the global map based on the first position information.

[0116] In some embodiments, after determining the above-mentioned at least one first position information of the robot, the code searching module 105 can determine the second position information of the target identification code corresponding to the position where 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.

[0117] In some embodiments, in the case that the number of the first position information is one, the code searching module 105 can determine the second position information of one target identification code corresponding to the first position information in the global map. In the case that the number of the first position information is multiple, the code searching module 105 can determine the second position information of each target identification code corresponding to each first position information in the global map.

[0118] FIG. 6 is a schematic diagram of another method for self-recovery of a robot from a code loss according to some embodiments of the present disclosure. As shown in FIG. 6, the above-mentioned step 230 can include steps 610 to 620 as shown below.

[0119] In step 610, at least one candidate identification code closest to the robot is determined in the global map based on the first position information.

[0120] In some embodiments, the code searching module 105 can determine at least one candidate identification code closest to the robot in the global map or the regional map based on the first position information. 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.

[0121] As shown in FIG. 4, in the case that the identification codes closest to the center point O' of the robot 110 (determined according to the first position information of the robot) are the identification code C and the identification code D (the distances O'C and O'D between the identification code C and the identification code D and the robot are both m), the identification code C and the identification code D can be determined as the candidate identification codes.

[0122] In step 620, 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.

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

[0124] For example, the offset angle between the candidate identification code and the robot can be the included angle between the line connecting the center point of the candidate identification code and the center point of the robot and the heading direction of the robot. The center point of the candidate identification code can be determined according to the position information of the candidate identification code; the center point of the robot can be determined according to the first position information of the robot; the pose information of the robot can be determined by the control module 107, and the pose information of the robot is sent to the code searching module 105 by the data collection module 104, so that the code searching module 105 can determine the heading direction of the robot according to the pose information of the robot.

[0125] It should be noted that in the case that the robot moves to the target identification code closest to it and with the smallest offset angle, the angle of the robot required to rotate in place is the smallest and the moving distance is the shortest, that is, the moving cost required for the robot to move to the target identification code is the smallest.

[0126] As shown in FIG. 4, any of the candidate identification code C and the candidate identification code D can be determined as the target identification code; or the offset angle between the candidate identification code C and the robot and the offset angle between the candidate identification code D and the robot can be determined first, and in the case that the offset angle a between the candidate identification code C and the robot is smaller than the offset angle b between the candidate identification code D and the robot, the candidate identification code C can be determined as the target identification code.

[0127] It should be noted that the above manner of determining the target identification code is only an example, and the embodiments of the present disclosure do not limit the same. For example, the identification code along the direction of the robot vehicle head can be directly determined as the target identification code, so that the robot does not need to turn after moving to the target identification code.

[0128] In some embodiments, in the case that the state of the cell where the target identification code is located is a prohibited moving state, or the type of the robot does not match the type of the cell, i.e., the robot cannot move in the cell, the code searching module 105 can determine the target identification code among the candidate identification codes other than the target identification code. In the case that all candidate identification codes cannot be the target identification code, 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 a fault event type, for example, the fault event type is a lost code event.

[0129] For example, the cell being in a prohibited moving state can include that a cargo box is placed in the cell, so that the robot cannot move in the cell, and the type of the robot not matching the type of the cell can include that the cell is a cell at the bottom of a shelf, and the type of the robot is a cargo box robot, in which case the robot cannot move in the cell at the bottom of the shelf.

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

[0131] 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 identifies the target identification code through the identification code camera 101, and recovers from the lost code event.

[0132] Exemplarily, the above step 240 can 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 offset according to the number of the second candidate offset; moving to the corresponding target identification code based on the second target offset, and identifying the target identification code.

[0133] In some examples, the number of the second candidate offset quantities can be one or multiple. The determining the second target offset quantity from the second candidate offset quantities according to the number of the second candidate offset quantities includes: in a case that the number of the second candidate offset quantities is one, determining the second candidate offset quantity as the second target offset quantity; and in a case that the number of the second candidate offset quantities is multiple, determining a second candidate offset quantity with the largest number of same offset quantities from the multiple second candidate offset quantities as the second target offset quantity.

[0134] In some examples, the code searching module 105 can determine a second candidate offset quantity between each first position information and each second position information of the target identification code corresponding to the first position information based on the first position information of the robot and the second position information of the target identification code corresponding to the first position information. The second candidate offset quantity includes a distance and an angle relationship between the target identification code and the robot.

[0135] For example, in a case that the number of the first position information is one, the number of the determined target identification code is also one. The code searching module 105 can determine one second candidate offset quantity based on the first position information of the robot and the second position information of the target identification code, and send the second candidate offset quantity to the event monitoring module 102 as the second target offset quantity. After receiving the second target offset quantity, the event monitoring module 102 can send the second target offset quantity to the control module 107. The control module 107 can control the robot to move to the target identification code based on the second target offset quantity, so that the robot can identify the target identification code through the identification code camera 101.

[0136] As shown in FIG. 4, 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 of β and move by a distance of m according to the second candidate offset quantity (i.e., the second target offset quantity) between the target identification code C and the robot 110, so as to move to the target identification code C.

[0137] That is, in a case that the number of the second candidate offset quantity between the first position information and the corresponding second position information is one, one first position information of the robot in the global map can be determined, so that the repositioning of the robot can be realized, and the second candidate offset quantity is the second target offset quantity. Then, the robot can move to the target identification code based on the second target offset quantity and identify the target identification code, so as to recover from the code loss event.

[0138] Exemplarily, in the case that the number of the first position information is multiple, one target identification code can be determined according to each first position information, and thus the number of the determined target identification codes is also multiple, and the code searching 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 lost code event. That is, in the case that the number of the first target offset is multiple, the position information of the robot in the map does not need to be accurately positioned, and the second candidate offset 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 robot can travel according to the offset to find the identification code.

[0139] As shown in FIG. 4, taking the first position information of the robot 110 as the position information corresponding to the points O', O" and O'" and the target identification codes corresponding to each first position information as the target identification code C, the target identification code B and the target identification code E for example, the offset distance corresponding to the second candidate offset O'C between the target identification code C and the point O' is m, 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, 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, the offset angle is θ. 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 the offset distance m and the offset angle β, and the second candidate offset O'C or the second candidate offset O"B can be determined as the second target offset. Thus, the control module 107 can control the robot to move to the target identification code (which can be the target identification code B or the target identification code C) based on the second target offset. In this case, it does not matter whether the target identification code is the identification code B or the identification code C, as long as the robot travels according to the second target offset to find the target identification code. After the robot travels according to the second target offset, the target identification code B or the target identification code C can be identified by the identification code camera 101, and the lost code event can be recovered.

[0140] That is, in the case that the number of second candidate offsets between the first position information and the corresponding second position information is multiple, the robot only needs to determine the second candidate offset with the largest number of same offsets as the second target offset, and move to the target identification code based on the second target offset, so that in the case that 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 missing code event.

[0141] 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 can 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 can include the cell corresponding to the target identification code, and / or the cell on the movement path of the robot moving to the target identification code.

[0142] In some examples, the robot may or may not pass through other cells when moving to the target identification code. In the case that the robot does not pass through other cells when moving to the target identification code, the at least one target cell to be locked includes the cell corresponding to the target identification code; in the case that the robot passes through other cells when moving to the target identification code, the at least one target cell to be locked includes the cell corresponding to the target identification code and the other cells passed through by the robot when moving to the target identification code.

[0143] For example, the event monitoring module 102 can send a lock request to the control device, which can include the first position information of the robot, the second position information of the target identification code, and the second target offset. After receiving the lock request, the control device can lock the cell corresponding to the target identification code according to the second position information of the target identification code; and the control device can determine the movement path of the robot moving 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 when 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. In the case that there are other cells on the movement path of the robot, the control device can also lock the cells on the movement path.

[0144] In some examples, in the case that the robot successfully applies for locking the cells, other robots in the warehouse system cannot move or stay in the at least one target cell to be locked, so that the self-recovery of the robot can be avoided from being hindered by other robots.

[0145] As shown in FIG. 4, taking the target identification code E as an example, the event monitoring module 102 can send a locking request to the control device to make the control device lock at least one target cell. Since the robot 110 does not need to pass through other cells in the process of 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 warehouse system cannot move in the target cell.

[0146] In some embodiments, in the case that the event monitoring module 102 fails to apply for locking at least one target cell to the control device, the event monitoring module 102 can continue to report fault information to the control device (for example, according to a certain period) and wait for processing. The fault information includes a fault event type, for example, the fault event type is a lost code event.

[0147] For example, in the case that the network communication between the robot and the control device is not smooth, or the target cell is occupied by other robots, etc., the event monitoring module 102 may fail to apply for locking.

[0148] The lost code self-recovery method of the robot provided by the embodiments of the present disclosure can make the robot send a locking request to the control device after determining the second position information of the target identification code, to request the control device to lock at least one target cell, so that other robots in the warehouse system cannot move or stay in the at least one locked target cell, thereby avoiding the hindrance of other robots to the self-recovery of the robot.

[0149] FIG. 7 is a schematic diagram of another lost code self-recovery method of a robot provided by some embodiments of the present disclosure. As shown in FIG. 7, after the above step 240, the lost code self-recovery method of the robot further includes steps 710 to 730 as shown below.

[0150] Step 710: In the case that the robot identifies the target identification code, the first offset between the target identification code and the robot is determined, and the pose of the robot is adjusted based on the first offset, so that the first offset after the pose adjustment is less than or equal to a preset threshold.

[0151] 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. After the robot identifies the target identification code by the identification code camera 101, the second position information stored in the target identification code can be obtained, that is, in the case that the robot can identify the target identification code, the robot can send fault release information and a release locking request to the control device.

[0152] For example, after receiving the fault release information, the control device can clear the fault information corresponding to the missing code event; after receiving the unlock request, the control device can unlock at least one target cell in the locked state based on the unlock request, so that other robots in the warehouse system can move in the at least one target cell.

[0153] In some examples, the control device can also poll whether the robot sends new fault information every preset time length. Wherein, the preset time length can be determined according to the time length of the self-recovery of the robot, for example, the longest time length required for the robot to successfully self-recover is 10s, and the preset time length can be set to 10s. If the control device does not receive new fault information reported by the robot within the preset time length, it is determined that the robot has identified the target identification code (i.e. the robot has successfully recovered from the missing code event). In the case where the control device determines that the robot has successfully recovered from the missing code event, the fault information corresponding to the missing code event can be cleared, and at least one target cell in the locked state can be unlocked to allow other robots to move in the at least one target cell.

[0154] In some embodiments, after determining that the robot has identified the target identification code, the control device can re-determine the to-be-processed task and the corresponding movement 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 to-be-processed task based on the movement path to execute the to-be-processed task.

[0155] In some embodiments, after the robot moves to the target identification code, there can still be a displacement (i.e. a first displacement) between the robot and the target identification code, wherein the first displacement includes the distance and angular relationship between the center point of the robot and the center point of the target identification code. Therefore, the robot can adjust the pose of the robot based on the first displacement to reduce the first displacement between the robot and the target identification code.

[0156] For example, the robot can identify the target identification code through the identification code camera 101 and obtain the first displacement between the robot and the target identification code, so that the control module 107 can adjust the pose of the robot according to the first displacement, and make the first displacement between the robot and the target identification code after the pose adjustment less than or equal to a preset threshold. Wherein, the preset threshold can be set according to actual needs, and the specific value of the preset threshold in the embodiment of the present disclosure is not limited. It should be noted that in the case where 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. That is, in the case where the preset threshold is 0, the center point of the robot after the pose adjustment coincides with the center point of the target identification code.

[0157] It should be noted that the robot can not need to adjust the direction of the front of the robot to coincide with a normal driving direction (for example, a forward driving direction) when adjusting the pose. After the subsequent control device re-plans a movement path for the robot according to the position information of the robot (i.e., the second position information of the target marker), the robot can adjust the direction of the front of the robot according to the driving direction of the movement path.

[0158] FIG. 8A is a schematic diagram of adjusting the pose of the robot according to an embodiment of the present disclosure, and FIG. 8B is another schematic diagram of adjusting the pose of the robot according to an embodiment of the present disclosure.

[0159] As shown in FIG. 8A, after the robot 110 moves to the target marker C according to the second target offset, the robot 110 can recognize the target marker C, but there is still a first offset between the robot 110 and the target marker C. The control module 107 can adjust the pose of the robot 110 based on the first offset, so that the first offset between the robot 110 and the target marker C after the pose adjustment is less than or equal to a preset threshold. As shown in FIG. 8B, in the case where the preset threshold is 0, the center point O' of the robot 110 after the pose adjustment coincides with the center point c of the target marker C.

[0160] At step 720, in the case where the robot does not recognize the target marker, the robot moves within a second preset range around the robot and re-recognizes the target marker during the movement.

[0161] In some embodiments, since the target detection algorithm of the laser point may have errors in recognizing the marker, the relative position relationship between the robot and the target marker measured by the lidar may be inaccurate, so that 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 deviated. Therefore, when moving to the target marker based on the first position information, the robot may not be able to recognize the target marker after moving to the target marker.

[0162] In some examples, in the case where the robot does not recognize the target marker, the control module 107 can control the robot to move within a second preset range around the robot, and the robot can recognize the target marker through the marker camera 101 during the movement. The robot moving within the second preset range around the robot can include the robot rotating, advancing, retreating, etc. within the second preset range around the robot.

[0163] It should be noted 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 that the robot moves according to the second target offset and is still located at a position close to the target identification code. Therefore, the robot can move in a small range to find the target identification code. The second preset range can be a smaller area.

[0164] FIG. 9 is a schematic diagram of a robot re-identifying a target identification code according to an embodiment of the present disclosure.

[0165] As shown in FIG. 9, after the robot 110 moves to the target identification code C according to the second target offset, the robot 110 cannot identify the target identification code C due to the inaccuracy of the second target offset. Therefore, the robot 110 can move in a second preset range around it (e.g., move within the circle shown in FIG. 9) and identify the target identification code C during the movement.

[0166] At step 730, in a case where 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 a pose of the robot is adjusted based on the second offset, so that the second offset after the pose adjustment is less than or equal to a preset threshold.

[0167] In some embodiments, after the robot re-identifies the target identification code during the movement, there can still be an offset (i.e., a second offset) between the robot and the target identification code, where the second offset includes a distance and an angular relationship between a center point of the robot and a center point of the target identification code. Therefore, the robot can adjust the pose of the robot based on the second offset to reduce the second offset between the robot and the target identification code.

[0168] 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 pose of the robot according to the second offset, and make the second offset between the robot and the target identification code after the pose adjustment less than or equal to a preset threshold. The preset threshold can be explained with reference to the above embodiments, which will not be described here.

[0169] In some embodiments, after the robot re-identifies the target identification code, the robot can send a fault resolution information and an unlock request to the control device. After the control device receives the fault resolution information, the fault information corresponding to the lost code event can be cleared. After the control device receives the unlock request, at least one target cell in a locked state can be unlocked based on the unlock request, so that other robots in the warehouse system can move in the at least one target cell.

[0170] In some examples, the control device can also poll whether the robot sends new fault information every preset time length. In the case that the control device does not receive the new fault information reported by the robot within the preset time length, it can be determined that the robot has identified the target identification code (i.e., the robot has successfully recovered from the lost code event). In the case that the control device determines that the robot has successfully recovered from the lost code event, the fault information corresponding to the lost code event can be cleared, and at least one target cell which has been in the locked state is unlocked to enable other robots to move in the at least one target cell.

[0171] In some embodiments, after the control device determines that the robot has identified the target identification code, the robot can be re-determined a to-be-processed task and a corresponding movement path based on the second position information of the target identification code.

[0172] In some embodiments, in the case that the robot still fails to identify the target identification code during the movement within the second preset range around 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 a fault event type, for example, the fault event type is a lost code event.

[0173] The lost code self-recovery method of the robot provided by the embodiments of the present disclosure can be used to adjust the pose of the robot based on the first offset between the target identification code and the robot when the robot moves to the target identification code according to the second target offset, and the robot can identify the target identification code. In the case that the robot fails to identify the target identification code, the robot can enter a secondary code finding stage, i.e., the robot can re-identify the target identification code within a second preset range around the robot. Therefore, even if the second target offset deviates, the robot can move in a small range to find and re-identify the target identification code, thereby improving the success rate of the robot recovering from the lost code event.

[0174] FIG. 10 is a schematic diagram of another lost code self-recovery method of a robot provided by some embodiments of the present disclosure. As shown in FIG. 10, the method is applied to a robot, and the method includes the following steps 1010 to 1140.

[0175] Step 1010, obtaining state information of the robot.

[0176] In some embodiments, the robot can obtain the state information of the robot in real time to determine whether the robot has a lost code event.

[0177] Step 1020, determining whether the robot has a lost code event according to the state information.

[0178] In some embodiments, the robot performs step 1030 in the case where the robot determines from the status information that a loss-of-code event has occurred; the robot performs step 1140 in the case where the robot experiences an unresolvable event other than a loss-of-code event.

[0179] It should be noted that the implementation of step 1010 and step 1020 can refer to the related description of step 210, and details are not repeated here.

[0180] Step 1030, sending a self-recovery request to the control device.

[0181] In some embodiments, the self-recovery request can be sent to the control device in the case where the robot experiences a loss-of-code event.

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

[0183] In some embodiments, the robot performs step 1050 in the case where the control device allows the robot to self-recover; the robot performs step 1140 in the case where the control device does not allow the robot to self-recover.

[0184] For example, the control device allowing the robot to self-recover indicates that the robot applies for self-recovery successfully, such as the robot receiving an allow self-recovery notification sent by the control device; the control device not allowing the robot to self-recover indicates that the robot applies for self-recovery fails.

[0185] It should be noted that the implementation of step 1030 and step 1040 can refer to the related description of step 210, and details are not repeated here.

[0186] Step 1050, detecting a target marker within a first preset range around the robot.

[0187] In some embodiments, the robot can detect a target marker within a first preset range around the robot and determine the relative positional relationship between the target marker and the robot in the case where the control device allows the robot to self-recover.

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

[0189] In some embodiments, the robot performs step 1070 in the case where the robot detects the target marker; the robot performs step 1140 in the case where the robot does not detect the target marker.

[0190] For example, the robot detecting the target marker can include: the robot detecting the target marker within the first preset range and being able to determine the relative positional relationship between the target marker and the robot; and the robot not detecting the target marker can include: the robot not detecting the target marker within the first preset range or failing to determine the relative positional relationship between the target marker and the robot.

[0191] It should be noted that the implementation of steps 1050 and 1060 can refer to the related description of step 210, and details are not repeated here.

[0192] Step 1070, determining the first position information of the robot in the global map based on the relative positional relationship between the target marker and the robot.

[0193] In some embodiments, in the case that the robot can detect the target marker and determine the relative positional relationship between the target marker and the robot, the target marker can be matched in the global map first, and the third position information of the target marker in the global map is determined; and then the first position information of the robot in the global map is determined based on the relative positional relationship and the third position information.

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

[0195] In some embodiments, in the case that the first position information of the robot can be determined, the robot performs step 1090. In the case that the first position information of the robot cannot be determined, the robot performs step 1140.

[0196] For example, the first position information of the robot can be determined can include: the robot matching the target marker in the global map and determining the first position information of the robot in the global map; and the first position information of the robot cannot be determined can include: the robot not matching the target marker in the global map, thereby failing to determine the first position information of the robot, or the robot being in an immovable state.

[0197] It should be noted that the implementation of steps 1070 and 1080 can refer to the related description of steps 510 and 520, and details are not repeated here.

[0198] Step 1090, determining the target identification code closest to the robot based on the first position information, and moving to the target identification code to identify the target identification code.

[0199] 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; then, based on the first position information of the robot and the second position information of the target identification code, determine the second target offset between the target identification code and the robot, and move to the target identification code according to the second target offset and identify the target identification code.

[0200] Step 1100: whether the target identification code can be identified.

[0201] In some embodiments, in the case that the target identification code can be identified, the robot performs step 1130; in the case that the target identification code cannot be identified, the robot performs step 1110.

[0202] It should be noted that the implementation of step 1090 and step 1100 can refer to the related description of step 230 and step 240, and to avoid repetition, it will not be repeated here.

[0203] Step 1110: the robot re-identifies the target identification code in the process of moving in the second preset range around it.

[0204] In some embodiments, in the case that the robot cannot identify the target identification code, the robot can move in the second preset range around it and re-identify the target identification code in the process of moving.

[0205] Step 1120: whether the target identification code is re-identified.

[0206] In some embodiments, in the case that the target identification code is re-identified, the robot performs step 1130; in the case that the target identification code cannot be re-identified, the robot performs step 1140.

[0207] It should be noted that the implementation of step 1110 and step 1120 can refer to the related description of step 720, and to avoid repetition, it will not be repeated here.

[0208] Step 1130: adjusting the pose of the robot based on the offset between the target identification code and the robot.

[0209] In some embodiments, in the case that 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 lost code event.

[0210] In some examples, the robot can also adjust the pose of the robot 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 pose adjustment is less than or equal to a preset threshold.

[0211] It should be noted that the implementation of step 1130 can refer to the related description of steps 710 and 730. To avoid repetition, it will not be described here.

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

[0213] In some embodiments, in the case that the robot cannot self-recover, the fault information can be continuously reported to the control device and further processing is waited.

[0214] FIG. 11 is an interaction diagram of a robot and a control device provided by some embodiments of the present disclosure. As shown in FIG. 11, the lost code self-recovery method of the robot includes steps 1101 to 1109.

[0215] Step 1101, in the case that the robot has a lost code event, the robot sends fault information and a self-recovery request to the control device.

[0216] In some embodiments, in the case that the robot has a lost code event, the robot sends fault information and a self-recovery request to the control device.

[0217] Step 1102, in the case that the control device fails to respond, the robot continuously sends fault information to the control device.

[0218] In some embodiments, in the case that the control device fails to successfully respond to the self-recovery request sent by the robot, the robot can continue to send fault information to the control device.

[0219] Step 1103, in the case that the control device successfully responds, the robot is allowed to self-recover.

[0220] In some embodiments, in the case that the control device successfully responds to the self-recovery request sent by the robot, the robot can be allowed to self-recover. For example, the control device can send a self-recovery permission notification to the robot, or issue a self-recovery permission to the robot, etc.

[0221] Step 1104, before the robot moves to the target identification code, the robot sends a lock request to the control device.

[0222] 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 lock request can be sent to the control device.

[0223] Step 1105, the control device locks at least one target cell.

[0224] In some embodiments, after receiving the lock request, the control device can lock at least one target cell (including the cell corresponding to the target identification code, and / or the cell on the movement path of the robot moving to the target identification code) so that other robots in the warehouse system cannot move in the at least one target cell.

[0225] Step 1106, in the case of successful self-recovery of the robot, send the failure release information and the unlock request to the control device.

[0226] In some embodiments, in the case of successful identification of the target identification code by the robot, the robot can send the failure release information and the unlock request to the control device in the case of successful self-recovery.

[0227] Step 1107, the control device clears the failure information and unlocks the at least one target cell which has been in the locked state.

[0228] In some embodiments, after receiving the failure release information, the control device clears the failure information corresponding to the missing code event; after receiving the unlock request, the control device unlocks the at least one target cell which has been in the locked state, so that other robots in the warehouse system can move in these target cells.

[0229] Step 1108, in the case of failure of self-recovery of the robot, send the failure information to the control device.

[0230] In some embodiments, in the case of failure of the robot during self-recovery (for example, in the case of not detecting the target marker within the first preset range, failing to determine the relative position relationship between the target marker and the robot, failing to determine the first position information of the robot, the robot being in an immovable state, failing to determine the target identification code, failing to apply for locking the cell, failing to identify the target identification code, etc.), the control device can be sent the failure information and wait for processing.

[0231] Step 1109, the control device displays the failure information.

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

[0233] The robot self-recovery method provided by the embodiments of the present disclosure can detect at least one target marker within a first preset range around the robot, and determine first position information of the robot in a global map based on a relative positional relationship between each target marker and the robot, so as to realize repositioning of the robot after a lost code event.

[0234] Then, the robot can determine a target identification code closest to it based on the first position information, and move to the target identification code based on a second target offset between the robot and the target identification code. In the case that the robot can recognize the target identification code, the robot successfully recovers from the lost code event, and can further adjust its pose to eliminate the deviation between the robot and the target identification code. In the case that the robot fails to recognize the target identification code, the robot can move within a second preset range around it, and re-identify the target identification code during the movement. In the case that the robot re-identifies the target identification code, the robot successfully recovers from the lost code event, and can further adjust its pose to eliminate the deviation between the robot and the target identification code. Thus, the robot can recover to a normal state after a lost code event, avoiding safety problems and affecting the work efficiency of the warehouse system due to the fact that the lost code event can only be handled by manual work.

[0235] In addition, the robot can also interact with the control device to ensure the safety of the robot during self-recovery. For example, before the robot moves to the target identification code, a locking request can be sent to the control device to lock at least one target cell (including a cell corresponding to the target identification code, and / or a cell on a movement path corresponding to the movement of the robot to the target identification code), so that other robots in the warehouse system cannot move in the locked at least one target cell, to avoid hindering the self-recovery of the robot by other robots; and during the self-recovery of the robot, in the case of self-recovery failure, the robot can continuously send fault information to the control device, so that the control device or personnel can timely handle the lost code event of the robot, to avoid affecting the task execution of the robot and other robots.

[0236] FIG. 12 is a structural schematic diagram of another robot provided by some embodiments of the present disclosure. As shown in FIG. 12, the robot 1200 includes an identification module 1201, a first determination module 1202, a determination module 1202, and a movement module 1203.

[0237] The identification module 1201 is configured to identify at least one target marker within a first preset range around the robot in the case that the robot has a lost code event.

[0238] The determining module 1202 is configured to determine first position information of the robot based on the at least one target marker.

[0239] The moving module 1203 is configured to move to the target identification code based on the first position information, and identify the target identification code during the moving.

[0240] In some embodiments, the determining module 1202 is configured to determine a relative position relationship between each target marker in the at least one target marker and the robot based on the at least one target marker, 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.

[0241] In some embodiments, the determining module 1202 is configured to determine second position information of the target identification code in the global map based on the first position information. The moving module 1203 is configured to move to the target identification code based on the first position information and the second position information, and identify the target identification code.

[0242] In some embodiments, the determining module 1202 is configured to 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 the relative position relationship between each target marker and the robot. The determining module 1202 is configured to determine at least one first target offset based on the second estimated position information of each target marker and third position information of each target marker in the plurality of target markers to be matched. The determining module 1202 is configured to 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.

[0243] In some embodiments, the determining module 1202 is configured to obtain fourth position information of an identification code last obtained by the robot before the code loss event occurs, and travel information of the robot. The travel information includes a travel direction and a travel distance. The determining module 1202 is configured to determine the first estimated position information based on the fourth position information and the travel information.

[0244] In some embodiments, the determining module 1202 is configured to, in a case where the number of target markers is multiple, determine, based on the second estimated position information of each target marker and the third position information of each to-be-matched marker, a first candidate offset between a first marker in the target markers and a first matched marker in the to-be-matched markers; the first marker is any target marker in the multiple target markers, and the first matched marker is any to-be-matched marker in the multiple to-be-matched markers; determine, based on the first candidate offset and the second estimated position information of at least one second marker, corrected position information of each second marker; the at least one second marker includes target markers other than the first marker in the multiple target markers; and determine 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 matched marker; the at least one second matched marker includes to-be-matched markers other than the first matched marker in the multiple to-be-matched markers.

[0245] In some embodiments, the determining module 1202 is configured to determine, based on the corrected position information of each second marker and the third position information of at least one second matched marker, a matching number of the third position information matching the corrected position information of each second marker; in a case where the matching number is greater than or equal to a number threshold, determine the first candidate offset as the first target offset; and in a case where the matching number is less than the number threshold, sequentially traverse the at least one second matched marker until the at least one first target offset is determined.

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

[0247] In some embodiments, the moving module 1203 is configured to, in a case where the number of second candidate offsets is one, determine the second candidate offset as the second target offset; and in a case where the number of second candidate offsets is multiple, determine, as the second target offset, a second candidate offset with the largest number of same offsets in the multiple second candidate offsets.

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

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

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

[0251] As shown in FIG. 12, the robot 1200 further includes a sending module 1204.

[0252] In some embodiments, the sending module 1204 is configured to send, by the robot, 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 target cell; wherein the at least one target cell includes a cell corresponding to the target identification code, and / or a cell on a movement path corresponding to the target identification code to which the robot moves.

[0253] In some embodiments, the moving module 1203 is configured to, in a case where the number of the first position information is one, determine, based on the first position information and the second position information, a first offset between the target identification code and the robot; and move, by the robot, to the target identification code based on the first offset, and identify the target identification code.

[0254] In some embodiments, as shown in FIG. 12, the robot 1200 further includes a pose adjusting module 1205. The pose adjusting module 1205 is configured to, in a case where the robot identifies the target identification code, determine a first offset between the target identification code and the robot, and adjust the pose of the robot based on the first offset, so that the first offset after the pose adjustment is less than or equal to a preset threshold.

[0255] In some embodiments, the sending module 1204 is further configured to, in a case where the robot identifies the target identification code, send, by the robot, an unlocking request to the control device; wherein the unlocking request is used to request the control device to unlock at least one target cell that has been in a locked state, so that other robots can move in the at least one target cell.

[0256] In some embodiments, the moving module 1203 is further configured to, in a case where the robot fails to recognize the target identification code, move the robot within a second preset range around the robot, and re-recognize the target identification code during the movement; and the pose adjusting module 1205 is further configured to, in a case where the robot re-recognizes the target identification code during the movement, determine a second offset between the target identification code and the robot, and adjust the pose of the robot based on the second offset, so that the second offset after the pose adjustment is less than or equal to a preset threshold.

[0257] In some embodiments, the determining module 1202 is further configured to obtain state information of the robot, and determine whether the abnormal event is a code loss event in a case where it is determined according to the state information of the robot that the abnormal event occurs.

[0258] In some embodiments, the sending module 1204 is further configured to, in a case where it is determined that the abnormal event is an unrecoverable event or a code loss event, report fault information to the control device; wherein the fault information includes a fault event type; and in a case where the fault event type is a code loss event, send fault removal information to the control device in a case where the robot moves to the target identification code and recognizes the target identification code, so that the control device clears the fault information corresponding to the code loss event.

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

[0260] FIG. 13 is a schematic diagram of another warehouse system according to some embodiments of the present disclosure. As shown in FIG. 13, the warehouse system 1300 includes a robot 1301 and a control device 1302.

[0261] The robot 1301 is configured to:

[0262] In a case where the robot occurs a code loss event, send a self-recovery request to the control device;

[0263] In a case where the control device allows the robot to self-recover, identify at least one target marker within a first preset range around the robot, and determine first position information of the robot based on the at least one target marker; and the robot moves to the target identification code based on the first position information, and recognizes the target identification code during the movement.

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

[0265] In some embodiments, the robot 1301 is configured to determine, based on the at least one target marker, a relative positional relationship between each of the at least one target marker and the robot; and determine, based on the relative positional relationship between each of the target markers and the robot, the first position information of the robot in the global map.

[0266] In some embodiments, the robot 1301 is configured to determine, based on the first position information, second position information of the target identification code in the global map. The moving module 1203 is configured to move to the target identification code based on the first position information and the second position information, and identify the target identification code.

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

[0268] In some embodiments, the robot 1301 is configured to obtain fourth position information of an identification code last obtained by the robot before the code loss event occurs, and travel information of the robot; wherein the travel information includes a travel direction and a travel distance; and determine the first estimated position information based on the fourth position information and the travel information.

[0269] In some embodiments, when the number of target markers is a plurality, the robot 1301 is configured to determine, based on the second estimated position information of each of the target markers and the third position information of each of the plurality of to-be-matched markers, a first candidate offset between a first marker of the target markers and a first matched marker of the to-be-matched markers; wherein the first marker is any one of the plurality of target markers, and the first matched marker is any one of the plurality of to-be-matched markers; determine, based on the first candidate offset and second estimated position information of at least one second marker, corrected position information of each of the second markers; wherein the at least one second marker includes target markers other than the first marker among the plurality of target markers; and determine, based on the corrected position information of each of the second markers and third position information of at least one second matched marker, the at least one first target offset; wherein the at least one second matched marker includes to-be-matched markers other than the first matched marker among the plurality of to-be-matched markers.

[0270] In some embodiments, the robot 1301 is configured to: determine, based on the corrected position information of each second marker and the third position information of the at least one second matched marker, a matching number of the third position information matched with the corrected position information of each second marker; determine the first candidate offset as the first target offset when the matching number is greater than or equal to a number threshold; and sequentially traverse the at least one second matched marker until the at least one first target offset is determined when the matching number is less than the number threshold.

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

[0272] In some embodiments, the robot 1301 is configured to: determine the second candidate offset as the second target offset when the number of the second candidate offset is one; and determine the second candidate offset with the largest number of same offsets in the plurality of second candidate offsets as the second target offset when the number of the second candidate offset is a plurality.

[0273] In some embodiments, the plurality of to-be-matched markers are to-be-matched markers in a global map, or the plurality of to-be-matched markers are to-be-matched markers in a regional map; and the regional map is determined according to fourth position information of an identification code last acquired by the robot before the code loss event occurs.

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

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

[0276] In some embodiments, the robot 1301 is further configured to: send, by the robot, 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 as to prevent other robots from moving in the at least one target cell; wherein the at least one target cell comprises a cell corresponding to the target identification code, and / or a cell on a movement path of the robot to the target identification code.

[0277] In some embodiments, the robot 1301 is configured to: in a case where the number of the 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; and move, by the robot, to the target identification code based on the first offset, and identify the target identification code.

[0278] In some embodiments, the robot 1301 is further configured to: in a case where the robot identifies the target identification code, determine a first offset between the target identification code and the robot, and adjust a pose of the robot based on the first offset so that the first offset after the pose adjustment is less than or equal to a preset threshold.

[0279] In some embodiments, the robot 1301 is further configured to: in a case where the robot identifies the target identification code, send, by the robot, an unlocking request to the control device; wherein the unlocking request is used to request the control device to unlock at least one target cell that has been in a locked state so as to allow other robots to move in the at least one target cell.

[0280] In some embodiments, the robot 1301 is further configured to: in a case where the robot does not identify the target identification code, move, by the robot, within a second preset range around the robot, and re-identify the target identification code during the movement; in a case where the robot re-identifies the target identification code during the movement, determine a second offset between the target identification code and the robot, and adjust a pose of the robot based on the second offset so that the second offset after the pose adjustment is less than or equal to a preset threshold.

[0281] In some embodiments, the robot 1301 is further configured to: obtain state information of the robot; and in a case where it is determined according to the state information of the robot that an abnormal event occurs, determine whether the abnormal event is a code loss event.

[0282] In some embodiments, the robot 1301 is further configured to: report fault information to the control device when it is determined that the abnormal event is an unrecoverable event or a code loss event; wherein the fault information includes the fault event type; and when the fault event type is a code loss event, and the robot moves to the target identification code and identifies the target identification code, send fault clearance information to the control device so that the control device clears the fault information corresponding to the code loss event.

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

[0284] Figure 14 is a schematic diagram of an electronic device provided in some embodiments of this disclosure. In some embodiments, the electronic device includes one or more processors and a memory. The memory is 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 code loss self-recovery method for the robot in the above embodiments.

[0285] As shown in Figure 14, the electronic device 1400 includes a processor 1401 and a memory 1402. Exemplarily, the electronic device 1400 may also include a communications interface 1403 and a communications bus 1404.

[0286] The processor 1401, memory 1402, and communication interface 1403 communicate with each other via communication bus 1404. Communication interface 1403 is used to communicate with other network elements such as clients or other servers.

[0287] In some embodiments, the processor 1401 is used to execute program 1405, specifically performing the relevant steps in the above-described embodiments of the robot's code loss self-recovery method. Specifically, program 1405 may include program code, which includes computer-executable instructions.

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

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

[0290] The program 1405 can specifically be invoked by the processor 1401 to cause the electronic device 1400 to perform the robot code loss self-recovery method operation.

[0291] Some embodiments of the present disclosure provide a computer-readable storage medium storing at least one executable instruction, which, when executed on the electronic device 1400, causes the electronic device 1400 to perform the robot code loss self-recovery method in the above embodiments.

[0292] The executable instruction can specifically be used to cause the electronic device 1400 to perform the robot code loss self-recovery method operation.

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

[0294] The beneficial effects that can be achieved by the computer-readable storage medium provided by some embodiments of the present disclosure can refer to the beneficial effects of the corresponding robot code loss self-recovery method provided above, which will not be described here.

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

Claims

1. A method for recovering from a lost code event of a robot, applied to the robot, the method comprising: in the case that the robot has a lost code event, identifying at least one target marker within a first preset range around the robot; determining first position information of the robot based on the at least one target marker; moving the robot based on the first position information, and identifying a target identification code during the moving.

2. The method of claim 1, wherein, The determining of the first position information of the robot based on the at least one target marker comprises: determining a relative position relationship between each of the target markers and the robot based on the at least one target marker; determining the first position information of the robot in a global map based on the relative position relationship between each of the target markers and the robot.

3. The method of claim 2, wherein, The moving of the robot based on the first position information, and identifying a target identification code during the moving comprises: determining second position information of the target identification code in the global map based on the first position information; moving the robot to the target identification code based on the first position information and the second position information, and identifying the target identification code.

4. The method of claim 3, wherein, The determining of the first position information of the robot in a global map based on the relative position relationship between each of the target markers and the robot comprises: determining first estimated position information of the robot, and determining second estimated position information of each of the target markers based on the first estimated position information and the relative position relationship between each of the target markers and the robot; determining at least one first target offset based on the second estimated position information of each of the target markers and third position information of each of a plurality of to-be-matched markers; determining each of the first position information of the robot in the global map based on each of the first target offset and the first estimated position information of the robot.

5. The method of claim 4, wherein, The determining of the first estimated position information of the robot comprises: obtaining fourth position information of an identification code last obtained by the robot before the lost code event, and travel information of the robot; wherein the travel information comprises a travel direction and a travel distance; determining the first estimated position information based on the fourth position information and the travel information.

6. The method of claim 4, wherein, The determining of at least one first target offset based on the second estimated position information of each of the target markers and third position information of each of a plurality of to-be-matched markers comprises: in the case that the number of the target markers is a plurality, determining a first candidate offset between a first marker and a first matched marker based on the second estimated position information of each of the target markers and the third position information of each of the to-be-matched markers; wherein the first marker is any one of the plurality of target markers, and the first matched marker is any one of the plurality of to-be-matched markers. determining, based on the second estimated position information of each of the target markers and the third position information of each of the plurality of to-be-matched markers, at least one first target offset; determining, based on the corrected position information of each of the second markers and the third position information of at least one second matched marker, the at least one first target offset; wherein the at least one second matched marker comprises a to-be-matched marker in the plurality of to-be-matched markers other than the first matched marker.

7. The method of claim 6, wherein, The method further comprises: determining, based on the corrected position information of each of the second markers and the third position information of the at least one second matched marker, a matching quantity of the third position information matching the corrected position information of each of the second markers; in a case where the matching quantity is greater than or equal to a quantity threshold, determining the first candidate offset as the first target offset; in a case where the matching quantity is less than the quantity threshold, sequentially traversing the at least one second matched marker until the at least one first target offset is determined.

8. The method of claim 4, wherein, The method further comprises: in a case where the quantity of the target markers is one, determining, based on the second estimated position information of the target marker and the third position information of each of the to-be-matched markers, the first target offset between the target marker and each of the to-be-matched markers.

9. The method of any one of claims 3-8, wherein, The method further comprises: determining, 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, according to the quantity of the second candidate offsets, a second target offset in the second candidate offsets; The robot moves to the corresponding target identification code based on the second target offset and identifies the target identification code.

10. The method of claim 9, wherein, The method further comprises: in a case where the quantity of the second candidate offsets is one, determining the second candidate offset as the second target offset; in a case where the quantity of the second candidate offsets is a plurality, determining, from the plurality of second candidate offsets, a second candidate offset with a maximum quantity of same offsets as the second target offset. The robot moves to the corresponding target identification code based on the second target offset and identifies the target identification code.

11. The method of claim 4, wherein, The plurality of to-be-matched markers are to-be-matched markers in the global map, or the plurality of to-be-matched markers are to-be-matched markers in a regional map; wherein the regional map is determined according to fourth position information of an identification code last acquired by the robot before the code loss event occurs.

12. The method of any one of claims 3-11, wherein, The second position information of the target identification code in the global map is determined based on the first position information, comprising: At least one candidate identification code closest to the robot in the global map is determined based on the first position information; 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.

13. The method of claim 12, wherein, The target identification code is determined based on the at least one candidate identification code, comprising: Any identification code in the at least one candidate identification code is determined as the target identification code; or, The offset angle between each candidate identification code in the at least one candidate identification code and the robot is determined, and the candidate identification code with the smallest offset angle from the robot is determined as the target identification code.

14. The method of any one of claims 3-13, wherein, Before the robot moves to the target identification code based on the first position information and the second position information, the method further comprises: The robot sends a locking request to a 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 target cell; the at least one target cell includes a cell corresponding to the target identification code, and / or a cell on a movement path of the robot moving to the target identification code.

15. The method of any one of claims 3-14, after the target identification code is identified, the method further comprises: In a case where the robot identifies the target identification code, a first offset between the target identification code and the robot is determined, and the pose of the robot is adjusted based on the first offset, so that the first offset after the pose adjustment is less than or equal to a preset threshold.

16. The method of any one of claims 3-15, after the target identification code is identified, the method further comprises: In a case where the robot identifies the target identification code, the robot sends an unlocking request to a control device; wherein the unlocking request is used to request the control device to unlock at least one target cell that has been in a locked state, so that other robots can move in the at least one target cell.

17. The method of any one of claims 3-14, after the target identification code is identified, the method further comprises: In a case where the robot does not identify 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; In a case where the robot re-identifies the target identification code during movement, a second offset between the target identification code and the robot is determined, and a pose of the robot is adjusted based on the second offset, so that the second offset after the pose adjustment is less than or equal to a preset threshold.

18. The method of any one of claims 1-17, further comprising: obtaining state information of the robot; in a case where it is determined based on the state information of the robot that an abnormal event occurs, determining whether the abnormal event is the lost code event.

19. The method of claim 18, further comprising: in a case where it is determined that the abnormal event is an unrecoverable event or the lost code event, reporting fault information to a control device; wherein the fault information includes a fault event type; in a case where the fault event type is the lost code event and the robot moves to the target identification code and identifies the target identification code, sending fault removal information to the control device to cause the control device to clear fault information corresponding to the lost code event.

20. The method of any one of claims 1-19, wherein, The at least one target marker within the first preset range around the robot in a case where the robot has the lost code event includes: in a case where the robot has the lost code event, sending a self-recovery request to a control device; in a case where the control device allows the robot to self-recover, identifying the at least one target marker within the first preset range.

21. A lost code self-recovery method of a robot, applied to a control device, the method comprising: in a case where a robot has a lost code event, obtaining fault information reported by the robot; before the robot moves to a target identification code based on first position information of the robot, obtaining a lock request sent by the robot; wherein the first position information is determined based on at least one target marker within a first preset range around the robot; based on the lock request, locking at least one target cell to prevent other robots from moving in the at least one target cell; wherein the at least one target cell includes a cell corresponding to the target identification code and / or a cell on a movement path of the robot to the target identification code.

22. The method of claim 21, further comprising: in a case where the robot identifies the target identification code, obtaining an unlock request sent by the robot; based on the unlock request, unlocking the at least one target cell that has been in a locked state to allow other robots to move in the at least one target cell.

23. The method of any one of claims 21-22, further comprising: in a case where no new fault information reported by the robot is received within a preset time period, determining that the robot has identified the target identification code. unlocking the at least one target cell which has been in a locked state to enable other robots to move in the at least one target cell.

24. A robot, comprising: an identifying module configured to identify at least one target marker within a first preset range around the robot in case of a lost code event of the robot; a determining module configured to determine first position information of the robot based on the at least one target marker; a moving module configured to move to a target identification code based on the first position information and identify the target identification code during the moving.

25. A warehousing system, comprising: a robot configured to identify at least one target marker within a first preset range around the robot in case of a lost code event of the robot; determine first position information of the robot based on the at least one target marker; move the robot based on the first position information and identify a target identification code during the moving; a control device configured to obtain a self-recovery request sent by the robot and send a self-recovery permission notification to the robot.

26. An electronic device, comprising: 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 lost code self-recovery method of the robot according to any one of claims 1-20, or implement the lost code self-recovery method of the robot according to any one of claims 21-23.

27. A computer-readable storage medium having a computer program stored thereon, wherein when the computer program is executed by a processor, the lost code self-recovery method of the robot according to any one of claims 1-20 is implemented, or the lost code self-recovery method of the robot according to any one of claims 21-23 is implemented.

28. A computer program product, the computer program product comprising a computer program stored on a non-transitory computer-readable storage medium, the computer program comprising program instructions that, when executed by a computer, cause the computer to perform the lost code self-recovery method of the robot according to any one of claims 1-20, or perform the lost code self-recovery method of the robot according to any one of claims 21-23.

Citation Information

Patent Citations

  • Robot and method for repositioning after code is missed by same

    CN110304386A

  • Navigation of automated guided vehicle (AGV)

    CN110703745A

  • Navigation for automatic guided vehicle

    CN110703774A

  • Automatic guided vehicle and automatic guided vehicle control method

    CN113050613A

  • Physical forbidden zone detection and global relocation method for service robot

    CN113050626A