question

luis-rodrigues avatar image
0 Likes"
luis-rodrigues asked luis-rodrigues commented

A* Navigation

I'm working on a model with different "buffers" of the same material across the layout, I added dividers to simulate walls and the transporters should do the smallest route.

I don't understand why but they are getting the materials randomly (sometimes to the nearest buffer and other times to the farest buffer) and they tend to be stuck between rooms (this happens when they try to take the empty boxes to the sink "empty_1")(picture bellow).

1.png

Can you help me figure out what's going on?

mlall.fsm

FlexSim 24.1.0
transport navigation
1.png (36.2 KiB)
mlall.fsm (323.3 KiB)
5 |100000

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

1 Answer

Felix Möhlmann avatar image
0 Likes"
Felix Möhlmann answered luis-rodrigues commented

When pulling items from the material list, the tokens simply pull any item with the correct type. By default this will be the oldest one on the list. If you want to pull them based on distance you need to add a field to the list that calculates the distance between transporter and item and then order by this field in the query.

The default "distance" field you can add through pick options calculates the straight line distance. In your model this might not be the best choice. Using the command "distancetotravel()" might yield better results.

capture1.png

capture2.png

In the "Move Empty" subflow, you refer to a group as the destination object. A group is technically an object, so you don't get an error message, but this field should refer to a (single) 3d object in the model. Because the group object has coordinates of (0, 0, 0) the transporter try to reach the coordinate origin in the model which is why you see them parked next to the wall, as it's the closest spot they can reach.

capture3.png

Similar to above, if you want the transporter to travel to the closest queue in the group, put all queues onto a list (as initial content for example). Then pull the closest one in the Process Flow and activate the "Leave Entries on List" option in the Pull From List activity, so all queues stay available to be pulled.

In general I don't really see the benefit of using A* in this model. Since most of the travelling is done in corridors, a simple travel network with network nodes would likely function just as well but run much faster.

At the very least I would suggest you increase the A* grid spacing to 1m again. There really is no benefit to such a fine grid.


capture1.png (12.1 KiB)
capture2.png (16.9 KiB)
capture3.png (21.0 KiB)
· 5
5 |100000

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

luis-rodrigues avatar image luis-rodrigues commented ·

Thank you for your answer, how do you suggest to put all queues onto a list?

0 Likes 0 ·
Felix Möhlmann avatar image Felix Möhlmann luis-rodrigues commented ·

Putting the queues into a group (optional) and adding them as intial content should be the easiest and fastest way.

capture1.png

0 Likes 0 ·
capture1.png (22.9 KiB)
luis-rodrigues avatar image luis-rodrigues Felix Möhlmann commented ·

I may have pulled from the list the wrong way, because I'm getting this error:

1.png

2.png

mlall-3a.fsm

0 Likes 0 ·
1.png (33.9 KiB)
2.png (32.2 KiB)
mlall-3a.fsm (324.5 KiB)
Show more comments