question

Roeland S avatar image
0 Likes"
Roeland S asked Roeland S commented

Asses the AGV route between pickup and dropoff control points in advance

Hi,
I have a question about AGV train routing. In my model, a complex railway network connects several stations that process the train wagon objects. Once finished, a task is dispatched to an AGV to move this train wagon object to its next processing station. The route from the pickup towards the dropoff location can however be blocked by another train wagon object that is being processed. The AGV thus receives several requests (messages) but not all of them can be executed at every moment because the route is blocked. I would like to test in advance if the route between a pickup and dropoff location is available and filter out all the 'blocked' tasks.

Is there a way to determine what route the AGV would take from the pickup to the dropoff location and evaluate if control points on that route are already allocated?

FlexSim 21.0.2
flexsim 21.0.2agv routing
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

Steven Hamoen avatar image
0 Likes"
Steven Hamoen answered Roeland S commented

@Roeland S I'm not sure how you control the driving over the AGV network, but you can let the train travel from control point to control point with the travel task. And if you have a list with available control points you can pull one before you start travelling and either put it on a list with points being used and pull it from there when the point is available again or remove it and put the control point back on the list when it becomes available again.

Hope this helps?

· 11
5 |100000

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

Roeland S avatar image Roeland S commented ·

@steven.hamoen , Thank you for your reply. I'm stuck at this point, so any suggestion is appreciated.

The AGV task sequence of a pulled task is similar to this: travel from currentCP to the pickupCP, attach trailer, travel from pickupCP to dropoffCP, detach trailer. Sometimes, the second travel (pickup to dropoff) is blocked by another trailer. So this task cannot be executed at that moment. There are several tasks on the global task list, so i would like to pull tasks and push them back until the TE finds a task that it can execute. Once the first travel task (currentCp to pickupCp) is dispatched, the route is determined by the navigator and i'm able to lookup and asses all the control points on the chosen route.

I would like to do the same for the second travel task. Is e.g. a dummy navigator an option?

0 Likes 0 ·
Patrick Zweekhorst avatar image Patrick Zweekhorst Roeland S commented ·

@Roeland S,

How are you currently looking up the control points of the route of the first travel task? Are you also checking availability of the control points at this point?
I know this not an direct answer to you questions, but maybe some answers to these questions help us to get an useful answer for your question.

Are you able to post your model, or is that not allowed?


0 Likes 0 ·
Roeland S avatar image Roeland S commented ·

Hi Patrick,

Unfortunately, I'm not allowed to share the model. But here's a snippet. Briefly, it creates a temporary task and dispatches it to an AGV (reference in token.Loco label). Then, I loop all the allocation and traversal control points and asses if someting is referenced to the label "TpOpCp" of the control points. Afterwards, i destroy this temp task sequence.

If a model is really needed, i could perhaps make a toy problem equivalent.

0 Likes 0 ·
Patrick Zweekhorst avatar image Patrick Zweekhorst Roeland S commented ·

Hi @Roeland S,

That seems to be the correct checks. What we can do is the following. Maybe it is not the perfect solution, but I think it should work.

It is possible to use a dummy AGV. Since you want to check the route between your first destination and your second destination, we connect the AGV to the first destination (this is the start point of the route). Then, like in your checks for the first part of the route, give it a dummy task to the second destination. Check all the control points you find on that route. Remove the task for the dummy AGV. Disconnect the dummy AGV from the network.

I made a start with this code in the attached model. I think the missing part of the code are the checks that you already included in your model, so that should be fine I think.
Just not that to be sure that the dummyTe does not block the path I also remove the connection with the AGV network OnReset.

AgvExample_2.fsm


0 Likes 0 ·
agvexample-2.fsm (42.5 KiB)
Roeland S avatar image Roeland S Patrick Zweekhorst commented ·

The model proposed by @Patrick Zweekhorst works perfectly, but induces a memory leak. Be aware to clean up the listeners subnode of the object.

1 Like 1 ·
1618386277550.png (12.2 KiB)
Show more comments