FlexSim's AGV objects and tools are designed to help you simulate business systems that will use automated guided vehicles (AGVs). AGVs are portable robots designed to transport goods from one destination to another.
The following image shows a hypothetical example of a hospital that uses AGVs to transport medical supplies, laundry, and waste:
AGV systems are now being used for a growing variety of applications in materials handling, manufacturing, and beyond. Since AGV systems are costly to implement, they are ideal for a simulation project. You can experiment with different AGV system setups in a simulation model until you find the most efficient system for your needs.
An AGV simulation model can also act as a communication tool when you get to the implementation phase. You can hand off the model to the individuals who will program the AGVs to help them understand the kind of logic that they will need to use when they program the AGVs in the system.
Before beginning your AGV simulation project, you should ideally research the types of AGVs your system will use. If it's not possible to find out information about the AGV system before you begin your project, keep in mind that you can build a working model and then make modifications to it as you get more information about the AGVs you will use.
With that in mind, the following is a list of questions that you could consider asking your vendor about the AGVs that you'll use in your system:
The following sections will provide a high-level overview of the 3D objects and tools that are used to build an AGV model in FleXsim.
The TaskExecuter 3D object in the library is designed to look and move like an AGV, so it is the best object to use in an AGV model. You can find this object in the Task Executer category of the library.
The AGV category in the library has the following objects:
|Name and Icon||Description|
||Draws a straight path that AGVs will use to travel from one location to another.|
||Draws a curved path that AGVs will use to travel from one location to another.|
||Join paths acts more like a tool than an object. Use it to create a curved AGV path connecting two AGV paths.|
||Control points handle a lot of the logic in AGV networks. AGVs and flow items will need to enter and exit the network through a control point. If you need to route AGVS to different floors, you'll use control points to communicate with elevator objects. Control points can also be connected to other control points to create look for work systems where AGVs loop through the network looking for tasks at different locations.|
||You can add control areas to sections of the AGV network to prevent collisions. These control areas will restrict access to that section of the AGV network by only allowing a fixed number of AGVs into the area at a time.|
To make AGV simulation even simpler, FlexSim has two pre-built AGV process flow templates you can use with your AGV simulation project. These process flow templates already have the basic logic needed for most AGV systems. All you need to do is attach your the AGVs in your 3D model and adjust the settings that will be unique to your AGV system.
AGVs are essentially specialized task executers that primarily transport items from one fixed resource to another. AGVs handle tasks such as loading, unloading, and traveling using the same basic logic that all task executers in FlexSim use. For that reason, you should consider reading Key Concepts About Task Logic before reading about AGVs specifically. As was discussed in that topic, there are four different logical problems involved in getting task executers like AGVs to complete tasks:
Any AGV system will involve all four logical problems. The following sections will provide an overview of the tools and methods you will use to solve these four problems when AGVs are specifically involved.
AGVs almost exclusively handle transportation tasks, meaning they transport flow items from one fixed resource to another. For that reason, the transportation tasks tend to be generated by fixed resources or by process flows that listen to events on fixed resources.
Fixed resources that will use AGV transports to transport flow items need to be connected to a control point on the AGV network, as shown in the following example:
In this example, two processors are connected to a nearby control point named PickUpControl on an AGV network. The connections are blue because they were connected as locations to this control point.
The PickUpControl point is then connected to several other control points. The connections are green because they are connected as pick up points.
When the processors pass flow items to the PickUpControl point, it will then route the items to one of these pickup points. The item will wait at this point until it is picked up by an AGV. If there are not any pickup points available to receive a flow item, the item will remain on the processor.
In AGV systems, the task dispatching logic is handled by a combination of control points, the AGV process flow template, and a global list named AGVWork. (This global list is automatically created whenever you use the main AGV process flow template.) When a fixed resource needs to request an AGV transport for a flow item, it will push the item to the AGVWork global list and the process flow template will handle the rest of the logic.
The key thing to keep in mind is that task dispatching is mostly determined by the location of the AGV in the 3D simulation model. When an AGV passes over a control point, it will check to see if there are any available tasks to work on, such as items to load. If there are tasks to work on, the AGV will begin working on the task and it will travel to the appropriate control point to load or unload flow items.
Continuing with the same example used in the previous section, the two processors not only push the flow items to the PickUpControl point, they also push items to the AGVWork global list using their Use Transport property. When an AGV passes over the PickUpControl point, it checks for the tasks in that area. If there are items available to load, it will enter the pickup area and load an item at one of the pickup points, as shown in the following image:
If there weren't any available items to load at one of the pickup points, the AGV would simply move on to the next area without entering the pickup area.
Item flows and routing are entirely handled by the fixed resources in the 3D model and aren't affected by any of the other AGV-related tools. In other words, the same methods that you would use to connect 3D object flows in a standard simulation model would apply to an AGV simulation model as well. (See Connecting 3D Object Flows for more information.)
In AGV models, you'll typically connect 3D object flows using either port connections or lists. Port connections have the advantage of being easy to set up. However, because AGVs typically transport items over long distances, it might be difficult to draw connections between objects that are far away. That's where it might help to use lists instead. Lists can also simplify what many-to-many port routings for models with many different origin points and many different destination points.
Using the same example as in the previous sections, in this model, there are two types of flow items: medical supplies (which look like white boxes) and clean laundry (which look like brown boxes). Trucks arrive at the unloading dock and drop off loads of either medical supplies or clean laundry. The two processors represent the amount of time it takes employees to stage the loads for pickup by the AGVs. The two processors push items that are finished being processed to the ReadyForDelivery global list using their Send to Port property.
There are several downstream sinks where AGVs need to deliver either medical supplies or clean laundry. These sinks pull items from the ReadyForDelivery list, which tells the AGV where to deliver the specific load it is carrying.
When the AGV reaches the sink that pulled the specific flow item it was carrying, it will unload the flow item it is transporting.
Fortunately, it's fairly easy to create the specific paths that AGVs will travel in FlexSim. After you create the paths that AGVs will use for travel, you should check that the paths have the correct direction settings. Then, you'll connect the AGV objects to the network of paths using a park point connection to a control point.
Continuing with the same example as the previous sections, the AGVs in this system are designed to travel on a continuous loop throughout the simulation model. When they reach certain control points, they check for work to see if they need to load or unload any items at that location. If not, they continue on the main loop. If there is available work, the AGVs are diverted to the specific location where items need to be loaded or unloaded.