WO2024021809A1 - 容器搬运任务的分配方法及装置 - Google Patents

容器搬运任务的分配方法及装置 Download PDF

Info

Publication number
WO2024021809A1
WO2024021809A1 PCT/CN2023/095864 CN2023095864W WO2024021809A1 WO 2024021809 A1 WO2024021809 A1 WO 2024021809A1 CN 2023095864 W CN2023095864 W CN 2023095864W WO 2024021809 A1 WO2024021809 A1 WO 2024021809A1
Authority
WO
WIPO (PCT)
Prior art keywords
task
robot
container
container handling
handling
Prior art date
Application number
PCT/CN2023/095864
Other languages
English (en)
French (fr)
Inventor
沈先利
魏锡光
谭文哲
韩昊
李洪波
赵成业
Original Assignee
北京极智嘉科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 北京极智嘉科技股份有限公司 filed Critical 北京极智嘉科技股份有限公司
Publication of WO2024021809A1 publication Critical patent/WO2024021809A1/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06312Adjustment or analysis of established resource schedule, e.g. resource or task levelling, or dynamic rescheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/087Inventory or stock management, e.g. order filling, procurement or balancing against orders

Definitions

  • This specification relates to the technical field of warehousing and logistics, and in particular to a method for allocating container handling tasks.
  • This specification also relates to a container handling task allocation device, a computing device, and a computer-readable storage medium.
  • the Hungarian algorithm is the most commonly used algorithm for solving task allocation.
  • the core of the Hungarian algorithm is to find the augmented path. It is an algorithm that uses the augmented path to find the maximum matching of a bipartite graph. It uses the Manhattan distance as the cost function to solve Task allocation for container handling tasks.
  • the above task allocation algorithm only considers the distance between the container and the robot, resulting in unreasonable task allocation. As a result, each robot in the warehousing system cannot maximize its own capabilities, and the execution efficiency of container handling tasks is low. A more reasonable and accurate method is needed to allocate or process container handling tasks.
  • embodiments of this specification provide a method for allocating container handling tasks.
  • This specification also relates to a container handling task allocation device, a computing device, and a computer-readable storage medium to solve the technical defects existing in the existing technology.
  • a method for allocating container handling tasks including:
  • the corresponding robot has been assigned a container handling task in the same lane as the first container handling task;
  • the allocation result of at least one container handling task is determined based on the matching cost of each candidate robot corresponding to the at least one container handling task.
  • a device for allocating container handling tasks including:
  • a first determination module configured to determine at least one container handling task and at least one candidate robot currently to be assigned
  • the second determination module is configured to determine the path length of the first candidate robot to perform the first container handling task, and determine the handling position conflict value between the first candidate robot to perform the first container handling task and the execution robot to perform the assigned task, Among them, the execution robot is the robot corresponding to the assigned task, and the assigned task and the first container handling task are container handling tasks in the same lane;
  • the third determination module is configured to determine the matching cost of the first candidate robot corresponding to the first container handling task based on the path length and the handling position conflict value;
  • the fourth determination module is configured to determine the allocation result of at least one container handling task based on the matching cost of each candidate robot corresponding to the at least one container handling task.
  • a computing device including:
  • the memory is used to store computer-executable instructions
  • the processor is used to execute the computer-executable instructions to implement the steps of the above container handling task allocation method.
  • a computer-readable storage medium which stores computer-executable instructions.
  • the steps of the above method for allocating container handling tasks are implemented.
  • the container handling task allocation method determines at least one container handling task and at least one candidate robot currently to be assigned; determines the path length of the first candidate robot to perform the first container handling task, and determines the first candidate robot to perform the first container handling task.
  • a container handling task and execution machine The handling position conflict value between people executing assigned tasks, where the execution robot is the robot corresponding to the assigned task, and the assigned task and the first container handling task are container handling tasks in the same lane; according to the path length and handling position conflict value , determine the matching cost of the first container handling task corresponding to the first candidate robot; determine the allocation result of at least one container handling task based on the matching cost of at least one container handling task corresponding to each candidate robot.
  • the path length of the first candidate robot to perform the first container handling task can be determined, and the first candidate robot can be determined to perform the first container handling task.
  • the handling position conflict value between the task and the execution robot executing the assigned task is subsequently combined with the path length and the handling position conflict value to determine the matching cost of the first container handling task corresponding to the first candidate robot.
  • Each container handling task can be used as For the first container handling task, each candidate robot can be used as the first candidate robot. That is, for any container handling task, the matching cost between it and each candidate robot can be determined.
  • the allocation result of each container handling task can be determined, thereby determining the optimal match between the container handling task and the candidate robot, and assigning the container handling task to the most suitable candidate robot.
  • Figure 1 is an example diagram of container handling in a storage system provided by the embodiment of this specification
  • Figure 2 is a flow chart of a method for allocating container handling tasks provided by an embodiment of this specification
  • Figure 3 is a schematic diagram of the execution process of a container handling task provided by an embodiment of this specification
  • Figure 4a is a schematic diagram of the first matching cost matrix provided by an embodiment of this specification.
  • Figure 4b is a schematic diagram of the second matching cost matrix provided by an embodiment of this specification.
  • Figure 4c is a schematic diagram of the third matching cost matrix provided by an embodiment of this specification.
  • Figure 5 is a schematic diagram of the processing process of a method for allocating container handling tasks provided by an embodiment of this specification
  • Figure 6 is a schematic structural diagram of a container handling task allocation device provided by an embodiment of this specification.
  • Figure 7 is a structural block diagram of a computing device provided by an embodiment of this specification.
  • first, second, etc. may be used to describe various information in one or more embodiments of this specification, the information should not be limited to these terms. These terms are only used to distinguish information of the same type from each other.
  • the first may also be called the second, and similarly, the second may also be called the first.
  • the word "if” as used herein may be interpreted as "when” or “when” or “in response to determining.”
  • Multi-robot task allocation is the basis for the application of multi-robot systems. It can fully reflect the organizational form and operating mechanism of the system's decision-making layer. The quality of task allocation has a direct impact. The working efficiency of the entire warehousing system is directly related to whether each robot in the warehousing system can maximize its capabilities. As the number of robots in the system and the difficulty of container handling tasks increase, the task allocation problem becomes increasingly important.
  • FIG 1 is an example diagram of container handling in a warehousing system provided by the embodiment of this specification.
  • the warehousing system includes a shelf area and a picking workstation. Containers can be stored in each shelf area. When a container needs to be removed from the shelf When the area is moved to the picking workstation, the container handling task of the object is triggered. The starting point of a container handling task is the storage location in the shelf area, and the end point is the picking workstation.
  • the robot sequentially performs the task of picking up the container and the task of sending the container.
  • the task of picking up the container refers to moving the shelf
  • the containers in the area are taken out and placed on the robot's own storage location.
  • the container delivery task refers to the robot transporting the containers on its own storage location to the picking workstation to complete the outbound operation.
  • the core issues to be solved are which container handling tasks are assigned to which robots, and the order in which a robot performs multiple container handling tasks.
  • Task allocation for RS series robots is a typical combinatorial optimization problem.
  • the Hungarian algorithm is the most commonly used algorithm for solving task allocation.
  • the Hungarian algorithm is based on the idea of sufficiency proof in Hall's theorem.
  • the core of the algorithm is to find the augmented path. It is a method that uses augmentation.
  • the embodiment of this specification designs a task allocation and arrangement algorithm for the RS series robots that takes congestion into consideration.
  • This method adopts a two-step method. First, task allocation is performed for the RS series robots, and then, the tasks to be performed by the robots are arranged. . In this way, when determining the task allocation method between the container handling task and the robot, the conflict of the handling position of the robot performing the container handling task is taken into account, so as to avoid the time-consuming waiting after the robot reaches the handling position, and avoid the serious waiting and congestion caused by the robots getting together. , so that each robot in the warehousing system can maximize its own capabilities, improve the rationality of task allocation, and thereby improve the overall efficiency of task execution.
  • a method for allocating container handling tasks is provided.
  • This specification also relates to a device for allocating container handling tasks, a computing device, and a computer-readable storage medium. In the following embodiments, one by one Explain in detail.
  • Figure 2 is a flow chart of a method for allocating container handling tasks provided by an embodiment of this specification, which specifically includes the following steps:
  • Step 202 Determine at least one container handling task and at least one candidate robot currently to be assigned.
  • the warehousing system includes a warehouse storage area and a workstation area.
  • the warehouse storage area includes multiple shelves arranged in a matrix.
  • Containers can be stored on the shelves.
  • the container refers to a structure used to store objects.
  • the objects can be processed as needed.
  • Picked items in this case, the container may be a container for storing items; the workstation area includes at least one workstation, and the workstation is configured to perform picking processing on the container.
  • the container handling task refers to carrying the container from the shelf to the workstation.
  • the container handling task is divided into a container picking task and a container transporting task, which refers to taking out the container from the shelf area and placing it on the robot's own storage location.
  • the box delivery task refers to the robot transporting the containers in its own storage location to the picking workstation to complete the outbound operation.
  • the warehousing system can first obtain the container handling task list and the robot list.
  • the container handling task list includes various container handling tasks to be performed.
  • the robot list includes various optional robots. Each robot is equipped with at least A storage location. Initially, none of the container handling tasks to be executed is assigned. At this time, at least one container handling task to be assigned is each task in the container handling task list, and at this time, the storage slots of each optional robot are empty. Any robot can be a candidate robot. If after at least one round of matching, it is determined that a container handling task is assigned to a candidate robot, then the container handling task is an assigned task.
  • the remaining tasks of each container handling task included in the container handling list, excluding the assigned task, are For the container handling tasks currently to be assigned, robots that currently have remaining storage spaces among each robot can be used as candidate robots. Robots that occupy all storage spaces will not participate in the allocation of subsequent tasks.
  • the allocation relationship between the container handling task and the robot can be recorded based on the task allocation table. Initially, the task allocation table is empty. After at least one round of matching, the task allocation table can record the number corresponding to the currently determined container handling task. Robot, such as container handling task i is assigned to robot j.
  • At least one container handling task currently to be assigned can be determined based on the container handling task list and the assigned tasks currently determining the assignment relationship, and based on the storage space occupancy of each optional robot in the robot list, the determination At least one candidate robot, so as to facilitate subsequent determination of the allocation relationship between at least one container handling task currently to be assigned and at least one candidate robot, and complete each container handling task. distribution.
  • each container handling task can be divided into echelons based on priority, that is, at least one container handling task currently to be assigned and After at least one candidate robot, include:
  • At least one container handling task is divided to obtain a set of handling tasks of at least one echelon.
  • each container handling task is set with a corresponding priority.
  • the priorities of different container handling tasks can be the same or different.
  • the priority of a container handling task can indicate the importance of the container handling task, that is, priority execution. Degree. Among them, the priority of the container handling task can be represented by a number. The larger the number, the higher the priority, or the smaller the number, the higher the priority. You can customize the way the priority is expressed.
  • the warehousing system can read the priority of each container handling task from the container handling task list, and then determine the priority of each container handling task currently to be allocated.
  • the total storage bits of each candidate robot can be determined based on the robot list search, and the number of currently allocated storage bits can be determined based on the task allocation table, thereby determining the total remaining storage bits of each candidate robot. After that, at least one container handling task is divided according to the priority and the total remaining storage space, and a set of handling tasks of at least one echelon is obtained.
  • the set of handling tasks in the first echelon will not exceed the total remaining storage space of each candidate robot after addition.
  • the set of all container handling tasks that is, the set of tasks that can be performed by the candidate robots without competition; the second echelon of handling tasks set is that joining the first echelon will cause the number of first echelon tasks to exceed the total remaining balance of each candidate robot
  • the set of tasks for storage slots is a set of tasks that compete for the remaining storage slots in the first echelon.
  • the set of handling tasks for the third echelon is a set of tasks under the remaining priority, that is, the priority is low and there is no competitiveness. , a set of tasks that will not be performed by candidate robots in this round.
  • each candidate robot has 6 storage slots, that is, the total remaining storage slots of each candidate robot is 12; according to the task echelon division rule, container handling tasks No. 1-10 This is a task that the two candidate robots can definitely satisfy. There is no competitive relationship and it belongs to the set of handling tasks in the first echelon. After the container handling tasks 11-15 are added to the first echelon, they will exceed the total remaining storage space of each candidate robot. Therefore, container handling tasks No.
  • container handling tasks No. 16-20 are tasks with remaining priority and will not be executed by the two robots in this round. , is not competitive and belongs to the third echelon of handling task sets.
  • At least one container handling task can be divided based on the priority of each container handling task and the total remaining storage space of each candidate robot to obtain at least one echelon of handling task sets. Subsequently, according to the task echelon, you can Robot resources are allocated to each container handling task in the task set of each echelon in turn. In this way, container handling tasks of different priorities are divided into echelons, which increases the optimization space for task allocation.
  • Step 204 Determine the path length for the first candidate robot to perform the first container transportation task, and determine the transportation position conflict value between the first candidate robot to perform the first container transportation task and the execution robot to perform the assigned task.
  • the execution robot is a robot corresponding to the assigned task, and the assigned task and the first container handling task are container handling tasks in the same lane.
  • the assigned task refers to the container handling task for which the assignment relationship has been determined, that is, which robot will perform the assigned task has been determined. Since there is no conflict between robots during the handling process for containers that are not in the same lane, the two robots may conflict only when the assigned task and the first container handling task are container handling tasks in the same lane, and a penalty value needs to be calculated. That is, the handling position conflict value is used to facilitate subsequent selection of the match with the smallest handling position conflict value based on the calculated handling position conflict value.
  • the containers are stored on the shelves.
  • the container instructed by the first container handling task is close to the containers instructed by other assigned tasks that have determined the allocation relationship, then the two robots cannot perform at that location at the same time.
  • the container picking operation there will be a handling position conflict, resulting in a robot needing to wait for other robots to complete the container picking operation and leave before it can start the container picking operation. Therefore, when assigning the robot to the first container handling task, the handling position conflict value between the execution robot and the execution of the assigned task may be considered.
  • each container handling task is initially a container handling task to be assigned. At this time, there is no handling position conflict value and handling lane conflict value.
  • the matching cost of a certain container handling task corresponding to a certain candidate robot is the candidate. The length of the path the robot takes to perform the container handling task, and then Continue to determine the optimal match based on the matching cost, that is, after determining a certain group of task allocation relationships, there may be a handling position conflict value and a handling lane conflict value, and then combine the handling position conflict value and handling lane conflict value to determine a new task allocation .
  • the A* algorithm (which is the most effective direct search method for solving the shortest path in a static road network) can be used to determine the path length of the first candidate robot to perform the first container handling task, that is, the position of the first candidate robot.
  • the storage location of the container to be moved is directed to the first container handling task.
  • the map in the warehousing system can be divided into a flat raster map. Each cell in the raster map can be a node, thereby solving the problem of the first candidate robot executing the first container.
  • f(n) is the comprehensive priority of node n.
  • g(n) is the cost of node n from the starting point
  • h(n) is the estimated cost of node n from the end point , which is the heuristic function of the A* algorithm.
  • the node with the smallest f(n) value (highest priority) is selected from the priority queue as the next node to be traversed.
  • the A* algorithm uses two sets to represent the nodes to be traversed and the nodes that have been traversed, which are usually called open_set and close_set.
  • the complete A* algorithm is described as follows: initialize open_set and close_set; add the starting point to open_set, and set the priority to 0 (the highest priority); if open_set is not empty, select the node n with the highest priority from open_set, if Node n is the end point, then gradually track the parent node from the end point until it reaches the starting point, return the found result path, and the algorithm ends; if node n is not the end point, delete node n from open_set and add it to close_set, traversing node n For all neighboring nodes, if the neighboring node m is in close_set, skip it and select the next neighboring node. If the neighboring node m is not in open_set, set the parent of node m to node n, calculate the priority of node m, and Node m is added to open_set.
  • the handling position conflict value between the container picking end time of the assigned task and the container picking start time of the first container handling task can be determined, that is, the first candidate robot is determined.
  • the handling position conflict value between executing the first container handling task and executing the assigned task by the robot, the specific implementation process can be as follows:
  • the execution path length of the assigned task and the movement speed of the execution robot determine the end time of the container pickup when the execution robot executes the assigned task
  • the handling location conflict value is determined based on the container picking end time of the assigned task and the container picking start time of the first container handling task.
  • the handling position conflict value can be set directly to 0.
  • the end time of container picking up by the execution robot for performing the assigned task can be determined, and the The start time of picking up the container when the first candidate robot performs the first container handling task.
  • the start time of picking up the container when the first candidate robot performs the first container handling task is later than the end time when picking up the container when the execution robot performs the assigned task, it means that the execution robot has finished picking up the container, and the first candidate robot has reached the corresponding level.
  • the position starts to pick up the container, and there will be no conflict at this time.
  • the conflict value of the handling position can be determined as 0. If it is determined that the container picking start time of the first candidate robot to perform the first container handling task is earlier than the container picking end time of the execution robot to perform the assigned task, it means that the execution robot has not finished picking up the container, and the first candidate robot has reached the corresponding position. At this time, you cannot start picking up the container and you need to wait in line. Therefore, you can set the handling position conflict value higher at this time.
  • the container fetching end time of the execution robot executing the assigned task is determined.
  • the specific implementation process can be as follows:
  • the execution path length of the assigned task and the movement speed of the execution robot determine the movement time required for the execution robot to move to the container location indicated by the assigned task
  • the warehousing system can obtain the start execution time of the assigned task and the execution time of taking the container from the container task handling list.
  • the start execution time is when the execution robot starts to move to the location of the container instructed by the assigned task.
  • the execution time of picking up a container refers to the time required for the execution robot to reach the location of the container that has been assigned task instructions to carry, pick up the container and put it into its own storage location.
  • the movement time required for the execution robot to move to the container location indicated by the assigned task can be determined. Then, based on the start execution time and movement time, Determine the start time for the execution robot to perform the assigned task of picking up the container, that is, the time when the execution robot reaches the container position indicated by the assigned task. After that, based on the execution time of taking the container and the start time of taking the container of the assigned task, the end time of taking the container of the assigned task can be determined, that is, the time when the container is finished taking.
  • the warehousing system can obtain the start execution time of the first container handling task from the container task handling list, and then execute the first container handling task according to the path length of the first candidate robot and the movement speed of the first candidate robot. , the movement time required for the first candidate robot to move from the current position to the storage location of the container instructed to be transported by the first container handling task can be determined. Adding the start execution time to the movement time, it can be obtained that the first candidate robot reaches The first container handling task indicates the time at the storage location of the container being handled, that is, the container fetching start time when the first candidate robot performs the first container handling task.
  • the handling position conflict value is determined based on the container fetching end time of the assigned task and the container fetching start time of the first container handling task.
  • the container fetching end time of the assigned task can be subtracted from the container fetching start time of the first container handling task.
  • Container start time obtain the time difference, and then take the larger of the time difference and 0 as the handling location conflict value.
  • the handling position conflict value can be the time difference value, which means that the container picking end time of the assigned task is greater than the taking time of the first container handling task.
  • the container start time means that the container pick-up start time of the first container handling task is earlier than the container pick-up end time of the assigned task.
  • a space-time conflict may occur.
  • the handling position conflict value is a positive number. The greater the time difference, the greater the time difference. The more overlap time between the container picking start time of the first container handling task and the container picking end time of the assigned task, the larger the handling position conflict value will be at this time.
  • the handling position conflict value is 0, which means that the end time of the container picking up of the assigned task is less than the container picking up start time of the first container handling task, which means that the first container handling If the task's container pickup start time is later than the assigned task's container pickup end time, no space-time conflict will occur at this time, and the handling location conflict value is 0.
  • Figure 3 is a schematic diagram of the execution process of a container handling task provided by an embodiment of this specification.
  • containers B1 - Containers B7 are stored in the shelf area.
  • container B1 (already assigned task instructions
  • the start execution time of container B2 (container to be transported) and container B2 (container to be transported as instructed by the first container transport task, that is, the container to be allocated) is time t 0 .
  • container B1 has been allocated to robot R1 (execution robot).
  • Robot R1 is currently The path length from the position to container B1 is p 1 , the average speeds of robots R1 and R2 are both v 0 , and the execution time of the container fetching action (that is, the execution time of fetching the container) is t p , then robot R1 executes the container fetching of container B1
  • position conflicts are considered when assigning tasks.
  • the handling position conflict value can be calculated.
  • the handling position conflict value can be considered, thereby avoiding the time-consuming waiting after the robot reaches the handling position, and avoiding serious accidents caused by robots getting together. Waiting and congestion allow each robot in the warehousing system to maximize its capabilities, improve the rationality of task allocation, and thereby improve the overall efficiency of task execution.
  • the first candidate robot performs the first container handling task and the execution robot performs the assigned task, Whether there is a conflict in the handling position;
  • the distance threshold can be set in advance. When the distance between the first storage position and the second storage position is less than the distance threshold, it means that the first storage position and the second storage position are close to each other, and the volume of the robot body is in the container-picking position. When there is an envelope conflict, it is determined that there is a handling position conflict.
  • the first storage location in the warehousing system of the container instructed to be transported by the first container transporting task can be determined first, and the second storage location in the warehousing system of the container instructed to be transported by the assigned task is determined. If the first storage location The position is close to the second storage position, which means that the volume of the robot body has an envelope conflict when picking up the container. That is, there is a handling position conflict between the first candidate robot performing the first container handling task and the executing robot performing the assigned task, and cannot Simultaneous transportation, so at this time, the operation step of determining the end time of the container fetching by the execution robot to perform the assigned task can be performed based on the execution path length of the assigned task and the movement speed of the execution robot. Subsequently, based on the end time of container fetching, the operation step can be further determined. A handling position conflict value between the first candidate robot performing the first container handling task and the executing robot performing the assigned task.
  • the first storage location in the warehousing system of the container instructed to be transported by the first container transporting task and the second storage location in the warehousing system of the container instructed by the assigned task may be determined first. Whether there is an envelope conflict between the location and the second storage location (i.e., location conflict). If there is no location conflict, there is no need to calculate the handling between the first candidate robot performing the first container handling task and the executing robot performing the assigned task.
  • the position conflict value saves processing resources. Only when there is a position conflict, the handling position conflict value between the first candidate robot performing the first container handling task and the executing robot performing the assigned task is calculated, that is, the handling position conflict value is performed according to the assigned task.
  • the length of the execution path and the movement speed of the execution robot are used to determine the operation steps for the end time of picking up the container when the execution robot executes the assigned task.
  • lane congestion when allocating tasks, in addition to considering location conflicts, lane congestion can also be considered, that is, it is determined whether the first candidate robot performs the first container handling task and the execution robot performs the assigned task. After the handling position conflict value between , it can also include:
  • the handling lane conflict value between the first candidate robot performing the first container handling task and the executing robot performing the assigned task is determined.
  • congestion may also occur when the robot moves in the tunnel. Therefore, it can also be determined whether the first candidate robot performs the first container handling task or the execution robot performs the task.
  • the handling lane conflict value between assigned tasks can also be further combined with the handling lane conflict value when determining the task allocation relationship.
  • the conflict of the handling position of the robot performing the container handling task and the possible congestion situation that may occur when the robot moves in the tunnel are taken into consideration to avoid the robot from reaching the handling position. It also avoids the time-consuming waiting time of robots waiting in congestion in the lanes, and avoids serious waiting and congestion caused by robots getting together, so that each robot in the warehousing system can maximize its own capabilities and improve the rationality of task allocation. , thereby improving the overall efficiency at the task execution level.
  • the handling lane conflict value between the first candidate robot performing the first container handling task and the executing robot performing the assigned task is determined.
  • the specific implementation process may be as follows:
  • the target lane refers to the lane where the first container handling task and the container instructed to be handled by the assigned task are located.
  • the number threshold is a preset upper limit for the number of robots that can exist in a lane at the same time. For example, a lane generally has two entrances and exits, so the number threshold can be set to 2.
  • first set value and the second set value are preset values.
  • the first set value is a penalty value set for the case where there is a conflict in the transportation lane, so the first set value is set higher;
  • the second set value is a penalty value set when there is no conflict in the transportation lane, so the second set value is set low and can be 0. That is, the first set value can be set much larger than the second set value.
  • the handling lane conflict value can be set It is set as a value that is significantly larger than the value range of the path length and the transportation position conflict value. That is, at this time, the first set value can be set to a value that is larger than the value range of the path length and the transportation position conflict value.
  • the first residence time period is the time period during which the execution robot with a determined allocation relationship needs to stay in the corresponding tunnel when executing the corresponding assigned task
  • the second residence time period is the period during which the first candidate robot executes The time period required to stay in the tunnel during the first container handling task. If there is an intersection between the second residence time period and the first residence time period, it means that the first candidate robot and the executing robot are in the intersection time period and in the lane at the same time. At this time, the target lane within the intersection time period can be determined. Whether the number of robots exceeds the number threshold, that is, whether there are other execution robots in the target lane during the intersection time period.
  • the handling task is assigned to a robot that is not in the target lane.
  • the handling lane conflict value is the first set value, that is, the handling lane conflict value is set to a larger value; if not, it means that the target lane is within the intersection time period.
  • the probability of congestion is small, so it can be determined that the conflict value of the transportation lane is the second set value, that is, the conflict value of the transportation lane is set to be smaller.
  • the upper limit of the number of robots in the tunnel is considered when assigning tasks, that is, there are at most k robots in a tunnel at the same time (the tunnel has dual entrances and exits, and k is generally set to 2).
  • the handling lane conflict value it is estimated that the first candidate robot will enter the lane and leave the lane. If this time period intersects with the lane residence time assigned to other robot tasks, and the number of robots is k, then set the handling lane The conflict value is the maximum value (that is, the worst match). Assume that the range of the matching cost of the path length and handling position conflict value is [0, 1000]. At this time, the conflict value of the handling lane can be set to 10000. When determining the optimal match later , if the matching cost is greater than or equal to 10000, then the matching has a transportation lane conflict and the matching is not advisable.
  • the assigned task's first stay time period in the target lane intersects with the first candidate robot's second stay time period in the target lane, it means that the target lane may be congested at this time. It can be determined whether the number of robots in the target lane exceeds the number threshold, thereby limiting the upper limit of the number of robots in the lane, that is, there are at most k robots in a lane at the same time. In this way, it avoids the time-consuming waiting of robots in congestion in the lanes, avoids serious waiting and congestion caused by robots getting together, allows each robot in the warehousing system to maximize its own capabilities, improves the rationality of task allocation, and then improves task efficiency. Overall efficiency at the execution level.
  • Step 206 Determine the matching cost of the first candidate robot corresponding to the first container handling task based on the path length and the handling position conflict value.
  • the path length and handling position conflict values can be summed to determine the matching cost of the first candidate robot corresponding to the first container handling task.
  • the path length of the first candidate robot performing the first container handling task and the possible locations of other execution robots with determined allocation relationships are comprehensively considered.
  • Conflicts improve the accuracy of matching costs and facilitate subsequent determination of optimal task allocation based on the matching costs.
  • the handling lane conflict value in addition to determining the path length and handling position conflict value, can also be determined. Therefore, when calculating the matching cost of the first candidate robot corresponding to the first container handling task, The matching cost of the first candidate robot corresponding to the first container handling task can be determined based on the conflict value of the transport lane, that is, based on the path length and the conflict value of the transport position.
  • the specific implementation process can be as follows:
  • the handling position conflict value and the handling lane conflict value the matching cost of the first candidate robot corresponding to the first container handling task is determined.
  • the path length, handling position conflict value and handling lane conflict value can be combined to determine the matching cost of the first container handling task corresponding to the first candidate robot, so as to facilitate subsequent determination of the optimal task allocation based on the matching cost to avoid It eliminates serious waiting and congestion caused by the clustering of robots, allowing each robot in the warehousing system to maximize its own capabilities, improves the rationality of task allocation, and thereby improves the overall efficiency of task execution.
  • the matching cost of the first candidate robot corresponding to the first container handling task is determined based on the path length, the handling position conflict value and the handling lane conflict value.
  • the specific implementation process may include the following steps:
  • path length, handling position conflict value and handling lane conflict value calculated above are values in different dimensions and cannot be processed directly. Therefore, the path length, handling position conflict value and handling lane conflict value can also be unified into In the same dimension, the unified path length, handling position conflict value and handling lane conflict value are then summed to obtain the matching cost of the first candidate robot corresponding to the first container handling task.
  • the handling lane conflict value is a preset value.
  • the handling lane conflict value can be set to the final need to be unified.
  • Dimensions such as setting the handling lane conflict value in the distance dimension, converting the handling position conflict value into the distance dimension; or setting the handling lane conflict value in the time dimension, in which case the handling position conflict value can be the time dimension, and converting the path
  • the length is also converted to the time dimension.
  • the dimensions may not be considered when setting the transportation lane conflict value, and the dimensions of the path length, transportation position conflict value, and transportation lane conflict value will be unified later.
  • the path length, transportation position conflict value and transportation lane conflict value can be unified into the same dimension, so as to facilitate combining the path length, transportation position conflict value and transportation lane conflict value to determine the first candidate corresponding to the first container transportation task The robot's matching cost.
  • Step 208 Determine the allocation result of at least one container handling task based on the matching cost of each candidate robot corresponding to the at least one container handling task.
  • each candidate robot can be used as the first candidate robot to determine the matching cost with the first container handling task, that is, the matching cost of each candidate robot corresponding to the first container handling task is determined.
  • each container handling task to be assigned can be used as the first container handling task, and the matching cost corresponding to each candidate robot is determined. Therefore, at least one container handling task can be determined based on the matching cost of each candidate robot corresponding to at least one container handling task. Task assignment results.
  • the allocation result refers to the optimal match between at least one container handling task and each candidate robot, that is, a certain container handling task corresponding to a certain candidate robot is the optimal match.
  • an optimal match can be selected as the allocation result, and other unmatched container handling tasks will continue to be container handling tasks to be assigned and continue to participate in the next round of allocation.
  • the allocation result of at least one container handling task is determined based on the matching cost of each candidate robot corresponding to the at least one container handling task, including:
  • the target matching includes the container handling task and the corresponding candidate robot;
  • the currently allocated tasks and the corresponding execution robots are updated, and the operation step of determining at least one container handling task and at least one candidate robot currently to be allocated is returned to execution.
  • a matching cost matrix can be constructed based on the matching cost of each candidate robot corresponding to at least one container handling task, that is, at least one container handling task is regarded as a row (or column), and each candidate robot is regarded as a column (or row).
  • the elements in a certain row and column are the matching costs between the corresponding container handling tasks and the candidate robots, thereby constructing a matching cost matrix, and selecting the target match with the smallest matching cost from the matching cost matrix as the allocation result.
  • An allocation result includes containers handling task and the corresponding candidate robot. At this time, it is determined that the container handling task is assigned to the candidate robot. The container handling task becomes an assigned task. The storage bit of the candidate robot is decremented by 1. Other unmatched container handling tasks are still as assigned. The container handling tasks to be assigned will participate in the next round of task allocation until all container handling tasks are assigned, or the storage resources of the candidate robots are exhausted.
  • Figure 4a is a schematic diagram of the first matching cost matrix provided by an embodiment of this specification.
  • container handling tasks there are 6 container handling tasks to be assigned (container handling tasks 1-6) and 5 candidate robots. (Candidate robots 1-5), with the container handling task as the row and the candidate robot as the column, based on the matching cost between the container handling task and the candidate robot, a matching cost matrix as shown in Figure 4a is constructed.
  • the matching cost of the container handling task 3 corresponding to the candidate robot 2 is the smallest, so the allocation result at this time is the container handling task 3 and the candidate robot 2, that is, the container handling task Task 3 is assigned to candidate robot 2.
  • the match with the smallest matching cost can be selected from the matching cost matrix as the optimal match, determine the allocation result, update the task allocation table, the start time and end time of the allocated task being executed, and enter the lane when the allocated task is executed Time and time to leave the tunnel for use in the subsequent task allocation process, and then execute the above steps 202 to 206 in a loop to continue to allocate container handling tasks to be assigned until all robot resources are used up or all container handling tasks are assigned to the robot.
  • each round of task allocation can determine a set of optimal allocations, and then continue to cycle to determine the handling position conflict value and the handling lane conflict value, thereby determining the optimal allocation.
  • the path length, The conflict value of the handling position and the conflict value of the handling lane avoid serious waiting and congestion caused by the clustering of robots, allowing each robot in the warehousing system to maximize its own capabilities, improving the rationality of task allocation, and thus improving the efficiency of task execution. Overall efficiency.
  • the optimal container handling task for each echelon can be determined in sequence.
  • Optimal allocation thereby determining the allocation results of the container handling tasks of each echelon in turn, that is, before determining the path length of the first candidate robot to perform the first container handling task, it also includes
  • the allocation result of at least one container handling task is determined based on the matching cost of each candidate robot corresponding to the at least one container handling task, including:
  • each target container handling task corresponding to each candidate robot in the target echelon's handling task set determines the allocation result of each target container handling task
  • the next echelon of the target echelon is used as the target echelon, and the step of selecting the first container handling task in the set of handling tasks of the target echelon is returned.
  • the target container handling task refers to the container handling task that has not yet been assigned in the handling task set of the target echelon.
  • the current echelon refers to the echelon to which the container handling task currently needs to be assigned tasks. Initially, the current echelon may refer to the echelon with the highest priority among at least one echelon.
  • assigning tasks you can start from the echelon with the highest priority, determine the allocation results of each target container handling task in the echelon's handling task set, and then use the next echelon of the target echelon as the target echelon to continue to the next echelon.
  • the tasks in the robot are allocated until all robot resources are used up or all container handling tasks are allocated to robots.
  • the allocation results of each target container handling task are determined based on the matching cost of each target container handling task corresponding to each candidate robot in the target echelon's handling task set.
  • the specific implementation process can be as follows:
  • a target matching cost matrix corresponding to the target echelon is constructed
  • Target matching includes the container handling task and the corresponding candidate robot
  • the currently assigned tasks and the corresponding execution robots are updated, and the step of constructing the target matching cost matrix corresponding to the target echelon according to the matching costs of each candidate robot corresponding to each target container handling task is returned.
  • each target container handling task in the target echelon's handling task set can be used as the first container handling task, and the matching cost with each candidate robot is determined, and then each target container in the target echelon's handling task set is determined Construct the target matching cost matrix corresponding to the target echelon for the handling task and each candidate robot, select the optimal match from the target matching cost matrix as the allocation result of this round, and continue to carry out the remaining unassigned target container handling tasks based on the target echelon. Construct a target matching cost matrix to continue allocating other unassigned target container handling tasks in the target echelon.
  • each container handling task in the target echelon's handling task set After the allocation results of each container handling task in the target echelon's handling task set are determined, it means that each container handling task of the target echelon has been assigned. At this time, the next echelon of the target echelon can be used as the target echelon, and the next echelon can be continued. The target container handling tasks in the robot are allocated until the candidate robot resources are exhausted.
  • each candidate robot has 6 storage slots; there are 20 container handling tasks, which are divided into 3 task echelons.
  • the task echelon with the highest priority is the first echelon, including 1- Container handling task No. 10
  • the task echelon with the next highest priority is the second echelon, including container handling tasks No. 11-15
  • the task echelon with the lowest priority is the third echelon, including container handling tasks No. 15-20.
  • FIG. 4b is a schematic diagram of the second matching cost matrix provided by an embodiment of this specification.
  • the matching cost of container handling task No. 4 corresponding to candidate robot 1 is the smallest, so the allocation result of this round is container handling task No. 4 and candidate robot 1, that is, the container handling task No. 4 is assigned to candidate robot 1, and then The container handling task No. 4 is regarded as an assigned task and continues to be assigned to other container handling tasks in the first echelon until all container handling tasks in the first echelon are assigned.
  • FIG. 4c is a schematic diagram of the third matching cost matrix provided by an embodiment of this specification.
  • the matching cost of container handling task No. 13 corresponding to candidate robot 2 is the smallest, so the allocation result of this round is container handling task No. 13 and candidate robot 2, that is, the container handling task No. 13 is assigned to candidate robot 2, and then The container handling task No. 13 is regarded as an assigned task and continues to be assigned to other container handling tasks in the second echelon until the candidate robot resources are exhausted. Since the candidate robot resources are exhausted at this time, container handling in the third echelon will no longer be continued. Task Assignment.
  • each container handling task can also be carried out based only on the priority of the container handling task.
  • Each polling starts from Select an optimal match from the n*m matrix as the allocation result.
  • each container handling task is divided into echelons, each echelon can include at least one priority container handling task. Assume that there are k container handling tasks in a certain echelon (k is greater than or equal to n). At this time, it becomes k*m An optimal match is selected from the matrix. As the allocation result, the optimal value in the k*m matrix is better than the optimal value in the matrix equal to n*m, which can increase the search space for determining the allocation result and improve Optimization space for task allocation, thereby improving the efficiency of task execution.
  • the conflict value of the transportation lane is taken into account.
  • the matching cost that will cause lane congestion must be much greater than the matching cost that will not occur, that is, the target with the smallest matching cost.
  • matching the probability of lane congestion is the smallest, so the target matching with the smallest matching cost can be directly selected as the allocation result.
  • the probability of location conflict and lane congestion in this allocation result is the smallest among the matching results, that is, the target matching result is The optimal matching is determined taking into account location conflicts and lane congestion.
  • the matching cost threshold can also be set in advance.
  • the matching cost threshold can be the worst matching value set based on the handling lane conflict value. If the matching cost exceeds the matching cost threshold, it means that the allocation result corresponding to the matching cost will cause a lane conflict. . Therefore, during specific implementation, you can also first determine the minimum matching cost from the target matching cost matrix, and then determine whether the minimum matching cost exceeds the matching cost threshold. If not, it means that the target matching with the minimum matching cost will not cause tunneling. Congestion, the target matching with the smallest matching cost can be used as the allocation result; if it exceeds, it means that the number of robots in the lane where the container handling task to be allocated has reached the upper limit, and lane congestion will occur no matter how the allocation is performed. At this time, you can It is determined that the allocation result is empty, and the allocation of container handling tasks is stopped, which avoids congestion when the robot performs tasks and improves the efficiency of task execution.
  • the target delivery sequence of the target robot to each destination workstation is determined based on the destination workstation of each target container and the current work information of each workstation.
  • each container handling task is allocated, or the storage space of each candidate robot is occupied, the task allocation is stopped. After it is determined that the task allocation is completed, each robot starts to perform the tasks assigned to it, and the robot performs the container transportation task.
  • the process is divided into two stages. The first stage is to take the containers from the shelf; the second stage is that after the robot has picked up each container, it will transport each container it has stored to the corresponding workstation. Therefore, the warehousing system also needs to obtain a workstation list, which may include basic information and current work information of the workstations, and subsequently determine the container delivery sequence based on the current work information of each workstation.
  • the execution order of the first stage is the task allocation order
  • the execution order of the second stage can be determined based on the current working status of the workstation.
  • the determination strategy is that it takes the least time for the robot to transport all its own containers. , thereby preventing robots from queuing at workstations, saving container delivery time, and improving warehousing efficiency.
  • the target delivery sequence of the target robot to each destination workstation is determined based on the destination workstation of each target container and the current work information of each workstation.
  • the specific implementation process can be as follows:
  • the transportation time corresponding to various transportation sequences is determined
  • a robot is equipped with multiple storage locations and can transport multiple containers at the same time.
  • the workstations corresponding to the multiple containers can be different.
  • the robot transports a container to the corresponding workstation, if the workstation is currently If a robot is placing containers at the workstation, or there are already robots waiting in line, the robot also needs to wait in line, which may cause congestion at the workstation and reduce delivery efficiency. Therefore, at least one transportation sequence for each target container can be determined, the transportation time corresponding to each transportation sequence is determined based on the current work information of each workstation, and the transportation sequence with the shortest transportation time is selected as the target transportation sequence.
  • a robot is assigned multiple container handling tasks, picks up all containers in sequence, and sends the containers to the picking workstation, which completes the outbound delivery.
  • the order in which the robots execute each container is the order in which they are assigned to the robots (distance factors, location conflicts and lane congestion are taken into account when allocating, and the final effect is achieved.
  • the earliest executable tasks are assigned to the robots first); after the robots have finished fetching, After the container, the robot carrying the container is regarded as a whole.
  • the container on the robot has multiple destinations (workstations). Determining the order in which the robot goes to the workstation can be abstracted into an open shop scheduling problem (open shop scheduling problem, OSP).
  • the workstation is a processing machine, the robot that enters the station after taking the container is the workpiece to be processed, and the containers to be picked on the robot are the processing procedures.
  • the shortest time to deliver all containers is the optimization goal, and the order in which the robot executes the container transport operation is obtained.
  • the open shop scheduling problem is defined as: there are n workpieces that need to be processed and m types of machines used to add them. Each workpiece has one or more processes, and the processing time of each process is is known, but the processing sequence of each workpiece is not specified. A machine can only process one workpiece at the same time, and each workpiece can only be processed on a certain machine at the same time. Ultimately, it is necessary to obtain a set of machines and The arrangement and combination of workpieces minimizes the time required to process all workpieces.
  • the container handling task allocation method provided in this specification, after determining at least one container handling task and at least one candidate robot currently to be assigned, can determine the path length of the first candidate robot to perform the first container handling task, and determine the first candidate
  • the handling position conflict value between the robot executing the first container handling task and the execution robot executing the assigned task is subsequently combined with the path length and the handling position conflict value to determine the matching cost of the first candidate robot corresponding to the first container handling task, each Any container handling task can be used as the first container handling task, and each candidate robot can be used as the first candidate robot. That is, for any container handling task, the matching cost between it and each candidate robot can be determined.
  • the matching cost between the task and each candidate robot can determine the allocation result of each container handling task, thereby determining the optimal match between the container handling task and the candidate robot, and assigning the container handling task to the most suitable candidate robot.
  • the conflict of the handling position of the robot performing the container handling task is taken into account, so as to avoid the time-consuming waiting after the robot reaches the handling position, and avoid the serious waiting and confusion caused by the robots getting together.
  • Congestion allows each robot in the warehousing system to maximize its capabilities, improve the rationality of task allocation, and thereby improve the overall efficiency of task execution.
  • FIG. 5 is a schematic diagram of the processing process of a method for allocating container handling tasks provided by an embodiment of this specification, which specifically includes the following steps:
  • Step 1 Trigger task allocation based on set time frequency or set events.
  • Step 2 Enter the container handling task list, robot list and workstation list.
  • Step 3 Initialize the task allocation table, the start time and end time when the assigned tasks are executed, and the time when the robot enters the lane and leaves the lane when the assigned tasks are executed.
  • the task allocation table is the allocation of container handling task i to robot j.
  • Step 4 Consider the number of container handling tasks and the number of available robot storage slots, and divide each container handling task into echelons according to priority.
  • Step 5 Under the current echelon, calculate the matching cost cost for matching the container handling task with the available robots.
  • the calculation method of matching cost cost basic cost + handling position conflict value + handling lane conflict value.
  • the basic cost is the path length for the robot to perform the container handling task;
  • the handling position conflict value is the penalty value for each robot to perform its own container handling task, and there is a handling position conflict;
  • the handling lane conflict value is if the number of robots in the lane reaches the upper limit, Added penalty values for robots and container handling tasks in the tunnel.
  • Step 6 Select the match with the smallest matching cost as the optimal match, and determine the allocation result.
  • Step 7 There are remaining robot resources or container handling tasks to be allocated. If not, end. If yes, proceed to step 8.
  • Step 8 Based on the allocation results, update the robot list and the list of container handling tasks to be allocated.
  • Step 9 Update the task allocation table, the start time and end time of the assigned tasks to be executed, the time to enter the lane and the time to leave the lane when the assigned tasks are executed.
  • Step 10 Repeat step 5 until the end.
  • the container handling tasks under the current echelon can be allocated. After the allocation of each container handling task under the current echelon is completed, the next echelon can be continued to be the current echelon to continue to the next echelon.
  • the container handling tasks under the robot are assigned until each container handling task is assigned, or the robot resources are exhausted.
  • the container handling task allocation method provided in this specification, after determining at least one container handling task and at least one candidate robot currently to be assigned, can determine the path length of the first candidate robot to perform the first container handling task, and determine the first candidate
  • the handling position conflict value between the robot executing the first container handling task and the execution robot executing the assigned task is subsequently combined with the path length and the handling position conflict value to determine the matching cost of the first candidate robot corresponding to the first container handling task, each Any container handling task can be used as the first container handling task, and each candidate robot can be used as the first candidate robot. That is, for any container handling task, the matching cost between it and each candidate robot can be determined.
  • the matching cost between the task and each candidate robot can determine the allocation result of each container handling task, thereby determining the optimal match between the container handling task and the candidate robot, and assigning the container handling task to the most suitable candidate robot.
  • the conflict of the handling position of the robot performing the container handling task is taken into account, so as to avoid the time-consuming waiting after the robot reaches the handling position, and avoid the serious waiting and confusion caused by the robots getting together.
  • Congestion allows each robot in the warehousing system to maximize its capabilities, improve the rationality of task allocation, and thereby improve the overall efficiency of task execution.
  • FIG. 6 is a schematic structural diagram of a device for distributing container handling tasks provided by an embodiment of this specification. As shown in Figure 6, the device includes:
  • the first determination module 602 is configured to determine at least one container handling task and at least one candidate robot currently to be assigned;
  • the second determination module 604 is configured to determine the path length of the first candidate robot to perform the first container handling task, and determine the handling position conflict value between the first candidate robot to perform the first container handling task and the execution robot to perform the assigned task. , where the execution robot is the robot corresponding to the assigned task, and the assigned task and the first container handling task are container handling tasks in the same lane;
  • the third determination module 606 is configured to determine the matching cost of the first candidate robot corresponding to the first container handling task according to the path length and the handling position conflict value;
  • the fourth determination module 608 is configured to determine the allocation result of at least one container handling task based on the matching cost of each candidate robot corresponding to the at least one container handling task.
  • the container handling task allocation device after determining at least one container handling task and at least one candidate robot currently to be assigned, can determine the path length of the first candidate robot to perform the first container handling task, and determine the first candidate
  • the handling position conflict value between the robot executing the first container handling task and the execution robot executing the assigned task is subsequently combined with the path length and the handling position conflict value to determine the matching cost of the first candidate robot corresponding to the first container handling task, each Any container handling task can be used as the first container handling task, and each candidate robot can be used as the first candidate robot. That is, for any container handling task, the matching cost between it and each candidate robot can be determined.
  • the matching cost between the task and each candidate robot can determine the allocation result of each container handling task, thereby determining the optimal match between the container handling task and the candidate robot, and assigning the container handling task to the most suitable candidate robot.
  • the conflict of the handling position of the robot performing the container handling task is taken into account, so as to avoid the time-consuming waiting after the robot reaches the handling position, and avoid the serious waiting and confusion caused by the robots getting together.
  • Congestion allows each robot in the warehousing system to maximize its capabilities and improve any task. The rationality of task allocation, thereby improving the overall efficiency of task execution.
  • the second determination module 604 is further configured as:
  • the execution path length of the assigned task and the movement speed of the execution robot determine the end time of the container pickup when the execution robot executes the assigned task
  • the handling location conflict value is determined based on the container picking end time of the assigned task and the container picking start time of the first container handling task.
  • the second determination module 604 is further configured as:
  • the first storage position and the second storage position determine whether there is a handling position conflict between the first candidate robot performing the first container handling task and the execution robot performing the assigned task;
  • the second determination module 604 is further configured as:
  • the execution path length of the assigned task and the movement speed of the execution robot determine the movement time required for the execution robot to move to the container location indicated by the assigned task
  • the device further includes a fifth determination module configured to:
  • the third determination module 606 is further configured as:
  • the handling position conflict value and the handling lane conflict value the matching cost of the first candidate robot corresponding to the first container handling task is determined.
  • the fifth determination module is further configured as:
  • the third determination module 606 is further configured as:
  • the unified path length, handling position conflict value and handling lane conflict value are summed to obtain the matching cost of the first candidate robot corresponding to the first container handling task.
  • the fourth determination module 608 is further configured as:
  • the target matching includes the container handling task and the corresponding candidate robot;
  • the currently allocated tasks and the corresponding execution robots are updated, and the operation step of determining at least one container handling task and at least one candidate robot currently to be allocated is returned to execution.
  • the device further includes a dividing module configured to:
  • At least one container handling task is divided to obtain a set of handling tasks of at least one echelon.
  • the second determination module is further configured as:
  • the fourth determination module is further configured as:
  • each target container handling task corresponding to each candidate robot in the target echelon's handling task set determines the allocation result of each target container handling task
  • the next echelon of the target echelon is used as the target echelon, and the step of selecting the first container handling task in the set of handling tasks of the target echelon is returned.
  • the device also includes a control module configured to:
  • the target delivery sequence of the target robot to each destination workstation is determined based on the destination workstation of each target container and the current work information of each workstation.
  • control module is further configured as:
  • the transportation time corresponding to various transportation sequences is determined
  • the above is a schematic solution of a container handling task allocation device in this embodiment. It should be noted that the technical solution of the container handling task allocation device and the above-mentioned technical solution of the container handling task allocation method belong to the same concept. Details of the technical solution of the container handling task allocation device that are not described in detail can be found in Description of the technical solution for the above container handling task allocation method.
  • Figure 7 is a structural block diagram of a computing device provided by an embodiment of this specification.
  • Components of the computing device 700 include, but are not limited to, memory 710 and processor 720 .
  • the processor 720 and the memory 710 are connected through a bus 730, and the database 750 is used to save data.
  • Computing device 700 also includes an access device 740 that enables computing device 700 to communicate via one or more networks 760 .
  • networks include Public Switched Telephone Network (PSTN), Local Area Network (LAN), Wide Area Network (WAN), Personal Area Network (PAN), or networks such as the Internet A combination of communication networks.
  • Access device 740 may include one or more of any type of network interface (eg, Network Interface Controller (NIC)), wired or wireless, such as IEEE 802.11 Wireless Local Area Networks (WLAN) Wireless interface, Worldwide Interoperability for Microwave Access (Wi-MAX, Worldwide Interoperability for Microwave Access) interface, Ethernet interface, Universal Serial Bus (USB, Universal Serial Bus) interface, cellular network interface, Bluetooth interface, Near Field Communication (NFC) , Near Field Communication) interface, etc.
  • NIC Network Interface Controller
  • the above-mentioned components of the computing device 700 and other components not shown in FIG. 7 may also be connected to each other, such as through a bus. It should be understood that the structural block diagram of the computing device shown in FIG. 7 is for illustrative purposes only and does not limit the scope of this description. Those skilled in the art can add or replace other components as needed.
  • Computing device 700 may be any type of stationary or mobile computing device, including a mobile computer or mobile computing device (e.g., tablet computer, personal digital assistant, laptop computer, notebook computer, netbook, etc.), mobile phone (e.g., smartphone), wearable computing device (e.g., smart watch, smart glasses, etc.) or other type of mobile device, or such as a desktop Computer or PC is a stationary computing device.
  • a mobile computer or mobile computing device e.g., tablet computer, personal digital assistant, laptop computer, notebook computer, netbook, etc.
  • mobile phone e.g., smartphone
  • wearable computing device e.g., smart watch, smart glasses, etc.
  • desktop Computer or PC is a stationary computing device.
  • Computing device 700 may also be a mobile or stationary server.
  • the processor 720 is configured to execute the following computer executable instructions to implement the steps of the above container handling task allocation method.
  • the above is a schematic solution of a computing device in this embodiment. It should be noted that the technical solution of the computing device belongs to the same concept as the technical solution of the above-mentioned container handling task allocation method. For details that are not described in detail in the technical solution of the computing device, please refer to the above-mentioned container handling task allocation method. Description of the technical solution.
  • An embodiment of the present specification also provides a computer-readable storage medium that stores computer instructions. When the instructions are executed by a processor, the steps of the above container handling task allocation method are implemented.
  • Computer instructions include computer program code, which can be in the form of source code, object code, executable file or some intermediate form.
  • Computer-readable media can include: any entity or device that can carry computer program code, recording media, USB flash drives, mobile hard drives, magnetic disks, optical disks, computer memory, read-only memory (ROM, Read-Only Memory), random access Memory (RAM, Random Access Memory), electrical carrier signals, telecommunications signals, and software distribution media, etc.

Landscapes

  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Engineering & Computer Science (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Development Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Game Theory and Decision Science (AREA)
  • Educational Administration (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Manipulator (AREA)

Abstract

本说明书提供容器搬运任务的分配方法及装置,其中容器搬运任务的分配方法包括:确定第一候选机器人执行第一容器搬运任务的路径长度,并确定第一候选机器人执行第一容器搬运任务与执行机器人执行已分配任务之间的搬运位置冲突值,后续结合该路径长度和该搬运位置冲突值,确定第一容器搬运任务对应第一候选机器人的匹配代价,根据各个容器搬运任务与各个候选机器人之间的匹配代价,可以确定各个容器搬运任务的分配结果,考虑了机器人执行容器搬运任务的搬运位置冲突,避免了机器人扎堆造成严重的等待与拥堵,提高了任务分配的合理性,进而提高了任务执行层面的整体效率。

Description

容器搬运任务的分配方法及装置
本申请要求于2022年7月27日提交中国国家知识产权局、申请号为202210896514.4、发明名称为“容器搬运任务的分配方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本说明书涉及仓储物流技术领域,特别涉及一种容器搬运任务的分配方法。本说明书同时涉及一种容器搬运任务的分配装置,一种计算设备,以及一种计算机可读存储介质。
背景技术
近年来,随着电子商务的快速发展,用户订单数量呈几何倍数增长,一个仓库需要存储海量的商品,如何对这些商品进行自动拣选,成为提高仓储效率的关键。目前,仓库多由机器人实现商品的自动拣选,机器人可以将装有商品的目标容器从待拣选货架上搬运至指定的工作站进行拣选,也即智能仓储系统中多机器人协调作业,保证了仓储系统高效地运行,而容器搬运任务分配的好坏直接影响整个仓储系统的工作效率,并直接关系到仓储系统中各个机器人能否最大的发挥其自身能力。
现有技术中,匈牙利算法是求解任务分配最常用的算法,匈牙利算法的核心是寻找增广路径,它是一种用增广路径求二分图最大匹配的算法,以曼哈顿距离为代价函数,求解容器搬运任务的任务分配。然而,上述任务分配算法中,仅考虑了容器与机器人之间的距离,导致任务分配不合理,从而导致仓储系统中各个机器人不能最大的发挥其自身能力,容器搬运任务的执行效率较低,进而需要更合理更准确的方法进行容器搬运任务的分配操作或者处理。
发明内容
有鉴于此,本说明书实施例提供了一种容器搬运任务的分配方法。本说明书同时涉及一种容器搬运任务的分配装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种容器搬运任务的分配方法,包括:
确定当前待分配的至少一个容器搬运任务和至少一个候选机器人;
确定第一候选机器人执行第一容器搬运任务的路径长度,并确定第一候选机器人执行第一容器搬运任务与执行机器人执行已分配任务之间的搬运位置冲突值,其中,执行机器人为已分配任务对应的机器人,已分配任务与第一容器搬运任务为同一巷道的容器搬运任务;
根据路径长度和搬运位置冲突值,确定第一容器搬运任务对应第一候选机器人的匹配代价;
根据至少一个容器搬运任务对应各个候选机器人的匹配代价,确定至少一个容器搬运任务的分配结果。
根据本说明书实施例的第二方面,提供了一种容器搬运任务的分配装置,包括:
第一确定模块,被配置为确定当前待分配的至少一个容器搬运任务和至少一个候选机器人;
第二确定模块,被配置为确定第一候选机器人执行第一容器搬运任务的路径长度,并确定第一候选机器人执行第一容器搬运任务与执行机器人执行已分配任务之间的搬运位置冲突值,其中,执行机器人为已分配任务对应的机器人,已分配任务与第一容器搬运任务为同一巷道的容器搬运任务;
第三确定模块,被配置为根据路径长度和搬运位置冲突值,确定第一容器搬运任务对应第一候选机器人的匹配代价;
第四确定模块,被配置为根据至少一个容器搬运任务对应各个候选机器人的匹配代价,确定至少一个容器搬运任务的分配结果。
根据本说明书实施例的第三方面,提供了一种计算设备,包括:
存储器和处理器;
存储器用于存储计算机可执行指令,处理器用于执行计算机可执行指令,以实现上述的容器搬运任务的分配方法的步骤。
根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述的容器搬运任务的分配方法的步骤。
本说明书提供的容器搬运任务的分配方法,确定当前待分配的至少一个容器搬运任务和至少一个候选机器人;确定第一候选机器人执行第一容器搬运任务的路径长度,并确定第一候选机器人执行第一容器搬运任务与执行机器 人执行已分配任务之间的搬运位置冲突值,其中,执行机器人为已分配任务对应的机器人,已分配任务与第一容器搬运任务为同一巷道的容器搬运任务;根据路径长度和搬运位置冲突值,确定第一容器搬运任务对应第一候选机器人的匹配代价;根据至少一个容器搬运任务对应各个候选机器人的匹配代价,确定至少一个容器搬运任务的分配结果。
这种情况下,确定出当前待分配的至少一个容器搬运任务和至少一个候选机器人后,可以确定第一候选机器人执行第一容器搬运任务的路径长度,并确定第一候选机器人执行第一容器搬运任务与执行机器人执行已分配任务之间的搬运位置冲突值,后续结合该路径长度和该搬运位置冲突值,确定第一容器搬运任务对应第一候选机器人的匹配代价,各个容器搬运任务均可以作为第一容器搬运任务,各个候选机器人均可以作为第一候选机器人,也即针对任一容器搬运任务,可以确定出其与各个候选机器人之间的匹配代价,根据各个容器搬运任务与各个候选机器人之间的匹配代价,可以确定各个容器搬运任务的分配结果,从而确定出容器搬运任务与候选机器人之间的最优匹配,将容器搬运任务分配给最合适的候选机器人。
如此,在确定容器搬运任务和候选机器人之间的任务分配方式时,考虑了机器人执行容器搬运任务的搬运位置冲突,避免机器人到达搬运位置后的等待耗时,避免了机器人扎堆造成严重的等待与拥堵,使得仓储系统中各个机器人可以最大的发挥其自身能力,提高了任务分配的合理性,进而提高了任务执行层面的整体效率。
附图说明
图1是本说明书实施例提供的一种仓储系统的容器搬运示例图;
图2是本说明书一实施例提供的一种容器搬运任务的分配方法的流程图;
图3是本说明书一实施例提供的一种容器搬运任务的执行过程示意图;
图4a是本说明书一实施例提供的第一种匹配代价矩阵的示意图;
图4b是本说明书一实施例提供的第二种匹配代价矩阵的示意图;
图4c是本说明书一实施例提供的第三种匹配代价矩阵的示意图;
图5是本说明书一实施例提供的一种容器搬运任务的分配方法的处理过程示意图;
图6是本说明书一实施例提供的一种容器搬运任务的分配装置的结构示意图;
图7是本说明书一实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在智能仓储系统中,多机器人协调作业,保证仓储系统高效地运行,多机器人任务分配是多机器人系统应用的基础,能够充分体现系统决策层的组织形式和运行机制,任务分配的好坏直接影响整个仓储系统的工作效率,并直接关系到仓储系统中各个机器人能否最大的发挥其自身能力。随着系统中机器人数目和容器搬运任务难度的增加,任务分配问题就显得越来越重要。
在Robot Shuttle(RS)系列机器人运作的容器到人(即搬运容器至拣选工作站)出库场景中,RS系列机器人 有多个存储位,可同时执行多个容器搬运任务。图1是本说明书实施例提供的一种仓储系统的容器搬运示例图,如图1所示,仓储系统中包括货架区和拣选工作站,每个货架区上可以存放容器,当某容器需要从货架区搬运至拣选工作站时,即触发对象的容器搬运任务,一个容器搬运任务起点为货架区的存储位,终点为拣选工作站,机器人依次执行取容器任务和送容器任务,取容器任务是指将货架区的容器拿取出来放置在机器人自身的存储位上,送容器任务是指机器人将自身存储位上的容器运送至拣选工作站,完成出库操作。在此场景下,要解决的核心问题是哪些容器搬运任务分配给哪些机器人,一个机器人执行多个容器搬运任务的执行顺序,RS系列机器人的任务分配是典型的组合优化问题。
现有技术中,匈牙利算法是求解任务分配最常用的算法,匈牙利算法是基于Hall(霍尔)定理中充分性证明的思想,该算法的核心就是寻找增广路径,它是一种用增广路径求二分图最大匹配的算法。以曼哈顿距离(曼哈顿距离也叫做计程车几何,也就是欧几里得空间的固定直角坐标系上两点所形成的线段对轴产生的投影的距离总和)为代价函数使用匈牙利算法求解容器到人场景下的任务分配算法有很多缺陷:1)当任务存在不同优先级时,严格按照优先级分配导致优化空间很小;2)有巷道的仓储布局中,曼哈顿距离存在较大的误差,例如,位在同一水平线上的相邻两个巷道的两个货位,若使用曼哈顿距离,无法包含换巷道需要付出的距离代价;3)对于RS系列机器人,任务分配时若只考虑距离,不考虑巷道内取容器点位的占用情况和巷道内已存在的机器人数,会导致巷道内机器人扎堆,造成严重的等待与拥堵。
为了解决上述问题,本说明书实施例中设计了考虑拥堵的RS系列机器人任务分配与编排算法,该方法采用两步式,先对RS系列机器人进行任务分配,然后,对机器人要执行的任务进行编排。如此,在确定容器搬运任务和机器人之间的任务分配方式时,考虑了机器人执行容器搬运任务的搬运位置冲突,避免机器人到达搬运位置后的等待耗时,避免了机器人扎堆造成严重的等待与拥堵,使得仓储系统中各个机器人可以最大的发挥其自身能力,提高了任务分配的合理性,进而提高了任务执行层面的整体效率。
在本说明书中,提供了一种容器搬运任务的分配方法,本说明书同时涉及一种容器搬运任务的分配装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图2是本说明书一实施例提供的一种容器搬运任务的分配方法的流程图,具体包括以下步骤:
步骤202:确定当前待分配的至少一个容器搬运任务和至少一个候选机器人。
需要说明的是,仓储系统包括仓库储存区和工作站区,仓库储存区包括多个呈矩阵排列的货架,货架上可以存放容器,该容器是指用于储存对象的结构,该对象可以为需要进行拣选的物品,此时容器可以为储存物品的货箱;工作站区包括至少一个工作站,工作站被配置为用于对容器进行拣选处理。
具体的,容器搬运任务是指将容器从货架上搬运至工作站,容器搬运任务分为取容器任务和运容器任务,其中是指将货架区的容器拿取出来放置在机器人自身的存储位上,送箱任务是指机器人将自身存储位上的容器运送至拣选工作站,完成出库操作。
实际应用中,仓储系统可以先获取容器搬运任务列表和机器人列表,容器搬运任务列表中包括有各个待执行的容器搬运任务,机器人列表中包括有各个可选的机器人,每个机器人上设置有至少一个存储位。初始时各个待执行的容器搬运任务均未分配,此时当前待分配的至少一个容器搬运任务为容器搬运任务列表中的各个任务,且此时各个可选的机器人的存储位均为空,各个机器人均可以作为候选机器人。若经过至少一轮匹配后,确定了某容器搬运任务分配给某候选机器人,此时该容器搬运任务为已分配任务,容器搬运列表中包括的各个容器搬运任务除去该已分配任务剩余的任务为当前待分配的容器搬运任务,各个机器人中当前还有剩余存储位的机器人可以作为候选机器人,存储位全部占用的机器人不参与后续任务的分配。
其中,容器搬运任务和机器人之间的分配关系可以基于任务分配表记录,初始时任务分配表中为空,经过至少一轮匹配后,任务分配表中可以记载当前确定出的容器搬运任务对应的机器人,如容器搬运任务i分配给机器人j。
本申请实施例中,可以基于容器搬运任务列表,以及当前确定分配关系的已分配任务,确定当前待分配的至少一个容器搬运任务,基于机器人列表中各个可选的机器人的存储位占用情况,确定至少一个候选机器人,从而便于后续继续确定当前待分配的至少一个容器搬运任务与至少一个候选机器人之间的分配关系,完成各个容器搬运任务 的分配。
本实施例一个可选的实施方式中,在获取到各个当前待分配的容器搬运任务后,可以基于优先级对各个容器搬运任务进行梯队划分,也即确定当前待分配的至少一个容器搬运任务和至少一个候选机器人之后,还包括:
确定至少一个容器搬运任务的优先级;
确定至少一个候选机器人的总剩余存储位;
根据优先级和总剩余存储位,对至少一个容器搬运任务进行划分,获得至少一个梯队的搬运任务集合。
需要说明的是,每个容器搬运任务均设置有对应的优先级,不同容器搬运任务的优先级可以相同,也可以不同,容器搬运任务的优先级可以表示容器搬运任务的重要程度,即优先执行的程度。其中,容器搬运任务的优先级可以使用数字代表,数字越大表示优先级越高,或者数字越小表示优先级越高均可,可以自定义优先级的表示方式。
实际应用中,仓储系统可以从容器搬运任务列表中读取各个容器搬运任务的优先级,然后从中确定出当前待分配的各个容器搬运任务的优先级。另外,可以基于机器人列表查找确定各个候选机器人的总存储位,并基于任务分配表确定当前已分配的存储位数目,从而确定出各个候选机器人的总剩余存储位。之后,根据优先级和总剩余存储位,对至少一个容器搬运任务进行划分,获得至少一个梯队的搬运任务集合。
具体实现时,根据候选机器人的总剩余存储位和各个容器搬运任务的优先级,对容器搬运任务划分任务梯队时,第一梯队的搬运任务集合为加入后未超出各个候选机器人的总剩余存储位的所有容器搬运任务的集合,即不存在竞争关系,均能被候选机器人执行的任务集合;第二梯队的搬运任务集合为加入第一梯队会导致第一梯队任务数超出各个候选机器人的总剩余存储位的任务集合,即存在竞争关系,需要竞争第一梯队剩余的存储位的任务集合;第三梯队的搬运任务集合为剩余优先级下的任务集合,即优先级较低,不存在竞争力,此轮不会被候选机器人执行的任务集合。
示例的,有20个容器搬运任务,1-5号优先级为0,6-10号优先级为1,11-15号优先级为2,16-20号优先级为3,优先级值越小表示优先级越高,假设有2个候选机器人,每个候选机器人有6个存储位,即各个候选机器人的总剩余存储位为12个;根据任务梯队划分规则,1-10号容器搬运任务为该两个候选机器人肯定可以满足的任务,不存在任何竞争关系,属于第一梯队的搬运任务集合;11-15号容器搬运任务加入第一梯队后会超出各个候选机器人的总剩余存储位,因而11-15号容器搬运任务需要竞争剩余的2个存储位,属于第二梯队的搬运任务集合;16-20号容器搬运任务为剩余优先级的任务,此轮不会被该2个机器人执行,没有竞争力,属于第三梯队的搬运任务集合。
本申请实施例中,可以基于各个容器搬运任务的优先级,以及各个候选机器人的总剩余存储位,对至少一个容器搬运任务进行划分,获得至少一个梯队的搬运任务集合,后续按照任务梯队,可以依次给各梯队的任务集合中的各个容器搬运任务分配机器人资源。如此,对不同优先级的容器搬运任务划分梯队,提高了任务分配的优化空间。
步骤204:确定第一候选机器人执行第一容器搬运任务的路径长度,并确定第一候选机器人执行第一容器搬运任务与执行机器人执行已分配任务之间的搬运位置冲突值。
其中,执行机器人为已分配任务对应的机器人,已分配任务与第一容器搬运任务为同一巷道的容器搬运任务。
具体的,已分配任务是指已经确定了分配关系的容器搬运任务,即已经确定了由哪个机器人执行该已分配任务。由于对于不在一个巷道的容器,搬运过程中机器人不存在冲突,因而只有已分配任务与第一容器搬运任务为同一巷道的容器搬运任务时,两个机器人才可能会发生冲突,需要计算惩罚值,即搬运位置冲突值,从而便于后续基于计算获得的搬运位置冲突值,选取搬运位置冲突值值最小的匹配。
需要说明的是,容器都存放在货架上,当第一容器搬运任务指示搬运的容器与其他已经确定分配关系的已分配任务指示搬运的容器相距较近,那么两个机器人无法同时在该位置执行取容器操作,此时即会存在搬运位置冲突,导致某个机器人需要等待其他机器人执行完取容器操作离开后,才能开始执行取容器操作。因而,在向第一容器搬运任务分配机器人时,可以考虑与执行机器人执行已分配任务之间的搬运位置冲突值。
本说明书实施例中,初始时各个容器搬运任务均是待分配的容器搬运任务,此时不存在搬运位置冲突值和搬运巷道冲突值,某容器搬运任务对应某候选机器人的匹配代价即为该候选机器人执行该容器搬运任务的路径长度,后 续基于匹配代价,确定出最优匹配,即确定某组任务分配关系后,可能会存在搬运位置冲突值和搬运巷道冲突值,再结合搬运位置冲突值和搬运巷道冲突值,确定新的任务分配。
实际应用中,可以采用A*算法(是一种静态路网中求解最短路最有效的直接搜索方法),确定第一候选机器人执行第一容器搬运任务的路径长度,即第一候选机器人的位置至第一容器搬运任务指示搬运的容器的存储位置。具体的,采用A*算法求解路径长度时,可以将仓储系统中的地图划分为平面栅格图,栅格地图中的每个单元格可以为一个节点,从而求解第一候选机器人执行第一容器搬运任务的路径长度,A*算法可以通过如下公式(1)来计算每个节点的优先级。
f(n)=g(n)+h(n)              (1)
其中,f(n)是节点n的综合优先级。当我们选择下一个要遍历的节点时,我们总会选取综合优先级最高(值最小)的节点;g(n)是节点n距离起点的代价;h(n)是节点n距离终点的预计代价,这也就是A*算法的启发函数。
需要说明的是,A*算法在运算过程中,每次从优先队列中选取f(n)值最小(优先级最高)的节点作为下一个待遍历的节点。另外,A*算法使用两个集合来表示待遍历的节点,与已经遍历过的节点,这通常称之为open_set和close_set。完整的A*算法描述如下:初始化open_set和close_set;将起点加入open_set中,并设置优先级为0(优先级最高);如果open_set不为空,则从open_set中选取优先级最高的节点n,如果节点n为终点,则从终点开始逐步追踪parent节点,一直达到起点,返回找到的结果路径,算法结束;如果节点n不是终点,则将节点n从open_set中删除,并加入close_set中,遍历节点n所有的邻近节点,如果邻近节点m在close_set中,则跳过,选取下一个邻近节点,如果邻近节点m也不在open_set中,则设置节点m的parent为节点n,计算节点m的优先级,将节点m加入open_set中。
本实施例一个可选的实施方式中,可以基于已分配任务的取容器结束时间和第一容器搬运任务的取容器开始时间,确定其之间的搬运位置冲突值,也即确定第一候选机器人执行第一容器搬运任务与执行机器人执行已分配任务之间的搬运位置冲突值,具体实现过程可以如下:
在当前存在已分配任务的情况下,确定已分配任务对应的执行机器人;
根据已分配任务的执行路径长度和执行机器人的运动速度,确定执行机器人执行已分配任务的取容器结束时间;
根据第一候选机器人执行第一容器搬运任务的路径长度和第一候选机器人的运动速度,确定第一候选机器人执行第一容器搬运任务的取容器开始时间;
根据已分配任务的取容器结束时间和第一容器搬运任务的取容器开始时间,确定搬运位置冲突值。
需要说明的是,初始时不存在已分配任务,那么任意候选机器人执行第一容器搬运任务时,均不会存在与其他机器人冲突的情况,此时无需计算搬运位置冲突值,即搬运位置冲突值可以直接设置为0。在当前存在已分配任务的情况下,第一候选机器人执行第一容器搬运任务时,可能与已经确定的分配关系相冲突,此时可以确定执行机器人执行已分配任务的取容器结束时间,并确定第一候选机器人执行第一容器搬运任务的取容器开始时间。
实际应用中,若确定第一候选机器人执行第一容器搬运任务的取容器开始时间晚于执行机器人执行已分配任务的取容器结束时间,则说明执行机器人取完容器,第一候选机器人才达到相应位置开始拿取容器,此时不会存在冲突,可以将搬运位置冲突值确定为0。若确定第一候选机器人执行第一容器搬运任务的取容器开始时间早于执行机器人执行已分配任务的取容器结束时间,则说明执行机器人还没有取完容器,第一候选机器人已经达到相应位置,此时无法开始拿取容器,需要排队等候,因而此时可以将搬运位置冲突值设置的较高。
本实施例一个可选的实施方式中,根据已分配任务的执行路径长度和执行机器人的运动速度,确定执行机器人执行已分配任务的取容器结束时间,具体实现过程可以如下:
获取已分配任务的开始执行时间和拿取容器执行时长;
根据已分配任务的执行路径长度和执行机器人的运动速度,确定执行机器人移动至已分配任务指示的容器位置处所需的移动时间;
根据开始执行时间和移动时间,确定执行机器人执行已分配任务的取容器开始时间;
根据拿取容器执行时长和已分配任务的取容器开始时间,确定已分配任务的取容器结束时间。
需要说明的是,仓储系统可以从容器任务搬运列表中获取已分配任务的开始执行时间和拿取容器执行时长,其中,开始执行时间即是执行机器人开始向已分配任务指示搬运的容器的位置移动的时间,拿取容器执行时长是指执行机器人到达已分配任务指示搬运的容器的位置处,拿取容器放入自身存储位所需的时长。
实际应用中,根据已分配任务的执行路径长度和执行机器人的运动速度,可以确定出执行机器人移动至已分配任务指示的容器位置处所需的移动时间,然后根据开始执行时间和移动时间,可以确定出执行机器人执行已分配任务的取容器开始时间,即执行机器人达到已分配任务指示的容器位置处的时间。之后,根据拿取容器执行时长和已分配任务的取容器开始时间,即可确定出已分配任务的取容器结束时间,即拿取完容器的时间。
另外,与上述过程类似,仓储系统可以从容器任务搬运列表中获取第一容器搬运任务的开始执行时间,然后根据第一候选机器人执行第一容器搬运任务的路径长度和第一候选机器人的运动速度,可以确定出第一候选机器人从当前位置移动至第一容器搬运任务指示搬运的容器的存储位置处所需的移动时间,在该开始执行时间加上该移动时间,可以获得第一候选机器人达到第一容器搬运任务指示搬运的容器的存储位置处的时间,即第一候选机器人执行第一容器搬运任务的取容器开始时间。
具体实现时,根据已分配任务的取容器结束时间和第一容器搬运任务的取容器开始时间,确定搬运位置冲突值,可以将已分配任务的取容器结束时间减去第一容器搬运任务的取容器开始时间,获得时间差值,然后取该时间差值和0之间的较大者作为该搬运位置冲突值。
需要说明的是,若时间差值为正数,则时间差值大于0,此时搬运位置冲突值可以为该时间差值,说明已分配任务的取容器结束时间大于第一容器搬运任务的取容器开始时间,即说明第一容器搬运任务的取容器开始时间早于已分配任务的取容器结束时间,此时可能会发生时空冲突,搬运位置冲突值为正数,时间差值越大,说明第一容器搬运任务的取容器开始时间与已分配任务的取容器结束时间重叠时间越多,此时搬运位置冲突值也相对越大。
若时间差值为负数,则时间差值小于0,此时搬运位置冲突值为0,说明已分配任务的取容器结束时间小于第一容器搬运任务的取容器开始时间,即说明第一容器搬运任务的取容器开始时间晚于已分配任务的取容器结束时间,此时不会发生时空冲突,搬运位置冲突值为0。
作为一种示例,图3是本说明书一实施例提供的一种容器搬运任务的执行过程示意图,如图3所示,货架区内存放有容器B1-容器B7,假设容器B1(已分配任务指示搬运的容器)和容器B2(第一容器搬运任务指示搬运的容器,即待分配的容器)的开始执行时间均为时刻t0,假设容器B1已分配给机器人R1(执行机器人),机器人R1当前位置到容器B1的路径长度为p1,机器人R1和R2的平均速度均为v0,取容器动作的执行时间(即拿取容器执行时长)为tp,则机器人R1执行容器B1的取容器开始时间为ts1=t0+p1/v0,取容器结束时间为te1=ts1+tp。机器人R2(第一候选机器人)到容器B2的路径长度为p2,如果机器人R2执行容器B2,取容器开始时间为ts2=t0+p2/v0。若ts2<te1,机器人R2执行容器B2与机器人R1执行容器B1存在时间冲突,机器人本体的体积在取容器B1和容器B2操作点位存在包络冲突,因此,若容器B2分配给机器人R2,会与机器人R1执行容器B1存在位置冲突,搬运位置冲突值punishmentCost=max{te1-ts2,0}。
本申请实施例中,为了减少机器人等待,提高运行效率,在任务分配时考虑位置冲突,在取容器的位置点有包络冲突的情况下,机器人执行取容器动作的时间段有交叉,即产生位置冲突,此时可以计算搬运位置冲突值,后续在确定容器搬运任务对应的候选机器人时,可以考虑搬运位置冲突值,从而避免机器人到达搬运位置后的等待耗时,避免了机器人扎堆造成严重的等待与拥堵,使得仓储系统中各个机器人可以最大的发挥其自身能力,提高了任务分配的合理性,进而提高了任务执行层面的整体效率。
本实施例一个可选的实施方式中,确定已分配任务对应的执行机器人之后,还可以包括:
确定第一容器搬运任务指示搬运的容器在仓储系统中的第一存放位置,并确定已分配任务指示搬运的容器在仓储系统中的第二存放位置;
根据第一存放位置和第二存放位置,确定第一候选机器人执行第一容器搬运任务与执行机器人执行已分配任务, 是否存在搬运位置冲突;
若存在,则执行根据已分配任务的执行路径长度和执行机器人的运动速度,确定执行机器人执行已分配任务的取容器结束时间的操作步骤。
实际应用中,可以预先设定距离阈值,在第一存放位置和第二存放位置的距离小于该距离阈值时,说明第一存放位置和第二存放位置相距较近,机器人本体的体积在取容器时存在包络冲突,即确定存在搬运位置冲突。
需要说明的是,可以先确定第一容器搬运任务指示搬运的容器在仓储系统中的第一存放位置,并确定已分配任务指示搬运的容器在仓储系统中的第二存放位置,若第一存放位置和第二存放位置相距较近,则说明机器人本体的体积在取容器时,存在包络冲突,即第一候选机器人执行第一容器搬运任务与执行机器人执行已分配任务存在搬运位置冲突,不能同时搬运,因而此时可以执行根据已分配任务的执行路径长度和执行机器人的运动速度,确定执行机器人执行已分配任务的取容器结束时间的操作步骤,后续可以基于该取容器结束时间,进一步确定第一候选机器人执行第一容器搬运任务与执行机器人执行已分配任务之间的搬运位置冲突值。
本说明书实施例中,可以先基于第一容器搬运任务指示搬运的容器在仓储系统中的第一存放位置,以及已分配任务指示搬运的容器在仓储系统中的第二存放位置,确定第一存放位置和第二存放位置是否存在包络冲突(即位置冲突),在不存在位置冲突的情况下,可以无需计算第一候选机器人执行第一容器搬运任务与执行机器人执行已分配任务之间的搬运位置冲突值,节省处理资源,只有在存在位置冲突的情况下,再计算第一候选机器人执行第一容器搬运任务与执行机器人执行已分配任务之间的搬运位置冲突值,即执行根据已分配任务的执行路径长度和执行机器人的运动速度,确定执行机器人执行已分配任务的取容器结束时间的操作步骤。
本实施例一个可选的实施方式中,在进行任务分配时,除了考虑位置冲突外,还可以考虑巷道拥堵,也即确定第一候选机器人执行第一容器搬运任务与执行机器人执行已分配任务之间的搬运位置冲突值之后,还可以包括:
确定第一候选机器人执行第一容器搬运任务与执行机器人执行已分配任务之间的搬运巷道冲突值。
需要说明的是,除了在取容器的位置点处,机器人可能存在位置冲突外,机器人在巷道中移动时,也可能发生拥堵,因而还可以确定第一候选机器人执行第一容器搬运任务与执行机器人执行已分配任务之间的搬运巷道冲突值,在后续确定任务分配关系时,也可以进一步结合该搬运巷道冲突值。
本申请实施例中,在确定容器搬运任务和机器人之间的任务分配方式时,考虑了机器人执行容器搬运任务的搬运位置冲突,以及机器人在巷道中移动可能发生的拥堵情况,避免了机器人到达搬运位置后的等待耗时,也避免了机器人在巷道中拥堵等待耗时,避免了机器人扎堆造成严重的等待与拥堵,使得仓储系统中各个机器人可以最大的发挥其自身能力,提高了任务分配的合理性,进而提高了任务执行层面的整体效率。
本实施例一个可选的实施方式中,确定第一候选机器人执行第一容器搬运任务与执行机器人执行已分配任务之间的搬运巷道冲突值,具体实现过程可以如下:
获取执行机器人执行已分配任务时的第一进入巷道时间和第一离开巷道时间,并根据第一进入巷道时间和第一离开巷道时间,确定已分配任务在目标巷道的第一停留时间段;
预估第一候选机器人执行第一容器搬运任务时的第二进入巷道时间和第二离开巷道时间,并根据第二进入巷道时间和第二离开巷道时间,确定第一候选机器人在目标巷道的第二停留时间段;
在第二停留时间段与第一停留时间段存在交叉时间段的情况下,确定交叉时间段内目标巷道的机器人数目是否超过数目阈值,若是,则确定搬运巷道冲突值为第一设定值;若否,则确定搬运巷道冲突值为第二设定值,其中,第一设定值大于第二设定值。
具体的,目标巷道是指第一容器搬运任务和已分配任务指示搬运的容器所处的巷道。数目阈值是预先设定的、一个巷道中同时存在的机器人数目上限,如巷道一般有2个出入口,因而数目阈值可以设置为2。
另外,第一设定值和第二设定值是预先设置的数值,第一设定值是针对存在搬运巷道冲突的情况下,设置的惩罚值,因而第一设定值设置的较高;第二设定值是针对不存在搬运巷道冲突的情况下,设置的惩罚值,因而第二设定值设置的较低,可以为0。也即,第一设定值可以设置的远远大于第二设定值。
具体的,若交叉时间段内目标巷道的机器人数目超过数目阈值,也即在该交叉时间段内,若该第一候选机器人再进入目标巷道执行第一容器搬运任务,则会导致该目标巷道拥堵,产生搬运巷道冲突,因而该目标巷道内的第一容器搬运任务不可再分配给不在该目标巷道内的机器人(避免该目标巷道新增机器人造成拥堵),此时可以将该搬运巷道冲突值设定为一个显著大于路径长度和搬运位置冲突值的取值范围的数值,也即此时第一设定值可以设置为大于路径长度和搬运位置冲突值的取值范围的数值。
需要说明的是,第一停留时间段是已经确定了分配关系的执行机器人在执行对应的已分配任务时,需要在对应的巷道中停留的时间段;第二停留时间段是第一候选机器人执行第一容器搬运任务时,需要在该巷道中停留的时间段。如果第二停留时间段与第一停留时间段存在交叉时间段,则说明第一候选机器人和执行机器人在该交叉时间段内,同时在该巷道中,此时可以确定该交叉时间段内目标巷道的机器人数目是否超过数目阈值,即该交叉时间段内是否还存在其他执行机器人也在目标巷道中,若是,则说明目标巷道在该交叉时间段内可能会发生拥堵,应该尽量不将第一容器搬运任务分配给不在该目标巷道内的机器人,此时可以确定搬运巷道冲突值为第一设定值,即搬运巷道冲突值设置的较大;若否,则说明目标巷道在该交叉时间段内发生拥堵的概率较小,因而可以确定搬运巷道冲突值为第二设定值,即搬运巷道冲突值设置的较小。
作为一种示例,为了缓解机器人在巷道里扎堆导致机器人执行任务效率降低,任务分配时考虑巷道内机器人数量上限,即同一时刻一个巷道内最多存在k个机器人(巷道为双出入口,一般设置k为2)。在搬运巷道冲突值时,预计第一候选机器人进入巷道时间和离开巷道时间,若在该时间段与已分配给其他机器人任务的巷道停留时间有交叉,且机器人数量为k个,则设置搬运巷道冲突值为最大值(即为最差匹配),假设路径长度和搬运位置冲突值的匹配代价的范围为[0,1000],此时可设置搬运巷道冲突值为10000,后续确定最优匹配时,若匹配代价大于等于10000,则该匹配存在搬运巷道冲突,该匹配不可取。
本申请实施例中,若已分配任务在目标巷道的第一停留时间段,与第一候选机器人在目标巷道的第二停留时间段存在交叉,则说明此时目标巷道可能会发生拥堵,此时可以确定目标巷道的机器人数目是否超过数目阈值,从而限制巷道内机器人数量上限,即同一时刻一个巷道内最多存在k个机器人。如此,避免了机器人在巷道中拥堵等待耗时,避免了机器人扎堆造成严重的等待与拥堵,使得仓储系统中各个机器人可以最大的发挥其自身能力,提高了任务分配的合理性,进而提高了任务执行层面的整体效率。
步骤206:根据路径长度和搬运位置冲突值,确定第一容器搬运任务对应第一候选机器人的匹配代价。
需要说明的是,根据上述步骤计算获得路径长度和搬运位置冲突值后,可以对路径长度和搬运位置冲突值进行求和,确定第一容器搬运任务对应第一候选机器人的匹配代价。如此,在确定第一容器搬运任务对应第一候选机器人的匹配代价时,综合考虑了第一候选机器人执行第一容器搬运任务的路径长度,以及与其他已经确定分配关系的执行机器人可能存在的位置冲突,提高了匹配代价的准确率,便于后续基于该匹配代价,确定最优的任务分配。
本实施例一个可选的实施方式中,除了确定路径长度和搬运位置冲突值之外,还可以确定搬运巷道冲突值,因而在计算第一容器搬运任务对应第一候选机器人的匹配代价时,还可以结合该搬运巷道冲突值,也即根据路径长度和搬运位置冲突值,确定第一容器搬运任务对应第一候选机器人的匹配代价,具体实现过程可以如下:
根据路径长度、搬运位置冲突值和搬运巷道冲突值,确定第一容器搬运任务对应第一候选机器人的匹配代价。
需要说明的是,可以结合路径长度、搬运位置冲突值和搬运巷道冲突值,确定第一容器搬运任务对应第一候选机器人的匹配代价,便于后续基于该匹配代价,确定最优的任务分配,避免了机器人扎堆造成严重的等待与拥堵,使得仓储系统中各个机器人可以最大的发挥其自身能力,提高了任务分配的合理性,进而提高了任务执行层面的整体效率。
本实施例一个可选的实施方式中,根据路径长度、搬运位置冲突值和搬运巷道冲突值,确定第一容器搬运任务对应第一候选机器人的匹配代价,具体实现过程可以包括如下步骤:
将路径长度、搬运位置冲突值和搬运巷道冲突值统一至同一维度;
对统一后的路径长度、搬运位置冲突值和搬运巷道冲突值求和,获得第一容器搬运任务对应第一候选机器人的 匹配代价。
需要说明的是,上述计算出的路径长度、搬运位置冲突值和搬运巷道冲突值是不同维度的数值,无法直接进行处理,因而还可以将路径长度、搬运位置冲突值和搬运巷道冲突值统一至同一维度,然后对统一后的路径长度、搬运位置冲突值和搬运巷道冲突值求和,获得第一容器搬运任务对应第一候选机器人的匹配代价。
实际应用中,将路径长度、搬运位置冲突值和搬运巷道冲突值统一至同一维度时,可以预设需要统一的维度,如都统一到时间维度,或者都统一到距离维度。具体实现时,搬运巷道冲突值为预先设定的值,在设定搬运巷道冲突值时,可以参考路径长度和搬运位置冲突值的取值范围,因而可以将搬运巷道冲突值设置为最终需要统一的维度,如在距离维度上设置搬运巷道冲突值,将搬运位置冲突值也转换为距离维度;或者在时间维度上设置搬运巷道冲突值,此时搬运位置冲突值可以为时间维度,并将路径长度也转换为时间维度。另外,在设置搬运巷道冲突值时也可以不考虑维度,后续再对路径长度、搬运位置冲突值和搬运巷道冲突值的维度进行统一。
沿用上例,搬运位置冲突值punishmentCost=max{te1-ts2,0},即此时搬运位置冲突值为时间维度,由于路径长度为距离维度,假设要把时间维度统一至距离维度,则可以将搬运位置冲突值乘以机器人的运动速度,将搬运位置冲突值转换至距离维度,即统一维度后的搬运位置冲突值punishmentCost=max{te1-ts2,0}×v0
本说明书实施例中,可以将路径长度、搬运位置冲突值和搬运巷道冲突值统一至同一维度,便于结合路径长度、搬运位置冲突值和搬运巷道冲突值,确定第一容器搬运任务对应第一候选机器人的匹配代价。
步骤208:根据至少一个容器搬运任务对应各个候选机器人的匹配代价,确定至少一个容器搬运任务的分配结果。
需要说明的是,各个候选机器人均可以作为第一候选机器人,确定与第一容器搬运任务之间的匹配代价,也即可以确定出第一容器搬运任务对应各个候选机器人的匹配代价。另外,各个待分配的容器搬运任务均可以作为第一容器搬运任务,确定出对应各个候选机器人的匹配代价,因而可以根据至少一个容器搬运任务对应各个候选机器人的匹配代价,确定出至少一个容器搬运任务的分配结果。
需要说明的是,该分配结果是指至少一个容器搬运任务对应各个候选机器人中最优的匹配,即某容器搬运任务对应某候选机器人是最优匹配。每一轮任务分配,可以选择一个最优匹配作为分配结果,其他未匹配的容器搬运任务继续作为待分配的容器搬运任务,继续参与下一轮分配。
本实施例一个可选的实施方式中,根据至少一个容器搬运任务对应各个候选机器人的匹配代价,确定至少一个容器搬运任务的分配结果,包括:
根据至少一个容器搬运任务对应各个候选机器人的匹配代价,构造匹配代价矩阵;
从匹配代价矩阵中选择匹配代价最小的目标匹配作为分配结果,其中,目标匹配包括容器搬运任务和对应的候选机器人;
根据分配结果,更新当前已分配任务和对应的执行机器人,并返回执行确定当前待分配的至少一个容器搬运任务和至少一个候选机器人的操作步骤。
需要说明的是,可以根据至少一个容器搬运任务对应各个候选机器人的匹配代价,构造匹配代价矩阵,也即将至少一个容器搬运任务作为行(或列),将各个候选机器人作为列(或行),某行某列的元素即为相应的容器搬运任务与候选机器人之间的匹配代价,从而构造获得匹配代价矩阵,从匹配代价矩阵中选择匹配代价最小的目标匹配作为分配结果,一个分配结果包括容器搬运任务和对应的候选机器人,此时即确定该容器搬运任务分配给该候选机器人,该容器搬运任务变为已分配任务,该候选机器人的存储位减1,其他未匹配的容器搬运任务依旧作为待分配的容器搬运任务,参与下一轮任务分配直至各个容器搬运任务全部分配完毕,或者候选机器人的存储资源耗尽。
示例的,图4a是本说明书一实施例提供的第一种匹配代价矩阵的示意图,如图4a所示,有6个待分配的容器搬运任务(容器搬运任务1-6)和5个候选机器人(候选机器人1-5),以容器搬运任务作为行,以候选机器人作为列,基于容器搬运任务和候选机器人之间的匹配代价,构建如图4a所示的匹配代价矩阵。如图4a所示,容器搬运任务3对应候选机器人2的匹配代价最小,因而此时分配结果为容器搬运任务3和候选机器人2,即将容器搬运任 务3分配给候选机器人2。
实际应用中,可以从匹配代价矩阵中选择匹配代价最小的匹配为最优匹配,确定分配结果,更新任务分配表、已分配任务被执行的开始时间和结束时间、已分配任务被执行时进入巷道时间和离开巷道时间等信息,以供后续任务分配过程使用,然后循环执行上述步骤202-步骤206,继续对待分配的容器搬运任务进行分配,直至用完所有机器人资源或所有容器搬运任务都被分配到机器人。
本说明书实施例中,每轮任务分配可以确定出一组最优分配,然后继续循环确定搬运位置冲突值和搬运巷道冲突值,从而确定最优分配,在进行任务分配时,考虑了路径长度、搬运位置冲突值和搬运巷道冲突值,避免了机器人扎堆造成严重的等待与拥堵,使得仓储系统中各个机器人可以最大的发挥其自身能力,提高了任务分配的合理性,进而提高了任务执行层面的整体效率。
本实施例一个可选的实施方式中,若之前基于容器搬运任务的优先级,将至少一个容器搬运任务划分为不同梯队的搬运任务集合,那么可以依次按序为各个梯队的容器搬运任务确定最优分配,从而依次确定各个梯队的容器搬运任务的分配结果,也即确定第一候选机器人执行第一容器搬运任务的路径长度之前,还包括
将当前梯队作为目标梯队,在目标梯队的搬运任务集合中选择第一容器搬运任务;
相应地,根据至少一个容器搬运任务对应各个候选机器人的匹配代价,确定至少一个容器搬运任务的分配结果,包括:
根据目标梯队的搬运任务集合中各个目标容器搬运任务对应各个候选机器人的匹配代价,确定各个目标容器搬运任务的分配结果;
将目标梯队的下一梯队作为目标梯队,返回执行在目标梯队的搬运任务集合中选择第一容器搬运任务的步骤。
其中,目标容器搬运任务是指目标梯队的搬运任务集合中当前还未被分配的容器搬运任务。
需要说明的是,当前梯队是指当前需要进行任务分配的容器搬运任务所处的梯队,初始时当前梯队可以是指至少一个梯队中优先级最高的梯队。在进行任务分配时,可以从优先级最高的梯队开始,确定该梯队的搬运任务集合中各个目标容器搬运任务的分配结果,然后再将目标梯队的下一梯队作为目标梯队,继续对下一梯队中的任务进行分配,直至用完所有机器人资源或所有容器搬运任务都被分配到机器人。
实际应用中,根据目标梯队的搬运任务集合中各个目标容器搬运任务对应各个候选机器人的匹配代价,确定各个目标容器搬运任务的分配结果,具体实现过程可以如下:
根据各个目标容器搬运任务对应各个候选机器人的匹配代价,构造目标梯队对应的目标匹配代价矩阵;
从目标匹配代价矩阵中选择匹配代价最小的目标匹配作为分配结果,其中,目标匹配包括容器搬运任务和对应的候选机器人;
根据分配结果,更新当前已分配任务和对应的执行机器人,返回执行根据各个目标容器搬运任务对应各个候选机器人的匹配代价,构造目标梯队对应的目标匹配代价矩阵的步骤。
需要说明的是,目标梯队的搬运任务集合中各个目标容器搬运任务均可以作为第一容器搬运任务,确定出与各个候选机器人之间的匹配代价,然后基于目标梯队的搬运任务集合中各个目标容器搬运任务与各个候选机器人,构建目标梯队对应的目标匹配代价矩阵,从该目标匹配代价矩阵中选择最优匹配作为此轮的分配结果,继续基于目标梯队的中剩余未分配的目标容器搬运任务,构建目标匹配代价矩阵,以继续分配目标梯队中的其他未分配的目标容器搬运任务。在目标梯队的搬运任务集合中各个容器搬运任务均确定出分配结果后,说明目标梯队的各个容器搬运任务已经分配完毕,此时可以将目标梯队的下一梯队作为目标梯队,继续对下一梯队中的目标容器搬运任务进行分配,直至候选机器人资源耗尽。
沿用上例,假设有2个候选机器人,每个候选机器人有6个存储位;共有20个容器搬运任务,被划分为3个任务梯队,优先级最高的任务梯队为第一梯队,包括1-10号容器搬运任务,优先级次高的任务梯队为第二梯队,包括11-15号容器搬运任务,优先级最低的任务梯队为第三梯队,包括15-20号容器搬运任务。将第一梯队作为目标梯队,以第一梯队中的1-10号容器搬运任务为行,2个候选机器人为列,基于1-10号容器搬运任务和候选机器人 之间的匹配代价,构建如图4b所示的第一梯队的目标匹配代价矩阵,图4b是本说明书一实施例提供的第二种匹配代价矩阵的示意图。如图4b所示,4号容器搬运任务对应候选机器人1的匹配代价最小,因而此轮分配结果为4号容器搬运任务和候选机器人1,即将4号容器搬运任务分配给候选机器人1,然后将4号容器搬运任务作为已分配任务,继续对第一梯队中的其他容器搬运任务进行分配,直至第一梯队中的各个容器搬运任务均分配完毕。
之后,将第二梯队作为目标梯队,以第二梯队中的11-15号容器搬运任务为行,2个候选机器人为列,基于11-15号容器搬运任务和候选机器人之间的匹配代价,构建如图4c所示的第二梯队的目标匹配代价矩阵,图4c是本说明书一实施例提供的第三种匹配代价矩阵的示意图。如图4c所示,13号容器搬运任务对应候选机器人2的匹配代价最小,因而此轮分配结果为13号容器搬运任务和候选机器人2,即将13号容器搬运任务分配给候选机器人2,然后将13号容器搬运任务作为已分配任务,继续对第二梯队中的其他容器搬运任务进行分配,直至候选机器人资源用尽,由于此时候选机器人资源用尽,因而不再继续第三梯队的容器搬运任务分配。
需要说明的是,若不对各个容器搬运任务进行梯度划分,也可以仅基于容器搬运任务的优先级,进行任务分配,优先级相同的容器搬运任务有n个,m台机器人,每次轮询从n*m的矩阵中选出一个最优匹配,作为分配结果。若对各个容器搬运任务划分梯队后,每个梯队可以包括至少一个优先级的容器搬运任务,假设某梯队的容器搬运任务有k个(k大于等于n),此时变成从k*m的矩阵中选出一个最优匹配,作为分配结果,k*m的矩阵中的最优值优于等于n*m的矩阵中的最优值,从而可以增大确定分配结果的搜索空间,提高了任务分配的优化空间,从而提高了任务执行的效率。
实际应用中,选择匹配代价最小的目标匹配作为分配结果时,考虑了搬运巷道冲突值,会发生巷道拥堵的匹配代价一定远远大于不会发生巷道拥堵的匹配代价,也即匹配代价最小的目标匹配,发生巷道拥堵的概率是最小的,因而可以直接选择匹配代价最小的目标匹配作为分配结果,该分配结果发生位置冲突和巷道拥堵的概率是各个匹配结果中最小的,也即目标匹配结果是考虑了位置冲突和巷道拥堵确定出的最优匹配。
另外,还可以预先设置匹配代价阈值,该匹配代价阈值可以为基于搬运巷道冲突值设置的最差匹配值,如果匹配代价超过该匹配代价阈值,则说明该匹配代价对应的分配结果会发生巷道冲突。因而,具体实现时,还可以先从目标匹配代价矩阵中确定最小的匹配代价,然后确定该最小的匹配代价是否超过匹配代价阈值,若不超过,则说明匹配代价最小的目标匹配不会发生巷道拥堵,可以将该匹配代价最小的目标匹配作为分配结果;若超过,则说明待分配的容器搬运任务所在的巷道里的机器人数量都达到了上限,不论如何分配均会产生巷道拥堵,此时可以确定分配结果为空,停止继续进行容器搬运任务的分配,避免了机器人在执行任务时发生拥堵,提高了任务执行的效率。
本实施例一个可选的实施方式中,根据至少一个容器搬运任务对应各个候选机器人的匹配代价,确定至少一个容器搬运任务的分配结果之后,还可以包括:
在各个容器搬运任务分配完毕,或各个机器人的存储位占用完毕的情况下,确定任务分配完成;
确定目标机器人对应的各个容器搬运任务的分配顺序,控制目标机器人按序拿取各个容器搬运任务对应的目标容器,其中,目标机器人为各个机器人中的任一个;
在目标机器人拿取容器完毕的情况下,根据各个目标容器的目的工作站以及各个工作站的当前工作信息,确定目标机器人向各个目的工作站的目标运送顺序。
需要说明的是,各个容器搬运任务分配完毕,或者各个候选机器人的存储位占用完毕后,即停止任务分配,确定此次任务分配完成,各个机器人开始执行向其分配的任务,机器人执行容器搬运任务的过程分为两个阶段,第一个阶段为从货架上拿取容器;第二个阶段为机器人拿取完各个容器后,将自身存储的各个容器运送至对应工作站。因而,仓储系统还需要获取工作站列表,该工作站列表可以包括工作站的基础信息和当前工作信息,后续基于各个工作站的当前工作信息,确定容器运送顺序。
本说明书实施例中,第一个阶段的执行顺序是任务分配顺序,第二个阶段的执行顺序可以基于工作站当前的工作状态确定,确定策略是机器人将自身的各个容器全部运送完毕耗费的时间最少,从而避免机器人在工作站排队,节省容器运送时长,提供仓储效率。
本实施例一个可选的实施方式中,根据各个目标容器的目的工作站以及各个工作站的当前工作信息,确定目标机器人向各个目的工作站的目标运送顺序,具体实现过程可以如下:
确定各个目标容器的至少一种运送顺序;
根据各个工作站的当前工作信息,分别确定各种运送顺序对应的运送时间;
选择运送时间最短的运送顺序作为目标运送顺序。
实际应用中,一个机器人上设置有多个存储位,可以同时搬运多个容器,该多个容器对应的工作站可以不相同,而机器人将某个容器运送至对应的工作站时,如果该工作站当前已有机器人在向工作站放置容器,或者已有机器人在排队,则该机器人也需要排队等待,可能会导致机器人在工作站拥堵,进而降低运送效率。因而,可以确定各个目标容器的至少一种运送顺序,根据各个工作站的当前工作信息,分别确定各种运送顺序对应的运送时间,选择运送时间最短的运送顺序作为目标运送顺序。
需要说明的是,一个机器人被分配了多个容器搬运任务,依次取完所有容器,送容器进入拣选的工作站,即完成出库。其中,机器人执行各容器的取顺序按照分配到机器人的先后顺序即可(分配时考虑了距离因素、位置冲突和巷道拥堵,最终达成效果,最早可执行的任务先分配到机器人);机器人取完容器后,将驮着容器的机器人当成一个整体,机器人上的容器有多个目的地(工作站),确定机器人对工作站的前往顺序可以抽象为一个开放车间调度问题(open shop scheduling problem,OSP),工作站为加工机器,取完容器进站的机器人为待加工工件,机器人上待拣选的容器为加工工序,以送完所有容器的时间最短为优化目标,获得机器人执行运送容器操作的顺序。
其中,开放车间调度问题(open shop scheduling problem,OSP)定义为:有n个需要加工的工件和m种用来加个的机器,每个工件有一至多道工序,每道工序的加工时间是已知的,但是不规定每个工件的加工顺序,一台机器在同一时刻只能加工一个工件,每个工件在同一时刻也只能在某一台机器上加工,最终需要求得一组机器与工件的排列组合使加工完所有工件所用的时间最短。
本说明书提供的容器搬运任务的分配方法,确定出当前待分配的至少一个容器搬运任务和至少一个候选机器人后,可以确定第一候选机器人执行第一容器搬运任务的路径长度,并确定第一候选机器人执行第一容器搬运任务与执行机器人执行已分配任务之间的搬运位置冲突值,后续结合该路径长度和该搬运位置冲突值,确定第一容器搬运任务对应第一候选机器人的匹配代价,各个容器搬运任务均可以作为第一容器搬运任务,各个候选机器人均可以作为第一候选机器人,也即针对任一容器搬运任务,可以确定出其与各个候选机器人之间的匹配代价,根据各个容器搬运任务与各个候选机器人之间的匹配代价,可以确定各个容器搬运任务的分配结果,从而确定出容器搬运任务与候选机器人之间的最优匹配,将容器搬运任务分配给最合适的候选机器人。如此,在确定容器搬运任务和候选机器人之间的任务分配方式时,考虑了机器人执行容器搬运任务的搬运位置冲突,避免机器人到达搬运位置后的等待耗时,避免了机器人扎堆造成严重的等待与拥堵,使得仓储系统中各个机器人可以最大的发挥其自身能力,提高了任务分配的合理性,进而提高了任务执行层面的整体效率。
图5是本说明书一实施例提供的一种容器搬运任务的分配方法的处理过程示意图,具体包括以下步骤:
步骤一:基于设定时间频率或设定事件触发任务分配。
步骤二:输入容器搬运任务列表、机器人列表和工作站列表。
示例的,已知m个待分配的容器搬运任务(任务有不同的优先级,优先级高的优先分配)、n个可用的机器人集合、k个工作站。
步骤三:初始化任务分配表、已分配任务被执行的开始时间和结束时间、已分配任务被执行时机器人进入巷道时间和离开巷道时间。
其中,任务分配表即为货箱搬运任务i分配给机器人j。
步骤四:考虑容器搬运任务数量与可用机器人的存储位数量,根据优先级,对各个容器搬运任务进行梯队划分。
步骤五:当前梯队下,计算容器搬运任务与可用机器人匹配的匹配代价cost。
其中,匹配代价cost的计算方式=基础代价+搬运位置冲突值+搬运巷道冲突值。基础代价为机器人执行该容器搬运任务的路径长度;搬运位置冲突值为各台机器人分别执行各自的容器搬运任务,存在搬运位置冲突的惩罚值;搬运巷道冲突值为若巷道内机器人数达到上限,新增机器人与该巷道内容器搬运任务的惩罚值。
步骤六:选择匹配代价cost最小的匹配为最优匹配,确定分配结果。
步骤七:有剩余机器人资源或待分配的容器搬运任务,若否,则结束,若是,则执行步骤八。
步骤八:基于分配结果,更新机器人列表和待分配的容器搬运任务列表。
步骤九:更新任务分配表、已分配任务被执行的开始时间和结束时间、已分配任务被执行时进入巷道时间和离开巷道时间。
步骤十:循环执行步骤五,直至结束。
需要说明的是,通过上述步骤,可以对当前梯队下的容器搬运任务进行分配,在当前梯队下的各个容器搬运任务分配结束后,可以继续将下一梯队作为当前梯队,以继续对下一梯队下的容器搬运任务进行分配,直至各个容器搬运任务均被分配,或者机器人资源耗尽。
本说明书提供的容器搬运任务的分配方法,确定出当前待分配的至少一个容器搬运任务和至少一个候选机器人后,可以确定第一候选机器人执行第一容器搬运任务的路径长度,并确定第一候选机器人执行第一容器搬运任务与执行机器人执行已分配任务之间的搬运位置冲突值,后续结合该路径长度和该搬运位置冲突值,确定第一容器搬运任务对应第一候选机器人的匹配代价,各个容器搬运任务均可以作为第一容器搬运任务,各个候选机器人均可以作为第一候选机器人,也即针对任一容器搬运任务,可以确定出其与各个候选机器人之间的匹配代价,根据各个容器搬运任务与各个候选机器人之间的匹配代价,可以确定各个容器搬运任务的分配结果,从而确定出容器搬运任务与候选机器人之间的最优匹配,将容器搬运任务分配给最合适的候选机器人。如此,在确定容器搬运任务和候选机器人之间的任务分配方式时,考虑了机器人执行容器搬运任务的搬运位置冲突,避免机器人到达搬运位置后的等待耗时,避免了机器人扎堆造成严重的等待与拥堵,使得仓储系统中各个机器人可以最大的发挥其自身能力,提高了任务分配的合理性,进而提高了任务执行层面的整体效率。
与上述方法实施例相对应,本说明书还提供了容器搬运任务的分配装置实施例,图6是本说明书一实施例提供的一种容器搬运任务的分配装置的结构示意图。如图6所示,该装置包括:
第一确定模块602,被配置为确定当前待分配的至少一个容器搬运任务和至少一个候选机器人;
第二确定模块604,被配置为确定第一候选机器人执行第一容器搬运任务的路径长度,并确定第一候选机器人执行第一容器搬运任务与执行机器人执行已分配任务之间的搬运位置冲突值,其中,执行机器人为已分配任务对应的机器人,已分配任务与第一容器搬运任务为同一巷道的容器搬运任务;
第三确定模块606,被配置为根据路径长度和搬运位置冲突值,确定第一容器搬运任务对应第一候选机器人的匹配代价;
第四确定模块608,被配置为根据至少一个容器搬运任务对应各个候选机器人的匹配代价,确定至少一个容器搬运任务的分配结果。
本说明书提供的容器搬运任务的分配装置,确定出当前待分配的至少一个容器搬运任务和至少一个候选机器人后,可以确定第一候选机器人执行第一容器搬运任务的路径长度,并确定第一候选机器人执行第一容器搬运任务与执行机器人执行已分配任务之间的搬运位置冲突值,后续结合该路径长度和该搬运位置冲突值,确定第一容器搬运任务对应第一候选机器人的匹配代价,各个容器搬运任务均可以作为第一容器搬运任务,各个候选机器人均可以作为第一候选机器人,也即针对任一容器搬运任务,可以确定出其与各个候选机器人之间的匹配代价,根据各个容器搬运任务与各个候选机器人之间的匹配代价,可以确定各个容器搬运任务的分配结果,从而确定出容器搬运任务与候选机器人之间的最优匹配,将容器搬运任务分配给最合适的候选机器人。如此,在确定容器搬运任务和候选机器人之间的任务分配方式时,考虑了机器人执行容器搬运任务的搬运位置冲突,避免机器人到达搬运位置后的等待耗时,避免了机器人扎堆造成严重的等待与拥堵,使得仓储系统中各个机器人可以最大的发挥其自身能力,提高了任 务分配的合理性,进而提高了任务执行层面的整体效率。
可选地,第二确定模块604,进一步被配置为:
在当前存在已分配任务的情况下,确定已分配任务对应的执行机器人;
根据已分配任务的执行路径长度和执行机器人的运动速度,确定执行机器人执行已分配任务的取容器结束时间;
根据第一候选机器人执行第一容器搬运任务的路径长度和第一候选机器人的运动速度,确定第一候选机器人执行第一容器搬运任务的取容器开始时间;
根据已分配任务的取容器结束时间和第一容器搬运任务的取容器开始时间,确定搬运位置冲突值。
可选地,第二确定模块604,进一步被配置为:
确定第一容器搬运任务指示搬运的容器在仓储系统中的第一存放位置,并确定已分配任务指示搬运的容器在仓储系统中的第二存放位置;
根据第一存放位置和第二存放位置,确定第一候选机器人执行第一容器搬运任务与执行机器人执行已分配任务,是否存在搬运位置冲突;
若存在,则执行根据已分配任务的执行路径长度和执行机器人的运动速度,确定执行机器人执行已分配任务的取容器结束时间的操作步骤。
可选地,第二确定模块604,进一步被配置为:
获取已分配任务的开始执行时间和拿取容器执行时长;
根据已分配任务的执行路径长度和执行机器人的运动速度,确定执行机器人移动至已分配任务指示的容器位置处所需的移动时间;
根据开始执行时间和移动时间,确定执行机器人执行已分配任务的取容器开始时间;
根据拿取容器执行时长和已分配任务的取容器开始时间,确定已分配任务的取容器结束时间。
可选地,该装置还包括第五确定模块,被配置为:
确定第一候选机器人执行第一容器搬运任务与执行机器人执行已分配任务之间的搬运巷道冲突值;
相应地,第三确定模块606,进一步被配置为:
根据路径长度、搬运位置冲突值和搬运巷道冲突值,确定第一容器搬运任务对应第一候选机器人的匹配代价。
可选地,第五确定模块,进一步被配置为:
获取执行机器人执行已分配任务时的第一进入巷道时间和第一离开巷道时间,并根据第一进入巷道时间和第一离开巷道时间,确定已分配任务在目标巷道的第一停留时间段;
预估第一候选机器人执行第一容器搬运任务时的第二进入巷道时间和第二离开巷道时间,并根据第二进入巷道时间和第二离开巷道时间,确定第一候选机器人在目标巷道的第二停留时间段;
在第二停留时间段与第一停留时间段存在交叉时间段的情况下,确定交叉时间段内目标巷道的机器人数目是否超过数目阈值,若是,则确定搬运巷道冲突值为第一设定值;若否,则确定搬运巷道冲突值为第二设定值,其中,第一设定值大于第二设定值。
可选地,第三确定模块606,进一步被配置为:
将路径长度、搬运位置冲突值和搬运巷道冲突值统一至同一维度;
对统一后的路径长度、搬运位置冲突值和搬运巷道冲突值求和,获得第一容器搬运任务对应第一候选机器人的匹配代价。
可选地,第四确定模块608,进一步被配置为:
根据至少一个容器搬运任务对应各个候选机器人的匹配代价,构造匹配代价矩阵;
从匹配代价矩阵中选择匹配代价最小的目标匹配作为分配结果,其中,目标匹配包括容器搬运任务和对应的候选机器人;
根据分配结果,更新当前已分配任务和对应的执行机器人,并返回执行确定当前待分配的至少一个容器搬运任务和至少一个候选机器人的操作步骤。
可选地,该装置还包括划分模块,被配置为:
确定至少一个容器搬运任务的优先级;
确定至少一个候选机器人的总剩余存储位;
根据优先级和总剩余存储位,对至少一个容器搬运任务进行划分,获得至少一个梯队的搬运任务集合。
可选地,第二确定模块,进一步被配置为:
将当前梯队作为目标梯队,在目标梯队的搬运任务集合中选择第一容器搬运任务;
相应地,第四确定模块,进一步被配置为:
根据目标梯队的搬运任务集合中各个目标容器搬运任务对应各个候选机器人的匹配代价,确定各个目标容器搬运任务的分配结果;
将目标梯队的下一梯队作为目标梯队,返回执行在目标梯队的搬运任务集合中选择第一容器搬运任务的步骤。
可选地,该装置还包括控制模块,被配置为:
在各个容器搬运任务分配完毕,或各个机器人的存储位占用完毕的情况下,确定任务分配完成;
确定目标机器人对应的各个容器搬运任务的分配顺序,控制目标机器人按序拿取各个容器搬运任务对应的目标容器,其中,目标机器人为各个机器人中的任一个;
在目标机器人拿取容器完毕的情况下,根据各个目标容器的目的工作站以及各个工作站的当前工作信息,确定目标机器人向各个目的工作站的目标运送顺序。
可选地,该控制模块,进一步被配置为:
确定各个目标容器的至少一种运送顺序;
根据各个工作站的当前工作信息,分别确定各种运送顺序对应的运送时间;
选择运送时间最短的运送顺序作为目标运送顺序。
上述为本实施例的一种容器搬运任务的分配装置的示意性方案。需要说明的是,该容器搬运任务的分配装置的技术方案与上述的容器搬运任务的分配方法的技术方案属于同一构思,容器搬运任务的分配装置的技术方案未详细描述的细节内容,均可以参见上述容器搬运任务的分配方法的技术方案的描述。
图7是本说明书一实施例提供的一种计算设备的结构框图。该计算设备700的部件包括但不限于存储器710和处理器720。处理器720与存储器710通过总线730相连接,数据库750用于保存数据。
计算设备700还包括接入设备740,接入设备740使得计算设备700能够经由一个或多个网络760通信。这些网络的示例包括公用交换电话网(PSTN,Public Switched Telephone Network)、局域网(LAN,Local Area Network)、广域网(WAN,Wide Area Network)、个域网(PAN,Personal Area Network)或诸如因特网的通信网络的组合。接入设备740可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC,Network Interface Controller))中的一个或多个,诸如IEEE802.11无线局域网(WLAN,Wireless Local Area Networks)无线接口、全球微波互联接入(Wi-MAX,Worldwide Interoperability for Microwave Access)接口、以太网接口、通用串行总线(USB,Universal Serial Bus)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC,Near Field Communication)接口,等等。
在本说明书的一个实施例中,计算设备700的上述部件以及图7中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图7所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备700可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、 个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备700还可以是移动式或静止式的服务器。
其中,处理器720用于执行如下计算机可执行指令,以实现上述的容器搬运任务的分配方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的容器搬运任务的分配方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述容器搬运任务的分配方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现上述的容器搬运任务的分配方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的容器搬运任务的分配方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述容器搬运任务的分配方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
计算机指令包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书并不受所描述的动作顺序的限制,因为依据本说明书,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。

Claims (15)

  1. 一种容器搬运任务的分配方法,所述方法包括:
    确定当前待分配的至少一个容器搬运任务和至少一个候选机器人;
    确定第一候选机器人执行第一容器搬运任务的路径长度,并确定所述第一候选机器人执行所述第一容器搬运任务与执行机器人执行已分配任务之间的搬运位置冲突值,其中,所述执行机器人为已分配任务对应的机器人,所述已分配任务与所述第一容器搬运任务为同一巷道的容器搬运任务;
    根据所述路径长度和所述搬运位置冲突值,确定所述第一容器搬运任务对应所述第一候选机器人的匹配代价;
    根据所述至少一个容器搬运任务对应各个候选机器人的匹配代价,确定所述至少一个容器搬运任务的分配结果。
  2. 根据权利要求1所述的容器搬运任务的分配方法,所述确定所述第一候选机器人执行所述第一容器搬运任务与执行机器人执行已分配任务之间的搬运位置冲突值,包括:
    在当前存在已分配任务的情况下,确定所述已分配任务对应的执行机器人;
    根据所述已分配任务的执行路径长度和所述执行机器人的运动速度,确定所述执行机器人执行所述已分配任务的取容器结束时间;
    根据所述第一候选机器人执行所述第一容器搬运任务的路径长度和所述第一候选机器人的运动速度,确定所述第一候选机器人执行所述第一容器搬运任务的取容器开始时间;
    根据所述已分配任务的取容器结束时间和所述第一容器搬运任务的取容器开始时间,确定所述搬运位置冲突值。
  3. 根据权利要求2所述的容器搬运任务的分配方法,所述确定所述已分配任务对应的执行机器人之后,还包括:
    确定所述第一容器搬运任务指示搬运的容器在仓储系统中的第一存放位置,并确定所述已分配任务指示搬运的容器在所述仓储系统中的第二存放位置;
    根据所述第一存放位置和所述第二存放位置,确定所述第一候选机器人执行所述第一容器搬运任务与所述执行机器人执行所述已分配任务,是否存在搬运位置冲突;
    若存在,则执行根据所述已分配任务的执行路径长度和所述执行机器人的运动速度,确定所述执行机器人执行所述已分配任务的取容器结束时间的操作步骤。
  4. 根据权利要求2所述的容器搬运任务的分配方法,所述根据所述已分配任务的执行路径长度和所述执行机器人的运动速度,确定所述执行机器人执行所述已分配任务的取容器结束时间,包括:
    获取所述已分配任务的开始执行时间和拿取容器执行时长;
    根据所述已分配任务的执行路径长度和所述执行机器人的运动速度,确定所述执行机器人移动至所述已分配任务指示的容器位置处所需的移动时间;
    根据所述开始执行时间和所述移动时间,确定所述执行机器人执行所述已分配任务的取容器开始时间;
    根据所述拿取容器执行时长和所述已分配任务的取容器开始时间,确定所述已分配任务的取容器结束时间。
  5. 根据权利要求1-4中的任一项所述的容器搬运任务的分配方法,所述确定所述第一候选机器人执行所述第一容器搬运任务与执行机器人执行已分配任务之间的搬运位置冲突值之后,还包括:
    确定所述第一候选机器人执行所述第一容器搬运任务与执行机器人执行已分配任务之间的搬运巷道冲突值;
    相应地,所述根据所述路径长度和所述搬运位置冲突值,确定所述第一容器搬运任务对应所述第一候选机器人的匹配代价,包括:
    根据所述路径长度、所述搬运位置冲突值和所述搬运巷道冲突值,确定所述第一容器搬运任务对应所述第一候选机器人的匹配代价。
  6. 根据权利要求5所述的容器搬运任务的分配方法,所述确定所述第一候选机器人执行所述第一容器搬运任务与执行机器人执行已分配任务之间的搬运巷道冲突值,包括:
    获取所述执行机器人执行所述已分配任务时的第一进入巷道时间和第一离开巷道时间,并根据所述第一进入巷道时间和第一离开巷道时间,确定所述已分配任务在目标巷道的第一停留时间段;
    预估所述第一候选机器人执行所述第一容器搬运任务时的第二进入巷道时间和第二离开巷道时间,并根据所述 第二进入巷道时间和所述第二离开巷道时间,确定所述第一候选机器人在所述目标巷道的第二停留时间段;
    在所述第二停留时间段与所述第一停留时间段存在交叉时间段的情况下,确定所述交叉时间段内所述目标巷道的机器人数目是否超过数目阈值,若是,则确定搬运巷道冲突值为第一设定值;若否,则确定所述搬运巷道冲突值为第二设定值,其中,所述第一设定值大于所述第二设定值。
  7. 根据权利要求5所述的容器搬运任务的分配方法,所述根据所述路径长度、所述搬运位置冲突值和所述搬运巷道冲突值,确定所述第一容器搬运任务对应所述第一候选机器人的匹配代价,包括:
    将所述路径长度、所述搬运位置冲突值和所述搬运巷道冲突值统一至同一维度;
    对统一后的路径长度、搬运位置冲突值和搬运巷道冲突值求和,获得所述第一容器搬运任务对应所述第一候选机器人的匹配代价。
  8. 根据权利要求1-4中的任一项所述的容器搬运任务的分配方法,所述根据所述至少一个容器搬运任务对应各个候选机器人的匹配代价,确定所述至少一个容器搬运任务的分配结果,包括:
    根据所述至少一个容器搬运任务对应各个候选机器人的匹配代价,构造匹配代价矩阵;
    从所述匹配代价矩阵中选择匹配代价最小的目标匹配作为分配结果,其中,所述目标匹配包括容器搬运任务和对应的候选机器人;
    根据所述分配结果,更新当前已分配任务和对应的执行机器人,并返回执行确定当前待分配的至少一个容器搬运任务和至少一个候选机器人的操作步骤。
  9. 根据权利要求1-4中的任一项所述的容器搬运任务的分配方法,所述确定当前待分配的至少一个容器搬运任务和至少一个候选机器人之后,还包括:
    确定所述至少一个容器搬运任务的优先级;
    确定所述至少一个候选机器人的总剩余存储位;
    根据所述优先级和所述总剩余存储位,对所述至少一个容器搬运任务进行划分,获得至少一个梯队的搬运任务集合。
  10. 根据权利要求9所述的容器搬运任务的分配方法,所述确定第一候选机器人执行第一容器搬运任务的路径长度之前,还包括:
    将当前梯队作为目标梯队,在所述目标梯队的搬运任务集合中选择所述第一容器搬运任务;
    相应地,所述根据所述至少一个容器搬运任务对应各个候选机器人的匹配代价,确定所述至少一个容器搬运任务的分配结果,包括:
    根据所述目标梯队的搬运任务集合中各个目标容器搬运任务对应各个候选机器人的匹配代价,确定所述各个目标容器搬运任务的分配结果;
    将所述目标梯队的下一梯队作为目标梯队,返回执行所述在所述目标梯队的搬运任务集合中选择所述第一容器搬运任务的步骤。
  11. 根据权利要求1-4中的任一项所述的容器搬运任务的分配方法,所述根据所述至少一个容器搬运任务对应各个候选机器人的匹配代价,确定所述至少一个容器搬运任务的分配结果之后,还包括:
    在各个容器搬运任务分配完毕,或各个机器人的存储位占用完毕的情况下,确定任务分配完成;
    确定目标机器人对应的各个容器搬运任务的分配顺序,控制所述目标机器人按序拿取各个容器搬运任务对应的目标容器,其中,所述目标机器人为所述各个机器人中的任一个;
    在所述目标机器人拿取容器完毕的情况下,根据各个目标容器的目的工作站以及各个工作站的当前工作信息,确定所述目标机器人向各个目的工作站的目标运送顺序。
  12. 根据权利要求11所述的容器搬运任务的分配方法,所述根据所述各个目标容器的目的工作站以及各个工作站的当前工作信息,确定所述目标机器人向各个目的工作站的目标运送顺序,包括:
    确定所述各个目标容器的至少一种运送顺序;
    根据所述各个工作站的当前工作信息,分别确定各种运送顺序对应的运送时间;
    选择运送时间最短的运送顺序作为所述目标运送顺序。
  13. 一种容器搬运任务的分配装置,所述装置包括:
    第一确定模块(602),被配置为确定当前待分配的至少一个容器搬运任务和至少一个候选机器人;
    第二确定模块(604),被配置为确定第一候选机器人执行第一容器搬运任务的路径长度,并确定所述第一候选机器人执行所述第一容器搬运任务与执行机器人执行已分配任务之间的搬运位置冲突值,其中,所述执行机器人为已分配任务对应的机器人,所述已分配任务与所述第一容器搬运任务为同一巷道的容器搬运任务;
    第三确定模块(606),被配置为根据所述路径长度和所述搬运位置冲突值,确定所述第一容器搬运任务对应所述第一候选机器人的匹配代价;
    第四确定模块(608),被配置为根据所述至少一个容器搬运任务对应各个候选机器人的匹配代价,确定所述至少一个容器搬运任务的分配结果。
  14. 一种计算设备(700),包括:
    存储器(710)和处理器(720);
    所述存储器(710)用于存储计算机可执行指令,所述处理器(720)用于执行所述计算机可执行指令,以实现上述权利要求1-12中的任一项所述的容器搬运任务的分配方法的步骤。
  15. 一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现上述权利要求1-12中的任一项所述的容器搬运任务的分配方法的步骤。
PCT/CN2023/095864 2022-07-27 2023-05-23 容器搬运任务的分配方法及装置 WO2024021809A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210896514.4A CN115345450A (zh) 2022-07-27 2022-07-27 容器搬运任务的分配方法及装置
CN202210896514.4 2022-07-27

Publications (1)

Publication Number Publication Date
WO2024021809A1 true WO2024021809A1 (zh) 2024-02-01

Family

ID=83950230

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/095864 WO2024021809A1 (zh) 2022-07-27 2023-05-23 容器搬运任务的分配方法及装置

Country Status (2)

Country Link
CN (1) CN115345450A (zh)
WO (1) WO2024021809A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115345450A (zh) * 2022-07-27 2022-11-15 北京极智嘉科技股份有限公司 容器搬运任务的分配方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107167154A (zh) * 2017-04-21 2017-09-15 东南大学 一种基于时间代价函数的时间窗路径规划冲突解决方法
CN109426884A (zh) * 2017-08-28 2019-03-05 杭州海康机器人技术有限公司 分配方案确定方法、装置及计算机可读存储介质
US20190094866A1 (en) * 2017-09-22 2019-03-28 Locus Robotics Corporation Dynamic window approach using optimal reciprocal collision avoidance cost-critic
CN111136658A (zh) * 2019-12-30 2020-05-12 广东博智林机器人有限公司 机器人的控制方法、装置、电子设备及存储介质
CN115345450A (zh) * 2022-07-27 2022-11-15 北京极智嘉科技股份有限公司 容器搬运任务的分配方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107167154A (zh) * 2017-04-21 2017-09-15 东南大学 一种基于时间代价函数的时间窗路径规划冲突解决方法
CN109426884A (zh) * 2017-08-28 2019-03-05 杭州海康机器人技术有限公司 分配方案确定方法、装置及计算机可读存储介质
US20190094866A1 (en) * 2017-09-22 2019-03-28 Locus Robotics Corporation Dynamic window approach using optimal reciprocal collision avoidance cost-critic
CN111136658A (zh) * 2019-12-30 2020-05-12 广东博智林机器人有限公司 机器人的控制方法、装置、电子设备及存储介质
CN115345450A (zh) * 2022-07-27 2022-11-15 北京极智嘉科技股份有限公司 容器搬运任务的分配方法及装置

Also Published As

Publication number Publication date
CN115345450A (zh) 2022-11-15

Similar Documents

Publication Publication Date Title
WO2020238657A1 (zh) 货品分拣方法及货品分拣系统
Zou et al. Operating policies in robotic compact storage and retrieval systems
CN110059926B (zh) 拣选调度方法、装置、仓储系统及可读存储介质
WO2021129563A1 (zh) 一种基于密集存储的货箱搬运方法
Van Den Berg et al. Optimal routing in an automated storage/retrieval system with dedicated storage
WO2022068595A1 (zh) 仓储管理的方法、装置、设备、介质及仓储系统
US20190152057A1 (en) Robotic load handler coordination system, cell grid system and method of coordinating a robotic load handler
CN110084471B (zh) 拣选调度方法、装置、仓储系统及可读存储介质
CN111409997B (zh) 一种面向移动货架仓储系统的搬运机器人拣货任务调度方法
WO2022007514A1 (zh) 拣货调度系统、方法及装置
WO2024021809A1 (zh) 容器搬运任务的分配方法及装置
WO2024114473A1 (zh) 一种巷道仓储管理方法、系统及设备
CN115237137A (zh) 一种多agv调度与协同路径规划方法和装置
CN114415610A (zh) 机器人的调度方法、装置、电子设备及存储介质
CN114326610A (zh) 一种基于双层时空网结构的agv运行优化系统及方法
WO2024093758A1 (zh) 立体仓库的搬运调度方法及装置
CN115344050B (zh) 一种基于改进的聚类算法堆垛机路径规划方法
WO2023020213A1 (zh) 任务分配的方法、装置、设备、存储介质及程序产品
WO2022027357A1 (zh) 一种无人环境下的提货方法、系统和计算机可读存储介质
CN114091777A (zh) 智能柜闲时调仓方法、系统、电子设备、介质及程序产品
CN114590508A (zh) 一种用于立体库的堆垛机任务调度方法、装置及系统
CN114399247A (zh) 任务分配方法、电子设备、存储介质及计算机程序产品
CN112034841A (zh) 一种无人环境下的提货方法、系统和计算机可读存储介质
JP3849836B2 (ja) ストッカの運行管理方法
Xiao et al. Modeling of integrated quay cranes, yard trucks and yard cranes scheduling problem for outbound containers

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23845023

Country of ref document: EP

Kind code of ref document: A1