question

qiu xiaohong avatar image
1 Like"
qiu xiaohong asked Phil BoBo commented

advice for a grid based agv system (like Kiva Systems)

I want to do a simulation of Kiva Systems (now owned by Amazon).

A Kiva system is laid out in a grid configuration.

If I use network nodes to set the routes and coupled with the collision problem, the result is the model will crash.

FlexSim 16.1.0
agvnetwork nodestravelcollision problemthe routes of kiva
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Adrian Haws avatar image
1 Like"
Adrian Haws answered Phil BoBo commented

At the moment FlexSim doesn't have a simple way of achieving this type of navigation system without lots of coding.

Something that you might consider doing is posting this as an "Idea" in the Development space on this Answers site. That will likely increase the possibility of this feature being added in future versions of FlexSim.

For reference, another user has asked a similar question here.

· 1
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Phil BoBo avatar image Phil BoBo ♦♦ commented ·

The 18.1 beta is available with new features on the A* Navigator for traveling only at right angles, rotating in place, collision detection, and routing based on travel time.

With these features, you can use the A* Navigator to simulate kiva systems.

3 Likes 3 ·
Joerg Vogel avatar image
1 Like"
Joerg Vogel answered Joerg Vogel edited

As @Adrian Haws pointed out there isn't an existing module for everything you like to simulate. But Flexsim has the ability to let you build such a simulation model. Perhaps you need only some hints how to start. My approach would be to divide the problem into two independent systems. System 1 copes with the traveling of the Automated-Guided-Vehicles. They travel always only in one coordinate direction, in x or y at a time. The crane behaves similar by parameter setup for example. The Vehicles themself use the collision detection to by pass each other. The Vehicle which is loaded stays on track and has got a higher priority to achieve this.

System 2 consists of the management how to distinguish which shelves-objects has to be resorted in the area to get the one shelf to a picking station. A start could be a rack in floor storage mode. Maybe you can start with a rack size of 4 by 4 cells. Then you choose one item (shelf object) from the inside to be transported to a picking station. Then it is neccessary to move one of the surrounding items in the rack to another rack before you can transport the item you need to get to a picking station.

In my opinion it isn't necessary to use a path system at all whether it consists of the AGV-module or the network nodes. It is just a management of discrete travel distances ordered in a grid and the collision detection to let by pass the vehicles on their own.


storage-system.gif (11.4 MiB)
· 3
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Joerg Vogel avatar image Joerg Vogel commented ·

Recently I get the idea to use a crane for the vehicle. The crane has the ability to travel seperately in directions. And it isn't necessary to let the crane lift the item. Only the look is really different to a normal taskexecuter or vehicle, but you can switch of the visibility of the whole crane structure and exchange the hook by another shape of a vehicle.

grid-based-model-first-step.fsm

You can build your own crane without the structure and save it as user library object. If you try this, you can copy the onDraw node from the standard taskexecuter out of the library. This node is in the Main Tree:

MAIN:/project/library/taskexecuters/TaskExecuter>behaviour/cppfunctions/onDraw

You find the node "ccpfunctions" in the crane object tree, too. Copy this node into there. But the node "cppfunctions" must be rebinded in the Object Attributes after that. The structure objects are under the drawsurrogate node. You can delete the content of this node. (Crane##>visual/drawsurrogate; Crane## is your object's name).

You find attached a simple example of this crane. If you drag the vehicle into the model, you have to zoom out to find the vehicle.

2 Likes 2 ·
qiu xiaohong avatar image qiu xiaohong commented ·

Thank you for answer my questions patiently ,then I will give it a try as you suggest.

1 Like 1 ·
jing.c avatar image jing.c commented ·

Your idea about System 1 inspired me a lot, Thank you Jörg!

0 Likes 0 ·