# Dynamic Scheduling Optimization Method for Multi-AGV-Based Intelligent Warehouse Considering Bidirectional Channel

^{*}

## Abstract

**:**

## 1. Introduction

- route planning method,
- AGV scheduling,
- task allocation and coordination,
- avoiding collisions and jams,
- the layout of intelligent warehouses,
- location.

## 2. Intelligent Warehouse Model

- Centralized control system allocates orders to the most suitable AGV for optimizing overall benefits.
- Each AGV utilizes a distributed control method to strategize routes and circumvent congestion.

- (1)
- The packing area, denoted as (i.e., $P=\{{p}_{1},{p}_{2},\dots \dots ,{p}_{30}\}$), is situated on the left-hand side of the map. Each packing station is staffed with a dedicated worker for efficient packaging operations.
- (2)
- The bidirectional channel consists of two adjacent rows or columns, while the single row or column channel only permits unidirectional traffic. Each AGV is required to adhere to the traffic rule of ’move on the right’.
- (3)
- The shelf area comprises individual shelves (i.e., $G=\{{g}_{1},{g}_{2},...,{g}_{m}\}$, where $m$ is the number of shelves), which can be moved independently and are transported to the packing station by AGVs. Once the packing task is completed, the AGV delivers the shelf to its nearest available location within a vacant shelf area. In absence of new orders, the AGV remains stationary directly beneath its assigned shelf.
- (4)
- The charging area, denoted as (i.e., $C\hspace{0.17em}=\{{c}_{1},{c}_{2},...,{c}_{33}\}$), is situated at the topmost part of the map. The AGV is obligated to return to the designated charging area once its battery level falls below 20%.

#### 2.1. Working Characteristics of AGVs

#### 2.2. Centralized and Distributed Control Process

## 3. Dynamic Map Design

- (1)
- Divide the map into different regions

- (2)
- The basic rules of changing the map

_{1}, y

_{1}), then the sub-area sequence number for the starting point is (m

_{1}, n

_{1}). The set of new obstacle coordinates in the starting area can be obtained by Algorithm 1.

Algorithm 1. The set of new obstacle coordinates in the starting area | |

Input:
(x_{1}, y_{1}),(m_{1}, n_{1})
| |

Output:
map[a: b, c: d] = x | |

1: | if n_{1} = 0 then |

2: | map[(y_{1} + 1):29,1] = 0 |

3: | map[0:(y_{1} − 1),2] = 0 |

4: | map[4k: (4k + 1), 2] = 1, k = 0, 1, 2, 3, 4, 5, 6, 7 |

5: | end if |

6: | if m_{1} = 1 and n_{1} ≠ 0 then |

7: | map[2:3, k(L + 1) + 1] = 0, k = 1, 2, 3 |

8: | map[0,3: (x_{1} − 1)] = 0 |

9: | map[1,(x_{1} + 1):35] = 0 |

10: | map[1,k(L + 1) + 1 : k(L + 1) + 2] = 1, k = 1, 2 |

11: | end if |

12: | if 2 ≤ m_{1} ≤ 7 and n_{1} ≠ 0 then |

13: | row = 2 + (m_{1} − 2)*4 |

14: | map[row: (row + 1),2 + k(L + 1)] = 0, k = 0, 1, 2, 3 |

15: | map[(row + 4): (row + 5), k(L + 1) + 1] = 0, k = 1, 2, 3 |

16: | map[(row + 2),3: (x_{1} − 1)]] = 0 |

17: | map[(row + 3), (x_{1} + 1):35]] = 0 |

18: | map[(row + q), k(L + 1) + 1: k(L + 1) +2] = 1, k = 1, 2; q = 2, 3 |

19: | end if |

20: | if m_{1} = 8 and n_{1} ≠ 0 then |

21: | map[26:27, k(L + 1) + 2] = 0, k = 0, 1, 2, 3 |

22: | map[28,3: (x_{1} − 1)] = 0 |

23: | map[29, (x_{1} + 1): 35] = 0 |

24: | map[28, k(L + 1) + 1: k(L + 1) + 2] = 1, k = 1, 2 |

25: | end if |

26: | return map[a: b, c: d] = x |

_{2}, y

_{2}), the sub-area sequence number for the ending point can be represented as (m

_{2}, n

_{2}). The set of new obstacle coordinates in the ending area can be obtained by Algorithm 2.

Algorithm 2. The set of new obstacle coordinates in the ending area | |

Input:
(x_{1}, y_{1}),(m_{1}, n_{1})
| |

Output:
map[a: b, c: d] = x | |

1: | if n_{2} = 0 then |

2: | map[(y_{2} + 1):29,2] = 0 |

3: | map[0: (y_{2} − 1),1] = 0 |

4: | map[4k: (4k + 1), 2] = 1, k = 0, 1, 2, 3, 4, 5, 6, 7 |

5: | end if |

6: | if m_{2} = 1 and n_{2} ≠ 0 then |

7: | map[2: 3, k(L + 1) + 2] = 0, k = 0, 1, 2, 3, |

8: | map[1,3: (x_{2} − 1)] = 0 |

9: | map[0,(x_{2} + 1):35] = 0 |

10: | map[1, k(L + 1) + 1 : k(L + 1) + 2] = 1, k = 1, 2 |

11: | end if |

12: | if 2 ≤ m_{2} ≤ 7 and n_{2} ≠ 0 then |

13: | row = 2 + (m_{2} − 2)*4 |

14: | map[row: (row + 1), k(L + 1) + 1] = 0, k = 1, 2, 3 |

15: | map[(row + 4): (row + 5),k(L + 1) + 2] = 0, k = 0, 1, 2, 3 |

16: | map[(row + 3),3: (x_{2} − 1)]] = 0 |

17: | map[(row + 2), (x_{2} + 1):35]] = 0 |

18: | map[(row + q), k(L + 1) + 1: k(L + 1) + 2] = 1, k = 1, 2; q = 2, 3 |

19: | end if |

20: | if m_{2} = 8 and n_{2} ≠ 0 then |

21: | map[26: 27, k(L + 1) + 1] = 0, k = 1, 2, 3 |

22: | map[29,3: (x_{2} − 1)] = 0 |

23: | map[28,(x_{2} + 1):35] = 0 |

24: | map[28, k(L + 1) + 1: k(L + 1) + 2] = 1, k = 1, 2 |

25: | end if |

26: | return map[a: b, c: d] = x |

Algorithm 3-1. The set of new obstacle coordinates the middle area | |

Input:
(m_{1}, n_{1})
| |

Output:
map[a: b, c: d] = x | |

1: | if n_{2} < n_{1} and m_{2} > m_{1} (The end point is at the top left of the start point, as seen in Figure 6) then |

2: | if n_{2} ≠ 0 then |

3: | for each i ∈ [m_{1} + 1 , m_{2} − 1] do |

4: | a = 4*(i − 1) |

5: | map[a,3 + k(L + 2): 3 + k(L + 2) + (L − 1)] = 0, k = 0, 1, 2 |

6: | map[(a − 2): (a − 1), k(L + 1) + 1] = 0, k = 1, 2, 3 |

7: | end for |

8: | else if n_{2} = 0 then |

9: | for each i ∈ [m_{1} + 1 , m_{2}] do |

10: | a = 4*(i − 1) |

11: | map[a, 3 + k(L + 2): 3 + k(L + 2) + (L − 1)] = 0, k = 0, 1, 2 |

12: | map[(a − 2): (a − 1), k(L + 1) + 1] = 0, k = 1, 2, 3 |

13: | end for |

14: | end if |

15: | end if |

16: | return map[a: b, c: d] = x |

Algorithm 3-2. The set of new obstacle coordinates the middle area | |

Input:
(m_{1}, n_{1})
| |

Output:
map[a: b, c: d] = x | |

1: | if n_{2} < n_{1} and m_{2} < m_{1} (The end point is at the bottom left of the start point, as seen in Figure 7) then |

2: | if n_{2} ≠ 0 then |

3: | for each i ∈ [m_{2} + 1, m_{1} − 1] do |

4: | a = 4*(i − 1) |

5: | map[a,3 + k(L + 2): 3 + k(L + 2) + (L − 1)] = 0, k = 0, 1, 2 |

6: | map[(a + 2): (a + 3), k(L + 1) + 2] = 0, k = 1, 2, 3 |

7: | end for |

8: | else if n_{2} = 0 then |

9: | for each i ∈ [m_{2}, m_{1} − 1] do |

10: | a = 4*(i − 1) |

11: | map[a, 3 + k(L + 2): 3 + k(L + 2) + (L − 1)] = 0, k = 0, 1, 2 |

12: | map[(a + 2): (a + 3), k(L + 1) + 2] = 0, k = 0, 1, 2, 3 |

13: | end for |

14: | end if |

15: | end if |

16: | return map[a: b, c: d] = x |

Algorithm 3-3. The set of new obstacle coordinates the middle area | |

Input:
(m_{1}, n_{1})
| |

Output:
map[a: b, c: d] = x | |

1: | if n_{2} > n_{1} and m_{2} > m_{1} (The end point is at the top right of the start point, as seen in Figure 8) then |

2: | if n_{1} ≠ 0 then |

3: | for each i ∈ [m_{1} + 1, m_{2} − 1] do |

4: | a = 4*(i − 1) + 1 |

5: | map[a, 3 + k(L + 2): 3 + k(L + 2) + (L − 1)] = 0, k = 0, 1, 2 |

6: | map[(a + 1): (a + 2), k(L + 1) + 1] = 0, k = 1, 2, 3 |

7: |
end for |

8: | else if n_{1} = 0 then |

9: | for each i ∈ [m_{1}, m_{2} − 1] do |

10: | a = 4*(i − 1) + 1 |

11: | map[a, 3 + k(L + 2): 3 + k(L + 2) + (L − 1)] = 0, k = 0, 1, 2 |

12: | map[(a + 1): (a + 2), k(L + 1) + 1] = 0, k = 1, 2, 3 |

13: |
end for |

14: |
end if |

15: | end if |

16: | return map[a: b, c: d] = x |

Algorithm 3-4. The set of new obstacle coordinates the middle area | |

Input:
(m_{1}, n_{1})
| |

Output:
map[a: b, c: d] = x | |

1: | if n_{2} > n_{1} and m_{2} < m_{1} (The end point is at the bottom right of the start point, as seen in Figure 9) then |

2: | if n_{1} ≠ 0 then |

3: | for each i ∈ [m_{2} + 1, m_{1} − 1] do |

4: | a = 4*(i − 1) + 1 |

5: | map[a, 3 + k(L + 2): 3 + k(L + 2) + (L − 1)] = 0, k = 0, 1, 2 |

6: | map[(a − 3): (a − 2), k(L + 1) + 2] = 0, k = 1, 2, 3 |

7: | end for |

8: | else if n_{1} = 0 then |

9: | for each i ∈ [m_{2} + 1, m_{1}] do |

10: | a = 4*(i − 1) + 1 |

11: | map[a, 3 + k(L + 2): 3 + k(L + 2) + (L − 1)] = 0, k = 0, 1, 2 |

12: | map[(a − 3): (a − 2), k(L + 1) + 2] = 0, k = 1, 2, 3 |

13: | end for |

14: | end if |

15: | end if |

16: | return map[a: b, c: d] = x |

## 4. Route Planning

- (1)
- Create two point sets: open list and close list. The open list is utilized to store potential route points, while the close list is used for those, which cannot be considered as such.
- (2)
- Search for eight adjacent grids surrounding the current grid.
- (3)
- Evaluate each grid. If the grid lies within the channel area and has not been added to either list, then its route cost $f\left(n\right)$ would be estimated.
- (4)
- Choose the grid with the lowest $f\left(n\right)$ value in the open list as the current point, and designate it as the parent node of the previous point before moving it to the close list.
- (5)
- Repeat steps (2)–(4) until the current point becomes the end point.
- (6)
- Starting from the end point, trace back each point’s parent node until arriving at the start point to obtain a satisfactory route.

## 5. Collision Avoidance

#### 5.1. Collision Classification

- (1)
- Collisions in crossroad

- (2)
- Collisions in T-crossroad

- (3)
- Collisions in bidirectional channel

#### 5.2. Collision Detection

- (1)
- ${C}_{m}^{n}$ denotes the coordinate of a node with sequence number m in the route of the AGV
_{n}. It should be noted that the same node may have different serial numbers for different AGVs. For example, if node x exists both in the route of AGV_{1}and AGV_{2}, its sequence number in the route of AGV_{1}is $\alpha $, while its sequence number in the route of AGV_{2}is $\beta $. Hence, for AGV_{1}, the coordinate of node x is ${C}_{\alpha}^{1}$; for AGV_{2}, the coordinate of node x is ${C}_{\beta}^{2}$. Notably, ${C}_{\alpha}^{1}$ equals to ${C}_{\beta}^{2}$ in this scenario. Moreover, ${C}_{\alpha +1}^{1}$ denotes the next node after the target node with sequence number α on the route of AGV_{1}, while ${C}_{\alpha -1}^{1}$ represents its preceding node. - (2)
- ${\tau}_{m}^{n}$ represents the arrival time of AGV
_{n}at the node with sequence number $m$ in its route. - (3)
- ${t}_{m}^{n}$ represents the processing time required for AGV
_{n}on the node with sequence number $m$ in its route.

- (a)
- In Figure 11, the collisions in cases (a)–(c) and (e)–(i) occur on the nodes. These collisions will occur if conditions (5)–(6) are met.

_{1}correspond to those with sequence numbers $\beta +1$ and $\beta $ of the AGV

_{2}. If conditions (7)–(9) are satisfied, the collision in case (j) will occur.

_{1}do not correspond to the route points with sequence numbers $\beta +1$ and $\beta $ of the AGV

_{2}. If conditions (10)–(11) are satisfied, the collision in case (d) will occur.

- (b)
- In Figure 12, the collisions in cases (a)–(c) and (f)–(g) occur at the nodes. If the above Equations (5) and (6) are satisfied, the collisions in cases (a)–(c) and (f)–(g) will occur. The collisions in cases (d)–(e) occur between two nodes. The route points with sequence numbers $\alpha $ and $\alpha $ + 1 of the AGV1 do not correspond to the route points with sequence numbers $\beta +1$ and $\beta $ of the AGV2. If the above Equations (10) and (11) are satisfied, the collisions in cases (d)–(e) will occur. The collision in case (h) occurs between two nodes. The route points with sequence numbers $\alpha $ and $\alpha $ + 1 of the AGV1 correspond to the route points with sequence numbers $\beta +1$ and $\beta $ of the AGV2. If conditions (7)–(9) are satisfied, the collision in case (h) will occur.
- (c)
- In Figure 13, the collisions in cases (a)–(d) and (g) occur at the nodes. If the above Equations (5) and (6) are satisfied, the collisions in cases (a)–(c) and (g) will occur. The collisions in cases (e)–(f) occur between two nodes. The route points with sequence numbers $\alpha $ and $\alpha $ + 1 of the AGV1 do not correspond to the route points with sequence numbers $\beta +1$ and $\beta $ of the AGV2. If the above Equations (10) and (11) are satisfied, the collisions in cases (e)–(f) will occur. The collision in case (h) occurs between two nodes. The route points with sequence numbers $\alpha $ and $\alpha $ + 1 of the AGV1 correspond to the route points with sequence numbers $\beta +1$ and $\beta $ of the AGV2. If conditions (7)–(9) are satisfied, the collision in case (h) will occur.

#### 5.3. Collision Solution Strategies

- (1)
- R represents the coordinate collection of the crossroads;
- (2)
- T represents the coordinate set of the T-crossroads;
- (3)
- N represents the coordinate set of the non-channel areas, including the shelf area, the packing area and the charging area;
- (4)
- H represents horizontal channels, excluding the area of crossroads and T-crossroads;
- (5)
- L represents the longitudinal channels, excluding the area of crossroads and T-crossroads.

- (1)
- When a collision is detected and Equation (12) is satisfied, the collision in Figure 11 occurs.$${C}_{\alpha}^{1}\hspace{0.17em},{C}_{\beta}^{2}\hspace{0.17em}\hspace{0.17em}\subseteq \hspace{0.17em}R$$$${C}_{\alpha -2}^{1}\hspace{0.17em}\subseteq \hspace{0.17em}H\cap {C}_{\beta -2}^{2}\hspace{0.17em}\subseteq \hspace{0.17em}L\hspace{0.17em}or\hspace{0.17em}{C}_{\alpha -2}^{1}\hspace{0.17em}\subseteq \hspace{0.17em}L\cap {C}_{\beta -2}^{2}\hspace{0.17em}\subseteq \hspace{0.17em}H$$$${C}_{\alpha -2}^{1}\hspace{0.17em}\subseteq \hspace{0.17em}H\cap \hspace{0.17em}{C}_{\beta -2}^{2}\hspace{0.17em}\subseteq \hspace{0.17em}H\hspace{0.17em}or\hspace{0.17em}{C}_{\alpha -2}^{1}\hspace{0.17em}\subseteq \hspace{0.17em}L\cap \hspace{0.17em}{C}_{\beta -2}^{2}\hspace{0.17em}\subseteq \hspace{0.17em}L$$

_{1}travels horizontally and AGV

_{2}travels longitudinally, the strategy adopted in this case is as follows: If ${C}_{\alpha -1}^{1}\hspace{0.17em}\subseteq \hspace{0.17em}H$, then AGV

_{1}waits at waypoint $\alpha -1$ until AGV

_{2}passes through the collision point; if ${C}_{\alpha -1}^{1}\hspace{0.17em}\not\subset \hspace{0.17em}H$, then AGV

_{1}waits at waypoint $\alpha -2$ until AGV

_{2}passes through the collision point.

_{2}to pass through the collision point is relatively short. Then, AGV

_{1}waits at waypoint $\alpha -1$ until AGV

_{2}passes through the collision point.

- (2)
- When a collision is detected and Equation (15) is satisfied, the collision in Figure 12 occurs.$${C}_{\alpha}^{1}\hspace{0.17em},{C}_{\beta}^{2}\hspace{0.17em}\hspace{0.17em}\subseteq T$$$${C}_{\alpha -2}^{1}\hspace{0.17em}\subseteq \hspace{0.17em}L\cap \hspace{0.17em}{C}_{\beta -2}^{2}\hspace{0.17em}\subseteq \hspace{0.17em}L$$

_{2}to pass through the collision point is relatively short. Then, AGV

_{1}waits at waypoint $\alpha -1$ until AGV

_{2}passes through the collision point.

- (3)
- When a collision is detected and Equation (17) is satisfied, the collision in Figure 13 occurs.$${C}_{\alpha}^{1}\hspace{0.17em},{C}_{\beta}^{2}\hspace{0.17em}\hspace{0.17em}\subseteq H\hspace{0.17em}or\hspace{0.17em}L$$$${C}_{\alpha}^{1}\subseteq Nor{C}_{\beta}^{2}\subseteq N$$

_{1}is in the non-channel area, the strategy adopted in this case is as follows: AGV

_{1}waits where it is until AGV

_{2}passes through the collision point.

_{2}to pass through the collision point is relatively short. Then, AGV

_{1}waits at waypoint $\alpha -1$ until AGV

_{2}passes through the collision point.

## 6. Simulation Experiments

- (1)
- The total number of shelves is 406, with each shelf handling one order at a time.
- (2)
- The system simultaneously dispatches 50, 100, 150, 200, 250 orders, which are randomly distributed across the shelves. There are a total of 10 AGVs in the warehouse.
- (3)
- Both models have identical AGV velocities.
- (4)
- The residence time of AGVs in the packing area remains consistent at 10 s.
- (5)
- The system releases batches of 50 orders simultaneously while varying the number of AGVs between models to include options such as 5, 10, 15 and 20.

- (1)
- Figure 15 shows the intelligent warehouse based on bidirectional channels. The control system sends out the order information and selects the available AGV nearest to the target shelf. The AGV becomes unavailable after taking the order and goes to the target shelf from the bottom control point. Meanwhile, the status of the target shelf becomes unavailable. The AGV selects the packing station nearest to itself, changes the status of the station to unavailable and plans the route. After arriving at the packing station, the AGV stays for 10 s and then leaves back to the nearest available shelf area. The status of the packing station becomes available. After the AGV is unloaded from the shelf, the status of the shelf and the AGV itself become available. The AGV waits under the shelf until it receives a new task again.
- (2)
- Figure 16 shows the intelligent warehouse based on the unidirectional channel, and its scheduling principle is the same as that of the intelligent warehouse based on the bidirectional channel.
- (3)
- Figure 17 shows the total time consumed by the AGVs to complete all the orders in two different types of warehouses. The number of AGVs in both types of warehouses is 10, and the number of orders is 50, 100, 150, 200 and 250. In general, the total working time for the AGVs in two types of warehouses increases with the increase in the order number, but the warehouse based on the bidirectional channel can save nearly a quarter of the time. It is obvious that the bidirectional channel can greatly improve the operating efficiency of the intelligent warehouse.
- (4)
- Figure 18 shows the total time taken by the AGVs to complete 50 orders in two different types of warehouses. The number of AGVs is 5, 10, 15 and 20. Generally, the time required for the AGVs to complete the task decreases with the increase in the number of AGVs. Compared with the unidirectional channel, the bidirectional channel can effectively reduce the processing time of the AGVs. However, when the number of AGVs reaches a certain value, the decrease in the time required for the AGVs to complete the orders will slow down. Because the number of AGVs increases, the blocking degree and waiting time for AGVs also increase. Therefore, it is necessary to adjust the number of AGVs according to the size of the warehouse in order to make a more rational use of the resources.
- (5)
- To demonstrate the efficiency of AGVs when orders are concentrated in a small area, all the orders are generated in the shelf area in the lower left corner. Figure 19 shows the total time required by AGVs to complete different orders in two different types of warehouses. The numbers of orders are 10, 15, 20, 25, 30, 35 and 40, and the number of AGVs is 10. Generally, the time required for the AGVs to complete the task increases with the increased orders. Compared with the unidirectional channel, the bidirectional channel can effectively reduce the processing time of the AGVs. When all AGVs work in a small area at the same time, congestion in the unidirectional channel increases significantly with the increase in orders, which is demonstrated by the derivative of the upper line in Figure 19. In this case, the advantage of the bidirectional channel can be well displayed.

## 7. Conclusions and Future Work

## Author Contributions

## Funding

## Data Availability Statement

## Conflicts of Interest

## References

- Zhuang, Z.; Huang, Z.; Sun, Y.; Qin, W. Optimization for cooperative task planning of heterogeneous multi-robot systems in an order picking warehouse. Eng. Optim.
**2021**, 53, 1715–1732. [Google Scholar] [CrossRef] - Adel, A.; Hachemi, B.; Imen, C.; Anis, K.; Maram, A. Relaxed Dijkstra and A with linear complexity for robot path planning problems in large-scale grid environments. Soft Comput.
**2016**, 20, 4149–4171. [Google Scholar] [CrossRef] - Fu, B.; Chen, L.; Zhou, Y.; Zheng, D.; Wei, Z.; Dai, J.; Pan, H. An improved A* algorithm for the industrial robot path planning with high success rate and short length. Robot. Auton. Syst.
**2018**, 106, 26–37. [Google Scholar] [CrossRef] - Quang, V.D.; Nitish, S.; Ivo, A.; Tugce, M.; Dirk, V.D.S. Scheduling heterogeneous multi-load AGVs with battery constraints. Comput. Oper. Res.
**2021**, 2021, 105517. [Google Scholar] [CrossRef] - Zhang, D.; Sun, X.; Fu, S.; Zheng, B. Cooperative path planning in multi-robots for intelligent warehouse. Comput. Integr. Manuf. Syst.
**2018**, 24, 410–418. [Google Scholar] [CrossRef] - Muthukumaran, S.; Sivaramakrishnan, R. Optimal path planning for an autonomous mobile robot using dragonfly algorithm. Int. J. Simul. Model.
**2019**, 18, 397–407. [Google Scholar] [CrossRef] [PubMed] - Contreras-Cruz, M.A.; Ayala-Ramirez, V.; Hernandez-Belmonte, U.H. Mobile robot path planning using artificial bee colony and evolutionary programming. Appl. Soft Comput.
**2015**, 30, 319–328. [Google Scholar] [CrossRef] - Chen, F.Y.; Wang, H.W.; Xie, Y.; Qi, C. An ACO-based online routing method for multiple order pickers with congestion consideration in warehouse. J. Intell. Manuf.
**2016**, 27, 389–408. [Google Scholar] [CrossRef] - Han, Z.L.; Wang, D.Q.; Liu, F. Multi-AGV path planning with double-path constraints by using an improved genetic algorithm. PLoS ONE
**2017**, 12, e0181747. [Google Scholar] [CrossRef] - Zhang, Z.; Chen, J.; Guo, Q. Application of Automated Guided Vehicles in Smart Automated Warehouse Systems: A Survey. CMES Comput. Model. Eng. Sci.
**2023**, 134, 1529–1563. [Google Scholar] [CrossRef] - Miyamoto, T.; Inoue, K. Local and random searches for dispatch and conflict-free routing problem of capacitated AGV systems. Comput. Ind. Eng.
**2016**, 91, 1–9. [Google Scholar] [CrossRef] - Samaneh, H.; Hamed, F. Hybrid cost and time path planning for multiple autonomous guided vehicles. Appl. Intell.
**2017**, 48, 482–498. [Google Scholar] [CrossRef] - Li, Z.; Barenji, A.V.; Jiang, J.Z. A mechanism for scheduling multi-robots intelligent warehouse system face with dynamic demand. J. Intell. Manuf.
**2020**, 31, 469–480. [Google Scholar] [CrossRef] - Mousavi, M.; Yap, H.J.; Musa, S.N.; Tahriri, F.; Md Dawal, S.Z. Multi-objective AGV scheduling in an FMS using a hybrid of genetic algorithm and particle swarm optimization. PLoS ONE
**2017**, 12, e0169817. [Google Scholar] [CrossRef] [PubMed] - Ye, S.G.; Ma, H.P.; Xu, S. An effective fireworks algorithm for warehouse-scheduling problem. Trans. Inst. Meas. Control
**2017**, 39, 75–85. [Google Scholar] [CrossRef] - Barenji, A.V.; Barenji, R.V.; Roudi, D. A dynamic multi-agent-based scheduling approach for SMEs. Int. J. Adv. Manuf. Technol.
**2017**, 89, 3123–3137. [Google Scholar] [CrossRef] - Cheng, W.; Meng, W. An efficient genetic algorithm for multi AGV scheduling problem about intelligent warehouse. Robot. Intell. Autom.
**2023**, 43, 382–393. [Google Scholar] [CrossRef] - Zhou, L.W.; Shi, Y.Y.; Wang, J.L.; Yang, P. A balanced heuristic mechanism for multi-robot task allocation of intelligent warehouses. Math. Probl. Eng.
**2014**, 2014, 380480. [Google Scholar] [CrossRef] - Dou, J.J.; Chen, C.L.; Yang, P. Genetic scheduling and reinforcement learning in multi-robot systems for intelligent warehouses. Math. Probl. Eng.
**2015**, 2015, 597956. [Google Scholar] [CrossRef] - Xue, F.; Tang, H.L.; Su, Q.H.; Li, T. Task allocation of intelligent warehouse picking system based on multi-robot coalition. KSII Trans. Internet Inf. Syst.
**2019**, 13, 3566–3582. [Google Scholar] [CrossRef] - Simeon, T.; Leroy, S.; Lauumond, J.P. Path coordination for multiple mobile robots: A resolution-complete algorithm. IEEE Trans. Robot. Autom.
**2002**, 18, 42–49. [Google Scholar] [CrossRef] - Maria, P.F.; Agostino, M.M.; Giovanni, P.; Wallter, U. A decentralized control strategy for the coordination of AGV systems. Control Eng. Pract.
**2018**, 70, 86–97. [Google Scholar] [CrossRef] - Nguyen, H.; Nguyen, T.P.; Ngo, H.Q.T. Using EtherCAT technology to launch online automated guided vehicle manipulation with unity-based platform for smart warehouse management. IET Control. Theory Appl.
**2023**. [Google Scholar] [CrossRef] - Digani, V.; Sabattini, L.; Secchi, C. A probabilistic eulerian traffic model for the coordination of multiple AGVs in automatic warehouses. IEEE Robot. Autom. Lett.
**2016**, 1, 26–32. [Google Scholar] [CrossRef] - Zhang, Z.; Guo, Q.; Chen, J.; Yuan, P.J. Collision-free route planning for multiple AGVs in an automated warehouse based on collision classification. IEEE Access
**2018**, 6, 26022–26035. [Google Scholar] [CrossRef] - Zhang, H.F.; Guo, Z.L.; Zhang, W.N. Layout design for intelligent warehouse by evolution with fitness approximation. IEEE Access
**2019**, 7, 166310–166317. [Google Scholar] [CrossRef] - Monica, S.; Ferrari, G. UWB-based localization in large indoor scenarios: Optimized placement of anchor nodes. IEEE Trans. Aerosp. Electron. Syst.
**2015**, 51, 987–999. [Google Scholar] [CrossRef] - Cho, H.; Kim, E.K.; Kim, S. Indoor SLAM application using geometric and ICP matching based on line features. Robot. Auton. Syst.
**2018**, 100, 206–224. [Google Scholar] [CrossRef] - Yang, Y.; Li, J.T.; Li, X.L. An Improved AGV Real-Time Location Model Based on Joint Compatibility Branch and Bound. Math. Probl. Eng.
**2020**, 2020, 9043641. [Google Scholar] [CrossRef] - Yang, Q.; Lian, Y.; Liu, Y.; Xie, W.; Yang, Y. Multi-agv tracking system based on global vision and apriltag in smart warehouse. J. Intell. Robot. Syst.
**2022**, 104, 42. [Google Scholar] [CrossRef] - Zhang, Y.; Wang, F.L.; Su, Z.Q. Multi-AGV path planning for indoor factory by using prioritized planning and improved Ant algorithm. J. Eng. Technol. Sci.
**2018**, 4, 534–547. [Google Scholar] [CrossRef]

Parameters | Descriptions |
---|---|

$P=\{{p}_{1},{p}_{2},...,{p}_{30}\}$ | The packing area. |

$G=\{{g}_{1},{g}_{2},...,{g}_{m}\}$ | The shelf area; $m$ represents the number of shelves. |

$C=\{{c}_{1},{c}_{2},...,{c}_{33}\}$ | The charging area. |

$R=\{{r}_{1},{r}_{2},...,{r}_{n}\}$ | A fleet of AGVs; $n$ represents the number of AGVs. |

v and v_{r} | The constant velocity of AGV. |

L | The length of shelf stations. |

(m, n) | The sequence number of sub-area; $m$ represents the row number; and $n$ represents the column number. |

$f\left(n\right)$ | The route cost of traversing from the starting point to grid $n$. |

$g\left(n\right)$ | The actual cost of traversing from the starting point to grid $n$. |

$d$ | The actual distance from the current grid to the target grid. |

${d}_{n}$ | The Manhattan distance from the current grid to the target grid. |

$h\left(n\right)$ | A heuristic function representing the estimated cost of traveling from the current grid to the target grid. |

${C}_{m}^{n}$ | The coordinate of a node with sequence number $m$ in the route of the AGV_{n}. |

${\tau}_{m}^{n}$ | The arrival time of AGV_{n} at the node with sequence number $m$ in its route. |

${t}_{m}^{n}$ | The processing time required for AGV_{n} on the node with se-quence number $m$ in its route. |

$\delta $ | The time window for collision. |

R | The coordinate collection of the crossroads. |

T | The coordinate set of the T-crossroads. |

N | The coordinate set of the non-channel areas, including the shelf area, the packing area and the charging area. |

H | The horizontal channels, excluding the area of crossroads and T-crossroads. |

L | The longitudinal channels, excluding the area of crossroads and T-crossroads. |

Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |

© 2023 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).

## Share and Cite

**MDPI and ACS Style**

Yu, C.; Liao, W.; Zu, L.
Dynamic Scheduling Optimization Method for Multi-AGV-Based Intelligent Warehouse Considering Bidirectional Channel. *Systems* **2024**, *12*, 9.
https://doi.org/10.3390/systems12010009

**AMA Style**

Yu C, Liao W, Zu L.
Dynamic Scheduling Optimization Method for Multi-AGV-Based Intelligent Warehouse Considering Bidirectional Channel. *Systems*. 2024; 12(1):9.
https://doi.org/10.3390/systems12010009

**Chicago/Turabian Style**

Yu, Chengwei, Wenzhu Liao, and Leting Zu.
2024. "Dynamic Scheduling Optimization Method for Multi-AGV-Based Intelligent Warehouse Considering Bidirectional Channel" *Systems* 12, no. 1: 9.
https://doi.org/10.3390/systems12010009