Visit And Assess Policy
Somebody free walks to the stopped vehicle, looks at it, and pushes it out of the aisle if it is in anybody's way.
The procedure a site actually runs, written as a process because that is what it is. Every step is a wait or a branch, and the only one the framework contributes is ksl.modeling.entity.tow.
The order matters and is the point. The technician is seized before the walk, because a person who is busy elsewhere is not walking anywhere yet -- and on a fleet with one technician and several vehicles that wait is most of the answer. The assessment happens after the walk, because nobody knows what is wrong until they are standing at it. And whether to move the vehicle is decided after the walk, from Interruption.isObstructingNow, which by then is a real question: somebody has had to be free and walk over, and a queue has had that long to form behind the vehicle. Interruption.isOnAThroughRoute is the standing fact underneath it -- a vehicle broken down on a spur nobody uses can be repaired where it stands, and the same vehicle across a main aisle cannot -- and this policy tows when either is true, so that a vehicle dead in an aisle is moved even on the run where nobody has yet arrived behind it.
What it does about a flat battery is to tow it to a charger and nothing else. Charge is a function of the vehicle's odometers, so no amount of standing at it helps; reaching a charger is the only thing that does. If the fleet has no charger this policy leaves the vehicle where it is, which is what the default does too.
Parameters
who does the work. A ResourceWithQ, so the wait for one is reported as a queue without this policy having to count anything.
how long before anybody knows. Zero is a fleet that radios in immediately.
how long it takes to reach the vehicle. A single distribution rather than a function of where it stopped, which is the right first cut for a site where walking anywhere takes about as long as walking anywhere else; a model where it does not should subclass.
how long the look takes.
where an obstructing vehicle is pushed to. Must be reachable from anywhere a vehicle can stop, or the tow raises.
how fast a person moves a dead vehicle. Slower than it drives.