Multi-robot motion scheduling method and device
By obtaining the motion paths and envelope ranges of multiple robots and determining the predicted conflict sections for scheduling, the accuracy problem caused by the complexity of contours and performance in multi-robot motion scheduling is solved, and more reliable and safe motion scheduling is achieved.
Patent Information
- Application Number
- CN202210780024.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2022-05-26
- Filing Date
- 2022-07-04
- Publication Date
- 2025-09-30
- Estimated Expiration
- 2042-07-04
AI Technical Summary
Existing technologies fail to effectively address the motion complexity of robots due to their own contours and immediate performance in multi-robot motion scheduling, resulting in a lack of scheduling accuracy.
By obtaining the motion paths of multiple robots, determining the robot's envelope range and predicting conflicting sections, motion scheduling is performed based on the conflicting sections, and more accurate scheduling is performed based on the actual situation of the robots.
It achieves more accurate scheduling of multiple robots in complex motion scenarios, improving the reliability and safety of motion.
Smart Images

Figure CN115220447B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of robot control technology, and in particular to a multi-robot motion scheduling method. The present invention also relates to a multi-robot motion scheduling device, a computing device, and a computer-readable storage medium. Background Art
[0002] With the development of robotics technology, more and more mobile robots are being used in industrial services such as freight, warehousing, logistics, and catering, greatly facilitating human production and life. However, how to coordinate the motion of multiple robots to avoid deadlock is a key issue in multi-robot motion scheduling.
[0003] In the prior art, for possible deadlock of multiple robots moving on a certain path, planning is generally performed based on the movement paths of the multiple robots, and then corresponding prevention mechanisms are established to perform control and scheduling.
[0004] However, this approach, which relies solely on planning robot motion paths and establishing corresponding preventive mechanisms for control and scheduling, fails to consider the complexity of large-scale robot motion scenarios, caused by the robots' own contours and immediate performance, and lacks accuracy in multi-robot motion scheduling. Therefore, a motion scheduling method for multi-robot motion that can accurately schedule complex multi-robot motion is urgently needed. Summary of the Invention
[0005] In view of this, an embodiment of the present invention provides a multi-robot motion scheduling method to address the technical deficiencies in the prior art. An embodiment of the present invention also provides a multi-robot motion scheduling device, a computing device, and a computer-readable storage medium.
[0006] According to a first aspect of an embodiment of the present invention, a multi-robot motion scheduling method is provided, comprising:
[0007] Obtaining motion paths of multiple robots, wherein the motion paths include multiple road segments;
[0008] Determining an envelope range of the section to be moved by the first robot based on the movement path of the first robot and the first section currently located thereon, wherein the first robot is any one of the multiple robots and the envelope range covers the first robot;
[0009] Determining predicted conflict sections of the first robot relative to other robots in the plurality of robots based on an envelope of the sections to be moved by the plurality of robots;
[0010] The first robot is subjected to motion scheduling according to each predicted conflicting section.
[0011] Optionally, determining the envelope range of the section to be moved by the first robot according to the movement path of the first robot and the first section currently located therein includes:
[0012] Determining a road section for the first robot to move according to the movement path of the first robot and the first road section currently located;
[0013] An envelope range of the to-be-moved section is determined according to the contour information of the first robot.
[0014] Optionally, determining the section of the road to be moved by the first robot according to the movement path of the first robot and the first section of the road currently located includes:
[0015] The road section to be moved by the first robot is determined according to the movement path of the first robot, the first road section currently located, and the number of preset road sections, wherein the number of road sections to be moved is equal to the number of preset road sections.
[0016] Optionally, determining predicted conflict sections of the first robot relative to other robots in the plurality of robots according to an envelope range of the sections to be moved by the plurality of robots includes:
[0017] Determining whether envelopes of the to-be-moved sections of the first robot and the second robot intersect, wherein the second robot is any other robot among the plurality of robots;
[0018] If there is an intersection, the predicted conflict section of the first robot relative to the second robot is determined based on the intersection.
[0019] Optionally, performing motion scheduling on the first robot according to each predicted conflicting road section includes:
[0020] determining a conflict range of the first robot relative to the other robots based on the predicted conflict sections of the first robot relative to the other robots;
[0021] determining, based on the first road section and the conflict range, whether the first robot is within the conflict range;
[0022] If so, the first robot is scheduled to move.
[0023] Optionally, the conflict range includes an upper bound of the conflicting road segment index and a lower bound of the conflicting road segment index;
[0024] Determining whether the first robot is within the conflict range according to the first road segment and the conflict range includes:
[0025] Get the segment index of the first segment;
[0026] If the segment index is greater than or equal to the lower bound of the conflicting segment index, it is determined that the first robot is within the conflict range.
[0027] Optionally, performing motion scheduling on the first robot according to each predicted conflicting road section includes:
[0028] determining a conflict range of the first robot relative to the other robots based on the predicted conflict sections of the first robot relative to the other robots;
[0029] determining a relative conflict envelope of the first robot based on a predicted conflict section of the first robot relative to the second robot, wherein the second robot is any one of the other robots;
[0030] determining whether the first robot is within the conflict range based on the starting point envelope and the relative conflict envelope of the first robot;
[0031] If so, the first robot is scheduled to move.
[0032] Optionally, determining whether the first robot is located within the conflict range according to the starting point envelope and the relative conflict envelope of the first robot includes:
[0033] If the starting point envelope of the first robot intersects with the relative conflict envelope, it is determined that the first robot is located within the conflict range.
[0034] Optionally, after determining whether the first robot is within the conflict range based on the first road section and the conflict range, the method further includes:
[0035] If not, determining the endpoint envelope of the first robot based on the motion path of the first robot;
[0036] When the end point envelope does not intersect with the envelope ranges of the sections to be moved by other robots, the first robot is scheduled to move.
[0037] Optionally, when the end point envelope does not intersect with the envelope ranges of the sections to be moved by other robots, after scheduling the first robot to move, the method further includes:
[0038] If there are multiple unscheduled specific robots, count the number of follower robots for each specific robot separately;
[0039] The movement of the target specific robot in each specific robot is scheduled according to the number of follower robots of each specific robot.
[0040] Optionally, the method further includes:
[0041] When the number of follower robots of each specific robot is equal, obtaining motion parameters of each specific robot;
[0042] Determine the motion time of each specific robot according to the motion parameters of each specific robot;
[0043] According to the movement time of each specific robot, the movement of a target specific robot among the specific robots is scheduled.
[0044] Optionally, performing motion scheduling on the first robot according to each predicted conflicting road section includes:
[0045] Determining a target avoidance index for the first robot based on each predicted conflict section;
[0046] According to the target avoidance index, the first robot is scheduled to move to the target section.
[0047] According to a second aspect of an embodiment of the present invention, a multi-robot motion scheduling device is provided, comprising:
[0048] an acquisition module, configured to acquire motion paths of the plurality of robots, wherein the motion paths include a plurality of road segments;
[0049] an envelope range determination module configured to determine an envelope range of a section of a road to be moved by the first robot based on a movement path of the first robot and a first section of the road currently located thereon, wherein the first robot is any one of the plurality of robots and the envelope range covers the first robot;
[0050] a predicted conflict section determination module, configured to determine predicted conflict sections of the first robot relative to other robots in the plurality of robots based on an envelope of the sections to be moved by the plurality of robots;
[0051] The scheduling module is configured to perform motion scheduling on the first robot according to each predicted conflict section.
[0052] According to a third aspect of an embodiment of the present invention, there is provided a computing device, including:
[0053] memory and processor;
[0054] The memory is used to store computer-executable instructions, and the processor implements the steps of the multi-robot motion scheduling method when executing the computer-executable instructions.
[0055] According to a fourth aspect of an embodiment of the present invention, a computer-readable storage medium is provided, which stores computer-executable instructions, and when the instructions are executed by a processor, the steps of the multi-robot motion scheduling method are implemented.
[0056] The multi-robot motion scheduling method provided by the present invention obtains the motion paths of the multiple robots, wherein the motion paths include multiple sections. Based on the motion path of the first robot and the first section currently located, the envelope range of the section to be moved of the first robot is determined, wherein the first robot is any one of the multiple robots and the envelope range covers the first robot. Based on the envelope range of the sections to be moved of the multiple robots, each predicted conflict section of the first robot relative to other robots in the multiple robots is determined, and the first robot is motion-scheduled based on each predicted conflict section. By determining the predicted conflict section based on the envelope range of the section to be moved of the first robot, the predicted conflict section can be determined in better combination with the actual motion conditions of the robots, thereby achieving more accurate motion scheduling of the multiple robots. BRIEF DESCRIPTION OF THE DRAWINGS
[0057] Figure 1 1 is a schematic diagram of the system structure of a multi-robot motion scheduling method provided by one embodiment of the present invention;
[0058] Figure 2 This is a flow chart of a multi-robot motion scheduling method provided by one embodiment of the present invention;
[0059] Figure 3A This is a processing flow chart of a multi-robot motion scheduling method for preventing multi-robot deadlock conflicts provided by one embodiment of the present invention;
[0060] Figure 3B This is a schematic diagram of a motion path in a multi-robot motion scheduling method for preventing multi-robot deadlock conflicts provided by one embodiment of the present invention;
[0061] Figure 4 1 is a schematic structural diagram of a multi-robot motion scheduling device provided by one embodiment of the present invention;
[0062] Figure 5 This is a structural block diagram of a computing device provided by one embodiment of the present invention. DETAILED DESCRIPTION
[0063] The following description sets forth numerous specific details to facilitate a thorough understanding of the present invention. However, the present invention can be implemented in many other ways than those described herein, and those skilled in the art can make similar generalizations without departing from the scope of the present invention. Therefore, the present invention is not limited to the specific implementations disclosed below.
[0064] The terms used in one or more embodiments of the present invention are for the purpose of describing specific embodiments only and are not intended to limit one or more embodiments of the present invention. The singular forms "a", "the" and "the" used in one or more embodiments of the present invention and the appended claims are also intended to include plural forms unless the context clearly indicates otherwise. It should also be understood that the term "and / or" used in one or more embodiments of the present invention refers to and includes any or all possible combinations of one or more associated listed items.
[0065] It should be understood that although the terms "first," "second," and the like may be used to describe various information in one or more embodiments of the present invention, such information should not be limited to these terms. These terms are merely used to distinguish information of the same type from one another. For example, "first" may also be referred to as "second," and similarly, "second" may also be referred to as "first," without departing from the scope of one or more embodiments of the present invention.
[0066] First, the terms involved in one or more embodiments of the present invention are explained.
[0067] Robot scheduling: Scheduling of robots is achieved by setting scheduling rules through the robot scheduling terminal.
[0068] The present invention provides a multi-robot motion scheduling method, a multi-robot motion scheduling device, a computing device, and a computer-readable storage medium, which are described in detail in the following embodiments.
[0069] Figure 1 A schematic diagram of the system structure of a multi-robot motion scheduling method provided by an embodiment of the present invention is shown. The execution subject of the multi-robot motion scheduling method provided by the embodiment of the present invention is a robot scheduling terminal 101; the robot scheduling terminal 101 includes: a scheduling terminal memory 1011 and a scheduling terminal processor 1012, wherein the scheduling terminal memory 1011 stores a pre-written program code of scheduling rules, and the scheduling terminal processor 1012 is used to execute the program code of the scheduling rules to realize motion scheduling for multiple robots. In the multi-robot motion scheduling method provided by the embodiment of the present invention, multiple robots 102 move by receiving the program code of the scheduling rules sent by the robot scheduling terminal 101. The above-mentioned robot scheduling terminal 101 can be any electronic product that can perform human-computer interaction with the user, such as a PC (Personal Computer), a mobile phone, a Pocket PC, a tablet computer, etc.
[0070] The robot scheduling end 101 obtains the motion paths of multiple robots 102, and then determines the envelope range of the section to be moved by the first robot 1021 based on the motion path of the first robot 1021 and the first section it is currently located on. Then, based on the envelope range of the section to be moved by the multiple robots 102, the robot scheduling end 101 determines the predicted conflict sections of the first robot 1021 relative to other robots (1022, 1023...) in the multiple robots 102, and performs motion scheduling on the first robot 1021 based on the predicted conflict sections.
[0071] The specific multi-robot motion scheduling method will be described in detail in subsequent embodiments.
[0072] Figure 2 A flow chart of a multi-robot motion scheduling method provided according to an embodiment of the present invention is shown, which specifically includes the following steps:
[0073] Step 202: Acquire motion paths of multiple robots, wherein the motion paths include multiple sections.
[0074] The robot is a schedulable motion robot with one or more functions, depending on the specific functions it needs to perform in the application scenario. For example, a robot used for food delivery in restaurants, a robot used for handling goods in logistics warehouses, or a robot used for surveying and construction in engineering scenarios, although this is not limited in the present embodiment.
[0075] A robot's motion path is a pre-defined path that can be followed according to certain scheduling rules. A motion path consists of multiple nodes and the segments connecting them. For example, in a restaurant, the seats and aisles form a motion path. The seats can be considered nodes on the motion path, and the aisles can be considered segments. Alternatively, in a logistics warehouse, the shelves can be considered nodes on the motion path, and the robot's trajectory within the warehouse can be considered segments. A motion path can be identified by either node and segment identifiers or by their coordinate positions.
[0076] In actual applications, the robot has multiple built-in work maps. For each work map, the robot will construct an initial motion path. For example, in a restaurant, the food delivery robot has multiple built-in corresponding work maps for the multiple floors of the restaurant. For each work map, the food delivery robot will construct an initial motion path from the food outlet to each seat.
[0077] The motion paths of multiple robots can be obtained by deducing the scheduling rules pre-assigned to the robots in the robot scheduling terminal, or by receiving the motion paths uploaded by multiple robots. The present invention is not limited here.
[0078] Specifically, motion paths of multiple robots are obtained, wherein the motion paths include multiple nodes and multiple paths connected by the nodes.
[0079] Exemplarily, the motion paths T1-Tn of multiple robots A1-An are obtained. Taking the motion path T1 as an example, the motion path T1 is ABCDE, where A, B, C, D, and E are nodes of the motion path, and the sections AB, BC, CD, and DE are obtained by connecting them.
[0080] By obtaining the motion paths of multiple robots, the foundation is laid for the subsequent determination of the envelope range of the section to be moved.
[0081] Step 204: Determine an envelope range of the section to be moved by the first robot according to the movement path of the first robot and the first section currently located thereon, wherein the first robot is any one of the multiple robots and the envelope range covers the first robot.
[0082] The first segment currently located is the segment in the motion path corresponding to the current position of the robot. For example, if the current position of the robot is between nodes A and B, and the corresponding segment in the motion path is AB, then AB is determined to be the first segment.
[0083] The envelope range is the range covered by the robot during movement, which is determined according to the shape and size of the robot. For example, the motion path is represented by coordinates as (0, 0)-(0, 1)-(0, 2). The robot is a square with a side length of 2. The motion path of the center of the square is represented by coordinates that are consistent with the coordinate representation of the motion path. The coordinate representation of its envelope range is a rectangle of (-1, -1)(1, -1)-(-1, 3)(1, 3).
[0084] Specifically, the envelope range of the section to be moved by the first robot is determined according to the movement path of the first robot, the first section currently located there, and the shape and size of the first robot.
[0085] Exemplarily, the motion path of the first robot is expressed in coordinates as (0, 0)-(0, 1)-(0, 2)-(0, 3), the first section it is currently located at is (0, 0)-(0, 1), the first robot is a square with a side length of 2, and the envelope range of the section to be moved is (-1, -1)(1, -1)-(-1, 3)(1, 3).
[0086] By determining the envelope range of the first robot according to the motion path of the first robot and the first road section where the robot is currently located, a foundation is laid for determining each predicted conflict road section.
[0087] Step 206 : Determine predicted conflict sections of the first robot relative to other robots in the plurality of robots based on the envelope of the sections to be moved by the plurality of robots.
[0088] Predicted conflict sections are sections where the robot may conflict with other robots on its driving path.
[0089] The predicted conflicting sections for the first robot relative to the other robots in the plurality of robots are determined by comparing the envelopes of the sections to be moved by the first robot and the other robots. The predicted conflicting sections obtained by comparing the envelopes of the first robot with those of each of the other robots are different.
[0090] Specifically, the envelope ranges of the to-be-moved sections of the multiple robots are compared to determine the predicted conflict sections of the first robot relative to the other robots in the multiple robots.
[0091] Exemplarily, the envelope range of the first robot's section to be moved is (AB-BC-CD), and the envelope range of the other robots' sections to be moved is (BC-CD-DE). The envelope ranges of the two robots' sections to be moved are compared to determine that the predicted conflict sections of the first robot relative to the other robots in the multiple robots are BC and CD.
[0092] Based on the envelope range of the sections to be moved by multiple robots, the predicted conflict sections of the first robot relative to other robots in the multiple robots are determined, and the sections where the first robot has a conflict risk are confirmed, providing a reference basis for subsequent scheduling of the first robot according to the predicted conflict sections.
[0093] Step 208: Perform motion scheduling on the first robot according to each predicted conflicting road section.
[0094] The specific method of performing motion scheduling on the first robot is to determine the motion state of the first robot on each predicted conflict section, and send a motion scheduling instruction to the first robot so that the first robot performs corresponding motion according to the motion state on each predicted conflict section.
[0095] Specifically, according to each predicted conflict section, the motion state of the first robot on each predicted conflict section is determined, and motion scheduling is performed on the first robot.
[0096] Illustratively, based on the predicted conflicting sections BC and CD, it is determined that the motion state of the first robot in the BC section is stopped, and the motion state of the first robot in the CD section is forward, and motion scheduling is performed on the first robot.
[0097] In an embodiment of the present invention, the motion paths of multiple robots are obtained, wherein the motion paths include multiple sections. Based on the motion path of a first robot and the first section it is currently located on, the envelope range of the section to be moved of the first robot is determined, wherein the first robot is any one of the multiple robots and the envelope range covers the first robot. Based on the envelope range of the sections to be moved of the multiple robots, each predicted conflict section of the first robot relative to other robots in the multiple robots is determined, and motion scheduling of the first robot is performed based on each predicted conflict section. Determining the predicted conflict section based on the envelope range of the section to be moved of the first robot allows the predicted conflict section to be determined in better combination with the actual motion conditions of the robots, thereby achieving more accurate motion scheduling of multiple robots.
[0098] Optionally, step 204 includes the following specific steps:
[0099] Determining a road section for the first robot to move according to the movement path of the first robot and the first road section currently located;
[0100] An envelope range of the to-be-moved section is determined according to the contour information of the first robot.
[0101] The path to be moved is a specific path segment on the first robot's path, measured from the first path segment it is currently located on. The specific path segment to be moved is determined based on pre-set conditions, which may include the number of paths to be moved or the destination of the movement. For example, if the first robot's path includes multiple paths, such as AB-BC-CD-DE, and the first path segment it is currently located on is AB, and it is moving from the first path segment to node D, the paths to be moved are AB, BC, and CD.
[0102] The contour information of the first robot is the area information that can be swept determined by the size and shape of the first robot. The first robot is not necessarily a robot of regular shape, and will be set to a robot of different sizes and shapes according to the application scenario. Therefore, it is necessary to determine the envelope range of the section to be moved based on the area information it sweeps, that is, the contour information.
[0103] Specifically, the section to be moved of the first robot is determined according to the movement path of the first robot, the first section currently located there, and preset determination conditions, and the envelope range of the section to be moved is determined according to the contour information of the first robot.
[0104] Exemplarily, based on the movement path AB-BC-CD-DE of the first robot, the first section AB currently located and the preset determination condition: the end point is D, the sections BC and CD to be moved by the first robot are determined, and based on the contour information of the first robot, the envelope range of the section to be moved is determined.
[0105] According to the motion path of the first robot and the first road section it is currently located on, the road section to be moved by the first robot is determined, and according to the contour information of the first robot, the envelope range of the road section to be moved is determined, so that the envelope range of the road section to be moved is more consistent with the actual motion situation of the first robot, thereby making the envelope range of the determined road section to be moved more accurate, and the subsequent predicted conflict sections are more accurate, and the motion scheduling of the first robot is more consistent with the actual motion situation of the first robot.
[0106] Optionally, determining the section to be moved by the first robot according to the movement path of the first robot and the first section currently located therein includes the following specific steps:
[0107] The road section to be moved by the first robot is determined according to the movement path of the first robot, the first road section currently located, and the number of preset road sections, wherein the number of road sections to be moved is equal to the number of preset road sections.
[0108] The preset number of sections serves as a monitoring window for monitoring the first robot's motion path. Monitoring every section of the motion paths of multiple robots would require excessive computational effort for motion scheduling due to the sheer volume of data. Therefore, a monitoring window with a preset number of sections is required. The number of sections is determined based on the first robot's actual motion. If the first robot's speed is high, a larger number of sections may be required to ensure timely detection of conflicts, improve scheduling timeliness, and ultimately ensure the reliability and safety of multi-robot motion scheduling.
[0109] Specifically, based on the motion path of the first robot, the first section it is currently located on, and the number of preset sections, the section to be moved by the first robot is determined. The section to be moved is the preset number of sections that the first robot will move to starting from the first section in the motion path.
[0110] For example, according to the movement path AB-BC-CD-DE of the first robot and the first section AB it is currently located on, the number of preset sections is 2. The first robot will move on the movement path AB-BC-CD-DE starting from the first section AB to two sections, namely BC and CD, which are the sections to be moved.
[0111] According to the motion path of the first robot, the first section it is currently located on, and the number of preset sections, the section to be moved by the first robot is determined, which reduces the overall calculation amount, improves the efficiency of determining the section to be moved, and thus improves the efficiency of the overall multi-robot motion scheduling.
[0112] Optionally, step 206 includes the following specific steps:
[0113] Determining whether envelopes of the to-be-moved sections of the first robot and the second robot intersect, wherein the second robot is any other robot among the plurality of robots;
[0114] If there is an intersection, the predicted conflict section of the first robot relative to the second robot is determined based on the intersection.
[0115] Determine whether the envelopes of the sections to be moved of the first robot and the second robot intersect, that is, whether the envelopes of the two robots overlap. For example, the envelope of the first robot is a square with coordinates (0, 0)(0, 1)(1, 1)(1, 0), and the envelope of the second robot is a rectangle with coordinates (0, 0)(0, 1)(5, 1)(5, 0). The two overlap within the square of (0, 0)(0, 1)(1, 1)(1, 0), and it is determined that the envelopes of the sections to be moved of the first robot and the second robot intersect.
[0116] If there is an intersection, the method for determining the predicted conflict section of the first robot relative to the second robot based on the intersection is: for the first robot, the predicted conflict section of the first robot relative to the second robot is determined based on all sections of the first robot in the intersection.
[0117] Specifically, determine whether the envelope ranges of the sections to be moved by the first robot and the second robot intersect. If there is an intersection, then for the first robot, determine the predicted conflict section of the first robot relative to the second robot based on all sections of the first robot within the intersection.
[0118] Exemplarily, the envelope range of the first robot's road section to be moved is a rectangle around the ABCDE nodes, and the envelope range of the second robot's road section to be moved is a rectangle around the DEF node. It is determined that the envelope ranges of the first robot's and the second robot's road sections to be moved have an intersection, which is D and E. For the first robot, based on all sections CD and DE of the first robot within the intersection range, it is determined that the predicted conflict sections of the first robot relative to the second robot are CD and DE.
[0119] Optionally, if there is no intersection, it is determined that there is no conflict between the first robot and the second robot.
[0120] By determining whether there is a set within the envelope range of the first robot and the second robot, the predicted conflict path of the first robot relative to the second robot is determined based on the set, thereby improving the efficiency of determining the predicted conflict path and thereby improving the overall scheduling efficiency of the multi-robot motion scheduling.
[0121] Optionally, step 208 includes the following specific steps:
[0122] determining a conflict range of the first robot relative to the other robots based on the predicted conflict sections of the first robot relative to the other robots;
[0123] determining, based on the first road section and the conflict range, whether the first robot is within the conflict range;
[0124] If so, the first robot is scheduled to move.
[0125] The conflict range of the first robot relative to other robots is the range of conflict sections obtained by statistics based on each predicted conflict section. For example, the predicted conflict sections of the first robot relative to other robots are CD, DE and EF, and the conflict range obtained by statistics is (CD, EF), indicating that the robot has a conflict with other robots when moving from the CD section to the EF section.
[0126] If two robots enter the same conflict range, they will both be deadlocked, meaning that the conflict is unavoidable. Therefore, if the first robot is determined to be within the conflict range, the first robot is scheduled to move. If the other robots are not within the conflict range, they are scheduled to avoid it. This can avoid deadlocking the first and other robots. For example, if the conflict range is (CD, EF), and the first robot is currently on the first section CD, if the other robots are on sections EF, the conflict is unavoidable. Therefore, if the first section of the first robot is within the conflict range, the first robot is scheduled to move.
[0127] The first section is the section where the starting point of the first robot is located in the section where the robot is to move.
[0128] Specifically, based on the predicted conflict sections of the first robot relative to other robots, the conflict range of the first robot relative to other robots is determined. If the first section is within the conflict range, the first robot is determined to be within the conflict range and the first robot is scheduled to move.
[0129] Exemplarily, the predicted conflict sections of the first robot relative to the second robot are CD, DE, EF and FG, the conflict range of the first robot relative to the second robot is determined to be (CD, FG), the first section of the first robot is DE, the first section DE is within the conflict range (CD, FG), and the first robot is scheduled to move.
[0130] According to the predicted conflict sections of the first robot relative to the other robots, the conflict range of the first robot relative to the other robots is determined. According to the first section and the conflict range, it is determined whether the first robot is within the conflict range. If so, the first robot is scheduled to move. When the other robots have not entered the conflict range, the conflict between the first robot and the other robots is inevitable. The scheduling can be carried out in advance, the conflict can be prevented in time, and the movement reliability and safety of the multiple robots can be guaranteed.
[0131] Optionally, the conflict range includes an upper bound of the conflicting road segment index and a lower bound of the conflicting road segment index. Determining whether the first robot is within the conflict range according to the first road segment and the conflict range includes the following specific steps:
[0132] Get the segment index of the first segment;
[0133] If the segment index is greater than or equal to the lower bound of the conflicting segment index, it is determined that the first robot is within the conflict range.
[0134] The segment index is used to mark each segment in the motion path. It can be the sequential number of the segment, the node name of the segment, or the coordinate representation of the segment. The present invention specification takes the sequential number of the segment as an example.
[0135] The upper bound of the conflict segment index is the segment index of the last predicted conflict segment in the conflict range, and the lower bound is the segment index of the first predicted conflict segment in the conflict range. For example, if the conflict range is (0, 3), the conflict range of the first robot relative to other robots is from segment 0 to segment 3 of the first robot. The upper bound of the conflict segment index is 3, and the lower bound is 0.
[0136] Exemplarily, the segment index of the first segment is 1, the conflict range is (0, 3), the upper bound of the conflict segment index is 3, the lower bound of the conflict segment index is 0, and the segment index of the first segment is greater than the lower bound of the conflict segment index, and it is determined that the first robot is already within the conflict range.
[0137] By obtaining the section index of the first section and determining whether the first robot is within the conflict range based on the size relationship between the section index and the lower bound of the conflict section index, and then subsequently scheduling the motion of the first robot, the section index is used to determine whether the first robot is within the conflict range, thereby improving the determination efficiency and thus improving the scheduling efficiency of the motion scheduling of the first robot.
[0138] Optionally, performing motion scheduling on the first robot according to each predicted conflicting road section includes the following specific steps:
[0139] determining a conflict range of the first robot relative to the other robots based on the predicted conflict sections of the first robot relative to the other robots;
[0140] determining a relative conflict envelope of the first robot based on a predicted conflict section of the first robot relative to the second robot, wherein the second robot is any one of the other robots;
[0141] determining whether the first robot is within the conflict range based on the starting point envelope and the relative conflict envelope of the first robot;
[0142] If so, the first robot is scheduled to move.
[0143] The relative conflict envelope of the first robot is the range covered by the first robot during its motion relative to the predicted conflict section of the second robot. For example, if the first robot is square, its range of motion on the section to be moved is rectangular. The predicted conflict sections of the first robot relative to the second robot are CD and DE. The relative conflict envelope of the first robot is determined as the rectangle surrounding nodes CDE.
[0144] The starting point envelope of the first robot is the envelope range of the robot's current position. For example, if the first robot is a square robot and is currently located at point C, the square around point C is the starting point envelope.
[0145] Whether the first robot is within the conflict range is determined based on the starting envelope and the relative conflict envelope of the first robot. This determination is based on the distance relationship between the starting envelope and the relative conflict envelope. For example, if a distance threshold is set to d, the first robot is determined to be within the conflict range when the distance between the starting envelope and the relative conflict envelope is less than or equal to d. Alternatively, the first robot is determined to be within the conflict range when the starting envelope and the relative conflict envelope intersect.
[0146] Specifically, based on the predicted conflict sections of the first robot relative to other robots, the conflict range of the first robot relative to other robots is determined; based on the predicted conflict sections of the first robot relative to the second robot, the relative conflict envelope of the first robot is determined; and based on the distance relationship between the starting point envelope and the relative conflict envelope, it is determined whether the first robot is within the conflict range.
[0147] Exemplarily, the first robot is a square. According to the predicted conflict section of the first robot relative to the second robot being ABCD, the relative conflict envelope of the first robot is determined to be a rectangle around the ABCD node. The preset distance threshold is d. If the distance between the starting point envelope (the square around point E) and the relative conflict envelope (the rectangle around the ABCD node) is less than or equal to d, it is determined that the first robot is within the conflict range and the first robot is scheduled to move.
[0148] The first robot's conflict range relative to the other robots is determined based on its predicted conflict sections relative to the other robots. The first robot's relative conflict envelope is then determined based on its predicted conflict sections relative to the second robot, where the second robot is any of the other robots. Based on the first robot's starting point envelope and relative conflict envelope, it is determined whether the first robot is within the conflict range. If so, the first robot's movement is scheduled. Using the first robot's starting point envelope and relative conflict envelope to schedule the first robot allows for scheduling in advance, preventing conflicts that are unavoidable before other robots enter the conflict range, thereby ensuring the reliability and safety of multi-robot motion.
[0149] Optionally, determining whether the first robot is located within the conflict range according to the starting point envelope and the relative conflict envelope of the first robot includes the following specific steps:
[0150] If the starting point envelope of the first robot intersects with the relative conflict envelope, it is determined that the first robot is located within the conflict range.
[0151] The starting point envelope of the first robot and the relative conflict envelope intersect, that is, the ranges of the two overlap.
[0152] Exemplarily, the first robot is a square. According to the predicted conflict section ABCD of the first robot relative to the second robot, the relative conflict envelope of the first robot is determined to be a rectangle around the ABCD node. If there is an intersection between the starting point envelope (the square around point E) and the relative conflict envelope (the rectangle around the ABCD node), it is determined that the first robot is within the conflict range and the first robot is scheduled to move.
[0153] The first robot can be scheduled by determining whether there is an intersection between the starting point envelope of the first robot and the relative conflict envelope of the first robot. This can more accurately prevent the occurrence of conflicts between the first robot and other robots when other robots have not entered the conflict range, and further ensure the reliability and safety of multi-robot movement.
[0154] Optionally, after determining whether the first robot is within the conflict range based on the first road section and the conflict range, the method further includes the following specific steps:
[0155] If not, determining the endpoint envelope of the first robot based on the motion path of the first robot;
[0156] When the end point envelope does not intersect with the envelope ranges of the sections to be moved by other robots, the first robot is scheduled to move.
[0157] The endpoint envelope of the first robot is the envelope corresponding to the endpoint node of the last segment in the first robot's motion path. For example, if the first robot's motion path is ABCDE, the envelope range of the endpoint node E of the last segment DE is the endpoint envelope.
[0158] For the first and second robots, if the first robot's motion path exceeds the envelope of the other robots' pending motion segments, the first robot will continue to move until it reaches its endpoint after crossing the collision range. If the second robot's motion path does not exceed the envelope of its pending motion segments, the second robot will not move beyond the collision range and will stop at a predicted collision path within the first robot's motion path, blocking the first robot's normal motion. Therefore, the first robot must move first until the first robot's motion and the envelope of the pending motion segments of the other robots no longer intersect, so that the second robot's motion will not block the first robot's normal motion and avoid collision. For example, if the first robot's motion path is ABCDEF and the second robot's motion path is FBCD, and the predicted collision segments of the first robot relative to the second robot are BC, CD, and DE, and the second robot moves first and stops at endpoint D, then the first robot will continue to move and will collide with the second robot at point D.
[0159] When the endpoint envelope of the first robot does not intersect with the envelope ranges of the sections to be moved by other robots, it means that there are no other robots on the movement path of the first robot that may reach the endpoint and stop, and the first robot needs to be scheduled for movement first.
[0160] Specifically, based on the motion path of the first robot, the end point of the first robot is determined, and based on the end point of the first robot and the contour information of the first robot, the end point envelope of the first robot is determined. When the end point envelope does not intersect with the envelope range of the sections to be moved by other robots, the first robot is scheduled to move.
[0161] Exemplarily, the motion path of the first robot is ABCDEF, and the end point of the first robot is determined to be E. Based on the end point E of the first robot and the contour information of the first robot (a circle with a radius of 1), the end point envelope of the first robot is determined. When there is no intersection between the end point envelope of the first robot and the envelope range of the moving section of other robots, it is ensured that there are no other machines on the motion path of the first robot that may reach the end point and stop, and no conflict will occur, and the first robot is scheduled to move.
[0162] Based on the first robot's motion path, the first robot's endpoint envelope is determined. If the endpoint envelope does not intersect with the envelopes of the remaining robot's path segments, the first robot is scheduled for motion. This allows for motion scheduling of the first robot even before other robots have stopped or occupied a specific segment of the first robot's path. This prevents other robots from blocking the first robot's normal motion, prevents conflicts, and ensures the reliability and safety of multi-robot motion.
[0163] Optionally, when the end point envelope does not intersect with the envelope ranges of the sections to be moved by other robots, after scheduling the first robot to move, the method further includes the following specific steps:
[0164] If there are multiple unscheduled specific robots, count the number of follower robots for each specific robot separately;
[0165] The movement of the target specific robot in each specific robot is scheduled according to the number of follower robots of each specific robot.
[0166] Previously, scheduling was completed for the first robot, which was any one of multiple robots. However, since the scheduling of the first robot was determined relative to other robots, it is inevitable that due to differences between the robots, including differences in the robot's contour information, differences in the first section where the robot is currently located, differences in the number of preset sections, and other differences in actual motion scheduling scenarios, multiple specific robots are not scheduled. These robots need to be motion scheduled to ensure the integrity of the motion scheduling of multiple robots.
[0167] A follower robot is a robot that follows a specific robot. The follower robot and the specific robot share the same motion path. For example, in a restaurant, a customer at a certain seat orders multiple dishes, which need to be delivered by multiple robots. In other words, the specific robot includes multiple follower robots.
[0168] In some scenarios, a specific robot with a small number of followers will be prioritized for motion scheduling, ensuring that other specific robots and their corresponding follower robots do not have to stop and wait for long periods of time. In other scenarios, a specific robot with a large number of followers will be prioritized for motion scheduling, ensuring that more robots reach the destination, complete their corresponding tasks, and fulfill their corresponding functions. The specific options are not limited here.
[0169] Specifically, if there are multiple unscheduled specific robots, the number of follower robots of each specific robot is counted respectively, and the target specific robot is determined according to the number of follower robots of each specific robot and the actual application scenario, and the target specific robot and its corresponding follower robot in each specific robot are scheduled to move.
[0170] For example, in an actual application scenario where other specific robots and corresponding follower robots do not need to stop for a long time to wait, there are three unscheduled specific robots B1, B2 and B3, and the number of follower robots of B1, B2 and B3 are counted as 3, 5 and 4 respectively. According to the number of follower robots of the three specific robots and the actual application scenario, the specific robot B1 with the least number of follower robots is determined as the target specific robot, and the target specific robot B1 and its corresponding three follower robots are scheduled to move.
[0171] For multiple unscheduled specific robots, the number of follower robots of each specific robot is counted respectively, and the movement of the target specific robots in each specific robot is scheduled according to the number of follower robots of each specific robot. The target specific robots that meet the requirement of the number of follower robots are mobilized first, which meets the scheduling needs of specific robots with follower robots in actual application scenarios, makes the scheduling more applicable, and schedules the unscheduled specific robots to ensure the integrity of the motion scheduling of multiple robots.
[0172] Optionally, the multi-robot motion scheduling method further includes the following specific steps:
[0173] When the number of follower robots of each specific robot is equal, obtaining motion parameters of each specific robot;
[0174] Determine the motion time of each specific robot according to the motion parameters of each specific robot;
[0175] According to the movement time of each specific robot, the movement of a target specific robot among the specific robots is scheduled.
[0176] The motion parameters of the specific robot are parameters of the actual motion condition of the specific robot, including: the motion speed of the specific robot, the rotation angular velocity of the specific robot, the motion path length of the specific robot, etc.
[0177] In some scenarios, priority is given to specific robots with fast movement speeds or high rotational angular velocities for motion scheduling, ensuring that these robots complete their corresponding tasks more quickly and achieve their corresponding functions. In some scenarios, priority is given to specific robots with longer movement paths for motion scheduling, ensuring that the time difference between multiple specific robots completing their corresponding tasks is shortened and their corresponding functions are achieved. This is not a limitation in the present embodiment.
[0178] Specifically, when the number of follower robots of each specific robot is equal, the motion parameters of each specific robot are obtained, and the motion time of each specific robot is determined based on the motion parameters of each specific robot. According to the motion time of each specific robot and the actual application scenario, the movement of the target specific robot among the specific robots is scheduled.
[0179] For example, in an actual application scenario in which specific robots complete their corresponding tasks faster and realize corresponding functions, there are three specific robots B4, B5 and B6, each of which has 4 follower robots. The movement speeds of the specific robots are 0.5 m / s, 0.7 m / s and 0.9 m / s respectively. According to the movement speeds of the three specific robots, the movement time of each specific robot is determined to be 10 s. According to the movement time of 10 s and the actual application scenario, the specific robot B6 with the fastest movement speed is determined as the target specific robot, and the target specific robot B6 is scheduled to move.
[0180] When the number of follower robots for each specific robot is equal, the motion parameters of each specific robot are obtained, and the motion duration of each specific robot is determined based on the motion parameters. The motion of a target specific robot within each specific robot is then scheduled based on the motion duration of each specific robot. Scheduling the motion of the target specific robot within each specific robot based on the motion duration of each specific robot meets the scheduling requirements for motion duration in actual application scenarios, making multi-robot motion scheduling more efficient and applicable. Furthermore, scheduling specific robots that have the same follower robot ensures the integrity of the multi-robot motion scheduling.
[0181] Optionally, step 208 includes the following specific steps:
[0182] Determining a target avoidance index for the first robot based on each predicted conflict section;
[0183] According to the target avoidance index, the first robot is scheduled to move to the target section.
[0184] The target avoidance index for the first robot is determined based on the number of sections in each predicted conflicting section. For example, if the predicted conflicting section for the first robot relative to the second robot is (1, 3) and the predicted conflicting section for the first robot relative to the third robot is (0, 3), the number of sections for the first robot relative to the second robot is 3, and the number of sections for the first robot relative to the third robot is 4. Determining the target avoidance index for the first robot to be 0 means that the index of the section that the first robot needs to avoid is at infinity, meaning that the first robot does not need to avoid it. Alternatively, if the predicted conflicting section for the second robot relative to the first robot is (0, 1) and the predicted conflicting section for the second robot relative to the third robot is (0, 1), the number of sections for the second robot relative to the first robot is 2, and the number of sections for the second robot relative to the third robot is 2. Determining the target avoidance index for the second robot to be 0 means that the second robot moves to the target section 0 corresponding to the target avoidance index and performs avoidance.
[0185] Specifically, according to each predicted conflict section, a target avoidance index of the first robot is determined, and according to the target avoidance index, the first robot is scheduled to move to a target section corresponding to the target avoidance index, and then the first robot is scheduled to avoid.
[0186] Exemplarily, according to each predicted conflict section (0,2)(0,3), the target avoidance index of the first robot is determined to be 0. According to the target avoidance index 0, the first robot is scheduled to move to the target section corresponding to the target avoidance index 0 and perform avoidance.
[0187] Based on each predicted conflicting road section, a target avoidance index for the first robot is determined, and the first robot is dispatched to the target road section based on the target avoidance index. By determining the target avoidance index for the first robot, the first robot is dispatched to the target road section based solely on the target avoidance index, thereby improving the efficiency of the movement scheduling of the first robot.
[0188] The following combined Figure 3A - Figure 3B Taking the application of the multi-robot motion scheduling method provided by the present invention to prevent multi-robot deadlock conflicts as an example, the multi-robot motion scheduling method is further described. Figure 3A A processing flow chart of a multi-robot motion scheduling method for preventing multi-robot deadlock conflicts provided by an embodiment of the present invention is shown, which specifically includes the following steps:
[0189] Step 302: Acquire motion paths of multiple robots, wherein the motion paths include multiple sections, and each section includes a section index.
[0190] Figure 3B A schematic diagram of a motion path in a multi-robot motion scheduling method for preventing multi-robot deadlock conflicts provided by an embodiment of the present invention is shown.
[0191] The motion path of the first robot A1 is obtained as ABCFG, the motion path of the second robot A2 is obtained as DCF, and the motion path of the third robot A3 is obtained as GFCBE. Correspondingly, the motion path of the first robot includes multiple sections: AB(0), BC(1), CF(2), and FG(3), the motion path of the second robot includes multiple sections: DC(0) and CF(1), and the motion path of the third robot includes multiple sections: GF(0), FC(1), CB(2), and BE(3).
[0192] Step 304: Determine the road sections to be moved by the multiple robots according to the movement paths of the multiple robots and the first road section they are currently located on.
[0193] Based on the first robot's motion path ABCFG and its current position on the first segment 0, the first robot's next segment to move is determined to be (0, 3). Similarly, the second robot's next segment to move is determined to be (0, 1), and the third robot's next segment to move is determined to be (0, 3).
[0194] Step 306: Determine the envelope range of the section where each robot is to move based on the contour information of each robot.
[0195] like Figure 3B As shown, according to the contour information of the first robot, the second robot and the third robot, the envelope range of the section to be moved by the first robot is determined to be a rectangle around the ABCFG node, the envelope range of the section to be moved by the second robot is determined to be a rectangle around the DCF node, and the envelope range of the section to be moved by the third robot is determined to be a rectangle around the GFCBE node.
[0196] Step 308: Determine whether the envelope ranges of the sections to be moved by each robot have an intersection.
[0197] like Figure 3B As shown, it is determined that the envelope ranges of the to-be-moved sections of the first robot, the second robot, and the third robot have an intersection. The intersection of the first robot and the second robot is a rectangle around the BCF node, the intersection of the first robot and the third robot is a rectangle around the BCFG node, and the intersection of the second robot and the third robot is a rectangle around the CF node.
[0198] Step 310: Determine the predicted conflicting sections for each robot based on the intersection.
[0199] like Figure 3BAs shown, taking the first robot segment as the main judgment, according to the intersection of the rectangles around the BCF node, the predicted conflict segments of the first robot relative to the second robot are determined to be BC, CF and FG, that is, segments 1, 2, and 3; taking the first robot segment as the main judgment, according to the intersection of the rectangles around the BCFG node, the predicted conflict segments of the first robot relative to the third robot are determined to be AB, BC, CF and FG, that is, segments 0, 1, 2, and 3; taking the second robot segment as the main judgment, according to the intersection of the rectangles around the BCF node, the predicted conflict segments of the second robot relative to the first robot are determined to be DC and CF, that is, segment 0. , 1; taking the second robot segment as the main body for judgment, according to the intersection of the rectangles around the CF node, the predicted conflict segments of the second robot relative to the third robot are determined to be DC and CF, that is, segments 0 and 1; taking the third robot segment as the main body for judgment, according to the intersection of the rectangles around the BCFG node, the predicted conflict segments of the third robot relative to the first robot are determined to be GF, FC, CB and BE, that is, segments 0, 1, 2, and 3; taking the third robot segment as the main body for judgment, according to the intersection of the rectangles around the CF node, the predicted conflict segments of the third robot relative to the second robot are determined to be GF, FC and CB, that is, segments 0, 1, and 2.
[0200] Step 312: Determine the conflict range based on each predicted conflicting road section.
[0201] According to each predicted conflict section, the conflict range of the first robot relative to the second robot is determined to be (1, 3); the conflict range of the first robot relative to the third robot is determined to be (0, 3); the conflict range of the second robot relative to the first robot is determined to be (0, 1); the conflict range of the second robot relative to the third robot is determined to be (0, 1); the conflict range of the third robot relative to the first robot is determined to be (0, 3); and the conflict range of the third robot relative to the second robot is (0, 2).
[0202] Step 314: Obtain the segment index of the first segment, and determine whether each robot is located in the conflict according to the robot starting point envelope and the corresponding conflict envelope.
[0203] Step 316: If yes, schedule the corresponding robot movement.
[0204] like Figure 3B As shown, according to the motion paths of the first robot, the second robot and the third robot, the starting point envelope of the first robot is determined to be the square around the A node, the starting point envelope of the second robot is determined to be the square around the D node, and the starting point envelope of the third robot is determined to be the square around the G node.
[0205] The first robot's first segment index is -1 (meaning it has not entered segment AB, i.e. segment 0), and is not in the conflict ranges (1,3) and (0,3).
[0206] The starting point envelope of the first robot and the relative conflict envelope of the second robot (the rectangle around the DCF node, the relative conflict range (0,1)) do not intersect;
[0207] The starting point envelope of the first robot and the relative conflict envelope of the third robot (the rectangle around the GFCBE node, the relative conflict range (0,3)) do not intersect;
[0208] That is, the first robot is not in conflict.
[0209] The first segment index of the second robot is -1, which is not in the conflict range (0,1);
[0210] The starting envelope of the second robot does not intersect with the relative conflict envelope of the first robot (the rectangle around the BCFG node, the relative conflict range (1,3));
[0211] The starting envelope of the second robot and the relative conflict envelope of the third robot (the rectangle around the GFCB node, the relative conflict range (0, 2)) do not intersect;
[0212] That is, the second robot is not in conflict.
[0213] The first segment index of the third robot is -1, which is not located in the conflict range (0,3) and (0,2), corresponding to the conflict range between the first and second robots;
[0214] The starting point envelope of the third robot does not intersect with the relative conflict envelope of the first robot (the rectangle around the ABCFG node, with a relative conflict range of (0,3)).
[0215] The starting point envelope of the third robot does not intersect with the relative conflict envelope of the second robot (the rectangle around the DCF node, the relative conflict range (0,1));
[0216] That is, the third robot is not in conflict.
[0217] Therefore, the first robot, the second robot and the third robot are not scheduled yet.
[0218] Step 318: If not, determine the end point envelope of each robot based on the motion path of each robot; if the end point envelope does not intersect with the envelope range of the remaining movement sections of other robots, schedule the corresponding robots to move in sequence.
[0219] like Figure 3BAs shown, according to the motion paths of the first robot, the second robot and the third robot, the end point envelope of the first robot is determined to be a square around the G node, the end point envelope of the second robot is determined to be a square around the F node, and the end point envelope of the third robot is determined to be a square around the E node.
[0220] The endpoint envelope of the first robot and the relative conflict envelope of the second robot (the rectangle around the DCF node, the relative conflict range (0,1)) do not intersect;
[0221] The starting point envelope of the first robot intersects with the relative conflict envelope of the third robot (the rectangle around the GFCBE node, the relative conflict range (0,3)).
[0222] That is, the first robot needs to avoid the third robot, and the avoidance index is 0.
[0223] The endpoint envelope of the second robot intersects with the relative conflict envelope of the first robot (the rectangle around the BCFG node, the relative conflict range (1,3)).
[0224] The endpoint envelope of the second robot intersects the relative conflict envelope of the third robot (the rectangle around the GFCB node, the relative conflict range (0, 2)).
[0225] That is, the second robot needs to avoid the first and third robots, and the avoidance index is 0.
[0226] The endpoint envelope of the third robot does not intersect with the relative conflict envelope of the first robot (the rectangle around the ABCFG node, with a relative conflict range of (0,3)).
[0227] The starting point envelope of the third robot does not intersect with the relative conflict envelope of the second robot (the rectangle around the DCF node, the relative conflict range (0,1));
[0228] That is, the third robot does not need to avoid, and the avoidance index is 0.
[0229] Therefore, the third robot is scheduled to move, while the first and second robots are not scheduled for the time being.
[0230] When the third robot reaches endpoint E, meaning the third robot's path to be moved does not intersect with the envelopes of the first and second robot's paths to be moved (the rectangles around the ABCFG node and the rectangles around the DCF node), steps 314, 316, and 318 are repeated. If the first robot's endpoint envelope does not intersect with the envelope of the second robot's path to be moved (the rectangle around the DCF node), the first robot is scheduled to move and the second robot is scheduled to avoid the path.
[0231] When the first robot reaches point C, the first robot's pending motion envelope (the rectangle surrounding the CFG node) intersects the second robot's pending motion envelope (the rectangle surrounding the DCF node). As described in step 316, the first robot is in conflict, and its avoidance index is 0. The first robot continues to be dispatched, while the second robot yields. The second robot's conflict range is (0, 1), and its avoidance index is 0, preventing the second robot from moving.
[0232] When the first robot reaches point F, the envelope of the first robot's path (the rectangle surrounding the FG node) intersects the envelope of the second robot's path (the rectangle surrounding the DCF node). As described in step 316, the first robot is in conflict, its avoidance index is 0, and scheduling of the first robot continues. The second robot performs avoidance, with its conflict range being (1, 1) and its avoidance index being 1. It is dispatched to the path immediately preceding the avoidance index, i.e., path 0.
[0233] Repeat this process until the end.
[0234] In this embodiment of the present invention, predicted conflicting sections are determined based on the envelope of the sections to be moved by multiple robots. The motion of the first robot is then scheduled based on these predicted conflicting sections. Determining predicted conflicting sections based on the envelope of the sections to be moved by multiple robots allows for more accurate motion scheduling of multiple robots, avoiding deadlock caused by robot conflicts and improving robot efficiency.
[0235] Corresponding to the above method embodiment, the present invention also provides a multi-robot motion scheduling device embodiment, Figure 4 FIG. 1 shows a schematic diagram of the structure of a multi-robot motion scheduling device provided by an embodiment of the present invention. Figure 4 As shown, the device includes:
[0236] An acquisition module 402 is configured to acquire motion paths of multiple robots, wherein the motion paths include multiple road segments;
[0237] An envelope range determination module 404 is configured to determine an envelope range of a section of a road to be moved by the first robot based on a movement path of the first robot and a first section of the road currently located thereon, wherein the first robot is any one of the plurality of robots and the envelope range covers the first robot;
[0238] The predicted conflict section determination module 406 is configured to determine each predicted conflict section of the first robot relative to other robots in the plurality of robots based on an envelope of the sections to be moved by the plurality of robots;
[0239] The scheduling module 408 is configured to perform motion scheduling on the first robot according to each predicted conflict section.
[0240] Optionally, the envelope range determination module 404 may be further configured to:
[0241] The section to be moved of the first robot is determined according to the movement path of the first robot and the first section currently located there. The envelope range of the section to be moved of the first robot is determined according to the contour information of the first robot.
[0242] Optionally, the envelope range determination module 404 may be further configured to:
[0243] The road section to be moved by the first robot is determined according to the movement path of the first robot, the first road section currently located, and the number of preset road sections, wherein the number of road sections to be moved is equal to the number of preset road sections.
[0244] Optionally, the predicted conflict section determination module 406 may be further configured to:
[0245] Determine whether the envelope ranges of the to-be-moved sections of the first robot and the second robot intersect, where the second robot is any other robot among the multiple robots. If an intersection exists, determine a predicted conflict section of the first robot relative to the second robot based on the intersection.
[0246] Optionally, the scheduling module 408 may be further configured to:
[0247] According to the predicted conflict sections of the first robot relative to other robots, the conflict range of the first robot relative to other robots is determined. According to the first section and the conflict range, it is determined whether the first robot is within the conflict range. If so, the first robot is scheduled to move.
[0248] Optionally, the scheduling module 408 may be further configured to:
[0249] A segment index of the first segment is obtained. If the segment index is greater than or equal to the lower bound of the conflicting segment index, it is determined that the first robot is within the conflict range.
[0250] Optionally, the scheduling module 408 may be further configured to:
[0251] Based on the predicted conflict sections of the first robot relative to the other robots, the conflict range of the first robot relative to the other robots is determined. Based on the predicted conflict sections of the first robot relative to the second robot, the relative conflict envelope of the first robot is determined, where the second robot is any one of the other robots. Based on the starting point envelope and the relative conflict envelope of the first robot, it is determined whether the first robot is within the conflict range. If so, the first robot is scheduled to move.
[0252] Optionally, the scheduling module 408 may be further configured to:
[0253] If the starting point envelope of the first robot intersects with the relative conflict envelope, it is determined that the first robot is within the conflict range. If so, the first robot is scheduled to move.
[0254] Optionally, the scheduling module 408 may be further configured to:
[0255] Based on the predicted conflict sections of the first robot relative to the other robots, the conflict range of the first robot relative to the other robots is determined. Based on the first section and the conflict range, it is determined whether the first robot is within the conflict range. If not, the endpoint envelope of the first robot is determined based on the motion path of the first robot. When the endpoint envelope does not intersect with the envelope ranges of the sections to be moved by other robots, the first robot is scheduled to move.
[0256] Optionally, the device further comprises:
[0257] The target specific robot scheduling module is configured to count the number of follower robots of each specific robot if there are multiple unscheduled specific robots, and schedule the movement of the target specific robot among the specific robots according to the number of follower robots of each specific robot.
[0258] Optionally, the target specific robot scheduling module can be further configured to:
[0259] When the number of follower robots of each specific robot is equal, the motion parameters of each specific robot are obtained, and the motion time of each specific robot is determined based on the motion parameters of each specific robot. Based on the motion time of each specific robot, the movement of the target specific robot among the specific robots is scheduled.
[0260] Optionally, the scheduling module 408 may be further configured to:
[0261] According to each predicted conflict section, a target avoidance index of the first robot is determined, and according to the target avoidance index, the first robot is scheduled to move to the target section.
[0262] In an embodiment of the present invention, the motion paths of multiple robots are obtained, wherein the motion paths include multiple sections. Based on the motion path of a first robot and the first section it is currently located on, the envelope range of the section to be moved of the first robot is determined, wherein the first robot is any one of the multiple robots and the envelope range covers the first robot. Based on the envelope range of the sections to be moved of the multiple robots, each predicted conflict section of the first robot relative to other robots in the multiple robots is determined, and motion scheduling of the first robot is performed based on each predicted conflict section. Determining the predicted conflict section based on the envelope range of the section to be moved of the first robot allows the predicted conflict section to be determined in better combination with the actual motion conditions of the robots, thereby achieving more accurate motion scheduling of multiple robots.
[0263] The above is a schematic scheme of a multi-robot motion scheduling device of this embodiment. It should be noted that the technical solution of the multi-robot motion scheduling device and the technical solution of the multi-robot motion scheduling method mentioned above belong to the same concept. For details that are not described in detail in the technical solution of the multi-robot motion scheduling device, please refer to the description of the technical solution of the multi-robot motion scheduling method mentioned above. In addition, the various components in the device embodiment should be understood as functional modules that must be established to implement each step of the program flow or each step of the method, and each functional module is not an actual functional division or separation definition. The device claim defined by such a group of functional modules should be understood as a functional module architecture that mainly implements the solution through the computer program recorded in the specification, and should not be understood as a physical device that mainly implements the solution through hardware.
[0264] Figure 5 1 shows a block diagram of a computing device according to an embodiment of the present invention. Components of the computing device 500 include, but are not limited to, a memory 510 and a processor 520. The processor 520 is connected to the memory 510 via a bus 530, and a database 550 is used to store data.
[0265] The computing device 500 also includes an access device 540 that enables the computing device 500 to communicate via one or more networks 560. Examples of such networks include a public switched telephone network (PSTN), a local area network (LAN), a wide area network (WAN), a personal area network (PAN), or a combination of communication networks such as the Internet. The access device 540 may include any type of network interface, whether wired or wireless, such as one or more network interface controllers (NICs), such as an IEEE 802.11 wireless local area network (WLAN) wireless interface, a World Interoperability for Microwave Access (Wi-MAX) interface, an Ethernet interface, a universal serial bus (USB) interface, a cellular network interface, a Bluetooth interface, a near field communication (NFC) interface, and the like.
[0266] In one embodiment of the present invention, the above components of the computing device 500 and Figure 5 Other components not shown in the figure may also be connected to each other, for example, via a bus. Figure 5 The computing device structure block diagram shown is for illustrative purposes only and is not intended to limit the scope of the present invention. Those skilled in the art may add or replace other components as needed.
[0267] Computing device 500 can be any type of stationary or mobile computing device, including a mobile computer or mobile computing device (e.g., a tablet computer, a personal digital assistant, a laptop computer, a notebook computer, a netbook computer, etc.), a mobile phone (e.g., a smartphone), a wearable computing device (e.g., a smartwatch, smart glasses, etc.), or other types of mobile devices, or a stationary computing device such as a desktop computer or PC. Computing device 500 can also be a mobile or stationary server.
[0268] The processor 520 is configured to execute computer executable instructions of the multi-robot motion scheduling method.
[0269] The above is a schematic diagram of a computing device according to this embodiment. It should be noted that the technical solution of this computing device is based on the same concept as the technical solution of the multi-robot motion scheduling method described above. For details not described in detail in the technical solution of the computing device, please refer to the description of the technical solution of the multi-robot motion scheduling method described above.
[0270] An embodiment of the present invention further provides a computer-readable storage medium storing computer instructions, which are used in a multi-robot motion scheduling method when executed by a processor.
[0271] The above is a schematic diagram of a computer-readable storage medium according to this embodiment. It should be noted that the technical solution of this storage medium and the technical solution of the multi-robot motion scheduling method described above are based on the same concept. For details not described in detail in the technical solution of the storage medium, please refer to the description of the technical solution of the multi-robot motion scheduling method described above.
[0272] The foregoing description describes specific embodiments of the present invention. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recited in the claims can be performed in an order different from that described in the embodiments and still achieve the desired results. Furthermore, the processes depicted in the accompanying drawings do not necessarily require the specific order shown or sequential order to achieve the desired results. In certain embodiments, multitasking and parallel processing are also possible or may be advantageous.
[0273] The computer instructions include computer program code, which may be in source code form, object code form, executable file, or some intermediate form. The computer-readable medium may include any entity or device capable of carrying the computer program code, a recording medium, a USB flash drive, a mobile hard drive, a magnetic disk, an optical disk, a computer memory, a read-only memory (ROM), a random access memory (RAM), an electrical carrier signal, a telecommunications signal, and a software distribution medium.
[0274] It should be noted that for the aforementioned method embodiments, for ease of description, they are all expressed as a series of action combinations. However, those skilled in the art should be aware that the present invention is not limited by the order of the actions described, because according to the present invention, certain steps can be performed in other orders or simultaneously. Secondly, those skilled in the art should also be aware that the embodiments described in this specification are all preferred embodiments, and the actions and modules involved are not necessarily required by the present invention.
[0275] In the above embodiments, the description of each embodiment has its own focus. For parts that are not described in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.
[0276] The preferred embodiments of the present invention disclosed above are intended only to help illustrate the present invention. The alternative embodiments do not describe all details in detail, nor do they limit the present invention to the specific embodiments described. Obviously, many modifications and variations are possible based on the teachings of the present invention. These embodiments are selected and described in detail to better explain the principles and practical applications of the present invention, thereby enabling those skilled in the art to better understand and utilize the present invention. The present invention is limited only by the claims and their full scope and equivalents.
Claims
1. A multi-robot motion scheduling method, characterized in that: include: Acquire motion paths of a plurality of robots, wherein the motion paths include a plurality of sections; Determining, based on a motion path of a first robot and a first road section currently located, an envelope range of a road section to be moved by the first robot, wherein the first robot is any one of the multiple robots, the envelope range covers the first robot, the envelope range is a range covered by the robot during motion, and is determined based on the shape and size of the robot, the first road section is a road section in the motion path corresponding to the current position of the robot, the road section to be moved is a road section in the motion path that the first robot will move for a preset number of road sections starting from the first road section, and the preset number of road sections is a monitoring window for monitoring the motion path of the first robot; determining, according to an envelope range of the to-be-moved sections of the multiple robots, respective predicted conflict sections of the first robot relative to other robots in the multiple robots; Performing motion scheduling on the first robot according to the predicted conflict sections; If there are multiple unscheduled specific robots, count the number of follower robots for each specific robot separately; According to the number of following robots of each specific robot, a target specific robot with a small number of following robots or a target specific robot with a large number of following robots among the specific robots is scheduled to move.
2. The method according to claim 1, characterized in that The determining, based on the motion path of the first robot and the first road section currently located, an envelope range of the road section to be moved by the first robot includes: Determining a road section for the first robot to move according to a movement path of the first robot and a first road section the first robot is currently located on; An envelope range of the to-be-moved section is determined according to the contour information of the first robot.
3. The method according to claim 2, characterized in that The determining, based on the movement path of the first robot and the first road section currently located, of the road section to be moved by the first robot includes: The road section to be moved by the first robot is determined according to the movement path of the first robot, the first road section currently located, and the number of preset road sections, wherein the number of the road sections to be moved is equal to the number of preset road sections.
4. The method according to claim 1, wherein The step of determining, based on an envelope of the sections to be moved by the multiple robots, each predicted conflict section of the first robot relative to other robots in the multiple robots includes: Determining whether envelopes of the to-be-moved sections of the first robot and the second robot intersect, wherein the second robot is any other robot among the plurality of robots; If there is an intersection, a predicted conflict section of the first robot relative to the second robot is determined based on the intersection.
5. The method according to any one of claims 1 to 4, characterized in that The step of performing motion scheduling on the first robot according to the predicted conflict sections includes: determining a conflict range of the first robot relative to the other robots based on the predicted conflict sections of the first robot relative to the other robots; determining, based on the first road section and the conflict range, whether the first robot is within the conflict range; If so, the first robot is scheduled to move.
6. The method according to claim 5, characterized in that The conflict range includes an upper bound of the conflicting road segment index and a lower bound of the conflicting road segment index; The determining, based on the first road section and the conflict range, whether the first robot is located within the conflict range includes: Obtaining a segment index of the first segment; If the road segment index is greater than or equal to the conflicting road segment index lower bound, it is determined that the first robot is located within the conflict range.
7. The method according to any one of claims 1 to 4, characterized in that The step of performing motion scheduling on the first robot according to the predicted conflict sections includes: determining a conflict range of the first robot relative to the other robots based on the predicted conflict sections of the first robot relative to the other robots; determining a relative conflict envelope of the first robot based on a predicted conflict section of the first robot relative to a second robot, wherein the second robot is any one of the other robots; determining whether the first robot is located within the conflict range according to the starting point envelope of the first robot and the relative conflict envelope; If so, the first robot is scheduled to move.
8. The method according to claim 7, characterized in that The determining whether the first robot is located within the conflict range according to the starting point envelope of the first robot and the relative conflict envelope includes: If the starting point envelope of the first robot intersects with the relative conflict envelope, it is determined that the first robot is located within the conflict range.
9. The method according to claim 5, characterized in that After determining whether the first robot is located within the conflict range based on the first road section and the conflict range, the method further includes: If not, determining the endpoint envelope of the first robot according to the motion path of the first robot; When the endpoint envelope does not intersect with the envelope ranges of the sections to be moved by the other robots, the first robot is scheduled to move.
10. The method according to claim 1, characterized in that The method further comprises: When the number of follower robots of each specific robot is equal, obtaining motion parameters of each specific robot; Determining the movement time of each specific robot according to the movement parameters of each specific robot; According to the movement time of each of the specific robots, the movement of a target specific robot among the specific robots is scheduled.
11. The method according to any one of claims 1 to 4, characterized in that: The step of performing motion scheduling on the first robot according to the predicted conflict sections includes: determining a target avoidance index for the first robot according to each predicted conflict section; According to the target avoidance index, the first robot is scheduled to move to the target section.
12. A multi-robot motion scheduling device, characterized in that: include: an acquisition module configured to acquire motion paths of a plurality of robots, wherein the motion paths include a plurality of sections; an envelope range determination module configured to determine an envelope range of a section to be moved by the first robot based on a motion path of the first robot and a first section currently located thereon, wherein the first robot is any one of the multiple robots, the envelope range covers the first robot, the envelope range is a range covered by the robot during motion, and is determined based on the shape and size of the robot, the first section is a section in the motion path corresponding to the current position of the robot, the section to be moved is a preset number of sections in the motion path that the first robot will move starting from the first section, and the preset number of sections is a monitoring window for monitoring the motion path of the first robot; a predicted conflict section determination module, configured to determine each predicted conflict section of the first robot relative to other robots in the plurality of robots based on an envelope range of the sections to be moved by the plurality of robots; a scheduling module, configured to perform motion scheduling on the first robot according to the predicted conflict sections; The target specific robot scheduling module is configured to count the number of follower robots of each specific robot if there are multiple unscheduled specific robots, and schedule the movement of the target specific robot among the specific robots according to the number of follower robots of each specific robot.
13. A computing device, characterized in that include: memory and processor; The memory is used to store computer-executable instructions, and the processor is used to execute the computer-executable instructions to implement the steps of the multi-robot motion scheduling method according to any one of claims 1 to 11.
14. A computer-readable storage medium storing computer instructions, characterized in that: When the instruction is executed by the processor, the steps of the multi-robot motion scheduling method according to any one of claims 1 to 11 are implemented.
Citation Information
Patent Citations
Robot group following system based on ZigBee communication
CN105955261A
Multirobot collision preventing method and system
CN106325280A
AGV (automated guided vehicle) traffic control method and apparatus
CN106547271A