I am noticing some "strange" behaviour in the Road Traffic Library. In my model, I seize and release resources based on the position of a vehicle on the road network. The reason for this is not the issue here but in the model execution, some vehicles seemed to miss the seize step. To try and understand what was happening, I created a very simple model with a simple T-junction. Injecting a car on the vertical leg and moving it straight to the stopline at the intersection and specifying that it must stop before the line before proceeding to the next block which moves the vehicle on the horizontal, works as expected. However, if I put another stopline on the vertical road before the junction and add a carMoveTo block to first move the car to this stopline (but setting it to pass through) and then moving it to the stopline at the junction (set to stop before) the behaviour becomes inconsistent. The outer lane on a 2 lane road works as expected, but on the inner lane, the car overshoots the stopline at the junction and ends up in the intersection even before completing the block.
Can anyone explain why AnyLogic is doing this and how I can ensure that the car stop as specified?
EDIT
I have created a demonstration model in the public AnyLogic cloud at Road Traffic Demo
Also see below screenshot for an illustration
Without the pass-through stopline the vehicle completes the block in column 2 at zero speed (stop at intersection). With the mass-through the vehicle complete the block in column 2 (carMoveTo1) at speed ~30kph (does not stop at the intersection) - I update the value of the variable "speed" on exit from the relevant block in column 2 using the car.getSpeed(KPH) method.