Hi everyone,
we encountered a problem (and potential bug) in our latest project. Attached is an example model that reproduces the issue.
In the model, AGVs are dispatched to transport items between locations. Accumulation is used to keep a certain distances between the AGVs. After they finish a task, they start to travel back to their charging station, if they couldn't pull a new task immediately (in the example model they always start the travel).
Beforehand, a child token is created that tries to pull a new task while the AGV is still travelling to the charging station. If it succeeds, the travel is preempted (and aborted) by generating a new task sequence for the item transport.
In (somewhat) rare cases, an AGV will fail to allocate the transfer cluster when leaving their charging spot for a new task for seemingly no reason (no other AGV nearby, no allocations of the path point in the tree). (Second stop time at 1510s in the model)
This seems to happen when the AGV was previously preempted just as it was about to enter the spur to its charging point. (First stop time at 1340s in the model)
It also seems to be connected to the fact that the charging spurs are two-way paths that force the AGV to change its orientation to driving backwards due to the angle at which it enters. We couldn't observe this issue when replacing the spurs with one-way loops. At least not within a model time of 2 weeks. That version of the model is also attached for reference.
We'd be grateful for any feedback on why this might be happening and/or how to work around it, apart from not allowing the travel preemption near the charging station.