Order picking system using autonomous mobile robots and robot control server of the system
The control server optimizes the order picking process by calculating time costs and planning paths for autonomous mobile robots, addressing inefficiencies and collisions, resulting in faster and more accurate order fulfillment.
Patent Information
- Application Number
- PCT/KR2025/011681
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-08-14
- Filing Date
- 2025-08-05
- Publication Date
- 2026-02-19
AI Technical Summary
Current order picking systems using autonomous mobile robots are inefficient and inaccurate due to the lack of a control method that reflects the characteristics of autonomous mobile robots, leading to increased complexity and difficulty in handling diverse and smaller customer orders, as well as potential collisions and overlaps between robots.
A control server that calculates time costs for each robot, determines optimal destination nodes, and plans paths to minimize overlaps and collisions by considering different travel times and obstacle avoidance capabilities of autonomous mobile robots.
The system enhances the efficiency and accuracy of order picking by minimizing overall work time and preventing overlaps, thereby reducing the time required for the order picking process and avoiding collisions.
Smart Images

Figure KR2025011681_19022026_PF_FP_ABST
Abstract
Description
ORDER PICKING SYSTEM USING AUTONOMOUS MOBILE ROBOTS AND ROBOT CONTROL SERVER OF THE SYSTEM
[0001] The present disclosure relates to a robot control system (or order picking system) for performing an order picking process of a logistics warehouse using an autonomous mobile robot.
[0002] In general, "order picking" is one of the critical processes in a logistics warehouse and refers to a logistics activity of collecting items stored in a logistics center or warehouse and preparing them for delivery according to customer orders. That is, the order picking may refer to the process of picking and shipping items based on customer orders.
[0003] Meanwhile, with the advancement of robot technology, research has been conducted to utilize robots in the order picking process. As part of such research, methods have been proposed to assist human workers using robots, for example, having the robots accommodate collected items according to orders while moving.
[0004] However, currently, technologies related to information and communication as well as the robot technology are rapidly developing. In addition, with the development of such technologies enabling the provision of a greater variety of product information to customers, customer orders are also trending toward greater diversification and smaller quantities.
[0005] As customer orders become more diversified and reduced in quantity, the order picking process is also trending toward handling a wider variety of items in smaller volumes. Accordingly, as the number of items to be picked within a predetermined time increases, the order picking process becomes more difficult and complex. In line with this increasingly difficult and complex order picking process, there is a growing demand for new methods of managing and controlling robots used for order picking, that is, order picking robots.
[0006] Moreover, not only core robot technologies but also related technologies such as communication and sensing have advanced together, leading to the emergence of autonomous mobile robots capable of moving independently to designated destinations. In particular, with the development of sensor technologies that measure distances to surrounding objects, such as LiDAR sensors, robots equipped with the ability to detect and avoid obstacles on their own are now being introduced. On the other hand, the method of managing and controlling the current order picking robot does not reflect the characteristics of autonomous mobile robots, such as assuming that only one robot can be located in one node or assuming only a state in which the distance on the node is constantly set.
[0007] Therefore, there is a need for an improved control method for the order picking robots that reflects the characteristics of autonomous mobile robots, so that order picking can be performed more quickly and accurately.
[0008] An object of the present disclosure is to provide an order picking system including a control server configured to control a plurality of order picking robots to perform order picking more quickly and accurately by reflecting the characteristics of autonomous mobile robots capable of detecting and avoiding obstacles, and a plurality of autonomous mobile robots managed by the control server.
[0009] Another object of the present disclosure is to provide an order picking system including a control server configured to establish a path plan for each of a plurality of order picking robots and to control the plurality of order picking robots according to the established path plans, by reflecting different travel times required between nodes and the characteristic that a plurality of order picking robots may overlap at the same node as the autonomous mobile robots are capable of detecting and avoiding obstacles.
[0010] According to an aspect of the present disclosure, a control server of an order picking system for collecting items according to an order of a customer by controlling a plurality of autonomous mobile robots in a logistics center in which different types of items are loaded in different nodes according to an embodiment of the present disclosure includes a cost calculator configured to calculate a time cost according to a movement time and a work time of each robot, for each of at least one destination node for picking at least one item included in an order assigned to each robot, a destination selector configured to set a destination node having a minimum time cost for each robot as a destination based on the calculated time cost for each destination node, and a controller configured to determine the destination for each robot by controlling the cost calculator and the destination selector.
[0011] In an embodiment, the destination selector is configured to: in a case where a plurality of robots are overlapped at any one node at the same time with the destination node having the minimum time cost, determine the one node as the destination of the robot having the minimum time cost calculated for the one node among the robots with overlapping destination nodes, and determine a different destination for each robot by redetecting the destination node having the minimum time cost for each of the remaining robots not assigned a destination.
[0012] In an embodiment, the cost calculator is configured to: when the one node is determined as a destination for one of the robots with overlapping destination nodes, recalculate a time cost for the one node with respect to each of the remaining robots among the robots with overlapping destination nodes, based on a work completion time at the one node of the robot for which the one node is determined as the destination, and the destination selector is configured to: determine a destination for each of the remaining robots not assigned a destination, based on the recalculated time cost for the one node and the time costs for other destination nodes included in the order assigned to each robot.
[0013] In an embodiment, the destination selector is configured to: in a case where a plurality of robots are overlapped at any one node at the same time with the destination node having the minimum time cost, assume, for the robots with overlapping destination nodes, each of the cases in which the one node is set as the destination for each robot, and determine destinations for the remaining robots in each of the cases, and calculate, for each of the cases, a number of overlaps of destination nodes having the minimum time cost that overlap at the same time among the remaining robots, and a total time cost obtained by summing the time costs of each robot for the destination nodes determined for each robot, and determine the destination for each robot according to one of the cases based on at least one of the total time cost and the number of overlaps.
[0014] In an embodiment, the destination selector is configured to: calculate a reference cost based on a total time cost of a case having the lowest total time cost among the cases in which the total time cost and the number of overlaps are calculated, detect, as cases to be selected, a case having a total time cost equal to or less than the reference cost, and determine a destination for each robot according to any one of the cases to be selected.
[0015] In an embodiment, the destination selector is configured to: select, among the cases to be selected, a case in which the number of overlaps is zero, and determine the destination for each robot according to the corresponding case.
[0016] In an embodiment, the destination selector is configured to: when there are a plurality of cases in which the number of overlapping is zero, determine the destination for each robot according to the case having the lowest total time cost.
[0017] In an embodiment, the destination selector is configured to: when there is no case in which the number of overlapping is zero among the cases to be selected, selects, as a candidate case, a case having the smallest number of overlaps among cases including a plurality of robots in which a destination node overlaps with one node and another node at the same time, assume, for the candidate case, each of the cases in which the other node is set as the destination for each robot, and calculate the number of overlaps and the total time cost for each of the cases, and replace the candidate case with the cases in which the number of overlaps and the total cost are calculated.
[0018] In an embodiment, the destination selector is configured to: when there are a plurality of candidate cases, select, as the candidate case, a case having the lowest total time cost.
[0019] In an embodiment, the destination selector is configured to: when the case to be selected is detected, calculate the reference cost by multiplying a predetermined reference factor by a minimum value among total time costs calculated in each of the detected cases to be selected.
[0020] In an embodiment, the controller is configured to: group robots having the same destination node, wherein the destination selector is configured to: for a group having a number of robots equal to or greater than a predetermined reference number, based on the number of robots included in each group, in a case where a plurality of robots are overlapped at any one node at the same time with the destination node having the minimum time cost, determine the one node as the destination of the robot having the minimum time cost calculated for the one node among the robots with overlapping destination nodes, and determine a different destination for each robot by redetecting the destination node having the minimum time cost for each of the remaining robots not assigned a destination, and for a group having a number of robots less than a predetermined reference number, based on the number of robots included in each group, in a case where a plurality of robots are overlapped at any one node at the same time with the destination node having the minimum time cost, assume, for the robots with overlapping destination nodes, each of the cases in which the one node is set as the destination for each robot, and determine destinations for the remaining robots in each of the cases, and calculate, for each of the cases, a number of overlaps of destination nodes having the minimum time cost that overlap at the same time among the remaining robots, and a total time cost obtained by summing the time costs of each robot for the destination nodes determined for each robot, and determine the destination for each robot according to one of the cases based on at least one of the total time cost and the number of overlaps.
[0021] In an embodiment, the controller is configured to: when a start node from which a plurality of robots begin movement overlaps with an arbitrary node, generate virtual nodes in the arbitrary node, each occupied by different robots, and perform a path plan for each of the plurality of robots based on the virtual node occupied by each robot as the start node.
[0022] In an embodiment, the control server further includes a collision detector configured to detect whether a collision occurs by checking movement paths over time from a position of each robot to a destination of each robot, once paths from a position of each robot to a destination of each robot are planned, wherein the collision detector is configured to: when a robot moves along the edge, regard the robot as occupying both nodes at both ends of an edge, which is a path between two nodes, and detect a collision when each node regarded as being occupied by one robot overlaps with a node regarded as being occupied by another robot.
[0023] In an embodiment, the controller is configured to: detect movements that meet a predetermined condition when movement paths for each robot that do not cause a collision are planned as a result of the collision detection of the collision detector, determine whether there are unnecessary movements among the detected movements, and remove movements determined to be unnecessary from the movement paths of each robot to plan optimized movement paths, wherein the determination of whether there are unnecessary movements is based on whether a collision occurs as a result of the collision detection of the collision detector when the detected movement is removed from the movement path of each robot.
[0024] In an embodiment, the movements that meet the predetermined condition include a round-trip movement of a robot located at a first node, moving to a second node, which is another node adjacent to the first node, and then returning to the first node.
[0025] According to an aspect of the present disclosure to achieve the above or other purposes, a method for controlling the control server according to an embodiment of the present disclosure includes assigning, to each robot, an order including information on destination nodes to be visited by each robot for picking items, and information on a work time required for each robot to pick items at each destination node; calculating a time cost according to a movement time and the work time of each robot for each destination node included in the order assigned to each robot; setting a destination node having a minimum time cost for each robot as a destination based on the time cost calculated for each destination node included in the order assigned to each robot; and planning a path from a position of each robot to a destination of each robot, and transmitting information on the planned movement path of each robot to each of the plurality of robots.
[0026] According to at least one embodiment of the present disclosure, a destination node may be set for each order picking robot by detecting a node for each robot such that the sum of work completion time costs (hereinafter, costs) of each order picking robot is minimized, while preventing overlaps between the order picking robots. Accordingly, the present disclosure has the effect of minimizing the overall work time of the order picking robots.
[0027] The present disclosure also has the effect of further increasing the efficiency of an order picking system using autonomous mobile robots by establishing a path plan for each order picking robot, based on different travel times required between nodes and the characteristic that a plurality of order picking robots may overlap at the same node.
[0028] FIG. 1A is a conceptual diagram illustrating a structure of an order picking system utilizing autonomous mobile robots according to an embodiment of the present disclosure.
[0029] FIG. 1B is a block diagram illustrating a configuration of a control server for controlling a plurality of robots in the order picking system illustrated in FIG. 1A.
[0030] Fig. 2A and 2B are diagrams illustrating examples of a conventional node graph for a path plan of a robot and a node graph for a pate plan of an order picking robot according to an embodiment of the present disclosure.
[0031] FIG. 3 is a flowchart illustrating an operation process in which a control server performs an order picking process for a plurality of robots according to an embodiment of the present disclosure.
[0032] FIG. 4 is a flowchart illustrating an operation process in which the control server sets a destination to one of the destination nodes included in the order assigned to each robot.
[0033] FIG. 5 is a flowchart illustrating a first destination determination process in which the control server determines a destination for each robot based on the destination nodes of the order assigned to each robot and the current location of the robot, as shown in FIG. 4.
[0034] FIG. 6 is a flowchart illustrating a second destination determination process in which the control server determines a destination for each robot based on the destination nodes of the order assigned to each robot and the current location of the robot, as shown in FIG. 4.
[0035] FIG. 7 is a flowchart illustrating an operation process in which the control server calculates the cost for each case of the robots with overlapping target nodes, as shown in FIG. 6.
[0036] FIG. 8 is an exemplary diagram illustrating an example in which the destination of each robot is determined through the second destination determination process.
[0037] FIG. 9 is a flowchart illustrating an operation process in which the control server establishes a path plan to a destination set for each robot.
[0038] FIG. 10 is an exemplary diagram illustrating a concept of starting a path plan for a plurality of robots having overlapping start locations, according to an embodiment of the present disclosure.
[0039] FIG. 11 is an exemplary diagram illustrating an example in which a robot is regarded as occupying an edge between nodes, according to an embodiment of the present disclosure.
[0040] FIG. 12 is an exemplary diagram illustrating an example of a round-trip movement path of a robot.
[0041] FIG. 13 is a flowchart illustrating an operation process in which the control server groups robots based on the destination nodes of orders assigned to each robot and sets a destination of each robot in different ways for each group.
[0042] FIG. 14 is an exemplary diagram illustrating an example in which the robots are grouped by group, as shown in FIG. 13.
[0043] FIGS. 15 and 16 are exemplary diagrams illustrating an operation process in which a path plan for each robot is extracted from a multi-path plan, and an example of an action dependency graph generated according to the path plan for each robot.
[0044] It should be noted that the technical terms used in the present specification are intended only to describe particular embodiments and are not intended to limit the present disclosure. In addition, singular expressions used in the present specification are intended to include plural forms as well, unless the context clearly indicates otherwise. The terms such as "comprise" or "include" used in the present specification should not be construed as necessarily including all of the components or steps described in the specification, and some of the components or steps may not be included, or additional components or steps may be further included.
[0045] In addition, in describing the technology disclosed in the present specification, detailed descriptions of related known technologies are omitted when it is determined that such descriptions may obscure the gist of the disclosed technology.
[0046] In a warehouse management system (WMS) that receives an order from an orderer, order information including at least one item is generated, and a control server receives the order information from the WMS. In this case, order information including at least one item is received, and the order information may include an item name, item description, barcode, image URL, item storage location (location), instruction quantity, and the like.
[0047] The location, which refers to the point where the item is stored, consists of a code including at least one of a zone where the item is stored, a line, a passage, a shelf, and a storage position of the item within the shelf.
[0048] A plurality of locations may be grouped into a location group. The location group may be formed based on zones or passages, and when location groups exist, all locations must be included in at least one location group. The location groups may be created to prevent robots from being concentrated in a specific area and to distribute the robots to location groups where items requiring picking are present.
[0049] A station, which refers to a point where the robot stops, may include a picking station, at which the robot stops to pick an item included in the assigned picking task, a drop-off station, at which the robot stops to perform a drop-off task of unloading a picked item or a tote, a loading station, at which the robot stops to perform a loading task of loading a tote, a charging station, at which the robot stops to perform a charging task by docking with a charging device, and a standby station, at which the robot stops to perform a return task for standby.
[0050] The picking task refers to a task in which the robot moves to a picking station, which serves as a picking location, to pick an item, and the robot remains stopped at the picking station until a picking completion is input through an input / output device.
[0051] The drop-off task refers to a task in which the robot moves to a drop-off station, which serves as a drop-off location, to unload a loaded item or tote, and the robot remains stopped at the drop-off station until a drop-off completion is input through an input / output device.
[0052] The loading task refers to a task in which the robot moves to a loading station, which serves as a tote storage location, to load an order associated with the robot, and the robot remains stopped at the loading station until a loading completion is input through an input / output device.
[0053] The return task refers to a task in which the robot moves to a standby station when there is no remaining task after performing a drop-off task, and the robot remains stopped at the standby station until a new order is assigned.
[0054] In this case, the drop-off station and the loading station may be the same, and the standby station and the loading station may also be the same. That is, a tote may be loaded at the same place where the tote is dropped off, and the tote may also be loaded at the place where the robot is waiting.
[0055] In addition, a picking station may be associated with a single location, and the robot may move to and stop at a picking station associated with the location of an item included in the picking task to perform the picking task. A picking station may also be associated with a plurality of locations, and the locations associated with the same picking station may be positioned adjacent to each other. For example, the locations of items stored in the same column or the same row on a shelf may be associated with the same picking station, at least two or more columns or rows may be associated with the same picking station, and locations within a predetermined distance or within a predetermined radius from a reference location may also be associated with the same picking station.
[0056] The picking station may also include a sub-station. That is, a first picking station may designate a second picking station as its sub-station, and when the first picking station is occupied by a first robot, a robot that is supposed to perform a picking task at the first picking station may stop at the second picking station, which is the sub-station of the first picking station, and perform the picking task there.
[0057] The tote is a loading container configured to hold picked items, and may be associated with one or more orders. It is loaded into a loading space formed in the robot and is transported by the robot. The size and shape of the tote are not limited, and two or more loading spaces may be formed within a single tote.
[0058] The robot may include an input / output device configured to output order information assigned to the robot, a picking object item, and the robot state, and to receive signals such as word completion and information requests from a worker.
[0059] Hereinafter, embodiments disclosed in the present specification will be described in detail with reference to the accompanying drawings.
[0060] FIG. 1A is a conceptual diagram illustrating a structure of an order picking system utilizing autonomous mobile robots according to an embodiment of the present disclosure.
[0061] Referring to FIG. 1A, an order picking system according to an embodiment of the present disclosure may include a plurality of order picking robots (hereinafter referred to as robots) that assist workers in a logistics center (robot 1, robot 2, ... robot n), and a control server 10 configured to manage and control the plurality of robots. In this case, the logistics center may store inventory items in different areas according to their types.
[0062] The robots may assist a worker in collecting designated items at each location while sequentially visiting picking stations associated with a plurality of locations, according to orders assigned to each robot. Each of the robots may sequentially move to the plurality of picking stations according to a path plan provided by the control server 10 through a network. In this case, the worker may collect items in the specified quantity at each location visited by the robot and load the collected items onto the robot.
[0063] In this case, each robot may provide the worker with information on the items to be collected at each location, thereby guiding the worker to collect items at each location based on the information provided by the robot. That is, by allowing the worker to collect only the specified quantity of items at the location of the robot, the burden of memorizing the item quantities and locations for order picking may be reduced. In addition, since the robot may autonomously move along the path provided by the control server 10 and automatically visit picking stations associated with the locations for item collection, the burden on the worker of having to determine the robot's movement path may be alleviated. That is, by allowing the robot to guide the worker's movement, the workload of the worker may be reduced, and human errors that may occur during the order picking process may be prevented.
[0064] In addition, by moving instead of the worker, the robot may load the collected items on behalf of the worker. To this end, each robot may be provided with a space for loading items collected by the worker at each location. The loading space may include at least one shelf for supporting the weight of the loaded items, and the shelf may be configured to be height-adjustable.
[0065] In addition, the robot may include at least one traveling drive unit and a power unit configured to supply power to the traveling drive unit. The traveling drive unit may be provided on a lower portion of the main body of the robot and may include a wheel-type platform including at least one wheel, a track-type platform including a caterpillar, or a leg-type robot platform including at least one leg. The traveling drive unit may include at least one actuator or motor that operates according to a control signal from the robot controller and may move the main body of the robot in front, rear, left, and right directions, or rotate it in place by driving the actuator or motor.
[0066] In addition, the power unit may include at least one battery and may further include a charging unit including a charging terminal for charging the battery. Preferably, the battery may be configured to be detachable.
[0067] Meanwhile, the robot may include at least one sensor and a camera to enable autonomous mobile according to a path plan provided by the control server 10. At least one sensor may include an obstacle detection sensor configured to detect objects around the robot and to measure the distance between the detected objects and the robot. In this case, the obstacle detection sensor may include at least one of an infrared sensor, a radar sensor using electromagnetic waves, a LiDAR sensor using laser pulses, and a camera.
[0068] The robot may include different obstacle detection sensors positioned at different heights to detect obstacles in different ways depending on height. For example, the robot may include a 3D LiDAR sensor configured to detect obstacles at a first height predetermined from the ground. The 3D LiDAR sensor may detect surrounding obstacles in three dimensions by capturing X, Y, and Z axis data. In addition, the robot may include a depth camera as a sensor for detecting obstacles at a second height predetermined from the ground. Here, the first height may be greater than the second height with respect to the ground. Accordingly, the depth camera may detect obstacles located lower than those detectable by the 3D LiDAR sensor and may recognize position markers.
[0069] In addition, the robot may be configured to allow a worker to manually control the robot. To this end, the robot may include a switch that enables the operation mode to be switched to a manual operation mode in which control commands from the worker may be input.
[0070] When the switching switch is activated, the robot may release the locked state of the moving means. Then, the robot may be switched to a state in which the moving means is unlocked, for example, a torque-free state, and may be movable in the direction in which the worker applies force.
[0071] In addition, although not illustrated, the robot may include a position sensor for detecting its position and an antenna functioning as a communicator for communicating with the control server 10. The robot may also include an emergency stop switch for stopping the robot in an emergency, and a bumper for protecting the robot in the event of a collision with an obstacle. In addition, the robot may include an output unit configured to provide the worker with visual and auditory information regarding the current state of the robot, the currently estimated position of the robot, and the item picking status according to the orders assigned to the robot. The output unit may include a display for displaying the visual information, a speaker for outputting the auditory information, and an optical output unit including at least one LED.
[0072] Meanwhile, the control server 10 may manage and control a plurality of robots connected through a network. The control server 10 may generate an order for collecting items according to a customer's request. The order may be for picking up items requested by a single customer or multiple customers. In addition, the items requested by the at least one customer may be stored in one location or in multiple locations.
[0073] The control server 10 may generate at least one order based on the customer or the items to be collected. The order may involve collecting a specified quantity of items stored in a single location or collecting specified quantities of items stored in multiple locations, respectively. Accordingly, the order may include information on at least one location where the items to be collected are stored, and the quantity of items to be collected at each location.
[0074] Meanwhile, the control server may assign different orders to each robot in order to perform item collection according to the orders more efficiently. In this case, each order may include at least one of a plurality of locations where different types of items to be collected are stored. Accordingly, each robot may move to a plurality of picking stations based on the order assigned to it.
[0075] However, in a logistics center, since locations where different types of items are stored are mixed, as described above, the destinations of multiple robots may overlap when the robots move according to their assigned orders, or while one robot is performing a task at a specific picking station, at least one other robot may attempt to move to the same picking station as its destination. In such cases where destinations overlap, robots other than the one currently performing the task at the destination must wait until that task is completed, resulting in increased time for the order picking process. In addition, since multiple robots move simultaneously, collisions may occur between moving robots.
[0076] Therefore, the control server 10 may assign different orders to each of the plurality of robots and determine a visiting sequence for the destinations included in each assigned order so as to minimize destination overlaps among the robots. In addition, the control server 10 may determine movement paths to the respective destinations assigned to each robot to prevent collisions during movement. As described above, the control server 10 may determine an optimal visiting sequence for the destinations in each robot's assigned order to minimize destination overlap among robots, and may perform path planning to generate movement paths that avoid collisions between the robots as they travel to their respective destinations.
[0077] Meanwhile, in the order picking process, since all orders assigned to each robot must be completed, the fewer the number of overlaps in destinations between robots and the shorter the duration of such overlaps, the shorter the overall time required for the order picking process may be. In addition, the less time robots spend moving along unnecessary paths, the shorter their movement time may be. Therefore, the fewer the occurrences of avoidance maneuvers caused by path collisions between robots, the more the order picking process time may be reduced. That is, more efficient path planning may involve minimizing both the number and duration of destination overlaps, as well as planning robot paths in a way that minimizes collisions on their movement paths.
[0078] Here, the movement path of a robot that moves between multiple picking stations according to an order may be represented as a line connecting nodes, where each node corresponds to a picking station and the lines correspond to the robot's movement paths between the nodes. In the following description, picking stations associated with locations where different types of items are stored in the logistics center will be referred to as nodes for convenience. Accordingly, each order may include information on the nodes that each robot must visit, as well as information on the items to be collected at each node. Then, the control server 10 may calculate the work time required for collecting items at each node based on the quantity of items to be picked at the node. The calculated completion time for each node may be cost as time required for order picking of the robot according to the assigned order, that is, time cost.
[0079] Meanwhile, the control server 10 may determine the destination of each robot based on the cost calculated for each node included in the order assigned to the robot. In this case, the control server 10 may determine destinations such that the total cost calculated for each robot is minimized, and may transmit the corresponding movement path to each robot. Then, each robot may start autonomous mobile toward the destination set by the control server 10 along the movement path transmitted from the control server 10.
[0080] The destination determination by the control server 10 may be performed at predetermined time intervals or upon the occurrence of a preset event. In this case, the control server 10 may detect robots that satisfy preset conditions and may update their destinations by performing the destination determination process again for the detected robots.
[0081] Here, not only a robot that has completed a task assigned to a specific node, but also a robot currently moving to a destination may be detected as satisfying the preset condition. That is, in some cases, a robot that has not yet arrived at a destination node while moving to a destination determined in a previously performed destination determination process may also be a robot that satisfies a predetermined condition for detecting robots to determine the destination. In this case, if a new destination, different from the previously assigned one, is determined as a result of the newly performed destination determination process, the destination of the robot in transit may be changed to another node. That is, the control server 10 may change a robot's destination to a different node even while the robot is moving.
[0082] FIG. 1B is a block diagram illustrating the configuration of a control server 10 in an order picking system according to an embodiment of the present disclosure, which determines a destination for each robot based on an order assigned to the robot, plans a movement path to the determined destination, and transmits the movement path to each robot.
[0083] Referring to FIG. 1B, the control server 10 according to an embodiment of the present disclosure may include an input unit 110, a cost calculator 120, a destination selector 130, a multi-path planner 150, a controller 100, a communicator 160, and a memory 170. The components illustrated in FIG. 1B are not essential for implementing the control server 10, and the control server 10 described herein may include more or fewer components than those listed above.
[0084] First, the input unit 110 may receive information on the types and quantities of items requested by a customer. The input unit 110 may include a push key, a touch key, or a keypad to allow information to be entered. Alternatively, the input unit 110 may include at least one remote control terminal configured to be communicatively connected to the control server 10. In this case, the remote control terminal may include a smart phone, a laptop computer, a slate PC, a tablet PC, an ultrabook, or the like.
[0085] The cost calculator 120 may calculate a time cost, that is, a cost, for each node included in an order assigned to each robot, based on the current position of the robot, under the control of the controller 100. When the number of items to be collected at each node is determined according to the order assigned to each robot, the cost calculator 120 may calculate a work time required to collect the items at each node based on the determined quantity. In this case, the work time may vary depending on the size, weight, and quantity of the items loaded at each node. For example, the unit work time required to collect each item may be determined according to the size or weight of the item. In this case, the larger the size or weight of the item, the longer the unit work time may become. Then, the unit working time according to the items loaded at each node may be multiplied by the number of items to be collected at each node, and thus the working time of the robot for each node may be calculated.
[0086] In this case, information on the unit work time according to the items loaded at each node may be pre-stored in the memory 170 in association with each node. Accordingly, the cost calculator 120 may retrieve the unit work time corresponding to each node from the memory 170 to calculate the work time, and may calculate the work time for each node of each robot using the retrieved unit work time information.
[0087] The cost calculator 120 may calculate a movement time of each robot for each node included in an order assigned to the robot, based on the current position of each robot for which a destination is to be determined. In this case, the cost calculator 120 may calculate the movement time based on at least one node (intermediate node) to be passed from the current node of each robot to each node included in the assigned order, and the distances between the intermediate nodes.
[0088] Here, in a conventional path plan algorithm for determining the routes of robots moving to different destinations, it is generally assumed that all distances (i.e., time distances) between nodes are the same. Accordingly, in such conventional robot path planning algorithms, the number of nodes through which the robots pass within the same amount of time is the same. Based on this assumption, the shortest-time path for each robot to reach its assigned destination may be calculated. Part (a) of FIG.2 illustrates an example of a conventional node graph in which the movement distance between all nodes is the same.
[0089] Referring to part (a) of FIG. 2, part (a) of FIG. 2 illustrates an example of a case in which a grid structure is formed such that the spacing between nodes is uniformly set to a value 'a'. In this case, as shown in part (a) of FIG. 2, the distance between nodes may be equal to a reference distance 'a', which may represent a time distance that a robot takes to move between the nodes.
[0090] As described above, since the time it takes for each robot to move between nodes is the same, in the node graph used for conventional robot route planning, if any one robot is located on a specific node, all other robots are also considered to be located on some node. Accordingly, it becomes easy to calculate the time required for each robot to move to its destination along a given path. However, due to different topographical characteristics between nodes, the time it takes for each robot to drive between nodes may vary. Furthermore, it may be necessary for a robot to perform specific functions during movement, such as at a location where a charging port is installed. Thus, the conventional node graph presents difficulties in establishing a realistic robot path plan.
[0091] In contrast, the order picking system according to an embodiment of the present disclosure may determine the distance (i.e., time distance) between nodes to be different from one another. For example, the topographical characteristics between a first node and a second node may differ. In this case, the time required for a robot to move between the first node and the second node may be shorter or longer than the time required to move between other nodes, depending on the topographical characteristics.
[0092] Alternatively, a specific function may be assigned to the path between the first node and the second node so that the robot performs the function while moving. For example, a charging station may be arranged between the first node and the second node, and a robot moving between the first node and the second node may perform charging for a predetermined period through the charging station. Accordingly, the time required for the robot to move between the first node and the second node may be longer than the time required to move between other nodes due to the assigned function, namely, charging.
[0093] Accordingly, as illustrated in part (b) of FIG. 2, the node graph for path plan of the order picking robot according to an embodiment of the present disclosure may have a length corresponding to an integer multiple (n times (nХb), m times (mХb), etc.) of b, based on the shortest distance b between nodes.
[0094] As the distances between nodes may differ from one another, the control server 10 of the present disclosure may reflect, in the path plan, the movement time according to different topographical characteristics between nodes. In addition, based on function elements arranged at specific locations, the control server 10 may also reflect, in the path plan, the time required for a special function (e.g., charging) that is designated for a specific path. Accordingly, the path plan may be performed more flexibly, and a more accurate path plan that reflects real-world situations may be established.
[0095] Meanwhile, as shown in the node graph for the path plan of the order picking robot according to an embodiment of the present disclosure illustrated in part (b) of FIG. 2, the cost calculator 120 may calculate movement times to each of the destination nodes included in an order assigned to each robot, from the current position of the robot, based on the node graph in which the distances between nodes differ. For example, the cost calculator 120 may search for the shortest distance to each of the destination nodes included in the order assigned to the robot, based on the node graph having different distances between nodes from the current position of the robot. Then, based on the searched shortest distance, the calculator may sum the distances between the nodes through which the robots pass, and calculate the movement time to each destination node from the current position of the robot.
[0096] Here, the node corresponding to the destination may include: a picking station at which the robot stops to perform a picking task for picking an item; a lowering station at which the robot stops to perform a lowering task for lowering a picked item or a tote such as a small box or station; a loading station at which the robot stops to perform a loading task for loading the tote; a charging station at which the robot stops to perform a charging task for docking with a charging device; and a standby station at which the robot stops to perform a return task for standby.
[0097] When the movement times are calculated, the cost calculator 120 may calculate, for each robot, a work completion time (hereinafter referred to as "completion time") for each destination node, that is, each station, by adding the movement time and the work time calculated for each node. In this case, the calculated completion times may serve as time costs, that is, costs, for each station. Accordingly, the cost calculator 120 may calculate, from the order assigned to each robot: the completion time for each node, that is, each picking station, included as a destination in the order assigned to each robot; the completion time for each node, that is, each lowering station, included as a destination in the lowering destination assigned to each robot; the completion time for each node, that is, each loading station, included as a destination in the tote loading destination assigned to each robot; and the completion time for each node, that is, each charging station, included as a destination in the charging location assigned to each robot, that is, the cost at each of the respective stations.
[0098] When the controller 100 detects robots for which a destination is to be determined, the cost calculator 120 may perform, for each of the detected robots, a cost calculation for each node according to the order assigned to the corresponding robot.
[0099] Meanwhile, the destination selector 130 may determine, as a target node, one of the destination nodes, that is, stations, included in the order assigned to each of the destination setting object robots, based on the cost for each node calculated by the cost calculator 120. When the same target node is determined for multiple robots, the destination selector 130 may determine the target node as the destination for one of the robots with overlapping target nodes. And for at least one other robot for which the target node is not selected as the destination, the destination may be changed to another node included in the order assigned to the corresponding robot.
[0100] Meanwhile, the destination selector 130 may determine one of the nodes, that is, stations, included in the order assigned to each destination setting object robot as the destination of the corresponding robot, in various ways under the control of the controller 100.
[0101] For example, the destination selector 130 may determine a target node for each of a plurality of robots based on the costs calculated for the nodes, that is, the picking stations, included in the order assigned to each of the robots. Here, the target node refers to a candidate node that may be set as a destination. If there is no other robot with an overlapping target node, the currently selected target node may be determined as the destination for the corresponding robot.
[0102] In the following description, the target node refers to a candidate node that may be set as a destination node and is thus distinguishable from the destination node. To clearly distinguish between a node that has been determined as the destination and a target node that serves as a candidate before being finalized, the nodes determined as the destinations of each robot by the destination selector 130 will hereinafter be referred to as stations.
[0103] However, when there are a plurality of robots in which one node overlaps as a target node, the destination selector 130 may calculate a cost for the one node for each of the robots where the one node overlaps as a target node, and compare the calculated costs.
[0104] Here, the overlap may refer to a case where, during the time of destination determination, that is, during the same period, the same node is set as the destination of different robots, with the duration of being set as a destination at least partially overlapping.
[0105] In this case, for at least one second robot in which the one node is not set as the destination, the cost for that node may be updated by additionally reflecting the work time of the first robot in the previously calculated cost. Then, based on the costs calculated for each node included in the order assigned to each of the at least one second robot, including the updated cost for the one node, the node with the lowest cost may be set as the target node for each robot. If robots with overlapping target nodes occur again, the above-described process may be repeated so that, based on the current location of the robots, the nodes on the order having the minimum time cost (cost) and minimizing destination overlap may be determined as the destinations of the respective robots. Hereinafter, this destination determination method of setting the destination (i.e., station) of each robot based on the minimum cost will be referred to as the destination determination method according to the first embodiment of the present disclosure.
[0106] Meanwhile, in the first destination determination method, when a plurality of robots with overlapping target nodes have the same cost calculated for one node, the destination selector 130 may set the one node as the destination, that is, the station, for a first robot arbitrarily selected from among the robots with the same minimum cost. Then, for at least one second robot in which the one node is not set as the destination, the station assigned to each robot may be determined by updating the precalculated cost for the one node by additionally reflecting the work time of the first robot.
[0107] Therefore, in the destination determination method according to the first embodiment, it may be difficult to reflect a case where a robot other than the one robot is determined as the first robot among the robots having the same minimum cost. That is, when the other robot is determined as the first robot, the robots determined as the second robot may vary, and thus the overall cost may also vary depending on the destinations set for each robot. In this case, the overall cost when the destinations are determined according to the first destination determination method (i.e., when the one robot is determined as the first robot) (the former) may be greater than the overall cost when the other robot is determined as the first robot (the latter), and in such a case, the path plan according to the latter may be more efficient.
[0108] Accordingly, when there are a plurality of robots with overlapping target nodes for one node, the destination selector 130 may, for each of the robots in which the target node overlaps, determine destination nodes for all robots in each case where the one node is set as the destination, and may sum the costs according to the destination nodes determined for the robots. Then, for each case, the destination selector 130 may determine the destination nodes of the robots based on at least one of the number of overlaps of the target node and the summed cost, thereby detecting the most efficient path plan among the cases in which the one node is set as the destination for each of the robots with overlapping target nodes.
[0109] As described above, a method of determining destinations that enables the establishment of a path plan with optimal efficiency by summing different costs for the destinations set for each robot in each of the cases in which one node is set as the destination for each of the robots with overlapping target nodes is referred to as a destination determination method according to the second embodiment of the present disclosure.
[0110] In this case, unlike the destination determination method according to the first embodiment, in which a specific node is directly determined as the destination of one of the robots with overlapping target nodes based on the minimum cost, the destination determination method according to the second embodiment has a configuration in which, for the robots with overlapping target nodes with the specific node, destinations for the remaining robots are determined for each case where the specific node is selected as the destination for each robot, and the total cost is calculated and compared for each case where destinations are determined for each robot. Accordingly, the second destination determination method may involve a greater computational load and a more complex calculation process compared to the first destination determination method.
[0111] Here, the first destination determination method may be a simplified version of a destination determination method that enables fast computation, while the second destination determination method may be a more complex but more accurate hard version of the destination determination method compared to the first destination determination method.
[0112] Here, the destination selector 130 may determine one of the nodes included in an order assigned to each robot as a destination, that is, a picking station, according to either the first destination determination method or the second destination determination method under the control of the controller 100. For example, when the number of robots to which orders are assigned exceeds a predetermined number, the destination selector 130 may determine the destination of each robot according to the first destination determination method. On the other hand, when the number of robots to which orders are assigned is equal to or less than the predetermined number, the destination of each robot may be determined according to the second destination determination method.
[0113] Meanwhile, the multi-path planner 150 may plan paths from the current position of each robot to the destination determined by the destination selector 130 for each of the plurality of robots under the control of the controller 100.
[0114] Here, according to the above description, the robots used for order picking in the order picking system according to an embodiment of the present disclosure may be autonomous mobile robots equipped with obstacle detection sensors such as a LiDAR sensor or a camera and may detect and avoid obstacles by themselves. Accordingly, even if another robot is located at a node on the travel path, that is, the nodes through which the robots pass, the robots of the present disclosure may recognize the robot located at the via node as an obstacle and pass by it through avoidance maneuvers.
[0115] Since the robot may move through a robot located at a via node as described above, the order picking system according to an embodiment of the present disclosure may allow a plurality of robots to be located at the via node. For example, when the movement of a first robot to a specific node is completed (i.e., before starting a task at the specific node), or when the task of the first robot is completed at the specific node (i.e., after completing the task at the specific node), the specific node may be in a state occupied by the first robot. In such a state, if a second robot passes through the specific node, the specific node may be in a state occupied by a plurality of robots (the first robot and the second robot).
[0116] In addition, when a worker manually operates a robot as necessary, the robot may be located at a specific node differently from a predetermined destination node or a via node due to the manual operation. In this case, the specific node may be considered to be occupied by the manually operated robot. In such a state, if a robot that passes through the specific node or a robot for which the specific node is the destination completes its movement to the specific node to reach a destination determined according to the destination determination method, the specific node may be considered to be occupied by the robot that passes through the specific node or the robot for which the specific node is the destination.
[0117] In addition, when the destination determination process is initiated based on the expiration of a predetermined time or the fulfillment of a predetermined event at a time point when a plurality of robots occupy a single node as described above, the path plan start positions of the plurality of robots may overlap at the same node.
[0118] Meanwhile, conventional robot path planning algorithms assume that each robot occupies a different node, that is, the path planning is established on the premise that the start positions of the robots are all different. Accordingly, when one node is occupied by a plurality of robots as described above, that is, when there are multiple robots with overlapping start positions, this is regarded as a collision between the robots, making it difficult to initiate path planning.
[0119] On the other hand, when path planning for the destinations set for each robot is initiated, the order picking system according to an embodiment of the present disclosure may first detect the position of each of the plurality of robots and identify robots with overlapping positions, that is, robots considered to be occupying the same node. When such robots are detected, the system may generate virtual nodes corresponding to the number of robots occupying the same node simultaneously, and assign the robots to the respective virtual nodes. In this way, even in a situation where multiple robots are placed on a single node, path planning may be initiated for each of the robots.
[0120] To this end, the multi-path planner 150 may include a virtual node generator 151 configured to, at the start of path planning, detect a node at which a plurality of robots are positioned, generate virtual nodes corresponding to the number of robots positioned at the detected node, and assign the robots to the respective virtual nodes. Then, starting from the one node simultaneously occupied by the plurality of robots, the virtual node generator 151 may initiate path planning for each robot toward its assigned destination.
[0121] The multi-path planner 150 may plan a path from the current position of each robot to the destination of each robot determined by the destination selector 130. In this case, the multi-path planner 150 may include a collision detector 152 configured to check whether a collision occurs between the robots while each robot moves to its destination determined by the destination selector 130. In addition, the multi-path planner 150 may include a collision avoidance condition generator 153 configured to generate avoidance conditions for generating an avoidance path when a collision occurs.
[0122] In this case, the collision detector 152 may check whether the collision occurs based on the path along which each robot moves from its current position to the destination determined by the destination selector 130.
[0123] However, according to the above description, in the node graph for path planning of the order picking robot according to an embodiment of the present disclosure, the distances between nodes may be set differently. Therefore, even when one robot arrives at a specific node (e.g., arrives at a destination node, that is, a station, or passes through a node) at a certain point in time, there may still be other robots traveling along paths between nodes.
[0124] Accordingly, when a robot moves along a path between two nodes (hereinafter referred to as an edge), the collision detector 152 may regard the robot as occupying both nodes at both ends of the edge. Then, it may detect a collision when any of the nodes regarded as occupied by one robot overlaps with each node regarded as occupied by another robot. That is, when robot A moves between a first node and a second node, the collision detector 152 may regard both the first and second nodes as being occupied by robot A. If at least one of these nodes is also regarded as being occupied by another robot B, the collision detector 152 may detect that a collision occurs between robot A and robot B.
[0125] Meanwhile, when a collision is detected by the collision detector 152, the collision avoidance condition generator 153 may generate avoidance conditions to avoid the collision. For example, the collision avoidance condition generator 153 may generate conditions for avoiding the collision between robots by delaying one of the robots in which the collision is detected, or by moving one of the robots to an avoidance path. In this case, the collision avoidance conditions generated by the collision avoidance condition generator 153 may be newly generated each time a destination determination process is initiated and a path plan is performed, and may be accumulated together with previously generated collision avoidance conditions.
[0126] The communicator 160 may include at least one module configured to enable wireless communication between the control server and a plurality of robots. It may transmit information on the path plan generated for each robot to the respective robot. In addition, it may receive various types of information transmitted from each robot. In this case, the information received from each robot may include location information of the robot and may also include information indicating a work progress status for an order assigned to the robot.
[0127] Meanwhile, the memory 170 may store data for supporting various functions of the control server 10. The memory 170 may store a plurality of application programs executed by the control server 10, as well as data and instructions for operating the control server 10.
[0128] As data for supporting functions of the control server 10, the memory 170 may store information on items loaded at each location. In this case, information on a unit work time determined based on the size and weight of the items loaded at each location may be stored in association with each location, that is, each node. In addition, the control server 10 may store information on a path, that is, an edge, between each node, and may store different distance information (time distance) for each edge, which is determined according to a specified function or characteristic of the edge. In this case, information related to the characteristics and functions of each edge may also be stored in the memory 170.
[0129] In addition, order information of a customer input through the input unit 110 may be stored in the memory 170. The order information may include information on the customer and the type and quantity of items requested by the customer. In this case, the order information stored in the memory 170 may be used by the controller 100 to determine an order for at least one robot, that is, a picking station associated with a location that the robot should visit to collect items, and information for determining a work time of the robot for each picking station. The work time may be determined based on a unit work time for picking items corresponding to the picking station and the quantity of items to be collected. The cost calculator 120, the destination selector 130, and the multi-path planner 150 may each refer to a set of instructions and related data stored in a storage space separate from the memory 170. Alternatively, the cost calculator 120, the destination selector 130, and the multi-path planner 150 may each refer to a set of instructions and related data stored in the memory 170 and executed by a processor of the controller 100.
[0130] Meanwhile, the controller 100 may control each connected component and manage the overall operation of the control server 10. For example, the controller 100 may generate orders for a plurality of robots based on the order information input through the input unit 110, and assign the generated orders to each of the plurality of robots. In this case, each order may include information on a picking station to be visited by the robot and a work time at each station.
[0131] When an order is assigned to each robot, the controller 100 may control the cost calculator 120 to calculate work completion times for each of the destination nodes (stations) included in the order assigned to each robot, based on the current position of each robot. Here, the work completion time, that is, the completion time, may be calculated as the sum of the movement time required for the robot to move to each station and the work time required at each station, such as the time required for picking. In this case, the completion time may be calculated as a time cost, that is, a cost of the robots, for each destination included in the order. Once the completion times, or costs, are calculated for each destination in the order assigned to each robot, the controller 100 may control the destination selector 130 to determine, for each robot, one of the picking stations included in the order as the destination based on the calculated costs.
[0132] In this case, the controller 100 may determine the destination of each robot using either the first destination determination method or the second destination determination method. When the controller 100 determines the destinations according to the second destination determination method, the calculation of the costs for each node included in the order and the destination determination for each robot may be repeatedly performed depending on whether there are robots for which the same node is set as the destination.
[0133] Alternatively, the controller 100 may divide the plurality of robots into a plurality of groups according to the destinations included in the orders assigned to each robot. The destinations of the robots in each group may then be determined using different destination determination methods. For example, when the number of robots included in a group exceeds a preset reference number, the controller 100 may determine the destinations according to the first destination determination method. In contrast, when the number of robots included in a group is equal to or less than the preset reference number, the controller 100 may determine the destinations according to the second destination determination method.
[0134] When any one node on the order assigned to each robot, that is, a picking station, is determined as the destination for a robot, the controller 100 may control the multi-path planner 150 to perform a path plan from the current position (i.e., the currently occupied node) of each robot to the destination set for that robot. To this end, the controller 100 may detect a plurality of robots occupying the same node simultaneously and may generate and assign virtual nodes corresponding to the occupied node to initiate the path planning for the detected robots. In addition, the controller 100 may detect whether a collision occurs along the robot movement path toward the destination set for each robot, and may generate and store avoidance conditions for avoiding the detected collisions. As a result, path plans may be generated such that each robot may move to its designated destination without collisions.
[0135] Meanwhile, when the path plans for each robot are generated, the controller 100 may check whether any unnecessary movement is included in the path plans. To this end, the controller 100 may detect a movement pattern of a robot that satisfies a preset condition for detecting unnecessary movement, and may further check whether the detected movement pattern is actually necessary.
[0136] For example, the condition for detecting unnecessary movement may include a round-trip movement of the robot. The round-trip movement refers to a movement in which the robot revisits one of the nodes previously passed, including the most recently passed node, and may be part of an avoidance maneuver to prevent a collision when the robot's movement path overlaps with that of another robot. However, if there is no collision with another robot, such round-trip movement is unnecessary, and this unnecessary movement of the robot may increase the time cost. Accordingly, when a path plan to a destination with no collision is generated for each robot, the controller 100 may detect whether the path plan for each robot includes unnecessary movement, and if such movement is detected, may remove the unnecessary movement to optimize the path plan. Once the optimized path plans for each robot are generated, the controller 100 may control the communicator 160 to transmit each path plan to the corresponding robot. Then, each robot that receives the path plan may begin autonomous travel along the destination and path specified in the received path plan.
[0137] Meanwhile, the controller 100 may check whether a preset period for restarting destination determination or a specific event has occurred. In this case, the controller 100 may determine that the event has occurred when a situation arises in which the destination for any one of the plurality of robots needs to be redetermined. For example, the controller 100 may determine that the event has occurred when a robot reaches a previously assigned destination and needs to move to a new destination after completing its task, or when the robot is in a state where it cannot follow the transmitted path plan due to an operational abnormality or unplanned work (e.g., work caused by manual operation by a worker).
[0138] When the determination of the destination for each robot is restarted according to the preset period or the occurrence of an event, the control server 10 may detect robots that satisfy a preset destination re-determination condition, and may update the destinations by performing the destination determination process again for the detected robots.
[0139] For example, robots that satisfy the destination re-determination condition may include a robot that has completed work at the currently occupied node, a robot moving toward a currently set destination, or a robot that has arrived at a destination node (station) but has not yet started work. That is, all robots except those performing work at their currently occupied nodes may be detected as robots satisfying the destination re-determination condition. Accordingly, even while a robot is in motion, the destination set for that robot may be changed, and in this case, a new path plan corresponding to the updated destination may be transmitted to the moving robot.
[0140] Meanwhile, as described above, in the node graph for order picking according to an embodiment of the present disclosure, the edges between nodes may have different time lengths. Accordingly, at the time when a preset period expires or when an event occurs, there may be robots located not only on nodes passed during movement to the destination, but also on edges between nodes. In this case, if a robot is located on a node, the node corresponding to the current location of the robot may be regarded as being occupied by the robot, and thus, a path plan for the robot may be made using the occupied node as the starting point.
[0141] Hereinafter, with reference to the accompanying drawings, embodiments related to a control method of the control server 10 will be described, in which the control server 10 configured as described above determines a destination for each robot according to an order assigned to each robot, and generates a path plan for each robot based on the determined destination. It will be apparent to those skilled in the art that the present disclosure may be embodied in other specific forms without departing from the spirit and essential features of the present disclosure.
[0142] First, FIG. 3 is a flowchart illustrating an operation process in which a control server 10 performs an order picking process for a plurality of robots according to an embodiment of the present disclosure.
[0143] Referring to FIG. 3, the controller 100 of the control server 10 according to an embodiment of the present disclosure may generate an order for each robot and assign the generated order to each robot based on the input customer order information (step S302).
[0144] Here, the order information may include information on a customer, information on an item ordered by the customer, and information on the quantity of the item. Then, in step S302, the controller 100 may determine a node, that is, a picking station, to collect the item based on the information on the item ordered by the customer. In addition, the controller 100 may calculate the work time required at the picking station based on the unit work time corresponding to the item according to the determined picking station and the quantity information of the item included in the order information. In this case, the order information may include information on a plurality of different types of items, and in such a case, the controller 100 may calculate, from the order information, the work time required at a plurality of different picking stations and at each of the picking stations.
[0145] Meanwhile, in step S302, the controller 100 may determine destination nodes, that is, picking stations, and calculate work times corresponding to each picking station for each of the plurality of order information. Then, the controller 100 may assign, to each of the plurality of robots, a task for at least one picking station. Accordingly, each robot may be assigned information on at least one picking station and a work time based on the quantity of items to be collected at the picking station.
[0146] Hereinafter, information including at least one station assigned to each robot and a work time calculated for each station will be referred to as an order. Accordingly, the order assigned to a specific robot may include information on the nodes, that is, the stations, that the specific robot should visit and perform tasks at, and information on the work time at each station. In addition, the order may include information on the items to be handled (for example, collected) at each station and information on the quantity to be handled. Here, the information on the items may further include information on the customer who ordered the items.
[0147] In step S302, once an order is generated for each robot and the generated order is assigned to each robot, the controller 100 may set one of destination nodes, that is, the stations included in the order assigned to each robot, as a destination of each robot (step S304). To this end, the controller 100 may calculate movement times for each robot according to a path from the current location to each of the destination nodes included in the order assigned to each robot.
[0148] Here, the path includes nodes through which the robot passes from the current location to the destination node, and edges between the nodes, and the movement time may be calculated based on the sum of time costs assigned to each of the edges included in the path. Then, the controller 100 may calculate a work completion time, hereinafter referred to as a completion time, for each destination node by summing the calculated movement time and the work time included in the order. Accordingly, the completion times of the destination nodes included in each order for the robots to which the orders are assigned may be calculated. In this case, the calculated completion times may be used as time costs, that is, costs, for each destination node.
[0149] Then, the controller 100 may determine, for each robot, one of the destination nodes included in the order assigned to the robot as the destination, based on the costs calculated for each destination node.
[0150] In this case, the controller 100 may primarily determine a destination of each robot according to a station corresponding to a cost having the minimum value among the costs calculated for each destination included in the order assigned to each robot. When a specific station is determined as a destination by a plurality of robots, that is, when destination overlapping occurs, the controller 100 may determine the specific station as the destination of one of the robots based on the cost calculated for the specific station, alternatively, the controller 100 may calculate a total cost for a case in which the specific station is set as a destination for each of the plurality of robots with overlapping destinations, and may determine the destination of each robot based on a case where the specific station is determined as the destination of one of the robots according to the calculated cost.
[0151] Hereinafter, a more detailed operation process of calculating a time cost for each destination node included in the order, based on the current position of each robot and the work time assigned to each node, and determining a destination of each robot according to the calculated time cost will be described in more detail with reference to FIG. 4.
[0152] Meanwhile, when a destination is determined for each robot through step S304, the controller 100 may perform a path planning process for each robot according to the determined destination for each robot (step S306). In this case, the path planning may include a process of handling a start node such that the path planning of each robot starts from an overlapped position when the current starting positions of the robots overlap, a collision detection process, and a process of setting an avoidance condition for avoiding collisions when a collision is detected. In addition, the path planning process of step S306 may further include a process of optimizing the path planning by removing unnecessary movements of the robots on the planned path to prevent collisions until each robot reaches its destination set in step S304. Hereinafter, the path planning process of step S306 will be described in more detail with reference to FIG. 9.
[0153] When the optimized path plan for each robot is generated in step S306, the controller 100 may transmit the path plan corresponding to each robot to each robot (step S308). Each robot may then start autonomous mobile to the destination determined for each robot along the path plan provided from the control server 10.
[0154] Meanwhile, in step S308, when the path plan generated for each robot is transmitted to each robot, the controller 100 may check whether a destination resetting condition is satisfied (step S310). Here, the destination resetting condition may be a case where a time period according to a predetermined cycle expires, or a case where a predetermined event occurs.
[0155] In this case, the controller 100 may determine that the event has occurred when a situation arises in which the destination of any one of the plurality of robots should be redetermined. For example, the controller 100 may determine that the event has occurred when a robot that has completed its task after reaching a predetermined destination needs to move to a new destination, or when a robot becomes unable to operate due to a failure.
[0156] If the destination redetermination condition is not satisfied as a result of the check in step S310, the controller 100 may check whether the movement of each robot according to the order assigned to each robot has been completed (step S314). If the movement according to the assigned order has not been completed, the controller 100 may return to step S310 to check again whether the destination redetermination condition is satisfied.
[0157] If the destination redetermination condition is satisfied as a result of the check in step S310, the controller 100 may detect a robot to redetermine the destination (step S312). In this case, the controller 100 may detect robots that satisfy a predetermined destination redetermination condition. Here, the robots satisfying the destination redetermination condition may include a robot that has completed its task at an occupied node, a robot currently moving to a predetermined destination (i.e., a robot located between two nodes), or a robot that has arrived at a destination node but has not yet started a task.
[0158] Meanwhile, when robots to redetermine a destination are detected in step S312, step S304 may be performed again for the detected robots, in which one of the destination nodes included in the order assigned to each robot is determined as the destination of the corresponding robot. The destinations of the detected robots may be updated to the destinations determined through the re-executed step S304. The controller 100 may then perform the subsequent processes after step S304 to generate a path plan for the updated destinations and transmit the generated path plans to each robot. Then, the process may return to step S310 to check again whether the destination redetermination condition is satisfied.
[0159] Meanwhile, FIG. 4 is a flowchart illustrating an operation process in which the control server 10 of the order picking system according to an embodiment of the present disclosure sets a destination to one of the destination nodes included in the order assigned to each robot.
[0160] Referring to FIG. 4, when the destination determination process for at least one robot is initiated according to step S304 of FIG. 3, the controller 100 of the control server 10 may first detect the current location of each robot for which the destination is to be determined (step S400). Here, the robots for which the destination is to be determined may be robots whose destination has not yet been determined, or robots that satisfy the destination redetermination condition detected in step S312 of FIG. 3.
[0161] To this end, the controller 100 may receive current location information from each of the robots that satisfy the destination redetermination condition detected in step S312 of FIG. 3. In this case, the location of each robot may be calculated by a position sensing sensor provided in the robot. The position sensing sensor may include at least one sensor for detecting the position of the robot based on information from a wireless access point (AP), or a sensor for detecting the position of the robot by recognizing a position marker installed inside the logistics center.
[0162] When the current location of each robot is detected, the controller 100 may calculate a movement time based on a path from the detected current location of each robot to each destination node, that is, a station, included in the order (step S402). Here, the path may include nodes through which the robot passes from the current location to the destination node and edges between the nodes. The movement time may be calculated as a sum of the time costs assigned to each of the edges included in the path.
[0163] In step S402, when movement times for each destination node included in the order are calculated from the detected current location of each robot, the controller 100 may detect a work time for each destination node included in the order. Then, for each robot, the controller 100 may calculate completion times for each destination node based on the movement time and the work time calculated for each destination node included in the order (step S404).
[0164] In this case, the completion time of a specific robot for a specific destination node may be calculated as the sum of a work time for the destination node according to the order assigned to the robot and a movement time required for the robot to move to the destination node. The calculated completion time may serve as a time cost, that is, a cost, for the robot with respect to the destination node.
[0165] In step S404, when costs for each destination node, that is, a station, included in the order assigned to each robot are calculated, the controller 100 may determine one of the stations included in the order assigned to each robot as a destination based on the calculated costs for each station (step S406).
[0166] In step S406, the controller 100 may determine, for each robot, a station having the minimum cost as the destination. When a specific node is selected as the destination by multiple robots, the controller 100 may determine the specific node as the destination of one robot (first robot) according to the minimum cost. In this case, among the robots for which the specific node overlaps as a destination, the remaining robots (second robots) that are not assigned the specific node may update the cost for the node by taking into account the work time of the first robot. Then, the destination node having the minimum cost may be determined again for each robot based on the updated cost, and if overlapping destinations still exist, the above process may be repeated until mutually non-overlapping nodes are determined as destinations for all robots.
[0167] Alternatively, when a specific node is selected as a destination by multiple robots, the controller 100 may assume, for each of those robots, a case in which the specific node is set as its destination, and determine mutually non-overlapping destinations for all robots in each case. Then, in each assumed case, the controller 100 may calculate a total cost for the determined destinations of each robot, and based on at least one of the number of overlaps with other robots and the calculated total cost, the controller 100 may determine which robot should be assigned the specific node as its destination, and determine the destinations of the remaining robots accordingly.
[0168] When overlapping of a destination occurs with respect to a specific node, a destination determination method in which the robot having a smaller cost calculated for the specific node is given priority and the node is assigned as its destination to determine the destinations of the robots is referred to as a first destination determination method. Here, the first destination determination method may be a simplified version of a destination determination method that enables fast computation. Hereinafter, the first destination determination method will be described in more detail with reference to FIG. 5.
[0169] On the other hand, a destination determination method in which, for each robot in which a specific node overlaps as a destination, each case where the specific node is set as the destination is assumed, and destinations for all robots are determined based on at least one of the number of times destination overlaps occur and the calculated total cost in each case, is referred to as a second destination determination method. Here, the second destination determination method may be a more complex but more accurate hard version of the destination determination method compared to the first destination determination method. Hereinafter, the second destination determination method will be described in more detail with reference to FIG. 6.
[0170] Meanwhile, the controller 100 may selectively use either the first destination determination method or the second destination determination method according to the number of robots for which the destinations are to be determined, and determine the destination of each robot accordingly.
[0171] Alternatively, the controller 100 may divide the plurality of robots into a plurality of groups according to the destination nodes included in the orders assigned to each robot. The destinations of the robots may then be determined using different destination determination methods for each group. For example, when the number of robots in a group exceeds a predetermined number, the controller 100 may determine the destinations according to the first destination determination method, and when the number is equal to or less than the predetermined number, the destinations may be determined according to the second destination determination method. An operation process of the control server according to the present disclosure, in which the robots are grouped according to the destination nodes (i.e., stations) included in the orders and the destinations are determined in different ways depending on the number of robots in each group, will be described in more detail with reference to FIG. 13.
[0172] Meanwhile, in the following description, a robot that has completed a task at a node may transmit information indicating the completion of the task at the specific node to the control server 10. The control server 10 may then delete the node where the task is completed from the destination nodes included in the order assigned to the robot that completed the task. Accordingly, the destination node where the task is completed may no longer be set as the destination of the corresponding robot.
[0173] FIG. 5 is a flowchart illustrating a first destination determination process in which the control server 10 of the order picking system according to an embodiment of the present disclosure determines a destination for each robot based on the destination nodes of the order assigned to each robot, that is, the stations, and the current location of the robot.
[0174] Referring to FIG. 5, in step S404 of FIG. 4, the controller 100 of the control server 10 may determine, for each robot, target nodes having the minimum cost based on the costs calculated for each destination included in the order assigned to the robot (step S502). Here, the target node may refer to a node that may be set as a destination, that is, a destination candidate node, among the stations included in the order.
[0175] Tables 1 to 4 show examples in which the following are calculated information of the stations to be visited by each of robots A to D according to the orders assigned to them, work times calculated for each station, movement times to each of the destination stations assigned to each of robots A to D based on their current locations, and completion times, that is, costs, calculated based on the work times and movement times for each station.
[0176] Here, the movement time, the work time, and the completion time, which represents the time at which the movement and the work are completed, may represent relative times based on a predetermined unit time. That is, when the predetermined unit time is 10 minutes, the time "7" at which the first node is occupied may represent 70 minutes. In addition, the movement time "8" may represent 80 minutes.
[0177] robot Adestination node(station)work timemovement timecompletion time cost (cost)node 1437node 2448node 3459node 44610
[0178] robot Bdestination node(station)work timemovement timecompletion time cost (cost)노드 1448노드 74711노드 9459노드 104610
[0179] robot Cdestination node(station)work timemovement timecompletion time cost (cost)node 2437node 44610node 114812node 1341014
[0180] robot Ddestination node(station)work timemovement timecompletion time cost (cost)node 5448node 6459node 74610node 84711
[0181] As shown in Tables 1 to 4, when the work times and movement times are calculated according to the stations assigned to each of robots A to D, the controller 100 may calculate costs for each station, which serves as a destination node included in the order for each robot. In this case, in step S502, the controller 100 may determine, for each robot, target nodes having the minimum cost. Accordingly, in the case of Robot A, Node 1 having the lowest cost may be determined as the target node. Likewise, for Robot B, Node 1 may also be selected. For Robots C and D, Nodes 2 and 5 having the lowest costs may respectively be determined as their target nodes.
[0182] When target nodes are determined for each robot according to the stations having the minimum costs as described above, the controller 100 may check whether there are robots having overlapping target nodes (step S504). If there are robots with overlapping target nodes, the controller 100 may determine the overlapping target node as the destination of one of the robots based on the minimum value among the costs of the robots with the overlapping target nodes (step S506).
[0183] In this case, according to the examples of Tables 1 to 4, since both Robot A and Robot B are assigned Node 1 as their target node, the controller 100 may determine in step S504 that there are robots having overlapping target nodes. That is, Robot A stays at Node 1 from time 3 to 7 based on its work time, and Robot B stays at Node 1 from time 4 to 8. Therefore, overlap may occur during the overlapping period from time 4 to 7.
[0184] Then, the controller 100 may compare the costs calculated for the target node with respect to each of the robots having overlapping target nodes. In this case, since the cost of Node 1 is 7 for Robot A and 8 for Robot B, the controller 100 may proceed to step S506 to determine Node 1 as the destination of Robot A.
[0185] Meanwhile, in step S506, when the overlapping target node is set as the destination of one robot, the controller 100 may recalculate and update the cost for the overlapping target node with respect to the remaining robot that has not been assigned the overlapping target node as its destination. In this case, according to the above-described example, since Node 1 is set as the destination of Robot A in step S506, the controller 100 may recalculate the cost for Node 1 with respect to the other robot, that is, Robot B, which has not been assigned Node 1 as its destination.
[0186] In this case, in order for Robot B to perform a task at Node 1, the task of Robot A must be completed first. Accordingly, Robot B can occupy Node 1 for its task only after Robot A's task is completed at Node 1, that is, after the completion time of 7. Therefore, the movement time of Robot B to Node 1 may be determined to be later than 7, resulting in an updated movement time of 8. Since the work time for Node 1 is 4, the updated completion time of Robot B for Node 1 may be updated as shown in Table 5 below.
[0187] robot Bdestination node(station)work timemovement timecompletion time cost (cost)node 14812node 74711node 9459node 104610
[0188] Then, the controller 100 may determine target nodes having the minimum cost for each robot whose destination has not been set yet, including the updated cost for the robot that was not assigned the overlapping target node as its destination (step S510). When the target nodes are determined for the robots whose destinations have not been set, the controller 100 may return to step S504 to check whether there are robots with overlapping target nodes. If robots with overlapping target nodes are detected as a result of the check in step S504, the controller 100 may proceed to step S506 to assign the overlapping target node to one of the robots as its destination and repeat the subsequent steps. Accordingly, when overlapping target nodes are detected, the process from step S504 to S510 may be repeated, in which the robot having the minimum cost for the overlapping target node is preferentially assigned that node as its destination.
[0189] Meanwhile, in the above-described example, since Node 1 has already been set as the destination of Robot A, the controller 100 may determine, for each of the robots B, C, and D whose destinations have not been set, a target node having the minimum cost among their remaining destination candidates. According to the example, Node 9 may be selected as the target node for Robot B, Node 2 for Robot C, and Node 5 for Robot D. Therefore, the controller 100 may determine that there is no overlap among the target nodes of the remaining robots. Then, the controller 100 may determine target nodes determined for each robot whose destinations have not yet been set (step S512). Accordingly, destinations having the minimum cost and no overlap among multiple robots may be determined for each robot.
[0190] FIG. 6 is a flowchart illustrating a second destination determination process in which the control server 10 of the order picking system according to an embodiment of the present disclosure determines a destination for each robot based on the destination nodes of the order assigned to each robot, that is, the stations, and the current location of the robot.
[0191] Referring to FIG. 6, in step S404 of FIG. 4, the controller 100 of the control server 10 may determine, for each robot, target nodes having the minimum cost based on the costs calculated for each destination included in the order assigned to the robot (step S602). Here, the target node may refer to a node that may be set as a destination, that is, a destination candidate node, among the destination nodes included in the order.
[0192] The controller 100 may then check whether there are robots with overlapping target nodes (step S604). If there is no robot with overlapping target nodes, the controller 100 may determine each target node set in each robot as the destination for each robot (step S616).
[0193] However, if it is determined in step S604 that there are robots with overlapping target nodes, the controller 100 may assume, for each of the robots with the overlapping target node, a case in which the overlapping target node is set as the destination of that robot. Then, for each of the assumed cases, the number of overlaps of the target node and the total cost according to the destinations set for each robot may be calculated (step S606).
[0194] For example, assuming the cases shown in Tables 1 to 4, in step S606, since the target nodes of both robot A and robot B are overlapped as node 1, the controller 100 may classify a case where node 1 is set as the destination of robot A (first case) and a case where node 1 is set as the destination of robot B (second case) as separate cases.
[0195] In the first case, since node 1 is determined as the destination of robot A, the controller 100 may update the cost of robot B for node 1 in a manner similar to that shown in FIG. 6, and may determine the target nodes again based on the costs calculated for the destination nodes included in the order assigned to each robot. Then, it may check whether the target nodes are overlapped, and if they are, the number of overlapping target nodes may be counted as the number of overlaps. The costs of the target nodes determined for each robot may be summed to calculate the number of overlaps and the total cost for the first case.
[0196] Also, the controller 100 may perform a similar process with respect to the second case. In the second case, since node 1 is determined as the destination of Robot B, the controller 100 may update the cost of Robot A for node 1, and may determine the target nodes again based on the costs calculated for the destination nodes included in the order assigned to each robot. It may check whether the target nodes are overlapped, and if they are, the number of overlapping target nodes may be counted as the number of overlaps. The costs of the target nodes determined for each robot may be summed to calculate the number of overlaps and the total cost for the second case.
[0197] When the number of overlaps and the total cost for each case are calculated as described above, the controller 100 may detect the case having the minimum total cost. In this case, the controller 100 may detect only the cases in which the number of overlaps is zero or, among the cases in which the number of overlaps is not zero, the operation for other cases according to the overlapping target node, that is, the calculation of the number of overlaps and the total cost, has not yet been performed. Hereinafter, the cases in which the number of overlaps is zero or, among the cases in which the number of overlaps is not zero, the operation for other cases according to the overlapping target node has not yet been performed will be referred to as cases to be selected.
[0198] In addition, the controller 100 may detect the case having the minimum total cost among the cases to be selected. Then, a reference cost may be calculated based on the total cost of the detected case and the minimum value of the total cost (step S608).
[0199] The reference cost may be calculated as a multiple of a predetermined reference factor applied to the minimum value of the total cost. For example, the reference factor may be 1.2, and in this case, the reference cost may be calculated to be 1.2 times the minimum total cost. Here, 1.2 is merely an example assumed for convenience of explanation, and it should be understood that the reference factor according to an embodiment of the present disclosure is not limited to 1.2. That is, a greater or smaller reference factor may be set as needed.
[0200] When the reference cost is calculated in step S608, the controller 100 may detect cases among the cases to be selected that have a total cost equal to or less than the reference cost (step S610). Then, based on at least one of the calculated number of overlaps and the total cost, one of the cases having a total cost equal to or less than the reference cost may be selected (step S612).
[0201] In step S612, the controller 100 may select one of the cases by giving priority to the number of overlaps over the total cost. That is, when there are case 1 with zero overlaps and a total cost of 20, and case 2 with one overlap and a total cost of 18, case 1, which has fewer overlaps, may be selected with higher priority than case 2, even though case 2 has a lower total cost. However, if the number of overlaps is the same, the case with the lower total cost may be selected with higher priority.
[0202] When one case is selected in step S612, the controller 100 may check whether there are robots with overlapping target nodes in the selected case (step S614). That is, the controller 100 may check whether the number of overlaps in the case selected in step S612 is greater than zero. If the number of overlaps in the selected case is not zero, the controller 100 may proceed to step S606. Accordingly, for each of the robots with the overlapping target node in the case selected in step S612, a case in which the overlapping target node is set as the destination of each robot may be assumed.
[0203] Then, in step S606, the controller 100 may calculate, for each of the assumed cases, the number of overlaps of the target nodes and the total cost according to the destinations set for each robot. The controller 100 may then proceed to step S608 to detect the cases to be selected and calculate the reference cost again based on the minimum value among the total costs of the detected cases. Through steps S610 and S612, one case may be selected again from at least one case detected according to the reference cost. The controller 100 may then proceed to step S614 to check whether there are robots with overlapping target nodes in the selected case, and may repeat the processes of steps S606 to S614 depending on whether there are robots withe overlapping target nodes.
[0204] Meanwhile, as a result of the checking in step S614, if there are no robots with overlapping target nodes in the one case selected in step S612, the controller 100 may proceed to step S616 to set the target nodes determined for each robot in the currently selected case as the destination of each robot.
[0205] Meanwhile, unlike the first destination determination method in which a station having the minimum cost for each robot is preferentially set as the destination without considering the total cost, the second destination determination method determines the destination for each robot by considering the total sum of the costs for each target node determined for each robot when the target nodes are overlapped. Therefore, even if the cost of a robot calculated for a certain station is not the minimum, a destination-robot combination with the minimum total cost among all robots may be detected, which provides an advantage of being more efficient than the first destination determination method.
[0206] Meanwhile, FIG. 7 is a flowchart illustrating in more detail the operation process of step S606 in which the control server 10 calculates the cost for each case of the robots with overlapping target nodes in FIG. 6.
[0207] Referring to FIG. 7, as a result of the checking in step S604 of FIG. 6, when there are robots with overlapping target nodes determined according to the costs calculated for each station, the controller 100 of the control server 10 may assume a case in which a station corresponding to the overlapping target node is set as the destination of any one of the robots. In this case, the target nodes determined for each robot in step S604 may be referred to as primary target nodes, and one of the robots having the same primary target node (first node) may be referred to as a first robot. The case in which the first node is set as the destination of the first robot may be generated as a first case (step S702).
[0208] Then, at least another robot (second robot) among the robots with primary target nodes overlapping, except for the first robot, may change its target node to avoid a destination overlap with the first robot. To this end, each second robot may recalculate the cost for the first node (step S704).
[0209] In this case, since the first node is primarily occupied by the first robot, the movement time from each second robot to the first node may include the time during which the first node is occupied by the first robot.
[0210] More specifically, the movement time from each second robot to the first node may be updated to a time greater than the time during which the first node is occupied by the first robot by a predetermined unit time. That is, even if the actual movement time of the second robot to the first node is shorter than the time during which the first node is occupied by the first robot, the movement time of the second robot may be determined to be greater than the occupation time of the first node by the first robot. This is because, even if the second robot reaches the position of the first node, it can perform a task at the first node only after the first robot completes its task there.
[0211] Therefore, as described with reference to FIG. 5, when the time during which the first node is occupied by the first robot for task completion is 7, the movement time from each second robot to the first node may be updated to a time greater than 7, that is, 8 or more.
[0212] Meanwhile, if the time at which the second robot actually moves to the first node is longer than the time during which the first node is occupied by the first robot for task completion, the second robot may arrive after the first robot completes the task at the first node. Accordingly, the actual movement time of the second robot to the first node may be calculated as the movement time.
[0213] That is, the movement time of the second robot to the first node may be updated according to the greater of the time during which the first node is occupied by the first robot and the time required for the second robot to actually move to the first node.
[0214] Then, the controller 100 may recalculate the cost of the first node for each of the updated second robots by adding the updated movement time to the first node, which is the node set as the destination of the first robot, and the operation time at the first node according to the order assigned to each second robot. Based on the recalculated cost for the first node, the secondary target node for each second robot may be determined (step S706). In this case, the secondary target node may be a station, among the destination nodes included in the order assigned to each second robot, including the first node reflecting the recalculated cost, that has the minimum calculated cost.
[0215] The controller 100 may compare the secondary target nodes determined for each of the second robots with the primary target nodes determined for other robots excluding the first and second robots, that is, the other robots whose primary target nodes do not overlap. Then, it may check whether overlapping occurs between the secondary target nodes or between the secondary target nodes and the primary target nodes (step S708). If overlapping of target nodes occurs, the number of overlaps of target nodes may be counted as the number of overlaps (step S710). In this case, if no overlapping of target nodes occurs in step S708, the number of overlaps may remain at its initial value of zero.
[0216] Meanwhile, if no overlap of target nodes occurs in step S708 (i.e., the number of overlaps is 0) or if the number of overlaps is counted in step S710, the controller 100 may calculate the cost for each robot by assuming that the currently set target node is the destination. Then, by summing the costs calculated for the currently assumed destination of each robot, the total cost for the current case, that is, the first case, may be calculated (step S712). Accordingly, the number of overlaps of the target node and the total cost for the currently assumed case, for example, the first case, may be calculated.
[0217] If the total cost according to the destinations assumed for each robot is calculated according to the currently assumed case in step S712, the controller 100 may check whether there is another robot among the robots with overlapping target nodes for the first node, for which the total cost has not been calculated in the case where the first node is assumed as the destination (step S714). If there is such a robot, the controller 100 may assume the first node as the destination of that robot to generate a case different from the first case, that is, a second case (step S716).
[0218] Accordingly, a second case may be generated in which one of the second robots becomes the first robot, and the previous first robot becomes the second robot. Here, the first robot in the first case and the first robot in the second case may be different robots. The controller 100 may then proceed to step S704 to recalculate the movement time to the first node for each of the other robots, that is, the currently assigned second robots that have not been set to the destination of the first node, and may update the cost for the first node based on the recalculated movement time. The process from step S706 to step S714 may then be performed again.
[0219] Accordingly, a plurality of cases may be generated by assuming that each of the robots with a primary target node overlapping the first node is set to have the first node as its destination, and a total cost may be calculated for each case by summing the costs calculated based on the number of overlaps of target nodes and the destinations assumed for each robot.
[0220] When the above process is repeated and the number of overlaps of target nodes and the total cost are calculated for all cases in which the first node is assumed as the destination for each of the robots with overlapping target nodes as the primary target node, the controller 100 may proceed to step S608 of FIG. 6 to detect the cases to be selected among all the cases for which the number of overlaps and the total cost have been calculated up to that point. Here, as described above, the case to be selected may refer to a case where the number of overlaps is 0, or a case where the number of overlaps is not 0, but calculations have not yet been performed for other cases according to the overlapping target node. The controller 100 may then proceed with the subsequent process of FIG. 6.
[0221] FIG. 8 is an exemplary diagram illustrating an example in which the destination of each robot is determined through the second destination determination process described with reference to FIG. 6 and 7.
[0222] Referring to FIG. 8, the controller 100 may determine, for each robot, a destination node having the minimum cost as the primary target node of the robot based on the costs calculated for each destination node, that is, each station, included in the order assigned to each robot, as described in step S602 of FIG. 6. Accordingly, when there are seven robots ranging from the first robot to the seventh robot, a primary target node may be determined for each robot.
[0223] In this case, as shown in FIG. 8, the target node of robot 1 and the target node of robot 2 may overlap with node A 800. Then, the controller 100 may proceed to step S606 of FIG. 6 and generate a first case 811 in which node A is set as the destination of robot 1, and a second case 812 in which node A is set as the destination of robot 2.
[0224] Then, as described in FIG. 7, the controller 100 may first calculate the total cost and the number of overlaps for the first case. In the first case since node A is set as the destination of robot 1, robot 2 may re-determine its target node (secondary target node) to a node different from node A to avoid destination overlap. In this process, if the secondary target node set in robot 2 overlaps with the target node of another robot, the number of overlaps may be counted (e.g., the target nodes of robot 2 and robot 3 overlap with node B 813). In addition, the total cost for each robot may be calculated based on the secondary target node of robot 2, the target node (node A) set as the destination of robot 1, and the target nodes set for the other robots.
[0225] Similarly, as described in FIG. 7, the controller 100 may calculate the total cost and the number of overlaps for the second case. In the second case, since node A is set as the destination of robot 2, robot 1 may re-determine its target node (secondary target node) to a node different from node A to avoid destination overlap. If the secondary target node set in robot 1 overlaps with the target node of another robot, the number of overlaps may be counted (e.g., the target nodes of robot 1 and robot 3 overlap with node C 814). In addition, the total cost for each robot may be calculated based on the secondary target node of robot 1, the target node (node A) set as the destination of robot 2, and the target nodes set for the other robots.
[0226] Then, the controller 100 may detect the cases to be selected, as described in step S608 of FIG. 6, among the cases for which the number of overlaps and the total cost have been calculated. In this case, the case to be selected may refer to a case where the number of overlaps is 0, or a case where the number of overlaps is not 0, but calculations have not yet been performed for other cases according to the overlapping target node. Accordingly, although both the first case 811 and the second case 812 have nonzero numbers of overlaps, they may be detected as cases to be selected since the operations for other cases based on the overlapping target node have not yet been performed.
[0227] Then, as described in step S608 of FIG. 6, the controller 100 may detect a minimum value among the total costs of each of the cases to be selected. Then, the reference cost may be calculated by multiplying the reference factor. In this case, assuming that the reference factor is 1.2, and since the total cost of the first case is the minimum value of 20, the reference cost may be calculated as 24. Therefore, since both the first case and the second case have total costs equal to or less than the reference cost of 24, the controller 100 may detect both the first case and the second case as cases equal to or less than the reference cost.
[0228] Then, the controller 100 may select one of the cases equal to or less than the detected reference cost based on either the number of overlaps or the total cost. In this case, since the number of overlaps is the same between the first case and the second case, the controller 100 may select the first case having the lower total cost.
[0229] In this case, since the number of overlaps of the selected first case is not 0, the controller 100 may proceed to step S606 of FIG. 6 again to generate cases for each robot with overlapping target nodes according to the process described with reference to FIG. 7.
[0230] Accordingly, as shown in FIG. 8, for each of robot 2 and robot 3 whose target nodes overlap with node B in the first case, a third case 821 may be generated assuming that node B is set as the destination of robot 2, and a fourth case 822 may be generated assuming that node B is set as the destination of robot 3. The number of overlaps of target nodes and the total cost for each of the generated third case 821 and fourth case 822 may be calculated according to the operation process described with reference to FIG. 7.
[0231] In this case, as shown in FIG. 8, in the third case 821, two overlaps may be calculated: node D overlaps with the target nodes of robot 3 and robot 4, and node A overlaps with the target nodes of robot 1 and robot 6 823. In the fourth case 822, one overlap may be calculated: node E overlaps with the target nodes of robot 4 and robot 5 824.
[0232] Then, the controller 100 may detect the case to be selected among the cases for which the total cost and the number of overlaps have been calculated so far, that is, the first to fourth cases. In this case, the second to fourth cases may be detected as cases where calculations have not yet been performed for other cases according to the overlapping target node, and thus may be detected as cases to be selected. However, in the case of the first case, since the number of overlaps and the total cost have already been calculated for both the third and fourth cases corresponding to the overlapping target node, it may be excluded from the cases to be selected.
[0233] Therefore, the controller 100 may calculate the reference cost based on the minimum value among the total costs of each of the second to fourth cases and the reference factor. In this case, as shown in FIG. 8, since the total cost of case 3 is the minimum value 22, the reference cost may be calculated as 26.4, and all of the second to fourth cases may be detected as cases equal to or less than the reference cost.
[0234] Meanwhile, the controller 100 may select a case having a smaller number of overlaps in preference to the total cost. Therefore, the fourth case 822, which has a greater total cost than the three case 821 but a smaller number of overlaps, may be selected. In this case, since the fourth case, which is selected, includes robots with overlapping target nodes (i.e., node E is the overlapping target node of robot 4 and robot 5, 824), the controller 100 may proceed to step S606 of FIG. 6 and generate cases for each robot with overlapping target nodes according to the process described with reference to FIG. 7.
[0235] Therefore, as shown in FIG. 8, for each of robot 4 and robot 5, whose target node overlaps with node E in case 4, a fifth case 831 in which robot 4 is assumed to have node E set as its destination, and a sixth case 832 in which robot 5 is assumed to have node E set as its destination, may be generated.
[0236] Then, the controller 100 may calculate the number of overlaps and the total cost for each of the fifth case 831 and the sixth case 832 according to the operation process described with reference to FIG. 7. In this case, in the fifth case 831, robots with overlapping target nodes are not detected, whereas in the sixth case 832, the target nodes of robot 6 and robot 7 may overlap at node F S834.
[0237] Then, the controller 100 may detect the cases to be selected among the first to sixth cases in which the total cost and the number of overlaps have been calculated. In this case, the first case and the fourth case may be excluded from the cases to be selected, since the number of overlaps and the total cost for the overlapping target nodes have already been calculated respectively in the third and fourth cases. Therefore, the fifth case, which has zero overlaps, and the third, sixth, and second cases, in which calculations for other cases according to the overlapping target nodes have not yet been performed, may be detected as cases to be selected.
[0238] In this case, the total costs of the second, third, fifth, and sixth cases may be 23, 22, 25, and 27, respectively. Accordingly, the minimum total cost is 22, and considering a reference factor of 1.2, the reference cost may be calculated as 26.4. Since the total cost of the sixth case is 27, which exceeds the reference cost, the controller 100 may detect the second, third, and fifth cases as cases having a total cost equal to or less than the reference cost.
[0239] Then, the controller 100 may select any one of the cases equal to or less than the reference cost based on at least one of the number of overlaps and the total cost. In this case, since the controller 100 gives priority to a case with fewer overlaps, the fifth case having zero overlaps may be selected. In the selected fifth case, since there are no robots with overlapping target nodes (number of overlaps = 0), the controller 100 may determine the target node set for each robot as the destination according to the currently selected fifth case.
[0240] Meanwhile, when the destination of each robot is determined as one of the destination nodes included in the order assigned to each robot through the first or second destination determination method described above, the controller 100 may establish a path plan for the determined destination of each robot from the current location of the corresponding robot.
[0241] FIG. 9 is a flowchart illustrating an operation in which the control server 10 establishes a path planning to a destination set for each robot.
[0242] Referring to FIG. 9, the controller 100 of the control server 10 may detect, as a start node, a node corresponding to the current position of each robot from which a path planning starts. However, when the positions of multiple robots overlap at the same node, even though they may actually move without collision through mutual avoidance maneuvers by autonomous mobile, the path planning algorithm may consider such a situation as a collision at that node. In this case, since path planning is intended to plan routes to destinations without collisions for each robot, if the start nodes overlap as described above, it may be regarded as a collision, making it difficult to initiate the path planning.
[0243] Accordingly, before initiating path planning, the controller 100 may detect one node at which the positions of the plurality of robots overlap (referred to as the same start node), and may generate a plurality of virtual nodes corresponding to the same start node so that the plurality of robots do not overlap at the same start node (step S900).
[0244] FIG. 10 is an exemplary diagram illustrating a concept of generating a plurality of virtual nodes so that the path planning may be started for a plurality of robots having overlapping start locations as described above.
[0245] First, referring to FIG. 10A, a transit node V 1000 may be connected to a first input node S1 1021 and a second input node S2 1022, and may also be connected to an output node E 1010. Accordingly, robots R1 and R2 that have moved from the first input node S1 1021 and the second input node S2 1022 may move to the output node E 1010 through the transit node V 1000.
[0246] In this case, if one of the first robot R1 and the second robot R2 arrives at the transit node V 1000 and the other robot also arrives at the transit node V 1000 before the first robot has moved to the output node E 1010, the transit node V 1000 may be occupied by both the first robot R1 and the second robot R2, as shown in FIG. 10A. In this state, if a destination re-determination process is triggered due to a predetermined cycle or occurrence of an event, the currently occupied node, that is, the transit node V 1000, may be determined as a new start node for the first robot R1 and the second robot R2.
[0247] In this case, when the destinations of the first robot R1 and the second robot R2 are determined and the path planning begins, the controller 100 may detect the transit node V 1000 as the same start node that is simultaneously occupied by both robots R1 and R2. Then, as illustrated in FIG. 10B, the controller 100 may generate a transit virtual node V0 1001 that connects the input nodes S1 and S2 to the output node E, and may also generate a plurality of occupied virtual nodes V1 and V2 corresponding to each of the robots R1 and R2 that simultaneously occupy the transit node V 1000. Accordingly, for the transit node V 1000, one transit virtual node 1001 and two occupied virtual nodes 1002 and 1003 may be generated. That is, the number of virtual nodes may be determined by adding one transit virtual node to the number of robots that simultaneously occupy the same start node.
[0248] In this case, the occupied virtual nodes refer to virtual nodes that are respectively occupied by each robot occupying the same start node. Therefore, as illustrated in FIG. 10B, when two occupied virtual nodes 1031 and 1032 are generated by the two robots R1 and R2 occupying the same start node V 1000, each of the occupied virtual nodes 1031 and 1032 may be occupied by different robots R1 and R2.
[0249] The virtual nodes 1001, 1002, and 1003 may all be connected to the output node 1010. Accordingly, each robot occupying the virtual nodes may be able to move to the output node 1010. Therefore, the first robot R1 may move from the first occupied virtual node 1002 to the output node 1010, and the second robot R2 may move from the second occupied virtual node 1003 to the output node 1010. Thus, even when the start nodes overlap, no collision occurs between the robots since the occupied nodes (i.e., virtual nodes) are different. As a result, the algorithm for path planning may satisfy the prerequisite condition, that is, that no collision occurs between the robots.
[0250] Meanwhile, when the processing for the same start node is completed in step S900, the controller 100 may determine a movement path to a station, which is the destination determined for each robot, according to step S304 of FIG. 3, that is, the destination determination method described with reference to FIG. 6 or FIG. 7 (step S901). For example, the movement path may be the shortest movement distance from the current position of each robot, that is, the start node, to the station determined as the destination for each robot.
[0251] When movement paths to the stations determined for each robot are determined in step S901, the controller 100 may check whether there is any path where a collision occurs between the movement paths (step S902). To this end, the controller 100 may check the path of each robot along its movement path over time to determine whether a collision occurs.
[0252] Meanwhile, a conventional path planning method for multiple robots presupposes a node graph in which the time distances between all nodes are equal. Accordingly, the path plan is established so that each robot moves by a time corresponding to a multiple of a unit time, using the time distance between nodes as the unit time, and a robot in motion is always positioned on a specific node. Therefore, in such a conventional multi-robot path planning method, collision detection may be determined based on whether there is any node where a plurality of robots overlap.
[0253] However, as described above, in the order picking system according to an embodiment of the present disclosure, the time distances between nodes may be different from one another. Therefore, even when the time distance between nodes is used as a unit time, some robots may be located on a node, while others may be located between nodes, that is, on an edge.
[0254] As described above, the path plan for the multiple robots according to an embodiment of the present disclosure should detect a collision not only for robots located on nodes but also for robots located on edges. Accordingly, in the order picking system according to an embodiment of the present disclosure, the controller 100 of the control server 10 may regard an edge between nodes as being occupied by a robot moving along the edge, rather than the nodes themselves, and may detect a collision when the edge is occupied by a plurality of different robots.
[0255] FIG. 11 is an exemplary diagram for illustrating an example in which a robot is regarded as occupying an edge between nodes, as described above.
[0256] Referring to FIG. 11, FIG. 11A illustrates an example of the first robot R1 moving along an edge between node 1 N1 and node 2 N2.
[0257] In the case of FIG. 11A, the controller 100 may determine that the edge between node 1 N1 and node 2 N2 is occupied by the first robot R1. In this case, to recognize that the edge between node 1 and node 2 is occupied by the first robot R1, the controller 100 may consider that both nodes at the ends of the edge currently being traveled by the first robot R1, that is, node 1 N1 and node 2 N2, are occupied by the first robot R1. FIG. 11B illustrates an example in which node 1 and node 2 are regarded as being occupied by the first robot R1.
[0258] Meanwhile, in this case, the nodes at both ends of the edge may be regarded as being occupied by the robot R1 moving along the edge. If either of the nodes N1 or N2, which are considered occupied by the first robot R1 as it moves over time, is occupied by another robot (i.e., a second robot) different from the first robot R1, the controller 100 may determine that a collision has occurred between the first robot R1 and the second robot.
[0259] Meanwhile, when there are movement paths in which collisions occur among the movement paths of the robots, the controller 100 may set a collision avoidance condition for each robot involved in the collision (step S904). For example, the collision avoidance condition may include a stop condition in which the robot stops at a specific transit node for a predetermined time or longer after reaching the node, or an avoidance movement condition in which the robot moves to a neighboring node upon reaching the specific transit node. That is, when a collision is detected during movement between robots, the controller 100 may generate a condition that delays one of the robots expected to collide until the other robot passes by, or moves it to another node.
[0260] The controller 100 may check whether a collision occurs again due to the movement of the robot according to the collision avoidance condition (step S906). If a collision occurs again with another robot as a result of the movement of the robot under the currently set collision avoidance condition, the process may return to step S904 to regenerate the collision avoidance condition. Then, the process may proceed again to step S906 to check whether a collision occurs again due to the movement of the robot according to the newly generated collision avoidance condition.
[0261] Meanwhile, if it is determined in step S906 that no collision occurs with another robot's movement path as a result of the robot's movement according to the collision avoidance condition, the controller 100 may determine the movement paths of the robots, including the collision avoidance condition, as collision-free paths to the destinations currently set for each robot. Then, the controller 100 may proceed to step S308 of FIG. 3 and transmit the determined collision-free path for each robot to the corresponding robot.
[0262] Here, to determine a more optimized collision-free path, the controller 100 may detect unnecessary movement paths included in the currently determined collision-free paths for each robot. In addition, the controller 100 may further perform a process of removing the unnecessary movement paths (step S908).
[0263] For example, the collision-free path determined for each robot may include a movement path based on a collision avoidance condition as described above. Although such movement paths may be necessary to avoid an actual collision, they may become unnecessary movements that delay the order picking process when no collision actually occurs.
[0264] Accordingly, when the collision-free path is determined, the controller 100 may detect a movement path of a robot that satisfies a predetermined condition. After removing the detected movement path, the controller 100 may check again whether a collision occurs while each robot moves along the path. Based on whether a collision occurs, the controller may determine whether the path is unnecessary or necessary, and remove the detected movement path if it is determined to be unnecessary.
[0265] Here, the movement path of the robot that satisfies the predetermined condition may be a movement path determined according to the collision avoidance condition. For example, the movement path that satisfies the predetermined condition may include a round-trip movement path in which the robot moves to an adjacent node and then returns to the original node.
[0266] FIG. 12 is an exemplary diagram illustrating an example of such a round-trip movement path.
[0267] Referring to FIG. 12A, FIG. 12A illustrates an example in which a first robot R1 moves from a first node N1 to a second node N2 and a second robot R2 moves from a third node N3 to the second node N2. Here, the first robot R1 may be a robot that proceeds from the first node N1 to the third node N3 via the second node N2, and the second robot R2 may be a robot that proceeds from the third node N3 to the first node N1 via the second node N2.
[0268] As shown in FIG. 12A, when the first robot R1 is moving along an edge between the first node N1 and the second node N2, the controller 100 may consider that both the first node N1 and the second node N2 are occupied by the first robot R1. In addition, when the second robot R2 is moving along an edge between the third node N3 and the second node N2, the controller 100 may consider that both the third node N3 and the second node N2 are occupied by the second robot R2. In this case, since the second node N2 is considered to be occupied by both the first robot R1 and the second robot R2 at the same time, the movement paths of the first robot R1 and the second robot R2 may be detected as colliding with each other.
[0269] Then, the controller 100 may plan a round-trip movement of the first robot R1 as a condition for avoiding the collision. In this case, as shown in FIG. 12B, when the first robot R1 arrives at the second node N2 first (for example, when the time distance set on the edge between the first node N1 and the second node N2 is shorter than the time distance set on the edge between the third node N3 and the second node N2), the controller 100 may set the movement of the first robot R1 to an adjacent fourth node N4.
[0270] Therefore, as shown in FIG. 12C, the first robot R1 that has arrived at the second node N2 may move to the adjacent fourth node N4. In this case, the first robot R1 may selectively release the occupancy state of the second node N2 based on the distance value to the second node N2 and the distance value to the fourth node N4. That is, the occupancy of the second node N2 by the first robot R1 may be released from a point where the distance between the first robot R1 and the second node N2 becomes greater than the distance between the first robot R1 and the fourth node N4. Accordingly, the second robot R2 may acquire the occupancy of the second node N2 and move forward, so that the collision between the first robot R1 and the second robot R2 may be avoided.
[0271] Meanwhile, when the second robot R2 leaves the second node N2 to move to the first node N1, the controller 100 may set the movement of the first robot R1, which is located at the fourth node N4, back to the second node N2, which is the position where the collision avoidance movement started, that is, the position on the original movement path of the first robot R1. Therefore, as shown in FIGS. 12E and 12F, the first robot R1 may start moving from the fourth node N4 to the second node N2. When the second robot R2 arrives at the first node N1, the first robot R1 may arrive at the second node N2 and, as shown in FIGS. 12G and 12H, may continue to move to the third node N3 along its original movement path.
[0272] Referring to the movement path of the first robot R1 illustrated in FIG. 12, the first robot R1 may move from the node N2 to the fourth node N4 and then move back from the fourth node N4 to the second node N2. That is, the first robot R1 moves from a specific node to another node and then returns to the original node. Such movement of a robot, that is, from a specific node to another node and then returning to the same node, may be referred to as a round-trip movement of the robot. As described in FIG. 12, the round-trip movement may refer to a movement in which the robot returns to one of the previously passed nodes, including the most recently passed node.
[0273] Therefore, when movement paths of each robot that include movement according to the collision avoidance condition and do not cause a collision are determined, the controller 100 may detect any movement (i.e., round-trip movement) that satisfies the round-trip movement condition among the determined movement paths. When such a round-trip movement is detected, the controller 100 may remove the round-trip movement, for example, remove the round-trip movement of the first robot R1 between the second node N2 and the fourth node N4 in FIG. 12, and check whether a collision occurs. Then, based on whether a collision occurs, it may be determined whether the round-trip movement is necessary.
[0274] Meanwhile, in the case of the example shown in FIG. 12, if the round-trip movement of the first robot R1 between the second node N2 and the fourth node N4 is not performed, a collision may occur between the first robot R1 and the second robot R2. Therefore, the round-trip movement of the first robot R1 in FIG. 12 may be a necessary round-trip movement. However, if no collision occurs even when the round-trip movement is removed, the controller 100 may determine the round-trip movement to be unnecessary and remove it.
[0275] Therefore, if the round-trip movement of the first robot R1 between the second node N2 and the fourth node N4 in FIG. 12 is determined to be unnecessary, the controller 100 may remove the round-trip movement of the first robot R1 between the second node N2 and the fourth node N4. Then, the first robot R1 may move from the second node N2 to the third node N3 according to the initially set movement path.
[0276] Meanwhile, when the unnecessary movement is detected and removed in step S908, the controller 100 may extract a path plan for each robot from the multi-path plan, which includes the movements according to the collision avoidance conditions and is established for all of the plurality of robots as movement paths to their respective destinations. Once the path plan is extracted for each robot, the controller 100 may transmit the extracted path plan for each robot in step S308 of FIG. 3.
[0277] Meanwhile, in step S902, the controller 100 of the control server 10 according to an embodiment of the present disclosure may further check whether there is an alternative movement path to the currently set destination for at least one of the robots involved in the collision. If such an alternative path exists, the controller 100 may change the movement path of one of the robots involved in the collision to the alternative path, and repeat step S902 to check again whether any collision occurs among the movement paths of the robots. Through this process, it is possible to avoid collisions by allowing each robot to reach its destination via a different path.
[0278] In this case, for each robot whose movement path collides with another, a plurality of possible paths to the destination may be detected, and a collision check with other robots may be performed for each detected path. If there is an alternative path that does not cause a collision among the robots, the controller 100 may change at least one of the movement paths of the colliding robots to such a collision-free path. If no collision occurs between the movement paths of the robots after the change, the controller 100 may proceed to step S910 to extract a path plan for each robot. Alternatively, before proceeding to step S910, the controller 100 may perform step S908 to check for unnecessary movement paths and remove them before extracting the path plan for each robot.
[0279] Meanwhile, as described above, the control server 10 of the order picking system according to an embodiment of the present disclosure may group a plurality of robots into a plurality of groups based on the destination nodes included in the order assigned to each robot, and may determine the destination for each robot in different ways depending on the number of robots included in each group.
[0280] FIG. 13 is a flowchart illustrating an operation process in which the control server groups robots based on the destination nodes of orders assigned to each robot and sets destinations for the robots in different ways for each group in such a case. FIG. 14 is an exemplary diagram illustrating an example in which the robots are grouped by group as shown in FIG. 13.
[0281] First, referring to FIG. 13, the controller 100 of the control server 10 according to an embodiment of the present disclosure may generate an order for each robot based on customer order information received in the same manner as in steps S300 and S302 of FIG. 3, and may assign the generated order to each robot (step S1302).
[0282] FIG. 14A illustrates an example of nodes to be visited by each of the robots (robots A to H) according to the orders assigned to the respective robots in step S1302.
[0283] Then, the controller 100 may group the robots into a plurality of groups based on the destination nodes, that is, stations, included in the order assigned to each robot (step S1311). In this case, the controller 100 may group into a single group those robots to which orders are assigned that share at least one overlapping station as a destination node. In addition, the controller 100 may group together robots whose destination nodes include a station that overlaps with a station in the order assigned to a robot already grouped. Therefore, even when there is no overlap of destination nodes (stations) between a specific robot and another robot, if the specific robot is grouped with a first robot, and a second robot is assigned an order including a destination node that overlaps with that of the first robot, then the specific robot, the first robot, and the second robot may be grouped into a single group.
[0284] For example, when each robot has destination nodes according to the assigned order as shown in FIG. 14A, robot A and robot H may be grouped into one group (a first group) because they share node 20. In addition, robot H and robot E may also be grouped into the same group because they share node 27. In this case, although robot A and robot E do not directly share a destination node, robot A is grouped with robot H based on destination node 20, and robot E is grouped with robot H based on destination node 27. Therefore, robot A and robot E may be grouped into the same group, that is, the first group, via robot H, which has overlapping destination nodes with both.
[0285] In addition, robots B, C, F, and G may be grouped into one group, that is, a second group, because destination node 5 overlaps among them. Lastly, for robot D, the destination nodes 6, 9, and 11 included in the assigned order do not overlap with any destination nodes included in the orders assigned to the other robots, and thus robot D may be grouped into a third group, separately from the first and second groups. FIG. 14B illustrates an example in which the robots are grouped into a plurality of groups according to the grouping process of operation S1311 in FIG. 13.
[0286] Meanwhile, when the robots are grouped into a plurality of groups in operation S1311, the controller 100 may determine a different destination setting method for each group depending on the number of robots included in each group (step S1312).
[0287] As described above, the first destination determination method, in which the robot with a smaller cost calculated for a specific node is preferentially selected to set the destination, may be simple but capable of fast computation. In contrast, the second destination determination method, in which, for each robot having a specific node as an overlapping destination, all possible cases of setting the specific node as the destination are assumed to calculate the total cost, and the destination for each robot is determined based on at least one of the number of overlaps with other robots and the calculated cost in each case, may be more complex but can determine the most efficient destinations with the smallest overall cost.
[0288] Meanwhile, since the overlapping of destinations between robots may increase as the number of robots increases, determining destinations according to the second destination determination method may lead to longer computation time and heavier computational load as the number of robots increases.
[0289] Accordingly, the controller 100 may determine a destination for each robot in a group using the second destination determination method when the number of robots in the group is equal to or less than a predetermined number, and may determine a destination for each robot in a group using the first destination determination method when the number of robots in the group exceeds the predetermined number.
[0290] In this case, as shown in FIG. 14B, assuming that the robots are grouped into the first to third groups and that the reference number of robots for determining the destination determination method is set to three, the controller 100 may determine the destination determination method for each group in step S1312, applying the second destination determination method to the first and third groups, and the first destination determination method to the second group.
[0291] When the destination determination method corresponding to each group is determined in step S1312, the controller 100 may determine a destination for each robot included in the group, according to the destination determination method determined for that group (step S1313).
[0292] For example, in step S1313, the controller 100 may first determine a destination for each robot in the first group. In this case, since the first group includes robot A, robot E, and robot F, the destination for each of these robots may be determined according to the second destination determination method, based on the number of overlaps and the total cost calculated for each case where the target nodes overlap among the robots.
[0293] The controller 100 may then determine a destination for each robot in the second group. In this case, since the second group includes robot B, robot C, robot F, and robot G, the destination for each of these robots may be determined according to the first destination determination method, by prioritizing the robot with the minimum cost calculated for each destination node.
[0294] The controller 100 may determine a destination for each robot included in the third group according to the second destination determination method. However, in the example described in FIG. 14B, since the third group includes only robot D, the destination may be determined based on the minimum cost calculated for each destination node, as illustrated in step S602 of FIG. 6.
[0295] Then, the controller 100 may establish a path plan according to the destination determined for each robot (step S1306). Once the path plans according to the destinations set for each robot are established, the controller 100 may transmit the established path plans to each robot (step S1308). The controller 100 may then check whether a destination re-determination condition is satisfied (step S1310), and if the condition is satisfied, may detect the robots for which the destinations are to be re-determined (step S1315). The process may then return to step S1313, where the controller may re-determine the destination for each of the detected robots according to the destination determination method corresponding to the group to which each robot belongs. The subsequent steps after step S1313 may then be repeated.
[0296] Meanwhile, if it is determined in step S1310 that the destination re-determination condition is not satisfied, the controller 100 may check whether all orders assigned to each robot have been completed (step S1314). In this case, the completion of an order may refer to a case where all tasks for the destination nodes included in the order have been completed. The information of each destination node for which the task has been completed may be deleted from the order, and when all destination nodes in the order have been deleted, the order may be regarded as completed.
[0297] If it is determined in step S1314 that not all orders assigned to each robot have been completed, the controller 100 may return to step S1310 to check whether the destination re-determination condition is satisfied. Based on the result of this check, the controller may proceed to step S1315 to detect the robots for which the destination is to be re-determined.
[0298] Meanwhile, except for the operation process (step S1300) in which each robot is grouped into a plurality of groups according to the destination nodes included in the order assigned to each robot in FIG. 13, and a destination for each robot in the group is determined using different destination determination methods based on the number of robots in each group, the remaining steps of FIG. 13, that is, steps S1302, S1306, S1308, S1310, S1315, and S1314, may correspond to steps S302, S306, S308, S310, S312, and S314, respectively, in the operation process of FIG. 3.
[0299] Meanwhile, as described above, the control server 10 of the order picking system according to an embodiment of the present disclosure may extract an individual path plan corresponding to each robot from the established multi-path plan, which is a path plan for the destinations set for each of the plurality of robots. In this case, the controller 100 of the control server 10 may generate an action dependency graph over time for each robot from the multi-path plan, and based on the generated action dependency graph, may generate commands to be transmitted to each robot over time and transmit the generated commands as the path plan for each robot.
[0300] FIGS. 15 and 16 are exemplary diagrams illustrating an example of an operation process in which a path plan for each robot is extracted from a multi-path plan and an example of an action dependency graph generated according to the path plan for each robot.
[0301] First, referring to FIG. 15, when step S910 of FIG. 9 is performed, in which a path plan for each robot is extracted from a multi-path plan, the controller 100 may generate an action dependency graph, which is a graph representing actions over time for each robot, based on a completed path plan for a predetermined time, that is, a collision-free path plan for each robot during the predetermined time (step S1500).
[0302] Here, the predetermined time may correspond to the destination re-determination time. That is, the predetermined time may be a time corresponding to the destination re-determination condition set in step S310 of FIG. 3 or step S1310 of FIG. 13. Accordingly, when the destination re-determination time elapses, the controller 100 may determine that the destination re-determination condition is satisfied in step S310 of FIG. 3 or step S1310 of FIG. 13. The action dependency graph may represent a point in time at which a specific action is performed over time.
[0303] Referring to FIG. 16, FIG. 16 illustrates action dependency graphs in which actions over time for each of the first robot R1, the second robot R2, and the third robot R3 are represented by zero markers. Here, an "action" refers to an operation that a robot is to perform at a specific point in time, and may include movements in a specific direction, stopping, or tasks to be performed at a specific edge, such as charging.
[0304] In this case, as shown in FIG. 16, among the actions of each robot, the actions that are affected by other robots may be represented as being connected to one another in the action dependency graphs of each robot.
[0305] For example, a first arrow 1651 from the second action A2 of the second robot R2 may be shown pointing to a first zero marker 1612-1 that represents the third action A3 of the first robot R1. This may indicate that the third action A3 of the first robot R1 is affected by the second action A2 of the second robot R2.
[0306] Similarly, a second arrow 1652 from the third action A3 of the third robot R3 may be shown pointing to a second zero marker 1613-1 that represents the fifth action A5 of the first robot R1. This may indicate that the fifth action A5 of the first robot R1 is affected by the third action A3 of the third robot R3.
[0307] Accordingly, referring to FIG 16, the third action A3, fifth action A5, thirteenth action A13, and fourteenth action A14 of the first robot R1 may be actions affected by the second action A2 of the second robot R2, the third action A3 and the seventh action A7 of the third robot R3, and the thirteenth action A13 of the second robot R2, respectively, and the seventh action A7 and the eighth action A8 of the second robot R2 may be actions affected by the fifth action A5 of the first robot R1 and the seventh action A7 of the third robot R3, respectively.
[0308] Accordingly, the controller 100 may extract, based on an action dependency graph generated for each robot, a command corresponding to each robot's action over time and a command affected by another robot (step S1502). In this case, the command may be for executing an operation at a specific point in time, and may include data required to perform the operation. Then, the controller 100 may proceed to step S308 of FIG. 3 and transmit the commands extracted in step S1502 to each robot as a path plan.
[0309] Accordingly, each robot may receive, as a path plan, information on actions to be performed over time. In addition, each robot may acquire information on whether a given action is affected by another robot's action and which robot performs the action that influences the scheduled action.
[0310] The present disclosure may be implemented as computer-readable code recorded on a program medium. The computer-readable medium includes all types of recording devices in which data that can be read by a computer system is stored. Examples of such a computer-readable medium include a Hard Disk Drive (HDD), a Solid State Disk (SSD), a Silicon Disk Drive (SDD), a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device, and also include a carrier wave (e.g., transmission over the Internet). The computer may include the controller 180 of the terminal, or may include the controller 100 of the control server 10. Accordingly, the above detailed description should not be construed as limiting in any respect but should be regarded as illustrative. The scope of the present disclosure should be determined by a reasonable interpretation of the appended claims, and all modifications within the equivalent scope thereof are to be included in the scope of the present disclosure.
Claims
1.A control server of a system that controls a plurality of autonomous mobile robots to transport items according to customer orders, comprising:a cost calculator configured to calculate a time cost according to a movement time and a work time of each robot, for each of at least one destination node for picking at least one item included in an order assigned to each robot;a destination selector configured to set a destination node having a minimum time cost for each robot as a destination based on the calculated time cost for each destination node; anda controller configured to determine the destination for each robot by controlling the cost calculator and the destination selector,wherein the controller is configured to:calculate, for each of the at least one destination node, the time cost for each robot by summing the movement time required for each robot to move to each destination node and the work time required for each robot to perform a task at each destination node, such that a time during which the destination node is occupied by another robot may also be included in the time cost according to the robot movement to the destination node.2.The control server of claim 1, wherein the destination selector is configured to:in a case where a plurality of robots are overlapped at any one node at the same time with the destination node having the minimum time cost,determine the one node as the destination of the robot having the minimum time cost calculated for the one node among the robots with overlapping destination nodes, anddetermine a different destination for each robot by redetecting the destination node having the minimum time cost for each of the remaining robots not assigned a destination.3.The control server of claim 2, wherein the cost calculator is configured to:when the one node is determined as a destination for one of the robots with overlapping destination nodes,recalculate a time cost for the one node with respect to each of the remaining robots among the robots with overlapping destination nodes, based on a work completion time at the one node of the robot for which the one node is determined as the destination,wherein the destination selector is configured to:determine a destination for each of the remaining robots not assigned a destination, based on the recalculated time cost for the one node and the time costs for other destination nodes included in the order assigned to each robot.4.The control server of claim 1, wherein the destination selector is configured to:in a case where a plurality of robots are overlapped at any one node at the same time with the destination node having the minimum time cost,assume, for the robots with overlapping destination nodes, each of the cases in which the one node is set as the destination for each robot, and determine destinations for the remaining robots in each of the cases, andcalculate, for each of the cases, a number of overlaps of destination nodes having the minimum time cost that overlap at the same time among the remaining robots, and a total time cost obtained by summing the time costs of each robot for the destination nodes determined for each robot, and determine the destination for each robot according to one of the cases based on at least one of the total time cost and the number of overlaps.5.The control server of claim 4, wherein the destination selector is configured to:calculate a reference cost based on a total time cost of a case having the lowest total time cost among the cases in which the total time cost and the number of overlaps are calculated,detect, as cases to be selected, a case having a total time cost equal to or less than the reference cost, anddetermine a destination for each robot according to any one of the cases to be selected.6.The control server of claim 5, wherein the destination selector is configured to:select, among the cases to be selected, a case in which the number of overlaps is zero, anddetermine the destination for each robot according to the corresponding case.7.The control server of claim 6, wherein the destination selector is configured to:when there are a plurality of cases in which the number of overlapping is zero,determine the destination for each robot according to the case having the lowest total time cost.8.The control server of claim 5, wherein the destination selector is configured to:when there is no case in which the number of overlapping is zero among the cases to be selected,selects, as a candidate case, a case having the smallest number of overlaps among cases including a plurality of robots in which a destination node overlaps with one node and another node at the same time,assume, for the candidate case, each of the cases in which the other node is set as the destination for each robot, and calculate the number of overlaps and the total time cost for each of the cases, andreplace the candidate case with the cases in which the number of overlaps and the total cost are calculated.9.The control server of claim 8, wherein the destination selector is configured to:when there are a plurality of candidate cases, select, as the candidate case, a case having the lowest total time cost.10.The control server of claim 5, wherein the destination selector is configured to:when the case to be selected is detected, calculate the reference cost by multiplying a predetermined reference factor by a minimum value among total time costs calculated in each of the detected cases to be selected.11.The control server of claim 1, wherein the controller is configured to:group robots having the same destination node,wherein the destination selector is configured to:for a group having a number of robots equal to or greater than a predetermined reference number, based on the number of robots included in each group,in a case where a plurality of robots are overlapped at any one node at the same time with the destination node having the minimum time cost,determine the one node as the destination of the robot having the minimum time cost calculated for the one node among the robots with overlapping destination nodes, and determine a different destination for each robot by redetecting the destination node having the minimum time cost for each of the remaining robots not assigned a destination, andfor a group having a number of robots less than a predetermined reference number, based on the number of robots included in each group,in a case where a plurality of robots are overlapped at any one node at the same time with the destination node having the minimum time cost, assume, for the robots with overlapping destination nodes, each of the cases in which the one node is set as the destination for each robot, and determine destinations for the remaining robots in each of the cases, andcalculate, for each of the cases, a number of overlaps of destination nodes having the minimum time cost that overlap at the same time among the remaining robots, and a total time cost obtained by summing the time costs of each robot for the destination nodes determined for each robot, and determine the destination for each robot according to one of the cases based on at least one of the total time cost and the number of overlaps.12.The control server of claim 1, wherein the controller is configured to:when a start node from which a plurality of robots begin movement overlaps with an arbitrary node,generate virtual nodes in the arbitrary node, each occupied by different robots, andperform a path plan for each of the plurality of robots based on the virtual node occupied by each robot as the start node.13.The control server of claim 1, further comprising:a collision detector configured to detect whether a collision occurs by checking movement paths over time from a position of each robot to a destination of each robot, once paths from a position of each robot to a destination of each robot are planned,wherein the collision detector is configured to:when a robot moves along the edge,regard the robot as occupying both nodes at both ends of an edge, which is a path between two nodes, anddetect a collision when each node regarded as being occupied by one robot overlaps with a node regarded as being occupied by another robot.14.The control server of claim 13, wherein the controller is configured to:detect movements that meet a predetermined condition when movement paths for each robot that do not cause a collision are planned as a result of the collision detection of the collision detector,determine whether there are unnecessary movements among the detected movements, andremove movements determined to be unnecessary from the movement paths of each robot to plan optimized movement paths,wherein the determination of whether there are unnecessary movements is based on whether a collision occurs as a result of the collision detection of the collision detector when the detected movement is removed from the movement path of each robot.15.The control server of claim 14, wherein the movements that meet the predetermined condition include a round-trip movement of a robot located at a first node, moving to a second node, which is another node adjacent to the first node, and then returning to the first node.16.A method for controlling a control server of an order picking system that controls a plurality of autonomous mobile robots to pick items according to customer orders in a logistics center in which different types of items are loaded at different nodes, the method comprising:assigning, to each robot, an order including information on destination nodes to be visited by each robot for picking items, and information on a work time required for each robot to pick items at each destination node;calculating a time cost according to a movement time and the work time of each robot for each destination node included in the order assigned to each robot;setting a destination node having a minimum time cost for each robot as a destination based on the time cost calculated for each destination node included in the order assigned to each robot; andplanning a path from a position of each robot to a destination of each robot, and transmitting information on the planned movement path of each robot to each of the plurality of robots,wherein the calculating of the time cost includes calculating, for each of the at least one destination node, the time cost for each robot by summing the movement time required for each robot to move to each destination node and the work time required for each robot to perform a task at each destination node, such that a time during which the destination node is occupied by another robot may also be included in the time cost according to the robot movement to the destination node.
Citation Information
Patent Citations
Apparatus and method for planning path of robot, and the recording media storing the program for performing the said method
KR1020140055134A
Multipurpose hanger for SUV / RV cars
KR1020250169661A
Mouthpiece assembly for breathing device
KR102613789B1
Method for distributing work points to plural task-performing robots
KR102614099B1
Server for allocating robot to picking zone in precess of managing plurality of orders simultaneously, and system thereof
KR102687351B1