Controlling a vehicle
Virtual highways in automated storage and retrieval systems address congestion by guiding vehicles on optimal routes, enhancing efficiency and reducing energy consumption.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- AUTOSTORE TECH AS
- Filing Date
- 2024-01-22
- Publication Date
- 2026-05-26
AI Technical Summary
Conventional automated storage and retrieval systems experience congestion due to overlapping vehicle routes, leading to reduced efficiency and increased energy consumption as vehicles wait for each other, especially when multiple vehicles operate across a large grid.
Implementing virtual highways within the grid to guide vehicle routes, using cost functions that encourage high-speed travel on these highways and discourage interactions with other vehicles, thereby reducing congestion and energy consumption.
The use of virtual highways optimizes vehicle routes, minimizing congestion and energy use, allowing vehicles to complete jobs more efficiently without unnecessary stops or recharges.
Smart Images

Figure 2026516830000001_ABST
Abstract
Description
Technical Field
[0001] Technical Field The present disclosure relates to controlling a vehicle. More particularly, the present disclosure relates to a method of controlling a plurality of storage and retrieval vehicles operating in an automated storage and retrieval system.
Background Art
[0002] Background Conventional storage solutions typically involve placing goods on shelves in rows within a warehouse. The shelf location for each item is recorded in inventory, and the goods are retrieved from the shelves by a stock picker. The shelves are restocked and the inventory is updated as needed when goods enter and leave the warehouse.
[0003] Warehouse operators can be assisted by robotic pickers and automated inventory management systems. In some conventional warehouse facilities, an automated conveyance system is implemented to move goods from their inventory locations to picking and / or packing stations.
[0004] An alternative to conventional warehouse facilities is an automated storage and retrieval system in which robots retrieve items from registered locations within the warehouse and deliver the items to a packing station or port. Such a system can reduce or eliminate the space required to pass between rows of shelves to access stock, thereby eliminating the need for wide aisles within the warehouse. An example of such a system involves placing goods in bins or containers configured to be stacked side by side within a three-dimensional grid. A rail system is disposed over the grid, and along the rail system, 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 deliver the containers to ports or stations around the grid to pick and pack the goods within the containers.
[0005] Robot container handling vehicles can travel at high speeds along rails in the X and Y directions, and are equipped with a control system to optimize route planning. When many vehicles are operating on the rails, the various paths taken by the vehicles may overlap or interact, causing congestion, which ultimately slows down the system due to vehicles waiting.
[0006] One known method for planning vehicle routes involves finding individual routes that bring each vehicle closer to its destination. For each vehicle, independently, it is possible to find one of the best routes it should take. However, when multiple vehicles are operating at the same time, routes may overlap. This is especially true when several vehicles are traveling across the entire range of the grid, increasing the chances of routes intersecting with other vehicles. [Overview of the project] [Means for solving the problem]
[0007] One or more aspects of the invention of this application are described in the claims.
[0008] In summary, this disclosure relates to controlling the movement of container handling vehicles by providing virtual highways on which vehicles can travel within a storage grid. When performing route planning for a job, a cost function may encourage the use of highways when appropriate, and discourage interaction with highways in other ways (e.g., crossing them). Because the cost function influences how desirable the route a vehicle should take is, traffic may be routed along highways for long journeys, and local traffic that does not require highways may avoid disrupting the flow of vehicles on highways. In this way, traffic spanning a large portion of the grid can benefit from high-speed travel without interference from other traffic performing local activities across the entire grid. By avoiding these interactions, which may lead to congestion, vehicles can avoid wasted time resulting from starting and stopping movement or waiting for other vehicles to pass. Furthermore, as high-speed vehicles start and stop less, their energy consumption is also reduced, potentially allowing them to complete more jobs without needing to recharge or refuel. [Brief explanation of the drawing]
[0009] This disclosure is described in more detail in relation to several typical embodiments shown in the accompanying drawings. [Figure 1] Figure 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 redistribute goods stored within the grid. [Figure 2] Figure 2 shows a top view of the system in Figure 1. [Figure 3A] Figure 3A shows a side view of a first robotic container handling vehicle suitable for use in the system shown in Figure 1. [Figure 3B] Figure 3B shows a side view of a second robotic container handling vehicle suitable for use in the system shown in Figure 1. [Figure 3C]Figure 3C is a perspective side view of the robot shown in Figure 3B. [Figure 4] Figure 4 shows a computing device for performing the operations described herein. [Figure 5a] Figure 5a shows a top-down view of the grid used to determine the vehicle route. [Figure 5b] Figure 5b shows a top-down view of the grid used to determine the vehicle route. [Figure 5c] Figure 5c shows a top-down view of the grid used to determine the vehicle route. [Figure 5d] Figure 5d shows a top-down view of the grid used to determine the vehicle route. [Figure 5e] Figure 5e shows a top-down view of the grid used to determine the vehicle route. [Figure 5f] Figure 5f shows a top-down view of the grid used to determine the vehicle route. [Figure 5g] Figure 5g shows a top-down view of the grid used to determine the vehicle route. [Figure 5h] Figure 5h shows a top-down view of the grid used to determine the vehicle route. [Figure 6] Figure 6 shows the steps involved in determining the vehicle route. [Figure 7a] Figure 7a shows the steps involved in determining the vehicle route. [Figure 7b] Figure 7b shows the steps involved in determining the vehicle route. [Figure 8] Figure 8 shows the steps involved in determining the vehicle route. [Modes for carrying out the invention]
[0010] Detailed explanation Overview of the automated storage and retrieval system Referring to the embodiment shown in Figure 1, the grid 100 comprises a frame formed by a plurality of substantially linear adjacent vertical columns 102 formed between vertical frame members 104 and extending in the X and Y directions 108, 110. The grid elements may be manufactured from any suitable material; for example, the frame members may be formed from extruded aluminum. The storage containers or bins 112 are stacked on top of each other in the Z direction 114 within the columns 102, preferably in a self-supporting manner, forming the storage volume of storage cells for each bin 112 extending in the X, Y, and Z directions 108, 110, 114.
[0011] A rail system or network 116 is formed on top of the grid 100 and comprises a pair of vehicle rails or tracks 118a, 118b and 120a, 120b extending in the X and Y directions 108, 110, respectively. A robotic container handling vehicle or robot 122, which can be of a range of size, shape, and function, is provided and configured to run on the rails 118, 120 to transport bins 112 in both the X and Y directions 108, 110. The robot 122 is further configured to lift the bins 112 out of / lower them into the column 102 in the Z direction 114, and the bins 112 are guided by vertical frame members 104 as needed. The robot 122 accesses the bins 112 through an access opening 124 above the column 102 formed between the rails 118, 120.
[0012] Some of the columns 102 may be used for alternative purposes other than bin storage. For example, the port columns 126, 128 comprise ports or access columns that enable the transfer of bins 112 within and / or outside the grid 100. The port columns 126, 128 provide vertical channels for lifting the bin 112 from the ports 130, 132 or lowering the bin 112 into the ports. The ports 130, 132 are shown in FIG. 1 at the lowest level of the grid, but the ports can be located at any vertical position along the column. Each of the port columns 126, 128 can be assigned for removing ("dropping off") the bin 112 from the grid 100 and / or returning or delivering ("picking up") it to the grid 100. Thus, the ports 130, 132 are configured to enable the bin 112 to be removed and (horizontally) re-introduced into the associated port column. Thus, the ports 130, 132 can include a conveyor (not shown in FIG. 1) along which the bin 112 can be lowered and transported horizontally from the port column. The port columns 126, 128 include openings or access points through which the bin 112 can enter and exit the column.
[0013] The bin 112 can be transported by the robot 122 along the upper part of the grid 100 to and / or from the port columns 126, 128 and from the ports 130, 132 to locations outside the grid 100, which locations can be access stations (not shown) for processing the bin 112 or its contents, such as a picking station for adding contents to or removing contents from the bin 112. In an alternative example (not shown), the bin 112 can be transported to ports of another grid at the same or different level or to an external facility. The transport of the bin 112 to and from the ports 130, 132 can be by any suitable means (not shown) including a conveyor, transport vehicle, lift or robot.
[0014] Referring to the embodiment shown in FIG. 2, the X-Y configuration 200 of the rail system 116 can be seen in more detail with different types of robots 202, 204. The rail system includes rails 206 that define, between them, vertical column access openings 124 for accessing the bins 112. The rails 206 can be of any suitable type to enable the travel of the robots 202, 204 in the X and Y directions 108, 110, including a grooved rail (not shown) for receiving vehicle wheels or a projecting rail for engaging wheel recesses. Each rail 206 may comprise a single track or a plurality of parallel tracks in each of the X and Y directions 108, 110.
[0015] A first "cantilever beam" 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 houses operating equipment (not shown) for the robot 202, including a drive system, a power system, and a control system. The wheels 302 enable the movement of the robot 202 in one of the X and Y directions, and a further set of wheels (not visible in this figure) enables movement in the other of the X and Y directions along the respective rail or track 206 in both cases. It is possible to raise or lower one or both sets of wheels to enable selective engagement of the rail for movement in a desired direction. The lifting device 304 includes a cantilever beam element 306 extending in the X-Y plane from the upper end of the body 300 and a gripping device 308 that is vertically movable from the cantilever beam element 306. The gripping device 308 is configured to grip or engage the bin 112, for example, by gripping a part of the bin 112 or by passively or actively engaging an appropriately configured part of the bin 112.
[0016] A second "internal cavity" type robot 204, shown in detail in Figure 3B, includes an internal cavity 310 within a body 300 as an alternative to a cantilever lifting system, and a lifting device 312 including a gripping device (not shown) is located within this internal cavity. In this case, the body 300 includes the robot's operating equipment and a storage space for one or more bins 112 for use while transporting, for example, bins 112.
[0017] Figure 3C shows a perspective side view of the robot in Figure 3B, showing the first set of wheels 302 from Figure 3B. A further set of wheels, referenced above but not shown in Figure 3B, is shown as wheels 303 in Figure 3C. The further set of wheels 303 is positioned perpendicular to the first set of wheels 302 so that the robot 204 can roll in the X and Y directions on the first set of wheels 302 and the second set of wheels 303, respectively. The first set of wheels 302 and the second set of wheels 303 shown in Figure 3C may be configured to be lowered independently to engage with the rails (or raised to disengage from the rails) so that the robot 202 can move in the X and Y directions across the rail arrangement shown in Figure 2. The perspective view shown in Figure 3C is a perspective view of the robot 204 in Figure 3B, but it will be understood that a similar vertical wheel arrangement may be applied to the robot 202 in Figure 3A.
[0018] Control and monitoring systems The control and monitoring of the automated storage and retrieval system, including monitoring and storing bin locations, as well as controlling bin delivery, retrieval, and transport, and robot routing and collision avoidance, is performed by a control system shown in Figure 4 that communicates with the robot and / or other controllable system components. The control can be performed locally or remotely and may be performed by a processing system, for example, in the form of a computing device. Thus, the methods described herein may form all or part of a computer implementation method or a system configured to perform the methods described herein.
[0019] Referring to Figure 4, a processing system 400 suitable for performing the methods described herein will be described. Figure 4 shows a block diagram of one implementation of the processing system 400 in the form of a computing device, in which a set of instructions can be executed to cause the computing device to perform any one or more of the methods described herein. In some implementations, the computing device may be connected to (e.g., networked) other machines on a local area network (LAN), intranet, extranet, or internet. The computing device may operate as a server or 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 may be a personal computer (PC), tablet computer, set-top box (STB), personal digital assistant (PDA), mobile phone, web appliance, server, network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) specifying the actions to be taken by that machine. Furthermore, although only a single computing device is illustrated, the term “computing device” shall also be interpreted to include any set of machines (e.g., computers) that individually or collectively execute a set of instructions (or sets of instructions) to perform any one or more of the methods described herein.
[0020] Examples of the processing system 400 include a processor 402, 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.), static memory 406 (e.g., flash memory, static random access memory (SRAM), etc.), and secondary memory (e.g., data storage device 418), all of which communicate with each other via the bus 430.
[0021] Processor 402 represents one or more general-purpose processors, such as microprocessors or central processing units. More specifically, processor 402 may be a composite instruction set computing (CISC) microprocessor, a reduced instruction set computing (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, a processor that implements other instruction sets, or a processor that implements a combination of instruction sets. Processor 402 may also be one or more dedicated processors, such as an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a digital signal processor (DSP), or a network processor. Processor 402 is configured to execute processing logic (instructions 422) for performing the operations and steps described herein.
[0022] The processing system 400 may further include a network interface device 408. The processing system 400 may also include any of the following: 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).
[0023] It will be clear that some features of the processing system 400 shown in Figure 4 may not be necessary. For example, the processing system 400 may not require a display device 410 (or any associated adapter). This may be the case, for example, with certain server-side computer devices that are used solely for processing power and do not need to display information to the user. Similarly, the user input device 412 may not be necessary. In its simplest form, the processing system 400 comprises a processor 402 and main memory 404.
[0024] The data storage device 418 may include one or more machine-readable storage media (or more specifically, one or more non-temporary computer-readable storage media) 428 that store one or more sets of instructions 422 that embody one or more of the methods or functions described herein. The instructions 422 may also reside, all or at least partially, in the main memory 404 and / or processor 402 during their execution by the processing system 400, the main memory 404 and processor 402 also constitute the computer-readable storage media 428.
[0025] The various methods described herein may be implemented by computer programs. A computer program may include computer code that instructs a computer to perform one or more of the functions of the various methods described herein. Such computer programs and / or code for performing such methods may be provided on one or more computer-readable media, or more generally, on a device such as a computer on a computer program product. The computer-readable media may be temporary or non-temporary. One or more computer-readable media may be, for example, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, or a data transmission medium for downloading code, for example, over the Internet. Alternatively, one or more computer-readable media may take the form of one or more physical computer-readable media, such as semiconductors or solid-state memory, magnetic tape, removable computer diskettes, random-access memory (RAM), read-only memory (ROM), rigid magnetic disks, or optical disks such as CD-ROMs, CD-R / Ws, or DVDs.
[0026] A computer program is executable by the processor 402 to perform the functions of the system and method described herein.
[0027] In one implementation, the modules, components, and other features described herein may be implemented as individual components or integrated into the functionality of hardware components such as ASICS, FPGAs, DSPs, or similar devices.
[0028] A “hardware component” is a tangible (e.g., non-transient) physical component (e.g., a set of one or more processors) capable of performing a specific operation, and may be configured or arranged in a particular physical manner. A hardware component may include dedicated circuitry or logic that is permanently configured to perform a specific operation. A hardware component may be or include dedicated processors such as field-programmable gate arrays (FPGAs) or ASICs. A hardware component may also include programmable logic or circuitry that is temporarily configured by software to perform a specific operation.
[0029] Therefore, the term “hardware component” should be understood to include tangible entities that can be physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a particular manner or to perform the particular operations described herein.
[0030] Furthermore, modules and components can be implemented as firmware or functional circuits within hardware devices. Additionally, modules and components can be implemented in any combination of hardware devices and software components, or solely in software (e.g., code stored or otherwise embodied in machine-readable or transmission media).
[0031] Operation of the automated storage and retrieval system During operation, each bin 112 is assigned a unique identifier, which may be marked on the bin 112 using a computer-readable identifier (e.g., a barcode, quick-response code, or radio frequency identification tag) to facilitate identification of the bin 112. The database of the processing system 400 stores the location of each bin 112 and, if necessary, its contents, in relation to the unique identifier. When a bin 112 is moved (e.g., when it is retrieved from grid 100), the database is updated to record the change in its location.
[0032] If it is desired to retrieve bins 112 from grid 100, under the control of processing system 400, robots 202, 204 are routed via rail system 116 to vertical columns 102 containing storage cells, where bins 112 are positioned according to a database, and lifting devices 304, 312 are positioned (according to the type of robot) above corresponding access openings 124 adjacent to or below robots 202, 204. Robots 202, 204 lower a gripping device 308 to engage with and grasp bins 112 and lift bins 112 towards robots 202, 204. Robots 202, 204 then transport bins 112 to, for example, drop-off port columns 126, 128 for delivery to ports 130, 132 and subsequent processing outside grid 100. If the target bin 112 or designated bin 112 is below other bins in the stack, robots 202, 204, or more robots, which may be task-specific, are controlled in a “digging” operation to sequentially lift and reposition the bins above the target bin 112, either temporarily or permanently, so that they may be retrieved. It will be understood that other operations related to bin 112 can be performed in a similar manner. For example, bin 112 is delivered to be stored in grid 100 at ports 130, 132 of pickup port columns 126, 128, grasped and lifted by robots 202, 204 and delivered to the desired storage cell, with bins above the desired position being repositioned as necessary, as described above.
[0033] Specific details of the improvements Figure 5a shows a top view of the automated storage and retrieval system 500. The automated storage and retrieval system 500 includes a grid 502 of storage units 504, each storage unit 504 located in a grid location 506. The grid location 506 may be represented as X and Y coordinates, as shown in Figure 5a. Each storage unit 504 may extend out of plane into the page in the Z direction, and multiple bins or containers may be stacked on top of each other within the storage unit. For simplicity, one container handling vehicle 508 is shown in Figure 5a, but it will be understood that any number of container handling vehicles 508 may operate on the grid 502 at one time. A container handling vehicle 508 may be assigned a job that involves traveling from a first location 510 where it is located to a second location 512. In the example shown in Figure 5a, the container handling vehicle 508 is assigned a first task of traveling to the second location 512 to retrieve bins from a storage unit located at the second location 512. The retrieval of bins may be carried out for the purpose of digging up bins located downward in the Z direction, in which case the bins may be placed in a different storage unit 504 in a different grid location 506. Alternatively, the retrieval of bins from the storage unit 504 in a second location may be carried out for the purpose of transporting the bins to a port 514 for items to be picked.
[0034] Referring here to Figure 5b, the first route 516 of the container handling vehicle 508 is shown. The route 516 may be determined by any suitable route-finding algorithm, such as Dijkstra's algorithm or the A* algorithm. In the case of grid 502, each grid location 506 may be considered a node for the purposes of the route-finding algorithm, and each grid location 506 is connected to each adjacent grid location 506 by its edge. On grid 502, the vehicle 508 of the illustrated storage and retrieval system 500 is constrained to traverse the grid in either the X or Y direction at any given time. That is, the vehicle 508 in this example does not traverse grid 502 along the diagonals. Thus, in the case of grid location 506 within grid 502, grid location 506 is connected to four other nodes via four edges. In the case of grid location 506 on the outer edge of grid 502, grid location 506 is connected to three other nodes via three edges. In the case of a grid location 506 at a corner of grid 502, the grid location is connected to two other nodes via two edges. Of course, the example grid 502 is shown in the shape of a rectangle, but grid 502 may take any kind of shape that is arranged to form a grid pattern. For example, grid 502 may include gaps (e.g., when there are columns in the middle of a building), multiple corners (e.g., when the grid fills the space in a non-rectangular building), or channels (e.g., when the grid is located in two connected buildings).
[0035] To determine the path 516 shown in Figure 5b, the pathfinding algorithm may first include determining, for each connected edge, which of the candidate grid locations 506 adjacent to the first location 510 is the most promising. In the case of the A* algorithm, edges in the Y direction may be weighted, and edges in the X direction may be weighted separately. The weights may include, among other values, the distance from the second location 512. The smaller the distance from the second location 512, the smaller the weight assigned to the corresponding edge. Other values, such as whether the vehicle's drive system needs to change direction when traveling in a particular direction, may contribute to the weight. In the case shown in Figure 5b, the drive system of the vehicle 508 is already oriented in the Y direction, so the weight in the X direction is greater than the weight in the Y direction. Therefore, the preferred edges are those that precede in the Y direction. In the next step, the pathfinding algorithm repeats by evaluating the weights of all available edges of the next grid location 506 located along the Y direction. The preferred edges of each consecutive grid location 506 are evaluated until their weights become zero and / or until the vehicle 508 reaches the second location 512. In this case, the selected path is the path 516 shown in Figure 5b. However, it will be understood that other factors may be included in the weights that could result in a different path being taken. Furthermore, for each decision of a preferred edge, there may be multiple preferred options (for example, two or more routes having the same weight). The pathfinding algorithm can continue to explore one or more routes until either the first path or an optimized path is found.
[0036] Referring to Figure 5c, another job to be performed by vehicle 508 is shown. In this case, vehicle 508 starts at a first position 510. A second position 512 corresponds to a port 514 where the vehicle is to load bins so that items in the bins can be picked. A route 516 is determined between the first position 510 and the second position 512, with two straight paths that will not be interrupted by other vehicles. As depicted in Figure 5d, this may not be the case. Other vehicles 518 on grid 502, performing their own tasks and traveling along their own route 520, may cause obstruction or congestion to vehicle 508. As is clear from Figure 5d, the greater the distance that vehicle 508 needs to travel, the more likely it is to encounter other vehicles 518 on its route 516. One way to avoid congestion may involve considering route 520 when determining route 516. However, collisions may occur because each determined route may affect all other routes, and furthermore, not all routes are known at the time route 516 is determined (i.e., additional routes 520 may be added after route 516 has already been determined). According to one aspect of this disclosure, a virtual highway 522 may be defined.
[0037] Figure 5e shows an example in which a virtual highway 522 is used to calculate a route 516. The virtual highway 522 is defined as a first subset 524 of a plurality of grid locations 506. In the example shown in Figure 5e, the first subset 524 includes eight individual grid locations 506 extending in a single line in the Y direction. The first subset 524 may be predefined, for example, by a user who has determined that the locations of the first subset 524 are desirable. Alternatively, the first subset 524 may be defined based on either or both of the grid usage history and future jobs that are expected to be required. The first subset 524 may be permanent, semi-permanent, or temporary. That is, the first subset 524 may be an unchanging feature of the grid 502, or the first subset 524 may change in response to a stimulus.
[0038] The pathfinding algorithm may be prompted to utilize the virtual highway 522 by adjusting the cost or weight of using the virtual highway 522. For example, the cost or weight of traveling from one grid location in subset 524 to another grid location in subset 524 may be lower than the cost or weight of traveling from one grid location that is not part of the subset to another grid location that is not part of the subset. The cost or weight of traveling from one grid location in subset 524 to another grid location in subset 524 may be a small positive value, zero, or even a negative value, so that when determining the path 516, the pathfinding algorithm finds a lower cost to use the virtual highway 522.
[0039] It will be understood that the virtual highway 522 is oriented in a favorable direction in a single direction; that is, vehicles 508 and 518 travel only in one direction along the virtual highway 522. If two-way travel is desired or required, further virtual highways 522 oriented in opposite directions may be defined. To prevent the route-finding algorithm from determining a route oriented in the wrong way along the virtual highway 522, a high cost or weight may be applied to routes oriented in the wrong direction along the virtual highway 522, or strict conditions may be applied to prevent the virtual highway 522 from being used in the wrong direction.
[0040] To further facilitate the use of the virtual highway 522 by the route-finding algorithm, an entry point 526 to the virtual highway 522 may be defined. The entry point 526 may be defined as a waypoint along the route 516 that the vehicle 508 must take. Alternatively, the use of the entry point 526 may be further facilitated by providing a lower cost or weight for the vehicle 508 to travel closer to the entry point 526 than for the vehicle to travel further away from the entry point 526. The effect of the lower cost or weight for the vehicle 508 traveling toward the entry point 526 may be related to the proximity of the vehicle 508 to the entry point 526. That is, a vehicle 508 closer to the entry point 526 may have a lower cost or weight when traveling toward the entry point 526, but a vehicle further away from the entry point 526 may not have a lower cost or weight when traveling toward the entry point 526. In practice, the entry point may have an area of influence or radius of influence on the vehicle route 516.
[0041] It will be understood that the route 516 shown in Figure 5e preferably avoids the route 520 of other vehicles 518 operating outside the virtual highway 522, and provides a channel through which vehicles 508, which are more likely to be traveling in the same direction with other vehicle traffic, can pass. The method may further include a step of preventing or blocking the use of the virtual highway 522 by vehicles that are not using the virtual highway 522 for its intended purpose (e.g., crossing the highway). Referring to Figure 5f, we can see the avoidance of the virtual highway 522 by other vehicles 508. For clarity, the route 516 in Figure 5f is hidden. The first other vehicle 518a needs to travel across the virtual highway 522 to reach its destination on the other side of the virtual highway 522. If the route-finding algorithm is presented with a next step that enters the virtual highway 522 from the side rather than in the direction of the virtual highway 522, the cost or weight of traveling to the side of the virtual highway 522 is relatively high. Because the cost or weight of traveling laterally on the virtual highway 522 is high, a preferred route is found that extends around the upper end of the virtual highway 522. In the example shown for vehicle 518a, since the destination is directly on the other side of the virtual highway 522, the cost or weight of route 520a traveling around the virtual highway 522 is lower than the cost or weight of a route that would intersect the virtual highway 522. In another example, a second vehicle 518b is located further along the virtual highway 522 than vehicle 518a. Vehicle 518b also needs to find a route to a destination located on the opposite side of highway 522. For vehicle 518b, route 520b entering and crossing the virtual highway 522 has a relatively higher cost or weight than a similar-length route that does not cross the virtual highway 522. However, in the case of vehicle 518b, the additional cost or weight of vehicle 518b entering and crossing the virtual highway 522 is not so large that the total cost on route 520b becomes greater than that of the alternative route that bypasses the virtual highway 522.In the case of vehicle 518b shown in Figure 5f, the relative additional cost of entering and crossing the virtual highway 522 is at a level that deters the “misuse” of the virtual highway, but not at a level that prohibits crossing highway 522 when it is advantageous. Alternatively, the relative additional cost of entering and crossing the virtual highway 522 may be at a level that prohibits any specified route that would cross the virtual highway 522.
[0042] Referring to Figure 5g, a further example is shown where it may be advantageous to remove the virtual highway 522. The grid 502 in Figure 5g differs slightly from the grid shown in Figure 5f in that the grid 502 in Figure 5g has a first port 514a along a first side of the grid 502 and a second port 514b along a second side of the grid 502. At the moment shown in Figure 5g, a number of other vehicles 518 need to reach port 514b, which has a destination 532 or is located on the opposite side of the virtual highway 522. In contrast, only one vehicle 508 benefits from the virtual highway 522 in its journey to port 514a. At this point, it can be seen that the adverse effects on the cost or weight of the other vehicles 518's paths outweigh the benefits to the path of the first vehicle 508. Preferably, the virtual highway 522 may be removed in response to a situation where the additional costs of all routes negatively affected by the presence of the virtual highway 522 are greater than the total additional benefits of routes positively affected by the presence of the virtual highway 522. That is, the virtual highway 522 may no longer be defined in the route search method, the costs or weights attributable to routes due to the presence of the virtual highway 522 may be ignored, the costs or weights attributable to routes due to the presence of the virtual highway may be set to zero, or the virtual highway 522 may be completely removed.
[0043] It may be determined that the second virtual highway 534 may have a total additional benefit to the route that is greater than or equal to the benefit of the first virtual highway 522 or the benefit of the first virtual highway 522. In that case, the second virtual highway 534 may be defined. The second virtual highway 534 may be a redefinition of the first virtual highway 522, or it may be a new or different virtual highway 534. The second virtual highway 534 may be located and / or oriented differently from the first virtual highway 534. In the illustrated example, the first virtual highway 522 is oriented in the Y direction, and the second virtual highway 534 is oriented in the X direction. As shown in Figure 5h, the number of vehicles 518 having a route required to cross the grid in the X direction is greater than the number of vehicles 508 having a route required to cross the grid in the Y direction, so it is beneficial to define the second virtual highway 534 and not define the first virtual highway 522.
[0044] Referring to Figure 6, a method for controlling a plurality of container handling vehicles operating in an automated storage and retrieval system is described, the method comprising: step S100 defining a plurality of grid locations of the automated storage and retrieval system; step S105 defining a first subset of the plurality of grid locations as a virtual highway; step S110 determining a first job to be performed by a first container handling vehicle, the first job including a first location and a second location; and step S115 determining a first route between the first location and the second location. The method may further optionally include step S120 transmitting the first route to the first container handling vehicle; and further optionally, step S125 driving the first container handling vehicle according to the first route.
[0045] Referring to Figure 7a, the step of determining the first path includes: step S115a calculating a first cost to travel on the first vector from a first position to a first adjacent position based on the relative location of the first vector and the virtual highway; step S115b calculating a second cost to travel on the second vector from a first position to a second adjacent position based on the relative location of the second vector and the virtual highway; step S115c determining that the first vector is preferable to the second vector, at least in part, based on the first cost to travel and the second cost to travel; and step S115d adding the first vector to the first path.
[0046] In an example using the A* search algorithm to find a path, the following function may be minimized in each iteration that determines the cost of extending the path from a first position to any of the adjacent positions on the grid: f(n) = g(n) + h(n) Here, f is the function to be minimized, g(n) is the cost of the path from the first location to the adjacent location n, and h(n) is an estimate of the cost of the cheapest path from the adjacent location n to the second location. h(n) may be any suitable heuristic function. For example, the heuristic function may be the calculation of the straight-line or Euclidean distance from the adjacent location n to the second location. In another example, the heuristic function may be the taxi or Manhattan distance between the adjacent location n and the second location, i.e., the sum of the distances in the X and Y directions, respectively. In a further example, the heuristic function may be the calculation of the Chebyshev distance or Minkowski distance between the adjacent location n and the second location.
[0047] A vector can be thought of as a representation of the extension of a path from a first position to an adjacent position. That is, a vector encodes movement from each position to an adjacent position. This can be important, for example, when a virtual highway must be used in a specific direction. A vector can encode movement from a first position to an adjacent position by two sets of XY coordinates (e.g., grid[1,1] to grid[1,2]) or by XY coordinates and a unit direction (e.g., grid[2,2] and unit direction[1,0], or grid[2,2] and unit direction[0,-1]). Alternatively, a vector can describe movement from a first position to an adjacent position by any other suitable means, namely means describing the location and direction of travel of a vehicle.
[0048] In this example, the cost function g(n) is affected in some way by the existence of the virtual highway. However, other effects on the cost function may also exist. For example, movement from a first position to an adjacent position that requires the vehicle to change speed or direction may incur additional costs. Changes in speed or direction may require additional time or energy and can therefore be considered costs to reach the second position. In other examples, movement from a first position to an adjacent position that occurs at a speed slower than the maximum speed may incur additional costs.
[0049] In this example, the cost function g(n) may be affected by the existence of a virtual highway by one or more of the following: proximity to the highway, proximity to the highway entrance, being located on the highway, traveling toward the highway, traveling away from the highway, traveling across the highway, traveling in the direction of the highway, and traveling in the opposite direction of the highway.
[0050] It will be understood that a path can be constructed over multiple iterations of minimizing f(n) until at least a complete path is determined. In each iteration, new neighboring positions are considered by the function f(n) for the cost and heuristic of the benefit of the movement. Once the total path from the first position to the second position is determined, further paths can be computed to optimize the total path and then compared to the first total path.
[0051] Referring to Figure 7b, the step of determining the first route may optionally include calculating a third cost for traveling on the third vector from a first adjacent position to a third adjacent position based on the relative location of the third vector to the virtual highway, where the third adjacent position is adjacent to the first adjacent position. For example, the third adjacent position may be a further step beyond the first adjacent position. Further adjacent positions may be determined in further iterations of determining the first route until a complete route is determined.
[0052] Multiple grid locations may extend in a first direction and a second direction, and it will be understood that the second direction is perpendicular to the first direction. For example, the grid may be distributed across the XY plane. In this way, the grid locations may be defined by Cartesian coordinates. In this example, the vehicle is traversable in the X direction, traversable in the Y direction, and traversable between the X and Y directions. However, the methods and systems presented herein may be extended to grids of other dimensions. For example, if the vehicle can travel in the X direction, the Y direction, and a third direction at an angle intersecting the X and Y directions, the path may be determined based on travel in all three directions. The method can be easily extended to this situation by considering two adjacent locations in the X direction, two adjacent locations in the Y direction, and two adjacent locations in the third direction intersecting the X and Y directions. The method can be further extended to a fourth direction perpendicular to the third direction by further considering two adjacent locations in the fourth direction in each iteration. If a vehicle can travel diagonally, it may be more appropriate to calculate the heuristic h(n) as Chebyshev distance or Minkowski distance.
[0053] A virtual highway may be defined by a first subset of multiple grid locations. This first subset of grid locations may be located in either a first or second direction. That is, a virtual highway may be a straight highway oriented along either the first or second direction. A virtual highway may have orientation and direction; that is, a virtual highway may be one-way. If a virtual highway is one-way, the cost function in each iteration of f(n) may take into account whether the vector points to travel in the correct direction or in the wrong direction. Traveling in the wrong direction may be disadvantageous with a high cost, while traveling in the correct direction may be rewarded with a relatively low cost.
[0054] Alternatively, a first subset of multiple grid locations may be arranged to include one or more corners. That is, the virtual highway may be arranged so that vehicles traveling along the highway do not follow a straight path. The multiple grid locations may be arranged in an L-shape extending in a first and second direction so that the virtual highway circles one corner. The multiple grid locations may be arranged in a more complex shape that allows for multiple turns around multiple corners. By including corners in the virtual highway, certain locations can be avoided while benefiting from the virtual highway for pathfinding. For example, corners can be included in the virtual highway to avoid certain grid locations where a vehicle needs to retrieve a container or dig up a lower container. In other examples, obstacles such as damaged tracks, stationary vehicles, or lost tracks (e.g., if there are building columns or other structures) can benefit from a virtual highway that includes one or more corners.
[0055] When determining the cost or weight g(n), a value may be determined that is negative, zero, lower than the default travel cost, or lower than the average travel cost on multiple grid locations. A negative cost will decrease the value of g(n) so that f(n) can be lower. Similarly, a zero cost can decrease the value of g(n) so that f(n) can be lower. In another example, the cost may influence the minimization of f(n) by being lower than the default travel cost. For example, travel around a grid can generally take a default value (e.g., 1, 50, 100, or any appropriate number). If the cost is affected by the presence of a virtual highway, the cost may be somewhat lower than its default value (e.g., 0, 25, 90, or any appropriate number). By being lower than the default, the cost will result in a minimum, so the cost function can encourage the use of virtual highways. It will be understood that the cost can be a relative value because the function f(n) is minimized. Thus, a cost lower than the average travel cost around a grid, taking multiple costs into account, can encourage the use of virtual highways. In other words, route planning algorithms will encourage the use of virtual highways as long as the reduction in travel costs around the grid is lower when using virtual highways than when virtual highways do not exist.
[0056] Conversely, misuse of virtual highways can be deterred by larger cost values. Costs may be positive, zero, greater than the default travel cost, or greater than the average travel cost across multiple grid locations. Since relative costs affect the minimization of f(n), costs greater than the default cost or the average cost will discourage the use of routes that misuse highways. Misuse of virtual highways can include one or more of the following: crossing a highway, entering a highway at a point other than an entry point, and traveling along a highway in an incorrect manner.
[0057] It may be beneficial to temporarily or permanently remove a virtual highway. For example, after a virtual highway has been used for one or more routes, the needs of vehicles on the grid may differ, and the presence of the highway may negatively impact the currently required route patterns. For instance, a virtual highway may have been beneficial for a first set of routes, but now there are numerous routes that need to traverse it. In response to a decision that a virtual highway should be removed (for example, by determining that a threshold adverse impact on vehicle routes has been exceeded), the virtual highway may be removed or turned off. A virtual highway may be removed from any provision of virtual highways or ignored in the calculation of the cost function for route finding. Once a virtual highway is removed or turned off to determine one or more routes, it may be reactivated or turned on again. Alternatively, a virtual highway may be permanently removed or remain turned off indefinitely. A virtual highway may be removed or turned off in order to retrieve containers located in a first subset of multiple grid locations. In other words, a virtual highway can be removed or turned off because it covers grid locations where vehicles need to perform retrieval tasks. Alternatively, in order to remove or turn off a virtual highway, it may be redefined to include a different subset of multiple grid locations. The different subset of multiple grid locations may have some grid locations in common with the first subset of multiple grid locations, or they may not have any common grid locations. For example, the redefined or second virtual highway may be located in a completely different location, or it may be a rerouted version of the first virtual highway. For example, the entire highway may be shifted by one grid location to avoid a particular grid location, or a corner may be defined in the virtual highway to bypass a particular grid location.
[0058] The definition of a virtual highway can generally be in response to a determination that multiple jobs span the ranges of multiple grid locations, and that there are no other currently defined virtual highways across the determined range. For example, a threshold number of jobs extending from one end of a grid to the other can indicate that the existence of a virtual highway may be beneficial. If a suitable virtual highway has not already been defined, a new virtual highway can be defined. In addition to, or instead of, a threshold number of jobs, the length of the job range across the grid can trigger the definition of a virtual highway. For example, if it is determined that one or more jobs span more than 30% of the total grid range, a virtual highway can be defined. In another example, if the determined range is greater than 50% of the total grid range, a virtual highway can be defined. In yet another example, if the determined range is greater than 75% of the total grid range, a virtual highway can be defined. The greater the distance across the grid range where a route needs to be determined, the higher the probability that other routes will intersect with the route. Therefore, a threshold range for one or more jobs can be a good indicator that the existence of a virtual highway may be beneficial in reducing route congestion or collisions, and a virtual highway may be defined.
[0059] The method may be carried out by a controller. The controller may include one or more processors, which may be juxtaposed (e.g., in a single computer) or distributed (e.g., across a network, in the cloud, or across vehicles). If a vehicle has its own controller for determining routes, each controller may communicate with the main controller or with each other over the network to determine virtual highways or to receive virtual highways from the main controller or other controllers. Alternatively, each vehicle may simply operate under the direction of another controller and may not include any controller for determining routes at all.
[0060] Instructions for executing the method may be stored in a computer-readable medium. The computer-readable medium may be non-temporary.
[0061] It should be understood that the above description is intended to be illustrative and not limiting. Many other implementations will be apparent to those skilled in the art upon reading and understanding the above description. While this disclosure has been described with reference to specific exemplary implementations, it will be recognized that this disclosure is not limited to the described implementations and can be implemented with modifications and changes within the spirit and scope of the appended claims. Therefore, this specification and drawings should be considered illustrative, not limiting. Accordingly, the scope of this disclosure should be determined with reference to the appended claims, along with the entire scope of equivalents to which such claims are granted.
Claims
1. A method for controlling multiple container handling vehicles operating in an automated storage and retrieval system, To define multiple grid locations for the aforementioned automated storage and retrieval system, A first subset of the aforementioned multiple grid locations is defined as a virtual highway, Determining a first job to be performed by a first container handling vehicle, wherein the first job includes a first position and a second position, To determine the first path between the first position and the second position. Includes, Determining the first route is A first cost for traveling from a first position to a first adjacent position on a first vector is calculated based on the relative location of the first vector and the virtual highway, The second cost for traveling from the first position to the second adjacent position on the second vector is calculated based on the relative location of the second vector and the virtual highway, The determination that the first vector is preferable to the second vector is based at least in part on the first cost to travel and the second cost to travel, Adding the first vector to the first path and Methods that include...
2. The method according to claim 1, wherein determining the first path further includes calculating a third cost for traveling on a third vector from the first adjacent position to the third adjacent position, based on the relative location of the third vector and the virtual highway, the third adjacent position being adjacent to the first adjacent position.
3. The method according to any of the preceding claims, further comprising determining the first path to determine that the first path is a complete path between the first location and the second location.
4. The method according to any prior claim, further comprising transmitting the first route to the first container handling vehicle.
5. The method according to claim 4, further comprising driving the first container handling vehicle according to the first route.
6. The method according to any one of the preceding claims, wherein the plurality of grid locations extend in a first direction, and the plurality of grid locations extend in a second direction, the second direction being perpendicular to the first direction.
7. The method according to claim 6, wherein the first subset of the plurality of grid locations is arranged in either the first or second direction.
8. The method according to claim 6, wherein the first subset of the plurality of grid locations is arranged to include one or more corners, and optionally the first subset of the plurality of grid locations is arranged in an L-shape extending in the first direction and the second direction.
9. The method according to any of the preceding claims, wherein the first adjacent location is closer to the entrance point of the virtual highway than the first location is closer to the entrance point of the virtual highway, and the first cost is determined to be negative, zero, lower than the default travel cost, or lower than the average travel cost on the plurality of grid locations.
10. The method according to any of the preceding claims, wherein the second adjacent location is further from the entrance point of the virtual highway than the second location is further from the entrance point of the virtual highway, and the second cost is determined to be positive, zero, greater than the default travel cost, or greater than the average travel cost on the plurality of grid locations.
11. The method according to any one of claims 1 to 8, wherein the first vector is determined to follow the direction of the virtual highway, and, if necessary, the first cost is determined to be negative, zero, lower than the default travel cost, or lower than the average travel cost on the plurality of grid locations.
12. The method according to any one of claims 1 to 8 or 11, wherein the second vector is determined not to follow the direction of the virtual highway, and, if necessary, the second cost is determined to be positive, zero, greater than the default travel cost, or greater than the average travel cost on the plurality of grid locations.
13. The method according to any one of claims 1 to 8 or 11, wherein the second vector is determined to enter the virtual highway at a location other than the entry point of the virtual highway, and the second cost is determined to be positive, zero, greater than the default travel cost, or greater than the average travel cost at the plurality of grid locations, if necessary.
14. The method according to any of the preceding claims, wherein the second location is an entrance point of the virtual highway, or the second location is a port location among the plurality of grid locations, or the second location is a target grid location.
15. It is determined that the first route intersects with the entrance point to the virtual highway, The objective is to determine a second path between the first position and the second position, wherein the second path does not intersect with the entrance point to the virtual highway. To determine which of the first and second routes has the lowest total cost. The method according to any prior claim, further comprising:
16. The method according to any of the preceding claims, further comprising removing the virtual highway in order to determine one or more routes other than the first route.
17. The method according to claim 15, wherein the removal of the virtual highway is in response to the determination that one or more containers to be recovered are located in the first subset of the plurality of grid locations.
18. The method according to any of the preceding claims, further comprising defining a second subset of the plurality of grid locations as a second virtual highway for determining one or more routes other than the first route.
19. The method according to claim 17, wherein defining the second virtual highway is in response to determining that multiple jobs span the range of the multiple grid locations and that there are no other virtual highways currently defined over the determined range, and the determined range is, if necessary, greater than 30% of the total range of the grid, and further if necessary, greater than 50% of the total range of the grid, and further if necessary, greater than 75% of the total range of the grid.
20. A controller configured to perform the method described in any of the preceding claims.
21. An automated storage and retrieval system comprising multiple container handling vehicles and the controller described in claim 19.
22. A container handling vehicle equipped with the controller described in claim 19.
23. A computer-readable medium comprising instructions, wherein the instructions, when executed by the processor of an automated storage and retrieval system, cause the automated storage and retrieval system to perform the method according to any one of claims 1 to 18.
24. A computer-readable medium comprising instructions, wherein the instructions, when executed by the processor of the container handling vehicle, cause the container handling vehicle to perform the method according to any one of claims 1 to 18.