^{1}

^{1}

^{1}

^{1}

^{*}

Nowadays, the Multi-Shuttle and Multi-Station Transportation System (MMTS) is one of the most interesting research topics in many fields of industries. It is an effective solution to reduce unexpected accidents that occur during transportation as well as increase productivity in manufacturing. The aim of this paper is to introduce the controller design for the MMTS which is built in our BK-Recme BioMech Lab at Ho Chi Minh City University of Technology (VNU-HCM), Viet Nam. Based on the design of this system, the control algorithms will be conducted to check the operation of the whole system. To evaluate the feasibility and effectiveness of this model, we design a series of random instances for different quantities of nodes as well as the different quantities of shuttles. Our system includes 4 stations and 6 shuttles which are assembled in the serial chain system. However, the number of stations and number of shuttles can be expanded to any desired ones which are based on the requirement of the industries. In this paper, we mainly focus on the controller design of this system to make it operate in an effective way that the goods will be transported and delivered to the target station as fast as possible. In order to solve the large - scale instances and realistic transport problems, we propose three algorithms for three progresses as shuttles calling, path reading and shuttles communicating. The shuttles calling is to decide which shuttle should be called to the star t -node. Path reading to determine the shortest way to go from start-node to end-node. Finally, shuttles communicating, which allow one shuttle to interact with the next shuttles so we have a loop of orders (shuttle 1 to shuttle 2; shuttle 2 to shuttle 3; etc . ; shuttle n-1 to shuttle n). This proposes solution can help us to solve the huge numbers of shuttles and stations in the system. The specific result of this study is applying Dijkstra’s algorithm to propose an algorithm that allows handling a transportation system without caring about the number of shuttles as well as the number of stations for the closed-loop path. Several test problems are carried out in order to check the feasibility and the effectiveness of our purposed control algorithm.

This paper introduces the Multi-Shuttle and Multi-Station Transportation System (MMTS) design for general manufacturing facilities and warehouse operation. This proposed system is suitable to apply in industries to do the task of moving material from one location to other locations in the manufacturing environments or warehouses. The ideas of this system have been proved to be so necessary for industries to improve productivity. In industries, we can see that most of the operations are related to the transport of discrete parts or scrap.

Many kinds of research about multi-station system have been carried out by many researchers around the world. Prerna Tiwari and Manoj K. Tiwari proposed a novel methodology for sensor placement for the multi-station manufacturing processes so that the dimensional variation in the manufactured product [

Re-entrant lines, which is described by Harrison [

Because of the complexity of the queueing algorithm (re-entrant line), we propose the queueing algorithm that can apply for the serial multi-shuttle and multi-station system, which is easier to reach and allows to solve the multi-station system with n number of stations and m number of shuttles. In this first period, our proposed algorithm is just applied to closed-loop path and all the shuttles are called at the same time.

The remaining of this paper is arranged into five sections as follows: Section 2 introduces the general concepts of controller design. The detail of the controller design for two main modules is presented in Sections 3 and 4. The simulation results of the algorithm are described in Section 5. Finally, the conclusions and direction of future work are provided in Section 6.

An intuitive demonstration, including the outside design of multi-station transportation model and the layout of electrical elements, is introduced in

To find out the shortest way from start-node to end-node, there are many algorithms which are extremely popular, can be chosen to use, such as Dijkstra algorithm, Bellman-Ford algorithm, Floyd-Warshall algorithm, Johnson algorithm or TSP algorithm. In this research, Dijkstra algorithm is chosen to apply for our proposed system. The reason why Dijkstra algorithm is selected to apply in our research is because this is a popular algorithm, easy to apply in many types of controllers, simple, fast computation, etc. Besides, this algorithm is still used in routing protocols for solving many single-source shortest path problems without negative edge weight in the graphs. Overview of this algorithm let the node at which we start to be called a start-node and the node at which we finished be called end-node. The distance from the start-node to end-node is called briefly the distance of end-node. The proposed design of our serial multi-station system is introduced in

Djikstra algorithm will assign some initial distance values and will try to improve them step by step. Each step of the algorithm will be described as the following steps:

Step 1: Mark all nodes as unvisited. Create a set of all the unvisited nodes called the unvisited set.

Step 2: Assign to every node a tentative distance value: set it to zero for our start-node and to infinity to all other nodes. Set the start-node at the current position.

Step 3: For the current node, consider all of its unvisited neighbors and calculate their tentative distances through the current node. Compare the new calculated tentative distance to the current assigned value and assign the smaller one. For example, if the current node X is marked with a distance of 3, and the edge connecting it with a neighbor Y has the length 2, then the distance from Y through X will be 3 + 2 = 5. If Y was previously marked with a greater distance than 5 then change it to 5. Otherwise, the current value will be kept.

Step 4: When we finish considering all of the unvisited neighbors of the current node, mark the current node as visited and remove it from the unvisited set. A visited node will never be checked again.

Step 5: If the destination node has been marked visited or if the smallest tentative distance among the nodes in the unvisited set is infinity, then stop. The algorithm is finished.

Step 6: Otherwise, select the unvisited node that is marked with the smallest tentative distance, set it as the new “current node” and get back to step 3.

An example of the Dijkstra algorithm applying in our proposed MMTS

In this example, as in

set current node is node A. In

Now, we check the neighbors of our current node (B and C) in no specific order. Let’s begin with B. We add the minimum distance of the current node (in this case is 0) with the weight of the edge that connects our current node with B (in this case is 3) and we obtain 0 + 3 = 3. We compare that value with the minimum distance of B (infinity), the lower value is the one that remains as the minimum distance of B (in this case 3 is less than infinity) (

Then, we move to check neighbor C. We add the minimum distance of the current node (in this case is 0) with the weight of the edge that connects our current node with C (in this case is 1) and we obtain 0 + 1 = 1. We compare that value with the minimum distance of C (infinity), the lower value is the one that remains as the minimum distance of C (in this case 1 is less than infinity) (

We have to check all the neighbors of A. Therefore, we mark it as visited. The visited nodes are represented with a check mark and we pick a new current node. That node must be an unvisited node with the smallest minimum distance (node C). Mark it with a small dot nearby (

Now we repeat the algorithm. We check the neighbors of our current node, ignoring the visited nodes. This means we just need to check node B and node D. For B, we add 1 (the minimum distance of C, our current node) with 7 (the weight of the edge connecting B and C) to obtain 8. We compare that value with the minimum distance of B (3) and leave the smaller value: 3.

Continue with node D, we add 1 (the minimum distance of C, our current node) with 5 (the weight of the edge connecting D and C) to obtain 6. We compare that value with the minimum distance of D (infinity) and leave the smaller value: 6 (

Afterwards, we mark C as visited and pick a new current node (B), which is non-visited node with the smallest current distance. Repeat the algorithm, this time we check D and E (

For D, we add 3 (the minimum distance of B, our current node) with 2 (the weight of the edge connecting B and D) to obtain 5. We compare that value with the minimum distance of D (6) and leave the smaller value: 5 (

For E, we add 3 (the minimum distance of B, our current node) with 1 (the weight of the edge connecting B and E) to obtain 4. We compare that value with the minimum distance of E (infinity) and leave the smaller value: 4 (

We mark B as visited and set node E to be current node. Repeat the algorithm; we just need to check node D. For D, we add 4 (the minimum distance of E, our current node) with 6 (the weight of the edge connecting B and D) to obtain 10. We compare that value with the minimum distance of D (5) and leave the smaller value: 5 (

Then we mark E as visited and set D as the current node. Because node E doesn’t have any non-visited so we don’t need to check anything. We mark it as visited and stop the algorithm (

About shuttles calling algorithm, which decides the case of which shuttle should get to start-node, will be almost based on the Dijkstra algorithm. Firstly, we use a Dijkstra algorithm to calculate the distances from each shuttle to start-node to find out the shortest distance to decide which shuttle should be called. If that shuttle is in “busy” state, there would be some situations we need to consider reducing the operating time. These situations will be presented as below:

Situation 1: There is a “busy” shuttle on start-node. In this situation, the best way to solve this problem is to wait for the shuttle to complete its task and then it will become the chosen to transport goods to end-node.

Situation 2: There is another shuttle which is farther in the distance but we can save more time. In this situation, because the velocity of every shuttle in this system is constant and we have the distance of each node, we can compute the time that a shuttle will reach the start-node. If there are no obstacles on the way that one shuttle gets to start-node, we will compare the total time (time to finish his old task and time to get to start-node) with respect to the condition of which shuttles have the smaller sum time will become the one to be chosen. For more detail, there is an example of this situation will be presented in

In

About shuttles communicating algorithm, we design an interactive algorithm which helps one shuttle to impact another one and become a loop of impacts. Each step of the algorithm is described as below steps:

Step 1: Get the positions of the shuttles, start the algorithm which the chosen shuttle in shuttle calling algorithm and create a “count” variable to break the loop of the algorithm.

Step 2: Apply the Dijkstra algorithm for the chosen shuttle and send signals to the shuttle (called shuttle A) which lies on the path and has the smallest distance to the start position of the chosen shuttle.

Step 3: Repeat Step 2 with shuttle A instead of the chosen shuttle.

Step 4: Until no shuttle is found on the path of the previous shuttle or “count” variable is satisfied the condition which prevent the last shuttle takes an effect on the first shuttle that could make the shuttles communicating algorithm becomes an infinity loop, the end-nodes of all shuttles are updated

Step 5: After all the shuttles arrive at their end-nodes, the server allows shuttles to move to their new positions and stops the algorithm.

To clarify this algorithm, we will use the example in

On the way to node 6, shuttle 1 meets shuttle 3 first so it asks shuttle 3 to move to the node after the end-node (node 7) by the Web Server in

On the way to node 7, shuttle 3 meets shuttle 5 at first and it asks shuttle 5 to move to node 8. On the way to node 8 of shuttle 5, there is shuttle 4, which has been already on node 8. Therefore, shuttle 4 is asked to get to node 9 which the path is: node 8 - node 9.

On the way to node 9 of shuttle 4, there is no shuttle on its path. At this time, the end-node of each shuttle is updated, the shuttles communication algorithm is stopped and all the shuttles which have been impacted by the algorithm start to move to their end-nodes and the rest of them which has not been impacted by the algorithm hold their positions.

In

server is also the TCP Server, opening the default port for HTTP services which is TCP 80, ready to wait for connection requests from clients. The clients will initiate a TCP connection through this port, after the Webserver accepts the connection; the client will send an HTTP message called HTTP request to the Server on the newly established TCP connection. The server will respond with another HTTP response. This message will contain the requested Web page content (written in HTML language). With the characteristics as mentioned briefly above, the work to use the Web server for data collection and control can be easily realized by embedding sensor data fields in HTTP requests and responses.

GET and POST are the two methods of the HTTP protocol, both sending data to the server for processing after the user enters information in the form and submits it. Before sending information, it is encoded using a scheme called URL encoding. This scheme is name/value pairs combined with “=” symbol and different symbol separated by “&”. Ex: a = value 1 & b = value 2 & c = value 3.

The control algorithm of the whole system is introduced in

There are 2 types of cylinder, which are popularly used nowadays: pneumatic cylinder and hydraulic cylinder. However, pneumatic cylinder is by far better than the other one because it is quieter, cleaner and does not require large amounts of space for fluid storage. The reason why we need a cylinder system right here is it helps to transport goods from the station with the shuttle as well as exchange parcels between two stages. There are other choices such as using the motor combined with the winch system or pulley and toothed belt system. However, they have some drawbacks like occupying lots of space to set up and pulley and toothed belt system is very weak in vertical mounting.

About the controller design of cylinder module: When the server sends signals to the controller by a Wi-Fi module, the controller sends back a signal to make sure that the communication is set up and starts to impact on the cylinders to receive or deliver packages.

In this situation, there are four situations that the cylinder system needs to handle: 1) Receiving packages on floor 1, 2) receiving packages on floor 2, 3)

delivering packages on floor 1, 4) delivering packages on floor 2. For each situation, the server sends a variable k which has different values for each case of the controller of the cylinder system. Corresponding to each value of variable k, the microprocessor has a different effect on the pneumatic valve system. The handling details for each case of the pneumatic valves are shown in

In

In

In

About the controller design of shuttles module, we use a microcontroller to control the direction of the shuttle’s movement. When the server sends signals to the microcontroller by a Wi-Fi module, the microcontroller sends back an acknowledge signal to make sure that the communication is set up and starts to operate the electric motors. After the shuttles communication algorithm ends, the end-node of each shuttle is sent to its microcontroller by a server and the shuttles start to move to their new positions.

The control unit is the heart of the system, where shuttles will be functioning on commands given by this unit. The block diagram (

The RFID reader unit is responsible for the vehicle to move along the path, detects the marker and source point. It extracts data from its working environment and gives it as input to control unit. Like barcode technology, RFID scanner recognizes locations and identification of tagged item—but instead of reading laser light reflections from printed barcode labels, it leverages low-power radio frequencies to collect and store data. In a warehouse or distribution center, this technology is used to automate data collection. The transceiver reads radio frequencies and transmits them to an RFID tag. The identification information is then transmitted from a tiny computer chip embedded in the tag and broadcasted to the RFID reader.

The communication plays an important role in the efficient working of the vehicle. This is done initially when the user making a call to the mobile in the control system and the destinations are sent through Wi-Fi module from the server to each shuttle. There are two potential ways to set up the communication between the user and the vehicles:

The input is given by an operator who is at the source or start point as per the requirement and the bot moves as per the signal to the corresponding stations.

If there are multiple operators, the user at each station works as an operator by giving input to control unit from their respective stations as per requirement.

In this research, the first way is the chosen way to communicate between users and vehicles to save costs. By the way, the number of vehicles as well as the number of stations is not too large, that is enough for a modern computer today can handle. The Wi-Fi module we use is ESP8266, which is often used for IOTs applications. This module has preloaded firmware to help users communicate with Wi-Fi very easily via AT script through UART communication. ESP8266 is in consideration with its salient features including 802.11 b/g/n support, 2.4 GHz Wi-Fi, support WPA/WPA2, standard UART serial communication baud rate up to 115,200, support security standards such as: OPEN, WEP, WPA_PSK, WPA2_PSK, WPA_WPA2_PSK, support both TCP and UDP communication.

In this simulation, there are some parameters that are needed to be set up as: start-node, end-node, path matrix and start position of each shuttle. The simulations are carried out with two different sets of input numbers. These two sets of input numbers are chosen randomly and there is no rule in choosing them, these parameters are described in

G = [ 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 ]

Parameters | Value |
---|---|

Start-node | 1 |

End-node | 8 |

Start position of shuttle 1 | 3 (1) (3) |

Start position of shuttle 2 | 11 (1) (1) |

Start position of shuttle 3 | 4 (1) (4) |

Start position of shuttle 4 | 5 (0) |

Start position of shuttle 5 | 6 (1) (5) |

Start position of shuttle 6 | 7 (1) (6) |

*The values behind the start position number of each shuttle is its state (“ready” = 0; “busy” = 1) and its time needed to finish the old task. The other values are the number of the nodes, in this simulation, the user wants the system to transport goods from node 1 to node 8 and the position of six shuttles from 1 to 6 are 3; 11; 4; 5; 6; 7 respectively.

Parameters | Value |
---|---|

Start-node | 4 |

End-node | 11 |

Start position of shuttle 1 | 1 (1) (3) |

Start position of shuttle 2 | 5 (0) |

Start position of shuttle 3 | 8 (1) (4) |

Start position of shuttle 4 | 12 (0) |

Start position of shuttle 5 | 9 (1) (5) |

Start position of shuttle 6 | 7 (1) (6) |

*The values behind the start position number of each shuttle is its state (“ready” = 0; “busy” = 1) and its time needed to finish the old task. The other values are the number of the nodes, in this simulation, the user wants the system to transport goods from node 1 to node 8 and the position of six shuttles from 1 to 6 are 1; 5; 8; 12; 9; 7 respectively.

The result of the first simulation is presented in

because we suppose that each car only requires 10 minutes to finish its delivery or receiving process which means the maximum “busy” time of each shuttle is 10 minutes, so when shuttle 2 gets to start-node and finish its receiving process, that requires about 14 minutes, therefore the other shuttles are already in its “ready” state. In practical situations, the value of this 10 minutes will be changes based on the structure and the layout of the system in factories. On the way to move to end-node of shuttle 2, there aren’t any shuttles on the path, so we have a result in

With the parameters in

The result of the first simulation is introduced in

With the parameters in

By carrying out some simulation results with two series of different numbers in the previous section, the results obtained are very positive which shows the correctness, the effectiveness of the proposed control algorithm for our multi-station transportation system. No undesirable errors occurred during the program execution and the results are exactly as intended. However, the availability of the algorithm at this time also has one minor disadvantage as it cannot handle calling a shuttle at many stations at the same time. For our expectation in the next research, we will develop the algorithm that can handle calling multiple vehicles at the same time, build a user-friendly widget allowing users to enter data as well as observe the entire process of vehicle operation and proceed to install the actual product. More and more simulations and experiments will be carried out in the next steps to develop our proposed control algorithm and also check the agreement between the simulation results and the experimental results.

This research is funded by Vietnam National University Ho Chi Minh City (VNU-HCM) under grant number B2021-20-04.

The authors declare no conflicts of interest regarding the publication of this paper.

Ha, T.D., Trinh, M.T., Vu, T.T.C. and Vo, T.Q. (2021) Controllers Design for the Multi-Shuttle and Multi-Station Transportation System. Open Journal of Applied Sciences, 11, 946-965. https://doi.org/10.4236/ojapps.2021.118069