question

Orlando P avatar image
0 Likes"
Orlando P asked Jeanette F commented

AGV navigation


projeto-v4-teste.fsmG
hey, I was looking at this publication (Evitando estações vazias com executor de tarefas - FlexSim Community
) and tried to adapt traveldistance to have better results in the cost of transport but I couldn't adapt can anyone give a help?
FlexSim 21.1.1
agvflexsim 21.1.1
traveldistance.png (23.6 KiB)
projeto-v4-teste.fsm (151.3 KiB)
· 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.

Jeanette F avatar image Jeanette F ♦♦ commented ·

Hi @Orlando P, was Eric M's answer helpful? If so, please click the red "Accept" button at the bottom of their answer. Or if you still have questions, add a comment and we'll continue the conversation.

If we haven't heard back from you within 3 business days we'll auto-accept an answer, but you can always unaccept and comment back to reopen your question.

0 Likes 0 ·

1 Answer

Eric M avatar image
0 Likes"
Eric M answered Eric M commented

It looks like some of the labels on the queues are called "labelname" instead of "CP" as well as the Deposito queues don't have the label CP.

I'm not sure that doing that will help with what you're wanting to do. The challenge with optimizing distance is that right now the AGV will always go to the "Next Work Point" to check if there's work. Even if a queue does not have items to send out, the AGV will keep checking that point to see if there's work there.

One way you could fix this by using work forwarding which works by allowing the AGV to see if there's work at a control point without travelling to that control point. Now, instead of the AGV endlessly following the next work point loop, it could check if there's work at the next point before travelling there. If there isn't work, it would know to go to the next place. The other option I can think of is to go without the next work loop altogether. You could make a process flow that still uses the lists you've made and uses the AGV to transport the items, but doesn't force the AGV to follow the look for work loop which is similar to what was done in the question you referenced.


1623189754687.png (5.2 KiB)
1623189772911.png (4.2 KiB)
· 2
5 |100000

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

Orlando P avatar image Orlando P commented ·
hello thanks for your attention
Would it be possible to do an example ?
0 Likes 0 ·
Eric M avatar image Eric M Orlando P commented ·

I updated your model with work forwarding points instead of a work loop. I connected work forwarding points to each control point where the AGV drops off items. The Deposito queues' control points are the ones forwarding work to the drop off control points. This means that when the AGV gets to a drop off point, it will now see work from the 4 Deposito queues. Next is to make sure we can sort them by distance.

To sort by distance, we use CP labels and the distancetotravel command. When the AGV unloads, it gets a new CP label at the point it just unloaded at. Each queue also gets a CP label which references the CP it's connected to. The distancetotravel code is saying to find the distance between the CP where the AGV just unloaded and the CP of the items waiting to be loaded. The value.up.CP code is saying look at the CP label on the object that contains the item ('value' is the item and 'up' is the queue it is in).

The last thing to do is make sure the list is sorting by the shortest distance to travel. In process flow (which I updated to the AGV with Work Forwarding template), use the Query on the list that pulls the next location to order by TravelDistance. Note: I changed most the queues to only hold 10 items so I could test that it was working as expected. projeto-v4-teste-em.fsm

0 Likes 0 ·