Scheduling server and method for operating same

The scheduling server efficiently allocates and reallocates tasks to multiple robots in large-scale systems by considering robot status and avoiding collisions, addressing computation time issues and ensuring smooth operation.

WO2026063565A1PCT designated stage Publication Date: 2026-03-26KOREA INST OF ROBOT & CONVERGENCE
View PDF 5 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-11-22
Publication Date
2026-03-26

AI Technical Summary

Technical Problem

Existing multi-robot task assignment algorithms face challenges in large-scale systems due to exponential computation time increases as the number of robots grows, making it difficult to efficiently allocate tasks and manage collisions in dynamic environments.

Method used

A scheduling server and method that generates task lists, selects robots based on status information, assigns tasks considering robot type, location, and battery levels, and reallocates tasks upon failure to ensure efficient task completion and collision avoidance.

Benefits of technology

The system enhances work efficiency by rapidly distributing tasks to multiple robots, preventing collisions, and smoothly reallocating tasks when failures occur, optimizing task completion times in large-scale robotic systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure KR2024018601_26032026_PF_FP_ABST
    Figure KR2024018601_26032026_PF_FP_ABST
Patent Text Reader

Abstract

The present invention provides a method for operating a scheduling server, comprising the steps of: generating a first task list according to tasks required for product production; selecting a first robot to perform the tasks from among a plurality of robots on the basis of robot status information for each of the plurality of robots; and assigning the first task list to the first robot.
Need to check novelty before this filing date? Find Prior Art

Description

Scheduling server and its operation method

[0001] The present invention relates to a scheduling server and a method of operation thereof, and more specifically, to a scheduling server and a method of operation thereof that facilitates the assignment of work lists to each of a plurality of robots supplying parts within a factory.

[0002] As the importance of multi-robot systems for efficiently performing distributed tasks through the planning and execution of cooperative work by multiple robots continues to grow, the problem of Multi-Robot Task Allocation—which addresses how to assign each robot to a specific task to achieve optimal performance or minimize costs—is being researched in various fields.

[0003] While efficient solutions can be found using heuristic methods when operating a small number of robots, in dynamic environments with large systems and significant uncertainty, it is important to design algorithms that find a solution that converges within a certain range in polynomial time.

[0004] However, in the multi-robot task assignment problem, computation time increases exponentially as the number of robots increases, so existing robot assignment algorithms are often difficult to apply to large-scale systems.

[0005] Therefore, recently, research is being conducted on task scheduling methods that can efficiently allocate multiple tasks to multiple robots within a short period of time, even in large-scale systems containing a large number of robots.

[0006] The objective of the present invention is to provide a scheduling server and a method of operation thereof that facilitates the assignment of work lists to each of a plurality of robots supplying parts within a factory.

[0007] In addition, another objective of the present invention is to provide a scheduling server and a method of operation thereof that facilitates the sequential distribution of a task list for the next task according to the completion time of the current task performed by a plurality of robots according to a task list schedule.

[0008] In addition, another objective of the present invention is to provide a scheduling server and a method of operation thereof that facilitates the reallocation of task lists assigned to other robots so that, when a failure occurs in any robot during a task performed by a plurality of robots according to a work schedule and the task list cannot be completed, the task lists assigned to that robot can be performed by another robot.

[0009] The technical problems to be solved by the present invention are not limited to those mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art to which the present invention belongs from the description below.

[0010] The method of operation of a scheduling server according to the present invention may include the steps of generating a first task list according to a task required for product production, selecting a first robot among a plurality of robots to perform the task based on robot status information for each of the plurality of robots, and assigning the first task list to the first robot.

[0011] The above robot status information may include a robot type, a list of previously assigned tasks, and a task battery.

[0012] The step of selecting the first robot may include: a step of extracting some robots of a robot type that matches the type of work among the plurality of robots; a step of calculating the shortest distance to the target position of the work for each of the some robots based on the work position included in the last work list among the work lists, and the shortest distance travel time converted into time; a step of determining the work completion time by adding the work completion time of the last work list of the some robots and the shortest distance travel time; and a step of selecting the robot with the fastest work completion time among the some robots as the first robot.

[0013] Prior to the step of assigning the first task list, the method may further include the step of generating an optimal movement path that avoids collisions with other robots from the task location included in the last task list of the first robot to the target location of the task.

[0014] The step of assigning the first task list can be assigned to the first robot by adding the optimal movement path and the task completion time to the first task list.

[0015] When error occurrence information is received from a second robot among the plurality of robots, the method may further include the step of retrieving a second task list assigned to the second robot and the step of reassigning the second task list to a third robot among the plurality of robots to perform a corresponding task according to the second task list.

[0016] The step of reassigning the second task list involves retrieving other task schedules assigned to robots other than the second robot among the plurality of robots, and calculating the shortest distance to the corresponding target location for performing the task of the second task list and the shortest distance travel time converted into time based on the task location and task completion time included in the last task list among the other task lists, determining the task completion time by adding the task completion time of the last task list of the other robots and the shortest distance travel time, and selecting the robot with the fastest task completion time among the other robots as the third robot.

[0017] The step of reassigning the second task list further includes the step of generating an optimal movement path that avoids collisions with other robots from the task location included in the last task list of the third robot to the target location of the task, and may reassign a new task list to the third robot by adding the task completion time and the optimal movement path to the second task list.

[0018] A scheduling server according to the present invention comprises a task generation unit that generates a first task list according to a task required for product production, a robot selection unit that selects a first robot among a plurality of robots to perform the task based on robot status information for each of a plurality of robots, and a task assignment unit that assigns the first task list to the first robot. The robot status information includes a robot type, previously assigned task lists, and a task battery. The robot selection unit extracts some robots of a robot type that matches the type of the task among the plurality of robots, calculates the shortest distance to the target position of the task for each of the some robots based on the task position included in the last task list among the task lists, and calculates the shortest distance travel time converted into time based on the shortest distance, determines the task completion time by adding the task completion time of the last task list of the some robots and the shortest distance travel time, and selects the robot among the some robots with the fastest task completion time as the first robot.

[0019] When the robot selection unit receives error occurrence information from the second robot among the plurality of robots, it retrieves other work schedules assigned to other robots excluding the second robot among the plurality of robots, calculates the shortest distance to the corresponding target position for performing the corresponding task in the second work list and the shortest distance travel time converted into time based on the work position and work completion time included in the last work list among the other work lists, determines the work completion time by adding the work completion time of the last work list of the other robots and the shortest distance travel time, and selects the robot with the fastest work completion time among the other robots as the third robot, and the work assignment unit generates an optimal movement path that avoids collisions with other robots from the work position included in the last work list of the third robot to the target position of the task, and can reassign a new work list to the third robot by adding the work completion time and the optimal movement path to the second work list.

[0020] The scheduling server and the method of operation according to the present invention have the advantage of increasing the work efficiency of multiple robots by allocating and distributing a work list to enable rapid work to multiple robots working in a factory, and by generating a movement path to prevent collisions while the multiple robots are moving.

[0021] In addition, the scheduling server and the method of operation according to the present invention have the advantage of enabling smooth operation by redistributing the task list assigned to a robot so that another robot can perform the task list when a robot among a plurality of robots is identified as having a failure.

[0022] Further scopes of the applicability of the present invention will become apparent from the following detailed description. However, since various changes and modifications within the spirit and scope of the present invention are clearly understood by those skilled in the art, specific embodiments, such as the detailed description and preferred embodiments of the present invention, should be understood as being given merely as examples.

[0023] FIG. 1 is a simplified system diagram showing a robot scheduling system including a scheduling server according to the present invention.

[0024] Figure 2 is a control block diagram showing the control configuration of the scheduling server shown in Figure 1.

[0025] Figure 3 is an example diagram illustrating the operation of the scheduling server shown in Figure 2.

[0026] FIG. 4 is a flowchart illustrating the operation method of a scheduling server according to the present invention.

[0027] FIGS. 5 and FIGS. 6 are illustrative diagrams for explaining steps (S140) and (S160) shown in FIGS. 4.

[0028] Throughout this disclosure, the same reference numerals denote the same components. This disclosure does not describe all elements of the embodiments, and general content in the art to which this disclosure pertains or content that overlaps between embodiments is omitted. The terms 'part, module, component, block' as used in the specification may be implemented in software or hardware, and depending on the embodiments, a plurality of 'parts, modules, components, blocks' may be implemented as a single component, or a single 'part, module, component, block' may include a plurality of components.

[0029] Throughout the specification, when a part is described as being "connected" to another part, this includes not only cases where they are directly connected but also cases where they are indirectly connected, and indirect connections include connections made via a wireless communication network.

[0030] Furthermore, when it is stated that a part "includes" a certain component, this means that, unless specifically stated otherwise, it does not exclude other components but may include additional components.

[0031] Throughout the specification, when it is stated that a component is located "on" another component, this includes not only cases where a component is in contact with another component, but also cases where another component exists between the two components.

[0032] The terms first, second, etc. are used to distinguish one component from another, and the components are not limited by the aforementioned terms.

[0033] Singular expressions include plural expressions unless there is an obvious exception in the context.

[0034] In each step, identification codes are used for convenience of explanation and do not describe the order of the steps; the steps may be performed differently from the specified order unless a specific order is clearly indicated in the context.

[0035] The operating principles and embodiments of the present disclosure will be described below with reference to the attached drawings.

[0036] FIG. 1 is a simplified system diagram showing a robot scheduling system including a scheduling server according to the present invention, and FIG. 2 is a control block diagram showing the control configuration of the scheduling server shown in FIG. 1.

[0037] Referring to FIGS. 1 and 2, the robot scheduling system (1) may include first to third robots (10, 20, 30) and a scheduling server (40).

[0038] In an embodiment, the robot scheduling system (1) can supply pallets containing parts to multiple process lines producing products in a smart factory and assign work lists to multiple robots that collect pallets with parts consumed from multiple process lines.

[0039] In the embodiment, the plurality of robots is described as three first to third robots (10, 20, 30), but the number of robots is not limited.

[0040] In addition, the first to third robots (10, 20, 30) may be different robots, for example, a robot without a robot arm that handles transportation and a robot with a robot arm that handles the task of loading parts onto a pallet, but are not limited thereto.

[0041] The first robot (10) can supply pallets containing parts to a process line or collect pallets with parts consumed from the process line and move them to a set location according to a first task list schedule that lists the first task list assigned by the scheduling server (40).

[0042] The second robot (10) can supply pallets containing parts to the process line according to the second task list schedule that lists the second task list assigned by the scheduling server (40), or collect pallets with parts consumed from the process line and move them to a set location.

[0043] At this time, the first and second robots (10, 20) are described as having different set loads for moving pallets, for example, the first robot (10) can move a load of 10 kg, and the second robot (20) can move a load of 20 kg, which is larger than the set load of the first robot (10).

[0044] The third robot (30) can place parts into an empty pallet where parts have been consumed, according to the third task list schedule that lists the third task list assigned by the scheduling server (40).

[0045] That is, unlike the first and second robots (10, 20), the third robot (30) can perform the task of loading parts onto an empty pallet without moving the pallet containing the parts.

[0046] When the first robot (10) receives the first task list (sc1) from the scheduling server (40), it can list the first task list (sc1) in the first task list schedule.

[0047] In addition, the first robot (10) can transmit the first robot state information (state1) to the scheduling server (40) at set time intervals.

[0048] Here, the first robot state information (state1) may include a first task list schedule assigned to the first robot (10), the current location of the first robot (10), and the remaining battery.

[0049] When the second robot (20) receives the second task list (sc2) from the scheduling server (40), it can list the second task list (sc2) in the second task list schedule.

[0050] Additionally, the second robot (20) can transmit second robot state information (state2) to the scheduling server (40) at set time intervals.

[0051] Here, the second robot state information (state2) may include a second task list schedule assigned to the second robot (20), the current location of the second robot (20), and the remaining battery.

[0052] When the third robot (30) receives the third task list (sc3) from the scheduling server (40), it can list the third task list (sc3) in the third task list schedule.

[0053] Additionally, the third robot (30) can transmit the third robot state information (state3) to the scheduling server (40) at set time intervals.

[0054] Here, the third robot state information (state2) may include the third task list schedule assigned to the third robot (30), the current location of the third robot (30), and the remaining battery.

[0055] The scheduling server (40) may include a job creation unit (110), a robot selection unit (120), and a job assignment unit (130).

[0056] The work generation unit (110) can generate first to third work lists (sc1, sc2, sc3) according to the work required to produce a product.

[0057] In the embodiment, the work generation unit (110) is described as generating first to third work lists (sc1, sc2, sc3), but the number of work lists is not limited.

[0058] That is, the work generation unit (110) can generate first to third work lists (sc1, sc2, sc3) based on product information (input) entered to produce a product.

[0059] Here, product information (input) may include the total number of products produced (data1), the number of parts for assembling the products (data2), and the number of parts for each process line for assembling the products (data3), and may be received from a management device (not shown) that manages product production in a smart factory.

[0060] The work generation unit (110) can calculate the number of missing parts in each of the multiple process lines based on the total number of production items (data1), the number of parts per part (data2), and the number of parts per process line (data3).

[0061] In the embodiment, the number of parts corresponds to three first to third robots (10, 20, 30). For convenience of explanation, the number of parts of the first part (n1) and the number of parts of the second part different from the first part (n2) are described, but are not limited thereto.

[0062] For example, if the work generation unit (110) determines that the number of parts (n1) of the first part is insufficient in the first specific process line among the plurality of process lines, it can generate a first work list (sc1) for moving the first part to the first part pallet located in the first specific process line.

[0063] The first work list (sc1) may include the name of the first part, the number of the first part pallet, and a move command to move the first part to the first part pallet.

[0064] Additionally, if the work generation unit (110) determines that the number of parts (n2) of the second part is insufficient in the second specific process line among the plurality of process lines, it can generate a second work list (sc2) for moving the second part to the second part pallet located in the second specific process line.

[0065] The second work list (sc2) may include the name of the second part, the number of the second part pallet, and a move command to move the second part to the second part pallet.

[0066] In the embodiment, the movement of each of the first and second parts is described as moving the first and second pallets containing the first and second parts, respectively, and it is described that the first part must be supplied preferentially.

[0067] The work generation unit (110) can generate a third work list (sc3) for placing the first parts in the first pallet to supply the number of parts of the first parts to be supplied to the first specific process line.

[0068] The third work list (sc3) may include the name of the first part, the number of the first pallet, and a move command to load the first part onto the first pallet.

[0069] Afterwards, the work generation unit (110) can generate a fourth work list (not shown) for sequentially supplying the second part after the third work list (sc3).

[0070] The robot selection unit (120) can select a specific robot (not shown) for supplying the first and second parts to each of the first and second specific process lines based on the first to third task lists (sc1, sc2, sc3) generated by the task generation unit (110), the first robot state information (state1) of the first robot (10), the second robot state information (state2) of the second robot (20), and the third robot state information (state3) of the third robot (30).

[0071] As described above, the first robot state information (state1) includes a first task list schedule assigned to the first robot (10), the current location of the first robot (10), and the remaining battery, the second robot state information (state2) includes a second task list schedule assigned to the second robot (20), the current location of the second robot (20), and the remaining battery, and the third robot state information (state2) may include a third task list schedule assigned to the third robot (30), the current location of the third robot (30), and the remaining battery.

[0072] That is, the robot selection unit (120) can select the specific robot to which the first to third task lists (sc1 to sc3) are assigned, taking into account the robot type, current location, and remaining battery of each of the first to third robots (10 to 30).

[0073] First, when selecting the specific robot to perform the first task list (sc1), the robot selection unit (120) can extract at least one part robot through a robot type that matches the type of corresponding task of the first task list (sc1) among the first to third robots (10 to 30).

[0074] Subsequently, the robot selection unit (120) calculates the shortest distance from the current position to the target position of the task and the shortest distance travel time converted into time, using the robot position included in the last task list assigned to the robot among the first to third task list schedules as the current position, and determines the task completion time by adding the task completion time of the last task list of the robots and the shortest distance travel time, and can select the robot with the fastest task completion time among the robots as a specific robot.

[0075] In this way, the robot selection unit (120) can select the specific robot to perform the second and third task lists (sc2) after the robot selection for the first task list (sc1) is completed.

[0076] In an embodiment, the robot selection unit (120) selects some robots among the first to third robots (10 to 30) to perform the first task list (sc1), namely the first and second robots (10, 20), and among the first and second robots (10, 20), the first robot, which has a remaining battery that is greater than or equal to a set reference battery amount and has the fastest task completion time, can be selected as the specific robot.

[0077] Afterwards, the robot selection unit (120) can select the second robot (20) to perform the second task list (sc2) among the first to third robots (10 to 30) as the specific robot, and select the third robot (30) to perform the third task list (sc3) as the specific robot.

[0078] The work assignment unit (130) can assign the first to third work lists (sc1 to sc3) to each of the first to third robots (10 to 30) based on the first to third work lists (sc1 to sc3) generated by the work generation unit (110) and the first to third robots (10 to 30) selected by the robot selection unit (120).

[0079] Additionally, when the work assignment unit (130) assigns the first work list (sc1) to the first robot (10), it can generate an optimal movement path that avoids collisions with other robots from the robot position included in the last work list of the first work list schedule to the target position of the first specific process line.

[0080] The work assignment unit (130) can assign the optimal movement path of the second and third work lists (sc2, sc3) and the second and third work lists (sc2, sc3) as described above with the second robot (20) and the third robot (30).

[0081] Afterwards, the task assignment unit (130) can add an optimal movement path and a task completion time to each of the first to third task lists (sc1 to sc3) and assign them to each of the first to third robots (10 to 30).

[0082] With the first to third task lists (sc1 to sc3) assigned to the first to third robots (10 to 30) by the task assignment unit (130), error occurrence information can be received from the second robot (20).

[0083] At this time, when the robot selection unit (120) receives error occurrence information from the second robot (20) among the first to third robots (10 to 30), it can retrieve a second task list schedule including a second task list (sc2) assigned to the second robot (20).

[0084] Additionally, the robot selection unit (120) retrieves the first and third task list schedules assigned to the first and third robots (10, 30), and can select one of the first and third robots (10, 30) as the robot to perform the second task list (sc2) among the first and second robots (10, 30).

[0085] That is, the robot selection unit (120) calculates the shortest distance to the corresponding target position for performing the corresponding task of the second task list (sc2) and the shortest distance travel time converted into time based on the task position and task completion time included in the last task list of each of the first and third task list schedules, and determines the task completion time by adding the task completion time of the last task list of the other robots and the shortest distance travel time, and can select the robot with the fastest task completion time among the other robots.

[0086] In the embodiment, the robot to which the second task list (sc2) is reassigned is described as the first robot (10).

[0087] At this time, the work assignment unit (130) may assign a second work list (sc2) to be added after the last work list of the first work list schedule previously assigned to the first robot (10), or may assign it by changing the order of the work lists included in the first work list schedule and the second work list (sc2).

[0088] Additionally, when the work assignment unit (130) assigns the second work list (sc2) to the first robot (10), it can generate an optimal movement path that avoids collisions with the second and third robots (20, 30) from the robot position included in the last work list of the first work list schedule to the target position of the work performing the second work list (sc2).

[0089] The above work completion time can be set as the work completion time based on the previous work end time and the shortest distance travel time by converting the shortest distance of the first robot (10) into time.

[0090] In an embodiment, the work assignment unit (130) stores the current location of the second robot (20) where an error occurred, that is, identifies the locations of the first to third robots (10 to 30) and blocks the current location of the second robot (20) on a map for setting an optimal movement path, and regenerates the optimal movement path by avoiding the blocked current location of the second robot (20) according to the work list schedule to be performed on each of the first and third robots (10, 30), thereby reassigning the first and third work list schedules of each of the first and third robots (10, 30).

[0091] Additionally, the task assignment unit (130) receives first to third robot state information (state1 to state3) from the first to third robots (10 to 30) at set time intervals and can update the task completion time based on the error between the task completion time calculated when assigning the task and the actual task completion time of a non-conflicting path.

[0092] Figure 3 is an example diagram illustrating the operation of the scheduling server shown in Figure 2.

[0093] Figure 3 illustrates a series of actions for selecting a specific robot according to a task list in a scheduling server (40).

[0094] That is, the scheduling server (40) selects a robot based on the task list (sc) and robot state information (state) generated by the task creation unit (110), and assigns the task list and movement path to the robot.

[0095] For example, a task list (sc) can be represented in the format [(Picking, a, cart1)] or [(Transfer, cart1, place1)].

[0096] First, [(Picking, a, cart1)] means the operation of loading item a onto cart1, and [(Transfer, cart1, place1)] can mean the operation of moving cart1 to place1 (a specific process line).

[0097] The scheduling server (40) can select a specific robot capable of performing a task list based on robot state information from the robot selection unit (120).

[0098] For example, the robot selection unit (120) can select a robot capable of performing a picking task when the task list (sc) is [(Picking, a, cart1, 16:20:25)], for example, a robot with a robot arm that is responsible for loading parts onto a pallet, and when the task list (sc) is [(Transfer, cart1, place1, 16:50:25)], a robot capable of performing a transfer task, for example, a robot without a robot arm that is responsible for transportation.

[0099] The scheduling server (40) can select a robot whose allowable weight included in the robot state information (state) is greater than the weight of the part / cart to be picked and transferred.

[0100] Afterwards, the scheduling server (40) calculates the shortest distance of the robots and the shortest distance travel time converted into time according to the task list schedule included in the robot state information of the selected robots, and can determine (calculate) the task completion time by adding the task completion time of the last task list of the other robots and the shortest distance travel time.

[0101] At this time, the scheduling server (40) can add the task completion time and optimal travel path to the task list (sc).

[0102] FIG. 4 is a flowchart illustrating the operation method of a scheduling server according to the present invention.

[0103] Referring to FIG. 4, the scheduling server (40) receives product information (input) for producing a product (S110), and can generate a work list for supplying parts to a specific process line among a plurality of process lines based on the product information (input) (S120).

[0104] That is, the scheduling server (40) can generate first to third task lists (sc1, sc2, sc3) based on product information (input) for producing a product.

[0105] The product information (input) may include the total number of products produced (data1), the number of parts for assembling the products (data2), and the number of parts for each process line for assembling the products (data3), and may be received from a management device (not shown) that manages product production in a smart factory.

[0106] The scheduling server (40) can calculate the number of missing parts in each of the multiple process lines based on the total number of production items (data1), the number of parts per part (data2), and the number of parts per process line (data3).

[0107] In the embodiment, the number of parts corresponds to three first to third robots (10, 20, 30). For convenience of explanation, the number of parts of the first part (n1) and the number of parts of the second part different from the first part (n2) are described, but are not limited thereto.

[0108] The first work list (sc1) may include the name of the first part, the number of the first part pallet, and a move command to move the first part to the first part pallet.

[0109] Additionally, if the scheduling server (40) determines that the number of parts (n2) of the second part is insufficient in the second specific process line among the multiple process lines, it can generate a second task list (sc2) for moving the second part to the second part pallet located in the second specific process line.

[0110] The second work list (sc2) may include the name of the second part, the number of the second part pallet, and a move command to move the second part to the second part pallet.

[0111] In the embodiment, the movement of each of the first and second parts is described as moving the first and second pallets containing the first and second parts, respectively, and it is described that the first part must be supplied preferentially.

[0112] The scheduling server (40) can generate a third work list (sc3) for placing the first parts in the first pallet to supply the number of parts (n1) of the first parts to be supplied to the first specific process line.

[0113] The third work list (sc3) may include the name of the first part, the number of the first pallet, and a move command to move the first part to the first pallet.

[0114] Afterwards, the scheduling server (40) can generate a fourth task list (not shown) for sequentially supplying the second component after the third task list (sc3).

[0115] The scheduling server (40) can select a specific robot that supplies parts to the specific process line based on the robot status information of each of the task list and the plurality of robots (S130), and assign the task list to the specific robot so that it is listed in the task list schedule assigned to the specific robot (S140).

[0116] That is, the scheduling server (40) can select a specific robot (not shown) for supplying the first and second parts to each of the first and second specific process lines based on the first to third task lists (sc1, sc2, sc3), the first robot state information (state1) of the first robot (10), the second robot state information (state2) of the second robot (20), and the third robot state information (state3) of the third robot (30).

[0117] The scheduling server (40) can select the specific robot to which the first to third task lists (sc1 to sc3) are assigned, taking into account the robot type, current location, and remaining battery of each of the first to third robots (10 to 30).

[0118] First, when selecting the specific robot to perform the first task list (sc1), the scheduling server (40) can extract at least one part robot through a robot type that matches the type of the corresponding task of the first task list (sc1) among the first to third robots (10 to 30).

[0119] Subsequently, the scheduling server (40) calculates the shortest distance from the current location to the target location of the task and the shortest distance travel time converted into time, using the robot location included in the last task list assigned to the robot among the first to third task list schedules as the current location, and determines the task completion time by adding the task completion time of the last task list of the robots and the shortest distance travel time, and can select the robot with the fastest task completion time among the robots as a specific robot.

[0120] In this way, the scheduling server (40) can select the specific robot to perform the second and third task lists (sc2) after the robot selection for the first task list (sc1) is completed.

[0121] In an embodiment, the scheduling server (40) selects some of the robots to perform the first task list (sc1) among the first to third robots (10 to 30), namely the first and second robots (10, 20), and can select the first robot among the first and second robots (10, 20) that has the fastest task completion time as the specific robot.

[0122] Afterwards, the scheduling server (40) can select the second robot (20) to perform the second task list (sc2) among the first to third robots (10 to 30) as the specific robot, and select the third robot (30) to perform the third task list (sc3) as the specific robot.

[0123] The scheduling server (40) can assign the first to third task lists (sc1 to sc3) to each of the first to third robots (10 to 30) based on the first to third task lists (sc1 to sc3) and the selected first to third robots (10 to 30).

[0124] Additionally, when the scheduling server (40) assigns the first task list (sc1) to the first robot (10), it can generate an optimal movement path that avoids collisions with other robots from the robot position included in the last task list of the first task list schedule to the target position of the first specific process line.

[0125] The scheduling server (40) can assign tasks by adding the task completion time and movement path to the second and third task lists (sc2, sc3) as described above with the second robot (20) and the third robot (30).

[0126] The scheduling server (40) determines whether to receive error occurrence information transmitted from any of the plurality of robots (S150), and if it receives the error occurrence information, it can reallocate the plurality of work lists listed in the work list schedule of the arbitrary robot to other robots excluding the arbitrary robot among the plurality of robots (S160).

[0127] That is, the scheduling server (40) can receive error occurrence information from the second robot (20) while the first to third task lists (sc1 to sc3) are assigned to the first to third robots (10 to 30).

[0128] At this time, when the scheduling server (40) receives error occurrence information from the second robot (20) among the first to third robots (10 to 30), it can retrieve the second task list schedule including the second task list (sc2) assigned to the second robot (20).

[0129] Additionally, the scheduling server (40) retrieves the first and third task list schedules assigned to the first and third robots (10, 30), and can select one of the first and third robots (10, 30) as the robot to perform the second task list (sc2) among the first and second robots (10, 30).

[0130] That is, the scheduling server (40) calculates the shortest distance to the corresponding target location for performing the corresponding task of the second task list (sc2) and the shortest distance travel time converted into time based on the task location and task completion time included in the last task list of each of the first and third task list schedules, and determines the task completion time by adding the task completion time of the last task list of the other robots and the shortest distance travel time, and can select the robot with the fastest task completion time among the other robots.

[0131] In the embodiment, the robot to which the second task list (sc2) is reassigned is described as the first robot (10).

[0132] At this time, the scheduling server (40) may assign a second task list (sc22) to be added after the last task list of the first task list schedule previously assigned to the first robot (10), or may assign it by changing the order of the task lists included in the first task list schedule and the second task list (sc2).

[0133] Additionally, when the scheduling server (40) assigns the second task list (sc2) to the first robot (10), it can generate an optimal movement path that avoids collisions with the second and third robots (20, 30) from the robot position included in the last task list of the first task list schedule to the target position of the task that performs the second task list (sc2), and a task completion time for completing the task.

[0134] The above work completion time can be set as the work completion time based on the previous work end time and the shortest distance travel time by converting the shortest distance of the first robot (10) into time.

[0135] In an embodiment, the scheduling server (40) stores the current location of the second robot (20) where an error occurred, that is, identifies the locations of the first to third robots (10 to 30), blocks the current location of the second robot (20) on a map for setting an optimal movement path, and regenerates the optimal movement path by avoiding the blocked current location of the second robot (20) according to the task list schedule to be performed on each of the first and third robots (10, 30), thereby reassigning the first and third task list schedules of each of the first and third robots (10, 30).

[0136] Additionally, the scheduling server (40) receives first to third robot state information (state1 to state3) from the first to third robots (10 to 30) at set time intervals and can update the work completion time based on the error between the work completion time calculated when assigning the work and the actual work completion time of a non-conflicting path.

[0137] FIGS. 5 and FIGS. 6 are illustrative diagrams for explaining steps (S140) and (S160) shown in FIGS. 4.

[0138] FIG. 5 shows a state in which a task list is assigned to a plurality of robots in step (S140), and FIG. 6 shows a state in which a task list is reassigned to at least one of the plurality of robots in step (S160).

[0139] That is, each of the multiple robots (R1 to R7) in Fig. 5 can perform tasks according to the assigned task list schedule.

[0140] At this time, if an error such as a malfunction occurs in the robot (R5) of FIG. 5 and the scheduling server (40) receives information about the error, as shown in FIG. 6, the next task list [(Transfer, cart2, p3, 16:19:53)] can be removed and retrieved from the robot (R5), excluding the current task list [(Transfer, cart1, p1, 16:07:10)].

[0141] As shown in FIGS. 2 and 4, when the scheduling server (40) receives information about an error occurring in the robot (R5), it can update the status of the robot (R5) and retrieve a task list schedule including a task list assigned to the robot (R5).

[0142] At this time, the scheduling server (40) blocks the current position of the robot (R5) on a set map and can retrieve robot status information of other robots (R1 to R4, R6, R7) excluding the robot (R5).

[0143] When the robot status information of the other robots (R1 to R4, R6, R7) is retrieved, the scheduling server (400) can reassign the task to be performed by the robot (R5), for example, the following task list [(Transfer, cart2, p3, 16:19:53)] as described above, to any of the other robots (R1 to R4, R6, R7).

[0144] Here, at least one of the other robots (R1 to R4, R6, R7) can have its work list schedule reconfigured by the scheduling server (40), and at this time, can regenerate an optimal movement path that avoids the blocked current position of the robot (R5) where an error occurred.

[0145] The embodiments according to the present disclosure described above may be implemented in the form of a computer program that can be executed through various components on a computer, and such a computer program may be recorded on a computer-readable medium. In this case, the medium may include a magnetic medium such as a hard disk, a floppy disk, and a magnetic tape, an optical recording medium such as a CD-ROM and a DVD, a magneto-optical medium such as a floptical disk, and a hardware device specifically configured to store and execute program instructions, such as a ROM, RAM, flash memory, etc.

[0146] Meanwhile, the above computer program may be one specifically designed and configured for the present disclosure, or one known and available to a person skilled in the art of computer software. Examples of computer programs may include machine code, such as that produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter, etc.

[0147] In the specification of this disclosure (particularly in the claims), the use of the term "above" and similar descriptive terms may be in both singular and plural. Furthermore, where a range is described in this disclosure, it is to include an invention to which individual values ​​belonging to said range are applied (unless otherwise stated), as is equivalent to describing each individual value constituting said range in the detailed description of the invention.

[0148] Unless explicitly stated otherwise, the steps constituting the method according to the present disclosure may be performed in a suitable order. The present disclosure is not necessarily limited by the order in which the steps are described. The use of any examples or exemplary terms (e.g., etc.) in the present disclosure is merely for the purpose of describing the present disclosure in detail and, unless limited by the claims, the scope of the present disclosure is not limited by such examples or exemplary terms. Furthermore, a person skilled in the art will understand that various modifications, combinations, and changes may be made according to design conditions and factors within the scope of the claims or equivalents to which they are added.

[0149] As described above, the disclosed embodiments have been explained with reference to the attached drawings. Those skilled in the art will understand that the present disclosure may be practiced in forms different from the disclosed embodiments without changing the technical spirit or essential features of the present disclosure. The disclosed embodiments are illustrative and should not be interpreted restrictively.

Claims

1. A step of generating a first task list according to the tasks required for product production; A step of selecting a first robot to perform the task among the plurality of robots based on robot state information for each of the plurality of robots; and A step of assigning the first task list to the first robot; comprising Operation method of the scheduling server.

2. In Paragraph 1, The above robot status information is, including robot type, pre-assigned task list and task battery, Operation method of the scheduling server.

3. In Paragraph 2, The step of selecting the first robot above is, A step of extracting some robots of a robot type that matches the type of work among the plurality of robots above; A step of calculating the shortest distance to the target position of the task for each of the aforementioned robots based on the task position included in the last task list among the above task lists, and the shortest distance travel time converted into time; A step of determining the task completion time by adding the task completion time of the last task list of the above-mentioned robots and the shortest distance travel time; and A step comprising selecting the robot with the fastest task completion time among the aforementioned robots as the first robot. Operation method of the scheduling server.

4. In Paragraph 3, Prior to the step of allocating the first task list above, The method further includes the step of generating an optimal movement path that avoids collisions with other robots from a work position included in the last work list of the first robot to a target position of the work. Operation method of the scheduling server.

5. In Paragraph 4, The step of allocating the above first task list is, Adding the optimal movement path and the task completion time to the first task list and assigning it to the first robot, Operation method of the scheduling server.

6. In Paragraph 1, When error occurrence information is received from the second robot among the plurality of robots, a step of retrieving the second task list assigned to the second robot; and The method further includes the step of reassigning the second task list to a third robot among the plurality of robots to perform the corresponding task according to the second task list. Operation method of the scheduling server.

7. In Paragraph 6, The step of reallocating the above second task list is, Retrieving other work schedules assigned to robots other than the second robot among the plurality of robots, and calculating the shortest distance to the corresponding target location for performing the corresponding task of the second task list and the shortest distance travel time converted into time based on the work location and work completion time included in the last task list among the other task lists, determining the work completion time by adding the work completion time of the last task list of the other robots and the shortest distance travel time, and selecting the robot with the fastest work completion time among the other robots as the third robot. Operation method of the scheduling server.

8. In Paragraph 7, The method further includes the step of generating an optimal movement path that avoids collisions with other robots from a work location included in the last work list of the third robot to a target location of the work. The step of reallocating the above second task list is, Reassigning a new task list to the third robot, adding the task completion time and the optimal movement path to the second task list, Operation method of the scheduling server.

9. A work generation unit that generates a first work list according to the work required for product production; A robot selection unit that selects a first robot to perform the task among the plurality of robots based on robot status information for each of the plurality of robots; and It includes a task assignment unit that assigns the first task list to the first robot, and The above robot status information is, Includes robot type, pre-assigned task list and task battery, and The above robot selection unit is, Among the plurality of robots mentioned above, some robots of a robot type that matches the type of the task are extracted, and Calculate the shortest distance to the target position of the task for each of the aforementioned robots based on the task position included in the last task list among the above task lists, and the shortest distance travel time converted into time from the shortest distance. The task completion time is determined by adding the task completion time of the last task list of the aforementioned robots and the shortest distance travel time, and Selecting the robot with the fastest task completion time among the aforementioned robots as the first robot. Scheduling server.

10. In Paragraph 9, The above robot selection unit is, When error occurrence information is received from the second robot among the plurality of robots, other work schedules assigned to other robots excluding the second robot among the plurality of robots are retrieved, and based on the work location and work completion time included in the last work list among the other work lists, the shortest distance to the corresponding target location for performing the corresponding work in the second work list and the shortest distance travel time converted into time are calculated, and the work completion time is determined by adding the work completion time of the last work list of the other robots and the shortest distance travel time, and the robot with the fastest work completion time among the other robots is selected as the third robot. The above work assignment unit, Generating an optimal movement path that avoids collisions with other robots from a work location included in the last work list of the third robot to a target location of the work, and reassigning a new work list to the third robot by adding the work completion time and the optimal movement path to the second work list. Scheduling server.

Citation Information

Patent Citations

  • Robot control device

    JP2005324278A

  • Rice cake cutting device and rice cake manufacturing device comprising the same

    KR1020250174747A

  • Method and control apparatus for cooperative cleaning with multi-robot

    KR102117984B1

  • System and method for searching disaster scene based multiple robot

    KR102152979B1

  • Tool automatic feeder

    KR102731985B1