A method of ordering tasks

AU2024423203A1Pending Publication Date: 2026-08-06AUTOSTORE TECH AS
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
AU · AU
Patent Type
Applications
Current Assignee / Owner
AUTOSTORE TECH AS
Filing Date
2024-01-22
Publication Date
2026-08-06

AI Technical Summary

Technical Problem

The challenge in automated storage and retrieval systems is efficiently organizing tasks for robotic vehicles to minimize handling time and resource availability constraints, particularly when handling multiple customer orders with varying priorities and item availability.

Method used

A method of ordering tasks that groups tasks based on sequence indicators and availability parameters, interspersing tasks with flexible execution order with those having strict sequences to optimize the overall efficiency of the system.

Benefits of technology

This approach enhances the system's efficiency by prioritizing available tasks and minimizing delays, ensuring that tasks with higher availability are executed first, thus reducing overall handling time and improving resource utilization.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

The disclosure relates to a method of ordering tasks for at least one robotic vehicle in an automated storage and retrieval system, comprising: receiving a plurality of groups of tasks each comprising one or more tasks to be executed consecutively, each task being to retrieve a respective container in the automated storage and retrieval system using one of the at least one robotic vehicles and each task having a task availability parameter indicative of an availability of the respective container to the one of the at least one robotic vehicles, at least one of the groups being a sequenced group having a respective explicit sequence indicator indicating a sequence in which the task(s) of the group should be executed with respect to the task(s) of any other sequenced group, and at least one of the groups being an unsequenced group having a default sequence indicator indicating that the task(s) of the group may be executed in any order with respect to the task(s) of other groups; determining, for each group, a group availability parameter representative of the task availability parameter(s) of each of the task(s) in the group; forming a sorted set of sequenced groups by sorting the sequenced groups by explicit sequence indicator and, if multiple groups have a same explicit sequence indicator, by group availability parameter; forming a set of unsequenced groups from the unsequenced groups; and determining, from the sorted set of sequenced groups and the set of unsequenced groups, an ordered set of groups by interspersing the unsequenced groups among the sequenced groups according to group availability parameter, where an unsequenced group is placed behind a given sequenced group when the group availability parameter of the unsequenced group indicates less availability than the group availability parameter of the given sequenced group.
Need to check novelty before this filing date? Find Prior Art

Description

A METHOD OF ORDERING TASKSTECHNICAL FIELD

[0001] The disclosure relates to a method of ordering tasks. More particularly, it relates to a method of ordering tasks for a robotic vehicle, and a system and computer- readable medium for carrying out the method.BACKGROUND

[0002] Traditional storage solutions usually involve the arrangement of goods on rows of shelves within a warehouse. The shelf location for each item is recorded in an inventory, and goods are retrieved from the shelves by a stock picker. The shelves are restocked and the inventory updated, as needed, as goods enter and leave the warehouse.

[0003] Warehouse workers may be assisted by robotic pickers and by automated inventory management systems. Automated transit systems may also be implemented in traditional warehouse set-ups to move goods from their inventory location to a picking and / or packing station.

[0004] An alternative to a traditional warehouse set-up is an automated storage and retrieval system in which robots retrieve items from their logged location within the warehouse and deliver the items to a packing station or port. Such systems can reduce or eliminate the space needed to pass between rows of shelves to access stock, thereby removing the need for broad aisles within the warehouse. One example of such a system involves placing goods in bins or containers that are configured to be stacked, side by side, within a three-dimensional grid. A rail system is arranged on top of the grid, along which robotic container-handling vehicles configured to lift containers from the grid can travel. The container-handling vehicles are configured to transport containers from the grid and to deliver them to ports or stations at the periphery of the grid so that the goods within the container can be picked and packed.

[0005] The movement of the robotic container-handling vehicles may be controlled centrally. A list of jobs maybe provided in which each job relates to the movement of one or more of the containers in the grid. A job maybe moving a container from one location in the grid to another, or it maybe moving a container from one location in the grid to a port on the edge of the grid.

[0006] One or more aspects of the invention of the present application are set out in the claims.BRIEF DESCRIPTION OF THE DRAWINGS

[0007] The disclosure will now be described in more detail in connection with a number of exemplary embodiments shown in the accompanying drawings, in which:Fig. 1 shows a perspective view of a storage system comprising a grid and a plurality of robotic container-handling vehicles configured to retrieve and / or rearrange goods stored within the grid;Fig. 2 shows a top view of the system of Fig. 1;Fig. 3A shows a side view of a first robotic container-handling vehicle suitable for use in the system of Fig. 1;Fig. 3B shows a side view of a second robotic container-handling vehicle suitable for use in the system of Fig. 1;Fig. 3C is a perspective side view of the robot of Fig. 3B;Fig. 4 shows a computing device for implementing the operations described herein;Figs. 5A and 5B show example data being sorted according to one method;Figs. 6A, 6B, 6C and 6D show the example data being sorted according to the method described herein;Fig. 7 shows a flowchart of the method described herein;Fig. 8 shows a flowchart of an alternative implementation of the method described herein.DETAILED DESCRIPTION

[0008] In general, the order in which containers are chosen to go to a port is variable and not just dependent on the sequence in which customer orders are received for example. Therefore several aspects maybe taken into account and weighed in order to try to pick the container and the container handling vehicle with the shortest handling time from placed order to finished picking. However, there maybe a large number of containers, container-handling vehicles, items to be picked and orders, so planning which container to pick and transport to the ports is a complex problem.

[0009] One method of organising tasks (or ‘jobs’) for container retrieval is to group tasks into lists based on either the order value, or the item value. If the order valueis present, then lists are sorted in accordance to the order value. If the order value is present, then the same value for the order value based on the item value and then sort these sub-lists based on the ‘penalty value’ or availability of the corresponding container, such that tasks with the same value for the item value are together, but the whole subgroup is sorted among other sub-groups such that the sub-group with the lowest average penalty value is placed first. Similarly, if the order value is not present, lists are sorted for tasks with the same value for the item value based on the average penalty value. This is iterative and it might not result in the best order (i.e., prioritising the most available tasks).

[0010] There may be constraints on the order in which some of the jobs are executed by the container-handling vehicles, but there may be other jobs which can be executed in any order. The inventor has arrived at the insight that, by interspersing the jobs which can be executed in any order with the jobs which cannot, taking into account the availability of the containers for each job, the overall efficiency of the storage and retrieval system can be improved.Automated storage and retrieval system overview

[0011] Referring to the embodiment shown in Fig. 1, a grid too comprises a frame formed by a plurality of generally rectilinear, adjacent vertical columns 102 formed between vertical frame members 104 and extending in the X and Y directions 108, 110. The grid elements maybe fabricated of any appropriate material; for example, the frame members maybe formed of extruded aluminium. Bins (or ‘storage containers’, or ‘containers’) 112 are stacked on top of each other, preferably in a self-supporting manner, in the Z direction 114 in the columns 102, forming a storage volume of storage cells for respective bins 112 extending in the X, Y and Z directions 108, 110, 114.

[0012] A rail system or network 116 is formed on top of the grid too and comprises pairs of vehicle rails or tracks 118a, 118b and 120a, 120b, respectively extending in the X and Y directions 108, 110. Robotic container-handling vehicles (or ‘robots’, or ‘robotic vehicles’) 122, which can be of a range of size, shape and function, are provided and configured to run on the rails 118, 120 and to transport bins 112 in both the X and Y directions 108, 110. The robots 122 are additionally configured to lift and lower bins 112 from / into the columns 102 in the Z direction 114, the bins 112 optionally being guided by the vertical frame members 104. The robots 122 access the bins 112 via access openings 124 above the columns 102 and formed between the rails 118, 120.

[0013] Some columns 102 may be used for alternative purposes than bin storage. For example, port columns 126, 128 comprise port or access columns allowing transfer of a bin 112 in and / or out of the grid too. Port columns 126, 128 provide a vertical channel for lifting of a bin 112 from, or lowering of a bin 112 to, a port or ports 130, 132. The ports 130, 132 are shown in Fig. 1 at the lowest level of the grid, however ports can be located at any vertical position along the column. The respective port columns 126, 128 can be assigned for removing (‘drop-off) and / or returning or delivering (‘pick-up’) bins 112 from / to the grid too. The ports 130, 132 are therefore configured to allow bins 112 to be removed and reintroduced (horizontally) into the associated port column. As such, a port 130, 132 can comprise a conveyor (not shown in Fig. 1) onto which a bin 112 maybe lowered and transported horizontally out of the port column. The port columns 126, 128 include an opening or access point through which bins 112 can enter and leave the column.

[0014] Bins 112 can be transported along the top of the grid too to and / or from a port column 126, 128 by robots 122, and from a port 130, 132 to a location outside the grid too, which maybe an access station (not shown) for processing of the bin 112 or its contents, such as a picking station for adding content to, or removing content from, the bin 112. In alternative examples (not shown), the bin 112 maybe transported to a port of another grid on the same or another level, or to an external facility. Transport of bins 112 to and from ports 130, 132 maybe by any appropriate means (not shown) including conveyors, transport vehicles, lifts or robots.

[0015] Referring to the embodiment shown in Fig. 2, the X-Y configuration 200 of the rail system 116 can be seen in more detail, together with robots 202, 204 of different types. The rail system includes rails 206 defining between them vertical column access openings 124 for access to bins 112. The rails 206 can be any appropriate type for permitting travel of the robots 202, 204 in the X and Y directions 108, 110 thereon, including (not shown) groove-type rails for receiving vehicle wheels, or protrusion-type rails for engaging wheel recesses. Each rail 206 may comprise a single track or multiple parallel tracks in each of the X and Y directions 108, 110.

[0016] A first, ‘cantilever’ type of robot 202 is shown in more detail in Fig. 3A and includes a body 300, a set of wheels 302 and a lifting device 304. The body 300 contains operational equipment (not shown) for the robot 202 including drive, power and control systems. The wheels 302 permit movement of the robot 202 in one of the X and Y directions, an additional set of wheels (not visible in this view) permitting movement inthe other of the X and Y directions, in both cases along the respective rails or tracks 206. One or both sets of wheels can be raised or lowered to permit selective engagement of the rails for movement in the desired direction. The lifting device 304 includes a cantilever element 306 extending in the X-Y plane from the top of the body 300, and a gripping device 308, which is raisable and lowerable from the cantilever element 306. The gripping device 308 is configured to grip or engage a bin 112; for example, by gripping a part of the bin 112, or by passively or actively engaging a suitably configured part of the bin 112.

[0017] A second, ‘internal cavity’ type of robot 204 is shown in more detail in Fig. 3B and includes, as an alternative to the cantilevered lifting system, an internal cavity 310 within the body 300 and in which the lifting device 312 including a gripping device (not shown) is located. In this case, the body 300 includes the robot’s operational equipment and a storage space for one or more bins 112, for use, for example, while transporting the bin 112.

[0018] Fig. 3C shows a perspective side view of the robot of Fig. 3B in which the first set of wheels 302 from Fig. 3B are visible. The additional set of wheels referenced above but not shown in Fig. 3B are shown as wheels 303 in Fig. 3C. The additional set of wheels 303 is arranged perpendicular to the first set of wheels 302, to allow rolling of the robot 204 in the X and Y directions on the first and second set of wheels 302, 303 respectively. The first and second set of wheels 302, 303 shown in Fig. 3C maybe configured to be independently lowered into engagement with the rails (and conversely raised out of engagement with the rails) to allow the robot 202 to move in the X and Y direction across the arrangement of rails shown in Fig. 2. Although the perspective view shown in Fig. 3C is of the robot 204 of Fig. 3B, it will be appreciated that a similar perpendicular wheel arrangement maybe applied to the robot 202 of Fig. 3A.Control and monitoring system

[0019] Control and monitoring of the automated storage and retrieval system, including monitoring and storing bin position and controlling bin delivery, retrieval and transport and robot routing and collision avoidance, is performed by a control system shown in Fig. 4 in communication with the robots and / or other controllable system components. Control can be performed locally or remotely and maybe implemented by a processing system, for example in the form of a computing device. Accordingly, themethods described herein may form all or part of a computer-implemented method, or a system configured to perform the methods described herein.

[0020] With reference to Fig. 4, a processing system 400 suitable for carrying out the methods described herein will now be described. Fig. 4 shows a block diagram of one implementation of a processing system 400 in the form of a computing device within which a set of instructions for causing the computing device to perform any one or more of the methods described herein maybe executed. In some implementations, the computing device maybe connected (e.g., networked) to other machines in a Local Area Network (LAN), an intranet, an extranet, or the Internet. The computing device may operate in the capacity of a server or a client machine in a client-server network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The computing device maybe a personal computer (PC), a tablet computer, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a server, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single computing device is illustrated, the term ‘computing device’ shall also be taken to include any collection of machines (e.g., computers) that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methods described herein.

[0021] The example processing system 400 includes a processor 402, a main memory 404 (e.g., read-only memory (ROM), flash memory, dynamic random-access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.), a static memory 406 (e.g., flash memory, static random-access memory (SRAM), etc.), and a secondary memory (e.g., a data storage device 418), which communicate with each other via a bus 430.

[0022] Processor 402 represents one or more general-purpose processors such as a microprocessor, central processing unit, or the like. More particularly, the processor 402 maybe a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, processor implementing other instruction sets, or processors implementing a combination of instruction sets. Processor 402 may also be one or more special-purpose processors such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), networkprocessor, or the like. Processor 402 is configured to execute the processing logic (instructions 422) for performing the operations and steps described herein.

[0023] The processing system 400 may further include a network interface device 408. The processing system 400 also may include any of a video display unit 410 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an alphanumeric input device 412 (e.g., a keyboard or touchscreen), a cursor control device 414 (e.g., a mouse or touchscreen), and an audio device 416 (e.g., a speaker).

[0024] It will be apparent that some features of the processing system 400 shown in Fig. 4 maybe absent. For example, the processing system 400 may have no need for display device 410 (or any associated adapters). This maybe the case, for example, for particular server-side computer apparatuses which are used only for their processing capabilities and do not need to display information to users. Similarly, user input device 412 may not be required. In its simplest form, processing system 400 comprises processor 402 and main memory 404.

[0025] The data storage device 418 may include one or more machine-readable storage media (or more specifically one or more non-transitory computer-readable storage media) 428 on which is stored one or more sets of instructions 422 embodying any one or more of the methods or functions described herein. The instructions 422 may also reside, completely or at least partially, within the main memory 404 and / or within the processor 402 during execution thereof by the processing system 400, the main memory 404 and the processor 402 also constituting computer-readable storage media 428.

[0026] The various methods described herein may be implemented by a computer program. The computer program may include computer code arranged to instruct a computer to perform the functions of one or more of the various methods described herein. The computer program and / or the code for performing such methods maybe provided to an apparatus, such as a computer, on one or more computer-readable media or, more generally, a computer program product. The computer-readable media maybe transitory or non-transitory. The one or more computer-readable media could be, for example, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, or a propagation medium for data transmission, for example for downloading the code over the Internet. Alternatively, the one or more computer-readable media could take the form of one or more physical computer-readable media such as semiconductor or solid-state memory, magnetic tape, a removable computer diskette, arandom-access memory (RAM), a read-only memory (ROM), a rigid magnetic disc, or an optical disk, such as a CD-ROM, CD-R / W or DVD.

[0027] The computer program is executable by the processor 402 to perform functions of the systems and methods described herein.

[0028] In an implementation, the modules, components, and other features described herein can be implemented as discrete components or integrated in the functionality of hardware components such as ASICS, FPGAs, DSPs, or similar devices.

[0029] A ‘hardware component’ is a tangible (e.g., non-transitory) physical component (e.g., a set of one or more processors) capable of performing certain operations and maybe configured or arranged in a certain physical manner. A hardware component may include dedicated circuitry or logic that is permanently configured to perform certain operations. A hardware component maybe or include a special-purpose processor, such as a field programmable gate array (FPGA) or an ASIC. A hardware component may also include programmable logic or circuitry that is temporarily configured by software to perform certain operations.

[0030] Accordingly, the phrase ‘hardware component’ should be understood to encompass a tangible entity that maybe physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain manner or to perform certain operations described herein.

[0031] In addition, the modules and components can be implemented as firmware or functional circuitry within hardware devices. Further, the modules and components can be implemented in any combination of hardware devices and software components, or only in software (e.g., code stored or otherwise embodied in a machine- readable medium or in a transmission medium).Operation of the automated storage and retrieval system

[0032] In operation, each bin 112 is given a unique identifier, which maybe marked on the bin 112 using a computer-readable identifier (e.g., a barcode, quickresponse code or radio-frequency identification tag) to ease identification of the bin 112. A database of the processing system 400 stores, in association with the unique identifier, the position and, optionally, content of each bin 112. When a bin 112 is moved (e.g., when it is retrieved from the grid 100), the database is updated to record its change in position.

[0033] When it is desired to retrieve a bin 112 from the grid too, under control of the processing system 400, a robot 202, 204 is routed via the rail system 116 to the vertical column 102 including the storage cell where, according to the database, the bin 112 is positioned, and the lifting device 304, 312 is positioned (according to robot type) over the corresponding access opening 124, either adjacent or below the robot 202, 204. The robot 202, 204 lowers the gripping device 308 which engages, grips and lifts the bin 112 to the robot 202, 204. The robot 202, 204 then transports the bin 112, for example, to the drop-off port column 126, 128 for delivery to the port 130, 132 and subsequent processing external to the grid too. In the event that the target or designated bin 112 is below other bins in the stack then the robot 202, 204 or multiple robots, which maybe dedicated to the task, are controlled in a ‘digging’ operation to sequentially lift and reposition, temporarily or permanently, bins above the target bin 112 in order for it to be retrieved. It will be appreciated that other operations in relation to the bin 112 can be carried out in a similar manner. For example, a bin 112 can be delivered for storage in the grid too at the port 130, 132 of the pick-up port column 126, 128, gripped and lifted by a robot 202, 204 and delivered to the desired storage cell, bins above the desired position being repositioned if necessary as discussed above.Description of specific improvements

[0034] There are certain constraints on the ordering of tasks in the system which are due to the nature of a warehouse system. The first relates to the nature of customer orders, which may contain more than one product. As a result, when picking products or items from the bins, more than one product maybe packed in the package which is shipped to the customer. This in turn means that it will be beneficial to consecutively present to the port the bins with the correct products so that all of the products can be picked, packed and therefore shipped in the same package. In the below description, an indicator of these groupings of products is referred to as an ‘item number’, ‘group identifier’ or similar.

[0035] Another constraint is that, depending on the nature of the products in the grid, it maybe important to pick products for some customer orders earlier than others. For example, if products in the bins are temperature-sensitive, then it maybe preferable to keep these in the grid longer, to minimise the time outside the temperature-controlled environment. Tasks relating to these products may therefore be given a lower priority compared to other tasks for other products. Products for customer orders that were placed earlier may, all else being equal, be picked earlier. Products for customer ordersthat have a high priority (e.g., because of the status of the customer and / or the order) may again be picked earlier. In the below description, an indicator of this ordering constraint is referred to as an ‘order number’, ‘sequence indicator’ or similar.

[0036] These two constraints limit the freedom to order tasks in the automated storage and retrieval system. However, there will also be flexibility in the ordering, especially in systems with a large number of tasks, containers and / or robots. Within the constraints defined above, the tasks can be ordered in such a way as to complete them as fast as possible and whilst minimising the amount of down time of the robot (e.g., time spent waiting until a container is available).

[0037] Another factor which may be taken into account when determining the order of tasks (but which does not strictly control the ordering) is how available a given bin is. In a system where bins are constantly being moved around, presented to ports and in which they might be stacked underneath other bins, the availability of bins to present at a port maybe complex, and variable over time. For example, a bin which may only be accessed by moving other bins from on top of it is, all else being equal, less available than a bin at the top of a stack. In the below description, an indicator of this availability is referred to as a ‘penalty value’, ‘availability parameter’ or similar.Example set of tasks

[0038] Fig. 5A shows an example set of tasks, presented in the form of a table, for the purpose of explanation only. Each row of the table represents a task.

[0039] The ‘bin’ column uniquely identifies each of the tasks. For example, the task maybe to retrieve a bin 112 from the storage grid too, and this column may indicate a unique identifier of the bin, or a position, within the storage grid too, from which the bin 112 is to be retrieved. The first row, for example, represents a task to retrieve a bin with a unique identifier ‘123’ from the storage grid too. The ‘bin’ column may otherwise be described herein as a bin, bin identifier or bin position.

[0040] The ‘item’ column indicates which tasks form part of a group and should be executed consecutively, i.e., one after the other without other tasks being executed in between. For example, each group of tasks may correspond to a single customer order, and each of the tasks within that group maybe to retrieve a respective bin 112 which holds items forming part of that customer order. The ‘item’ column maybe referred to herein as the group identifier. The group identifier maybe an explicit group identifier or a default group identifier. A set of tasks sharing an explicit group identifier form part of asingle group; in this example, the explicit group identifiers are numbered with non-zero integers from 1 to 6. Tasks with a default group identifier maybe executed independently and need not be executed together with other tasks. In this example, the default group identifier is o (zero). The first row has a value of T in the ‘item’ column, and represents a task that is in a first group, consisting of one task. The second and third rows have a value of ‘2’ in the ‘item’ column and represent tasks that are in a second group and that should be executed consecutively (i. e. , no task should be executed between the tasks represented by the second and third rows). The fourth row has a value of ‘3’ in the ‘item’ column and represents a task that is in a third group, again consisting of one task.

[0041] The ‘order’ column indicates the sequence or order in which tasks should be executed, relative to each other. The ‘order’ column may otherwise be referred to herein as the sequence indicator. The sequence indicator maybe an explicit sequence indicator or a default sequence indicator. An explicit sequence indicator indicates a sequence in which the task(s) of the group of which the task forms part should be executed with respect to the task(s) of any other group having an explicit sequence indicator; in this example, the explicit sequence indicators are numbered with non-zero integers from 1 to 3. A default sequence indicator indicates that the task maybe executed in any order with respect to the task(s) of other groups; in this example, the default sequence indicator is o. The first row has a value of ‘o’ in the ‘order’ column and is the only row in the first group, and thus represents a task that maybe executed in any order with respect to the tasks of any of the other groups (e.g., the second and third groups). The second and third rows have a value of ‘2’ in the ‘order’ column and are the rows of the second group, and thus represent tasks that should be executed consecutively and should be executed after any tasks of any other groups having a value of T in the ‘order’ column, and before any tasks of any other groups having a value of ‘3’ in the ‘order’ column. The fourth row has a value of ‘o’ in the ‘order’ column and is the only row in the third group, and thus represents a task that maybe executed in any order with respect to the tasks of any of the other groups (e.g., the first and second groups). A task having an explicit sequence indicator maybe referred to as a ‘sequenced task’ and a task having a default sequence indicator maybe referred to as an ‘unsequenced task’. A group of tasks having an explicit sequence indicator may similarly be referred to as a ‘sequenced group’ and a group of tasks having a default sequence indicator maybe referred to as an ‘unsequenced group’.

[0042] The ‘penalty value’ column indicates the availability of the bins 112 to which the tasks refer; tasks to retrieve bins 112 which are more available should, all else being equal, be executed before tasks to retrieve bins 112 which are less available. The ‘penalty value’ column may also be referred to herein as the ‘task availability parameter’. In this example, a low penalty value indicates that the bin 112 is readily available for a robot 202, 204 to execute the task in question. A high penalty value may indicate that the bin 112 is not readily available for a robot 202, 204 to execute the task in question; this might be because there are other bins on top of the bin of the task, or because the bin is relatively low down in the storage grid too and it will thus take longer for the robot 202, 204 to lift the bin out of the grid too, especially if digging is required. A high penalty value may additionally or alternatively indicate that the bin 112 is at a port (i. e. , not in the grid too at all), perhaps being picked or otherwise handled. As such, the penalty value for each task maybe a function of the bin’s position in the grid, and may change over time. Because the penalty value may change over time, a task having a penalty value which indicates low availability may be best executed at a later time, by which time the availability may have improved. For ease of explanation, in the example shown, the penalty values remain constant over time. The first row has a value of ‘0.5’ in the ‘penalty value’ column, while the second row has a value of ‘0.7’ in the ‘penalty value’ column, which indicates that the bin 112 of the task that the first row represents is more readily available than the bin 112 of the task that the second row represents.

[0043] Fig. 5B shows the set of tasks from Fig. 5A, again presented in the form of a table. The tasks have been ordered according to a first approach. Specifically, the tasks have been sorted at a first level by order number, at a second level by item number, and at a third level by penalty value (in other words, the tasks have been sorted by order number, then by item number for tasks having a same order number, and then by penalty value for tasks having a same item number). This results in a final order of tasks in which tasks of a given group (indicated by a shared item number) are kept together, groups with a low order number are placed ahead of groups with a high order number, and tasks with a lower penalty value are, all else being equal, placed ahead of tasks with a higher penalty value. This is a relatively simple way of sorting the tasks, and the final order of tasks meets all the requirements indicated by the values of the ‘item’, ‘order’ and ‘penalty value’ columns as outlined above. However, this approach results in all of the tasks with the zero order number being completed first, in order of penalty value, while tasks with relatively high penalty values (e.g., the task with bin number ‘789’) are scheduled before tasks with non-zero order number but relatively low penalty value (e.g.,the task with bin number ‘459’). This may therefore cause an unnecessary delay in retrieving bin ‘459’, because it is not necessary for the task with bin number ‘789’ to be completed before the task with bin number ‘459’.

[0044] The tasks shown in Fig. 6A are the same as those shown in Fig. 5A, with Figs. 6A, 6B, 6C and 6D each showing stages of sorting according to a second approach, this approach being according to the invention. The thin lines in Fig. 6A, separating each row, delineate the tasks, and the thick lines delineate the groups of tasks. Where the item number is non-zero, the tasks are grouped according to the item number. Tasks that share an item number are allocated to the same group (e.g., the tasks with bin numbers ‘425’ and ‘268’). Where the item number is zero, each task is allocated its own group (e.g., the task with bin numbers ‘710’, ‘852’, ‘963’). For each group, the ‘average penalty value’ column shows the average of the penalty values of the tasks in the group. This gives an overall indication of the availability of the tasks in the group. The groups shown are indivisible, and the second approach subsequently sorts the groups rather than the individual tasks.

[0045] Fig. 6B shows the sequenced groups of Fig. 6A separated from the unsequenced groups shown in Fig. 6C. In Fig. 6B, the sequenced groups are sorted at a first level by the order number and at a second level by average penalty value (in order words, the sequenced groups are sorted by order number and, if multiple groups have a same order number, by average penalty value). The order of these tasks with respect to each other will be preserved in the next sorting step, so that the constraint indicated by the ‘order’ column is met. The sequenced groups of Fig. 6B and the unsequenced groups of Fig. 6C are shown separately to help illustrate the manner in which the tasks of these two types of groups are later combined.

[0046] Finally, as shown in Fig. 6D, an ordered set of groups is formed by combining the sequenced groups of Fig. 6B and the unsequenced groups of Fig. 6C. The ordering of the ordered set of groups is based on average penalty value. More specifically, the unsequenced groups are interspersed with the sequenced groups according to average penalty value so that the unsequenced groups are placed ahead of sequenced groups with higher average penalty values (indicating lower availability), and behind sequenced groups with lower average penalty values (indicating higher availability). This can be performed by placing the unsequenced groups at the head / top of the ordered set of groups, and then taking each of the sequenced groups in turn, starting from the lowest order number, and placing the unsequenced groups having ahigher average penalty value behind the sequenced group (or, equivalently, placing the unsequenced groups at the back / bottom of the ordered set of groups, and then taking each of the sequenced groups in turn, starting from the highest order number, and placing the sequenced group ahead of the unsequenced groups having a higher average penalty value).

[0047] An equivalent result can be obtained by placing the unsequenced groups at the head / top of the ordered set of groups, and then taking each of the unsequenced groups in turn, starting from the lowest order number, and placing the unsequenced group behind the sequenced groups having a lower average penalty value (or, equivalently, placing the unsequenced groups at the back / bottom of the ordered set of groups, and then taking each of the unsequenced groups in turn, starting from the highest order number, and placing the unsequenced group ahead of the sequenced groups having a higher average penalty value).

[0048] In this example, the sequenced group with order number T (containing the tasks with bin numbers ‘459’, ‘154’ and ‘145’), with average penalty value 0.3, is first compared to the unsequenced groups (with order number ‘0’), and the unsequenced groups having a higher average penalty value than 0.3 (those containing tasks with bin numbers ‘123’, ‘698’, and ‘254’ & ‘789’) are placed behind the sequenced group with order number T (containing the tasks with bin numbers ‘459’, ‘154’ and ‘145’). The first sequenced group with order number ‘2’ (containing the task with bin number ‘710’), with average penalty value 0.7, is then compared to remaining unsequenced groups having a higher average penalty value than 0.7 - of which there are none. The second sequenced group with order number ‘2’ (containing the tasks with bin numbers ‘425’ and ‘268’), with average penalty value 0.75, is then compared to the remaining unsequenced groups having a higher average penalty value than 0.75 - of which there are again none. The sequenced group with order number ‘3’ (containing the task with bin number ‘963’), with average penalty value 0.3, is then compared to the remaining unsequenced groups having a higher average penalty value than 0.3 - of which there are none.

[0049] This second approach meets the constraints associated with order number and item number, but better use can be made of the penalty value to push back tasks which are unavailable. It will be appreciated that this method maybe repeated after a subset of the tasks have been executed, or in a case where the penalty values change with time, after the penalty values are updated.Ordering tasks

[0050] Fig. 7 shows a method of ordering tasks for at least one robot 202, 204 in an automated storage and retrieval system.

[0051] As a computer-implemented method, the method of Fig. 7 may be performed by any data processing system, including the processing system 400, and / or a data processing system on the robot 202, 204. Each of the steps of the method may thus be performed by any such data processing system.

[0052] The method comprises, at step S100, receiving a plurality of groups of tasks each comprising one or more tasks to be executed consecutively. Each task is to retrieve a respective bin 112 in the automated storage and retrieval system using one of the at least one robots 202, 204. Each task has a task availability parameter indicative of an availability of the respective bin 112 to the one of the at least one robots 202, 204, as set out in more detail below.

[0053] Each group has either an explicit sequence indicator indicating a sequence in which the task(s) of the group should be executed with respect to the task(s) of any other group having an explicit sequence indicator, or a default sequence indicator indicating that the task(s) of the group maybe executed in any order with respect to the task(s) of other groups. It will be appreciated here that a group may have only one task or a plurality of tasks, referred to herein as a group having task(s).

[0054] Herein, a group having an explicit sequence indicator is a sequenced group and a group having a default sequence indicator is an unsequenced group. The plurality of groups of tasks includes at least one sequenced group and at least one unsequenced group.

[0055] At step S110, a group availability parameter is determined, representative of the task availability parameter(s) of each of the task(s) in the group. It is indicative of the overall availability of the bin(s) to which the task(s) pertain. This group availability parameter maybe determined in a number of ways. This may therefore be a simple average of the task availability parameters for the tasks in the group. It maybe a median, mode or root mean square (RMS) value, depending on the implementation and characteristics of the specific system.

[0056] At step S115, a sorted set of sequenced groups is formed by sorting the sequenced groups by explicit sequence indicator and, if multiple groups have a same explicit sequence indicator, by group availability parameter. In other words, thesequenced groups are sorted at a first level by explicit sequence indicator, and at a second level by group availability parameter.

[0057] At step S120, a set of unsequenced groups is formed from the unsequenced groups. Forming the unsequenced groups into the set of unsequenced groups may optionally include a sorting step which comprises sorting the unsequenced groups by group availability parameter. This may make the step of combining the sets of sequenced and unsequenced groups (see below) more straightforward, because the most available groups from each set can be directly compared.

[0058] At step S130, an ordered set of groups is determined from the sorted set of sequenced groups and the set of unsequenced groups based on the group availability parameters. Specifically, the groups of the sorted set of sequenced groups and the set of unsequenced groups are interspersed according to group availability parameter such that an unsequenced group is placed behind a given sequenced group when the group availability parameter of the unsequenced group indicates less availability than the group availability parameter of the given sequenced group. Accordingly, if an unsequenced group has a group availability parameter indicating more availability than the group availability parameter of a given sequenced group, it may be placed ahead of the sequenced group in the ordered set of groups.

[0059] The interspersing maybe carried out in an iterative fashion. For example, for each sequenced group, the group availability parameter maybe compared to the remaining unsequenced group with the highest availability. As a result of this comparison either the sequenced or the unsequenced group is placed next in the ordered set of groups. If the sequenced group is placed, then the next comparison is between the next sequenced group and the unsequenced group; if the unsequenced group is placed, then the next comparison is between the same sequenced group and the next unsequenced group. This process of comparison and placing is then repeated until all of the groups have been incorporated into in the ordered set of groups.

[0060] After step S130, an ordered set of groups has been formed.

[0061] At step S145, the tasks may be executed by the at least one robots 202,204. The executing comprises the at least one robots 202, 204 of the automated storage and retrieval system being controlled to execute the tasks, in sequence, according to the ordered set of groups. The controlling may comprise a route planning step which calculates the path to be taken by the robot 202, 204 on the grid 100. This routeplanning step is not, however, the subject of the present application. The controlling may comprise a data processing system (e.g., processing system 400) sending an instruction or series of instructions to the robot 202, 204 and / or a data processing system (e.g., a data processing system on the robot 202, 204) (directly) controlling the drive system of the robot 202, 204.Parameters, identifiers and indicators

[0062] In some examples, at least one of the group identifier, the task availability parameter, the group availability parameter, the explicit sequence indicator or the default sequence indicator is numeric. For implementation reasons, it maybe preferable to assign numerical values that have a well-defined sequence, in particular for the sorting and comparison operations. It will be appreciated however, that it is not necessary for these indicators and parameters to be numeric in order to have a well- defined ordering. They could, for example, be binary flags indicating ‘available’ or ‘not available’, alphabetical or some alphanumeric values depending on the implementation.

[0063] Specifically, at least one of the group identifier, task availability parameter, the group availability parameter, the explicit sequence indicator or the default sequence indicator maybe an integer. This may make the method computationally simpler to implement and the values themselves easier to store.

[0064] In some examples, the default sequence indicator may be less than any of the explicit sequence indicators. For example, any values for the sequence indicator less than a threshold indicate that the sequence is not required (default sequence indicator). Conversely, the default sequence indicator maybe more than any of the explicit sequence indicators. When represented by numeric ranges which define the default sequence indicator and explicit sequence indicator, those ranges should not overlap with each other.

[0065] As in the example with reference to Figs 5A, 5B, 6A, 6B and 6C, the default sequence indicator maybe o, and each of the explicit sequence indicators maybe greater than o (e.g., at least 1). This means that the explicit sequence indicators are non-zero and maybe easily sorted. This can make implementation of the method computationally simpler and more efficient.

[0066] At step S100, the tasks maybe already grouped or at step S105, groups maybe formed. Forming the plurality of groups may include assigning at least one of a sequence indicator or a unique group identifier to each of the groups. As in the exampleabove, a unique group identifier maybe assigned (item number) and indicates which tasks should be grouped together. All of the tasks in the same group may have the same explicit sequence indicator. All of the tasks placed in the same group may have the default sequence indicator. From a warehouse point of view, the group identifier may correspond with a customer order number for products which should all be packed in the same shipping package.

[0067] Any of the steps of the method of Fig. 7 may be repeated. For example, if the task availability parameters change over time, the tasks maybe re-sorted according to the new values, and thus steps S110 to S145 maybe repeated. Similarly, new tasks may be received, and steps S100-S145 maybe repeated.Availability parameters

[0068] In some examples, the task availability parameter of each task is determined based on a position of the respective bin. As above, the task availability parameter is an indication of how available the respective bin is for the task to be carried out. A bin which is further away from the port at which it is required, or further away from the robot may therefore be given an availability parameter that reflects this. A higher numeric value of the task availability parameter may reflect a more available bin or, as in the above example, a higher numeric value of the task availability parameter may reflect a less available bin.

[0069] In some examples, other information about the bin may additionally or alternatively be used to inform the availability parameter. For example, a bin being inspected at a port maybe unavailable for a differing amount of time depending on the operation being carried out on the bin at the port.

[0070] The task availability parameter of each task may additionally or alternatively be determined based on the position of the respective bin with respect to the one of the at least one robots. For example, in a system in which the bins are arranged in vertical stacks, the task availability parameter may be given a higher value the further down the stack the respective bin is positioned. Or, even if the respective bin is at the top of the stack, it may still be a given physical distance below the grid too on which the robot operates. As such, it will take longer for the robot to lift up out of the grid and the availability is accordingly higher (reflecting a less available bin).

[0071] In some examples the task availability parameter of each task is additionally or alternatively determined based on an amount of time for the bin tobecome available to the one of the at least one robots. For example, if a bin is currently at a port, or outside of the grid for another reason, the availability parameter may reflect the amount of time it is expected to be before the task can be completed.

[0072] The task availability parameter of each task may additionally or alternatively be determined based on a vertical position of the respective bin with respect to a rail system 116 of the automated storage and retrieval system. As described above, in a system with vertical stacks of bins, the availability of the bins for a task maybe dictated by the position within the stack 102.

[0073] The task availability parameter of each task may additionally or alternatively be determined based on a number of bins 112 between the respective bin and a rail system 116 of the automated storage and retrieval system. If there are a number of bins on top of the respective bin, more digging will be required to retrieve the bin, and it is therefore less available to the robot to carry out the task.

[0074] In some examples therefore the robot operates on a rail system above a plurality of stacks 102, of bins 112.

[0075] The stacks may be vertical stacks as described above, but could be horizontal stacks with robots having to dig inward to access bins.

[0076] The group availability parameter determined at step S110 may be based on an average of the task availability parameters of each of the task(s) in the group. The group availability parameter a represents of all of the tasks in the group and any suitable amalgamation of the task availability parameters maybe used. The group availability parameter may therefore be the mean of the tasks in the group. It may otherwise be a median or mode of the task availability parameters. In some implementations a root mean squared (RMS) average of the task availability parameters in the group maybe used. In some implementations, the group availability parameter may be the highest or lowest of the task availability parameters of each of the task(s) in the group. The exact method of calculating the group availability parameter may therefore be decided dependent on the system in which the present method is implemented.Hardware and software implementations

[0077] The methods described herein may be performed by a data processing system configured to perform any of the methods. The data processing system may comprise any of the components of processing system 400 shown in Fig. 4, such as oneor more processors 402 configured to perform any of the methods. The data processing system maybe on board a robot 202, 204. The method(s) maybe split so that different steps are performed by different data processing systems. Any of the steps of the method(s) may for example be performed in a cloud computing environment.

[0078] The methods may be performed by a data processing system configured to execute instructions stored on a computer-readable medium, which maybe transitory or non-transitory.

[0079] The data processing system may form part of an automated storage and retrieval system, which may in turn comprise any of the above robot(s), the bin for at least one of the tasks; and / or the storage grid.Alternative approach to ordering tasks

[0080] Present day solutions for deciding which containers to choose to go to a port in order to be picked for items in an order placed by, e.g., a customer takes into account several aspects and weighs them in order to try to pick the container and the container handling vehicle with the shortest handling time from placed order to finished picking. However, there are a lot of containers and a lot of container handling vehicles to handle a lot of items to be picked for a lot of orders so the way to organize which container to be picked and transported to the ports has a constant room for improvement.

[0081] In some approaches, this problem is solved by grouping tasks into lists based in either the order value, or the item value. If the order value is present, then we would sort the lists in accordance to the order value. If the order value is present, then the same value for the order value based on the item value and then sort these sub lists based on the penalty value for tasks, such that tasks with the same value for the item value are together, but the whole sub group is sorted among other subgroups such that the sub group with the lowest average penalty value is placed first. Similarly, if the order value is not present, we would sort the lists of tasks with the same value for the item value based on the average penalty value.

[0082] Fig. 8 describes a method of sorting tasks that have an item value and / or a order value into task groups. The item value and the order value put restrictions on how the containers should be presented in the port. The new method of sorting the tasks in task groups presents tasks that provide full flexibility for tasks with the value o for either of these properties. In this way the system presents the most available tasks first.

[0083] The method for sorting the is comprised of creating a list of elements to represent the task queue, where tasks with the same non-zero value for the item value are placed in the same element. Further, sorting the list of elements by the order value.

[0084] Sort a part of the list of elements including all the elements with the value o for the order value and all the elements with the lowest non-zero value for the order value, based on the average penalty value of the element.

[0085] For each present order value greater than the lowest one, sort a part of the list of the elements, starting with the first element with the value o that was previously sorted later than any elements with the respective non-zero value for the order value.

[0086] Send a container handling vehicle to pick up the container that is most readily available first.

[0087] Using this two-step comparison function that first compares tasks based on the order value, and then compared them using the penalty value that is based in the degree of how available the containers are. Instead, the iterative sorting process allows some tasks to flow further back in the resulting order. The end goal is to present tasks on containers that are readily available first, while less available containers get more time to be prepared thus it seems more important to select the most available tasks as early as possible rather than select the least available ones last. This process is to allow full flexibility in terms of tasks with the value o for either the item or order properties.

[0088] An example of the penalty score put on tasks used in this invention is that the central computer system estimates the time it takes from the order to pick up a container is given until that container is delivered at the port. The longer time it takes the higher the penalty score. The penalty score is the time it takes from the order to pick up the container is given until the container is delivered at port. So hence the lowest penalty score is picked first.

[0089] Examples of the present disclosure are set out below.

[0090] There is provided a method of delivering storage containers to a port in an automated storage and retrieval system comprising a plurality of container handling vehicles and a framework structure forming a three-dimensional storage grid structure for storing storage containers for storing items, and where the framework structure comprises a rail system, the rail system providing available routes for the container handling vehicles handling and transferring the storage containers to and from the storage columns, and wherein the at least one container handling vehicle comprises afirst set of wheels configured to move the container handling vehicle along a first horizontal direction of the grid-based rail system and a second set of wheels configured to move the container handling vehicle along a second horizontal direction of the gridbased rail system, the second direction being perpendicular to the first direction, the movement of the container handling vehicles being controlled by a central computer system comprising a list of tasks, called a task group, wherein each task has a container ID to be presented to a port, each task has a first property and a second property, and the first and the second properties are weighted and are arranged in tasks and wherein the method performed by the central computer system comprises the following steps: creating a list of tasks representing the task group; placing tasks with the same non-zero weighted value for the first property in the same task; sorting the list of tasks by the second property; sorting a part of the list of tasks including all the tasks with the value o for the second property and all the tasks with the lowest non-zero value for the second property, based on a penalty value of the task; and sorting the top half of the task subgroup a part of the list of the tasks for each current order value greater than the lowest one, starting with the first task with the value o allocating a container handling vehicle to pick up a container that is most readily available first.

[0091] Optionally, the first property is the item value.

[0092] Optionally, items are sorted after their relevance in orders.

[0093] Optionally, the second property is the order value.

[0094] Optionally, orders are sorted after the availability of the containers.

[0095] Optionally, tasks are allocated to container handling vehicles based on the containers that have a lower penalty value first.

[0096] Optionally, the container handling vehicle is allocated to the container with the lowest combined penalty score of both item value and order value.

[0097] Optionally, the combined penalty score of the task is dependent on the availability of the container.

[0098] Optionally, using an iterative sorting process to allow some tasks to flow further back in the resulting order.

[0099] There is also provided a central computer system in an automated storage and retrieval system for ordering tasks in a task group wherein the automated storage and retrieval system comprising a plurality of container handling vehicles and aframework structure forming a three-dimensional storage grid structure for storing storage containers for storing items, and where the framework structure comprises a rail system, the rail system providing available routes for the container handling vehicles handling and transferring the storage containers to and from the storage columns, and wherein the at least one container handling vehicle comprises a first set of wheels configured to move the container handling vehicle along a first horizontal direction of the grid-based rail system and a second set of wheels configured to move the container handling vehicle along a second horizontal direction of the grid-based rail system, the second direction being perpendicular to the first direction, the movement of the container handling vehicles being controlled by a central computer system comprising a list of tasks, called a task group wherein each task has a container number to be presented to a port, each task has a first property and a second property, and the first and the second properties are weighted and are arranged in tasks and the system being characterized in that a central computer system is configured to create a list of tasks representing a task group, place tasks with the same non-zero weighted value for the first property in the same task, sort the list of tasks by the second property, sort a part of the list of tasks including all the tasks with the value o for the second property and all the tasks with the lowest non-zero value for the second property, based on a penalty value of the task, sort a part of the list of the tasks for each present order value greater than the lowest one, starting with the first task with the value o, and to allocate a container handling vehicle to pick up a container that is most readily available first.

[0100] Optionally, the first property is an item value where items are sorted after their relevance in orders.

[0101] Optionally, a second property is an order value where orders are sorted after the availability of the containers.

[0102] Optionally, a container handling vehicle is allocated to the tasks on the containers that are readily available first.

[0103] Optionally, the container handling vehicle is allocated by the central computer system to the task on the containers with the lowest combined penalty score.

[0104] Optionally, the penalty score of the task is dependent on the availability of the container.

[0105] There is also provided a computer program product that when executed in a processor of a central computer system of an automated storage and retrieval system isarranged to sorting order of tasks in a task group for performing the steps of: creating a list of tasks representing a task queue, placing tasks with the same non-zero weighted value for a first property in the same task sorting the list of tasks by a second property, sorting a part of the list of tasks including all the tasks with the value o for the second property and all the tasks with the lowest non-zero value for the second property, based on a penalty value of the task, sorting a part of the list of the tasks for each current order value greater than the lowest one, starting with the first task with the value o.

[0106] Further examples of the present disclosure are set out in the following numbered clauses.1. A method of delivering storage containers to a port in an automated storage and retrieval system comprising a plurality of container handling vehicles and a framework structure forming a three-dimensional storage grid structure for storing storage containers for storing items, and where the framework structure comprises a rail system, the rail system providing available routes for the container handling vehicles handling and transferring the storage containers to and from the storage columns, and wherein the at least one container handling vehicle comprises a first set of wheels configured to move the container handling vehicle along a first horizontal direction of the grid-based rail system and a second set of wheels configured to move the container handling vehicle along a second horizontal direction of the grid-based rail system, the second direction being perpendicular to the first direction, the movement of the container handling vehicles being controlled by a central computer system comprising a list of tasks, called a task group, wherein each task has a container ID to be presented to a port, each task has a first property and a second property, and the first and the second properties are weighted and are arranged in tasks and wherein the method performed by the central computer system comprises the following steps:• creating a list of tasks representing the task group;• placing tasks with the same non-zero weighted value for the first property in the same task;• sorting the list of tasks by the second property;• sorting a part of the list of tasks including all the tasks with the value o for the second property and all the tasks with the lowest non-zero value for the second property, based on a penalty value of the task; andsorting the top half of the task sub-group a part of the list of the tasks for each current order value greater than the lowest one, starting with the first task with the value o.• allocating a container handling vehicle to pick up a container that is most readily available first.2. The method according to clause 1, wherein the first property is the item value.3. The method according to clause 2 where items are sorted after their relevance in orders.4. The method according to clause 1 or 2, wherein the second property is the order value.5. The method according to clause 4 where orders are sorted after the availability of the containers.6. The method according to any of the preceding clauses, wherein tasks are allocated to container handling vehicles based on the containers that have a lower penalty value first.7. The method according to clause 6, the container handling vehicle is allocated to the container with the lowest combined penalty score of both item value and order value.8. The method according to clause 6 or 7, wherein the combined penalty score of the task is dependent on the availability of the container.9. The method according to clause 1 wherein using an iterative sorting process to allow some tasks to flow further back in the resulting order.10. A central computer system in an automated storage and retrieval system for ordering tasks in a task group wherein the automated storage and retrieval system comprising a plurality of container handling vehicles and a framework structure forming a three-dimensional storage grid structure for storing storage containers for storing items, and where the framework structure comprises a rail system, the rail system providing available routes for the container handling vehicles handling and transferring the storage containers to and from the storage columns, and wherein the at least one container handling vehicle comprises a first set of wheels configured to move the container handling vehicle along a first horizontal direction of the grid-based rail system and a second set of wheels configured to move the container handling vehicle along a second horizontal direction of the grid-based rail system, the second direction beingperpendicular to the first direction, the movement of the container handling vehicles being controlled by a central computer system comprising a list of tasks, called a task group wherein each task has a container number to be presented to a port, each task has a first property and a second property, and the first and the second properties are weighted and are arranged in tasks and the system being characterized in that a central computer system is configured to create a list of tasks representing a task group, place tasks with the same non-zero weighted value for the first property in the same task, sort the list of tasks by the second property, sort a part of the list of tasks including all the tasks with the value o for the second property and all the tasks with the lowest non-zero value for the second property, based on a penalty value of the task, sort a part of the list of the tasks for each present order value greater than the lowest one, starting with the first task with the value o, and to allocate a container handling vehicle to pick up a container that is most readily available first.11. The system according to clause 7, wherein the first property is an item value where items are sorted after their relevance in orders.12. The system according to clause 7 or 8, wherein a second property is an order value where orders are sorted after the availability of the containers.13. The system according to any of the clauses 7-9, wherein a container handling vehicle is allocated to the tasks on the containers that are readily available first.14. The system according to any of clauses 8 or 9, wherein the container handling vehicle is allocated by the central computer system to the task on the containers with the lowest combined penalty score.15. The system according to any of clauses 8 to 10, wherein the penalty score of the task is dependent on the availability of the container.16. Computer program product that when executed in a processor of a central computer system of an automated storage and retrieval system is arranged to sorting order of tasks in a task group for performing the steps of:• creating a list of tasks representing a task queue,• placing tasks with the same non-zero weighted value for a first property in the same task,• sorting the list of tasks by a second property,• sorting a part of the list of tasks including all the tasks with the value o for the second property and all the tasks with the lowest non-zero value for the second property, based on a penalty value of the task,• sorting a part of the list of the tasks for each current order value greater than the lowest one, starting with the first task with the value o• allocating a container handling vehicle to pick up a container that is most readily available first.Penultimate comments

[0107] The examples described herein are with reference to a vertically-stacked system in which the bins 112 are arranged in vertical stacks and are lifted off the top of each stack. It will be appreciated, however, that the present method maybe applied in a system in which bins 112 are arranged in horizontal stacks, and digging is performed by moving bins 112 out of the way in a horizontal direction in order to access bins 112 stored behind them.

[0108] Unless otherwise indicated, the steps of the method(s) described herein need not be performed in the order set out above, and maybe performed in any order. For example, steps S105 and S110 maybe performed before step S100 (i.e., the tasks may be formed into groups and assigned a group availability parameter, and then transmitted to a device performing step S100). As another example, step S120 maybe performed at any point after step S105 (i.e., the set of unsequenced groups can be formed once the groups are formed). As yet another example, step S115 maybe performed after step S120 (i.e., the sorted set of sequenced groups maybe formed after the set of unsequenced groups).

[0109] Similarly, unless otherwise indicated, the steps of the method(s) described herein maybe omitted, combined or performed in parallel. For example, the ordered set of groups may go through further processing before the tasks are executed at step S145. As another example, the forming of the set of sequenced groups and the forming of the set of unsequenced groups maybe performed in parallel. As yet another example, the tasks received in step S100 may already be formed in groups, and so step S105 maybe omitted. As yet another example, the method may output an ordered set of groups to be passed to another system to execute, and so step S145 maybe omitted.

[0110] Further examples of the present disclosure are set out below.[oom] There is provided a method of ordering tasks for at least one robotic vehicle in an automated storage and retrieval system.

[0112] Optionally, the method comprises receiving a plurality of groups of tasks each comprising one or more tasks to be executed consecutively.

[0113] Optionally, each task being to retrieve a respective container in the automated storage and retrieval system using one of the at least one robotic vehicles.

[0114] Optionally, each task having a task availability parameter indicative of an availability of the respective container to the one of the at least one robotic vehicles.

[0115] Optionally, at least one of the groups being a sequenced group having a respective explicit sequence indicator indicating a sequence in which the task(s) of the group should be executed with respect to the task(s) of any other sequenced group, and at least one of the groups being an unsequenced group having a default sequence indicator indicating that the task(s) of the group maybe executed in any order with respect to the task(s) of other groups.

[0116] Optionally, the method further comprises determining, for each group, a group availability parameter representative of the task availability parameter(s) of each of the task(s) in the group.

[0117] Optionally, the method further comprises forming a sorted set of sequenced groups by sorting the sequenced groups by explicit sequence indicator and, if multiple groups have a same explicit sequence indicator, by group availability parameter and forming a set of unsequenced groups from the unsequenced groups.

[0118] Optionally, the method further comprises determining, from the sorted set of sequenced groups and the set of unsequenced groups, an ordered set of groups by interspersing the unsequenced groups among the sequenced groups according to group availability parameter, where an unsequenced group is placed behind a given sequenced group when the group availability parameter of the unsequenced group indicates less availability than the group availability parameter of the given sequenced group.

[0119] Optionally, the method further comprises determining, from the sorted set of sequenced groups and the set of unsequenced groups, an ordered set of groups by interspersing the unsequenced groups among the sequenced groups according to group availability parameter, where an unsequenced group is placed ahead of a given sequenced group when the group availability parameter of the unsequenced groupindicates more availability than the group availability parameter of the given sequenced group.

[0120] Optionally, the method further comprises determining, from the sorted set of sequenced groups and the set of unsequenced groups, an ordered set of groups by, for each given sequenced group in the sorted set of sequenced groups: comparing the group availability parameter of the given sequenced group to the group availability parameter of at least one of the set of unsequenced groups; and placing, behind the given sequenced group in the ordered set of groups, the at least one of the set of unsequenced groups having a group availability parameter that indicates less availability than the group availability parameter of the given sequenced group.

[0121] Optionally, the method further comprises determining, from the sorted set of sequenced groups and the set of unsequenced groups, an ordered set of groups by, for each given sequenced group in the sorted set of sequenced groups: comparing the group availability parameter of the given sequenced group to the group availability parameter of at least one of the set of unsequenced groups; and placing, ahead of the given sequenced group in the ordered set of groups, the at least one of the set of unsequenced groups having a group availability parameter that indicates more availability than the group availability parameter of the given sequenced group.

[0122] Optionally, the method further comprises determining, from the sorted set of sequenced groups and the set of unsequenced groups, an ordered set of groups by, for each given sequenced group in the sorted set of sequenced groups: comparing the group availability parameter of the given sequenced group to the group availability parameter of at least one of the set of unsequenced groups; and respectively placing, ahead of and behind the given sequenced group in the ordered set of groups, the at least one of the set of unsequenced groups having a group availability parameter that indicates more and less availability than the group availability parameter of the given sequenced group.

[0123] Optionally, further comprising controlling the at least one vehicles of the automated storage and retrieval system to execute the tasks, in sequence, according to the ordered set of groups.

[0124] Optionally, the placing further comprises sorting the unsequenced groups by group availability parameter.

[0125] Optionally, at least one of the task availability parameter, the group availability parameter, the at least one explicit sequence indicators or the default sequence indicator is numeric.

[0126] Optionally, at least one of the task availability parameter, the group availability parameter, the at least one explicit sequence indicators or the default sequence indicator is an integer.

[0127] Optionally: the default sequence indicator is less than any of the at least one explicit sequence indicators; or the default sequence indicator is more than any of the at least one explicit sequence indicators.

[0128] Optionally, the default sequence indicator is o, and each of the at least one explicit sequence indicators is greater than o.

[0129] Optionally, further comprising, prior to the receiving, receiving the task(s) of each of the groups, forming the plurality of groups, and assigning at least one of a sequence indicator or a unique group identifier to each of the groups.

[0130] Optionally, the task availability parameter of each task is determined based on a position of the respective container.

[0131] Optionally, the position of the respective container with respect to the one of the at least one robotic vehicles.

[0132] Optionally, the task availability parameter of each task is determined based on an amount of time for the respective container to become available to the one of the at least one robotic vehicles.

[0133] Optionally, the task availability parameter of each task is determined based on at least one of: a vertical position of the respective container with respect to a rail system of the automated storage and retrieval system; and a number of containers between the respective container and a rail system of the automated storage and retrieval system.

[0134] Optionally, the robotic vehicle operates on a rail system above a plurality of stacks of containers.

[0135] Optionally, the group availability parameter is determined based on an average of the task availability parameters of each of the task(s) in the group.

[0136] There is provided a data processing system configured to perform any of the methods described herein.

[0137] There is provided a computer-readable medium comprising instructions which, when executed by a data processing system, cause the data processing system to perform any of the methods described herein.

[0138] There is provided an automated storage and retrieval system comprising at least one of a data processing system or at least one robotic vehicle, the system being configured to perform any of the methods described herein.

[0139] It is to be understood that the above description is intended to be illustrative, and not restrictive. Many other implementations will be apparent to those of skill in the art upon reading and understanding the above description. Although the present disclosure has been described with reference to specific example implementations, it will be recognized that the disclosure is not limited to the implementations described, but can be practiced with modification and alteration within the spirit and scope of the appended claims. Accordingly, the specification and drawings are to be regarded in an illustrative sense rather than a restrictive sense. The scope of the disclosure should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.

Claims

CLAIMS1. A method of ordering tasks for at least one robotic vehicle in an automated storage and retrieval system, comprising: receiving a plurality of groups of tasks each comprising one or more tasks to be executed consecutively, each task being to retrieve a respective container in the automated storage and retrieval system using one of the at least one robotic vehicles and each task having a task availability parameter indicative of an availability of the respective container to the one of the at least one robotic vehicles, at least one of the groups being a sequenced group having a respective explicit sequence indicator indicating a sequence in which the task(s) of the group should be executed with respect to the task(s) of any other sequenced group, and at least one of the groups being an unsequenced group having a default sequence indicator indicating that the task(s) of the group maybe executed in any order with respect to the task(s) of other groups; determining, for each group, a group availability parameter representative of the task availability parameter(s) of each of the task(s) in the group; forming a sorted set of sequenced groups by sorting the sequenced groups by explicit sequence indicator and, if multiple groups have a same explicit sequence indicator, by group availability parameter; forming a set of unsequenced groups from the unsequenced groups; and determining, from the sorted set of sequenced groups and the set of unsequenced groups, an ordered set of groups by interspersing the unsequenced groups among the sequenced groups according to group availability parameter, where an unsequenced group is placed behind a given sequenced group when the group availability parameter of the unsequenced group indicates less availability than the group availability parameter of the given sequenced group.

2. The method of claim 1, further comprising controlling the at least one vehicles of the automated storage and retrieval system to execute the tasks, in sequence, according to the ordered set of groups.

3. The method of any preceding claim, wherein the forming of the set of unsequenced groups further comprises sorting the unsequenced groups by group availability parameter.

4. The method of any preceding claim, wherein at least one of the task availability parameter, the group availability parameter, the explicit sequence indicator or the default sequence indicator is numeric.

5. The method of claim 4, wherein at least one of the task availability parameter, the group availability parameter, the explicit sequence indicator or the default sequence indicator is an integer.

6. The method of any preceding claim, wherein: the default sequence indicator is less than any of the at least one explicit sequence indicators; or the default sequence indicator is more than any of the at least one explicit sequence indicators.

7. The method of claim 6, wherein the default sequence indicator is o, and each of the at least one explicit sequence indicators is greater than o.

8. The method of any preceding claim, further comprising, prior to the receiving, receiving the task(s) of each of the groups, forming the plurality of groups, and assigning at least one of a sequence indicator or a unique group identifier to each of the groups.

9. The method of any preceding claim, wherein the task availability parameter of each task is determined based on a position of the respective container, and optionally, the position of the respective container with respect to the one of the at least one robotic vehicles.

10. The method of any preceding claim, wherein the task availability parameter of each task is determined based on an amount of time for the respective container to become available to the one of the at least one robotic vehicles.

11. The method of any preceding claim, wherein the task availability parameter of each task is determined based on at least one of: a vertical position of the respective container with respect to a rail system of the automated storage and retrieval system; and a number of containers between the respective container and a rail system of the automated storage and retrieval system.

12. The method of any preceding claim, wherein the robotic vehicle operates on a rail system above a plurality of stacks of containers.

13. The method of any preceding claim, wherein the group availability parameter is determined based on an average of the task availability parameters of each of the task(s) in the group.

14. A data processing system configured to perform the method of any preceding claim, or a computer-readable medium comprising instructions which, when executed by a data processing system, cause the data processing system to perform the method of any preceding claim.

15. An automated storage and retrieval system comprising at least one of a data processing system or at least one robotic vehicle, the automated storage and retrieval system being configured to perform the method of any of claims 1 to 13.