Links, speeds and traffic
Paths say where a vehicle can drive. Links, travel directions, speeds and traffic zones say how it drives there: which routes it takes, how fast, and when it has to wait for others.
How vehicles choose a route
The router never invents a way that the layout does not allow. It works in one of two modes, decided by the layout itself:
- No links in the layout: vehicles travel along the connected paths directly, respecting each path's travel direction. This is the quickest way to start.
- At least one link: vehicles travel only along chains of links, station to station. Among the possible chains, the router picks the fastest by nominal travel time.
A transport only needs an allowed route from its pickup to its drop-off; a way back is not required to accept it. After unloading, the next order is planned from where the vehicle actually is.
With links, a vehicle must also reach pickups from its starting charger or parking and return from drop-offs to a charger or parking. If no link chain allows it, orders stay queued with the reason No AGV can reach the pickup, or the vehicle reports Return impossible.
Links
With the Link tool (8), click the source station, then the destination station. The app searches the shortest allowed sequence of paths, in millimetres, between the two and creates the link. If a link with the same source and destination exists already, it is selected instead.
The link inspector shows:
- Name, Source and Destination;
- Link speed (cm/s), or Use default speed;
- Zones required to be clear (see Zone conditions on links);
- Calculated sequence: the IDs of the paths the link follows. Click an ID to select that path;
- Recalculate route, Create return link and Delete.
Links are one-way. For a return trip, press Create return link: return links are never created automatically.
One-way paths
Each path has a Travel direction: both ways, A to B, or B to A. Arrows on the selected path show it. One-way loops are the simplest way to avoid head-on encounters.
The router respects the direction when it creates links. If you change a direction later, existing links that now run against it become unusable but are not deleted: select the link and press Recalculate route to recompute its sequence.
Speeds and motion
Every fleet has its own speeds and ramps, on its card in Simulate → Vehicles: a new fleet starts from 80 cm/s on straights, 40 cm/s on curves, 40 cm/s² acceleration and 60 cm/s² deceleration. Layout speeds take priority:
| Section | Speed used |
|---|---|
| Straight path | The path's own speed, otherwise the link's speed, otherwise this fleet's straight speed. |
| Curve or S-curve | The curve's own speed, otherwise this fleet's curve speed, even when the link has a custom speed. |
So one link can cross sections with different speeds. Reset all layout speeds to defaults in the Fleet step removes every custom speed on links and paths in one undoable step.
Vehicles accelerate progressively and brake in advance before slower sections, curves, stops and the limit of the space granted by traffic control. Before reversing, even within the same link, a vehicle stops completely and then accelerates in the opposite direction. It is a simple longitudinal model: no steering or grip dynamics.
Local collision avoidance
Each fleet has an oriented rectangular body in its actual dimensions, with configurable clearance on every side. Minimum distance (1000 mm by default) remains a lower bound on the protected dimensions. Reservations cover the swept body and its braking corridor on a conservative grid. The active scanner checks only the direction of travel: front when driving forward, rear in reverse, with this fleet’s ranges. An AGV in the stop field causes braking and a wait until the field clears. A vehicle only alongside does not trigger the scanner. During a scanner stop, the reservation ends at the block containing the stopping point, preserving the body sweep and braking corridor; it does not occupy unused later blocks that could prevent the leading vehicle from turning. A vehicle about to enter an exclusive zone requests it shortly before its edge, and vehicles waiting for it stop there, so the way out stays clear. Stationary vehicles retain their body occupancy. A vehicle that stops where its next move starts with a turn in place (a corner between two paths, a pickup on a junction) holds the area that turn sweeps from the moment it reserves the stop, so a vehicle queuing behind cannot close in on it and block both. After a delivery the next move is not known yet: the stop holds the turns towards every path through the station. A vehicle that waits idle at a station and later leaves with a turn is not covered. The same applies to reversals along a route: when the route backs over a stretch running close to the one just driven (a curve peeling off almost parallel, for example), the vehicle holds that stretch from where a follower is still clear of it, and only when nobody is between it and the reversal point. The follower waits there instead of closing the space the vehicle has to back into. Scanner fields in the toolbar draws the active stop field of every travelling AGV in 2D and 3D, red while it brakes. This models a protective field, without LiDAR rays or reflectivity; CAD remains a graphic background.
Local avoidance keeps vehicles apart but does not organise manoeuvres. In a dead end or on opposing paths, vehicles can block each other without colliding. When every AGV with a mission has been waiting on the others for more than a minute, the results show Possible gridlock. Use one-way loops and exclusive zones to prevent it.
For a first capacity estimate you can switch all of these rules off in Scenario: see Traffic rules. Vehicles then drive through each other and only wait for occupied stations.
Exclusive traffic zones
A traffic zone is a rectangle (or a polygon, see below) that one AGV at a time may occupy. Use it on narrow corridors, single-lane passages and crossings where two vehicles must never meet.
- Draw the zone. Choose Zone (9) and drag a rectangle over the bottleneck, including its entrances up to the branches where vehicles can wait clear of the exit.
- Adjust it. With Select or Edit, click the border to select the zone, drag a corner to resize it or the interior to move it. Paths inside never move. You can also type Minimum X, Maximum X, Minimum Y and Maximum Y and a Zone name in the inspector.
- Check it. The inspector tells how many paths cross the rectangle. A zone that intersects no path shows a warning.
Polygon zones. When a rectangle does not fit the bottleneck, choose Polygon zone (0): click to add vertices, then click the first vertex or press Enter to close the shape (Backspace removes the last vertex, Esc cancels). The zone may be concave, but its edges cannot cross each other. While you place or drag a vertex, it aligns automatically with the vertices of the same zone and of every other zone (rectangle corners included) that share its horizontal or vertical line: a temporary dashed line shows what it aligned with, so the shape stays regular. In Select or Edit, drag a vertex to reshape the zone, or edit the vertex list in the inspector, add a vertex (it splits the longest edge) or remove one (at least 3 remain). A polygon behaves exactly like a rectangular zone for traffic, link conditions and operator reservations, and only its shape counts: a vehicle in a notch that does not touch it does not hold it.
How a zone works during the simulation:
- A zone is held only by a vehicle that enters it: from the moment it requests the zone shortly before its edge (at its radius plus a small rotation clearance) until its footprint, the fleet size plus the safety margin, has completely left. It keeps the zone during stops inside; the zone is not released at the end of a mission or after a timeout.
- A vehicle driving past a zone without entering it does not hold it, however close it passes.
- Other vehicles bound for the zone stop at that same distance from its edge and wait there, outside the area where the vehicle inside manoeuvres.
- Links that are only partly inside, and movements without explicit links, are protected as well.
- Every zone stands on its own: overlapping or nearby zones, automatic warehouse aisle zones included, are never merged. A vehicle crossing them one after the other requests them together on entry and frees each as soon as it has left it. Turns in place that swing it partly out of a zone are requested with the zone, so a vehicle driving past does not stop where it has to turn. The exit-space reservation still applies.
- If a pickup or drop-off is inside a zone, the vehicle needs an allowed route to a charger or parking outside the zone to leave it; only the exit space is reserved, not the whole return.
A layout can have up to 100 traffic zones.
Zone conditions on links
A link can require one or more zones to be clear before the vehicle passes the link's source. In the link inspector, Zones required to be clear lists every zone:
- zones that contain the link's destination are ticked automatically and marked automatic; they follow the destination and the zone boundaries (the border counts as inside);
- tick other zones to add manual conditions. All automatic and manual zones must be clear.
The check happens while the vehicle approaches the source of each link, including intermediate links of a longer trip. If the zones are clear, it continues without stopping. If a required zone is occupied, it brakes early and waits at the source of the link; if the zone frees up during braking, it can accelerate again without stopping. The Active table in the dock shows the link, the occupied zones and the AGV that holds them.
If you delete a zone that a link requires manually, the link is blocked and shows Zone N missing — link blocked. Untick the missing zone in the link or undo the deletion.
Optimize traffic · Experimental
In Scenario → Automatic traffic, Start optimization searches for configurations that resolve blocks observed in trials while limiting their cost to the flow. It does not change rules during a running simulation: it works on a project copy, pauses the ordinary run and suspends project editing, while you can navigate the map and switch workspace, language and theme.
- Choose the engine. Local searches and simulates alternatives in the browser, exploring families of changes before promising refinements. AI assisted, available with your account's AI entitlement, analyses incidents, proposes its own permitted changes and requests verification by the same local simulator. It uses the existing AI quotas.
- Choose autonomy. An improvement is presented as soon as it passes full verification, without waiting for other alternatives. Ask before changing is the initial setting: it shows changes and effects and waits for your acceptance before becoming the new provisional solution. Full access accepts it automatically. You can switch during the search; enabling Full access also accepts a verified proposal already awaiting a decision.
- Check the duration and start. Every solution that can be kept is verified over the entire configured duration. Three search seeds and two separate verification seeds are planned; if the first complete trial uses no random draws, one execution suffices for that configuration. If the ordinary duration is ∞, set a finite verification duration; the initial value is 8 hours. Short trials only discard unsuccessful attempts.
- Read the progress. The panel shows progress through alternatives selected for the current round, elapsed real time, Estimated round end and the best verified result. The estimate uses observed trial speed, is approximate and pauses during decisions; initially it may say Estimating. It applies only to that round: some variants may be deferred and an accepted improvement may start another round.
- Inspect the attempt. Current alternative describes the change being tested; expand Proposed operations for details. Show on the map enables a read-only preview without applying or accepting the candidate. Trial details compare blocks, missions and waits: removing blocks takes priority, followed by productivity and times, then the extent of exclusions and the number of changes.
When one trial is enough. The engine counts random draws from initialization through the entire configured duration. With zero draws it reports One trial: no randomness activated; otherwise it runs the five seeds. Each candidate is checked again: a deterministic initial configuration does not guarantee deterministic alternatives. The same rule avoids repeated short screening trials, but a short trial without randomness cannot prove equivalence over the full duration. The report distinguishes the five planned seeds from those actually executed and records the observed equivalence.
Diagnostics follow groups of vehicles that make no progress for at least 60 simulated seconds, even while other AGVs keep working. They distinguish mutual waits, scanners, occupied space, zones, entries and exits, and chains blocked by an idle vehicle. Service, charging, faults and operator reservations remain separate causes. Physical body collisions are detected separately from scanners and protective margins.
The search can create, resize, replace, merge, split and remove saved zones, including manually drawn ones. It can add transit points on existing paths: neutral stations that check zone admission, without service roles, new parking places or mandatory stops. It adds no links and does not change path geometry. Manual link conditions remain at their original position; only compatible automatic checks can move to a transit point before the protected entrance. Warehouse protections remain derived from warehouses and participate in the trials.
Attempts that introduce collisions, new unresolved blocks, fewer placed AGVs, lost reachability or impossible work are rejected. Zone references and operator reservations must keep their meaning. Local search uses a 250 mm grid, preserving original coordinates, and works through families: broad changes first, then refinements where results look promising. Preventing deadlocks. The search also starts from the two-way lanes at risk listed in the Network tab, before any trial blocks. When such a lane exists, the current configuration is also simulated with doubled order demand (shorter intervals and delays, higher production rates; layout, fleets and stations unchanged) for at most two hours and two seeds. A change that brings no gain on the real workload is kept only when it removes a block seen with doubled demand, adds no block and costs at most 1% of completed missions and throughput; the proposal says so. From then on no other change may bring that block back. Without lanes at risk no doubled-demand trial runs, so the search costs no more. When vehicles wait for each other head-on in a single lane, such as two AGVs in a two-way dead end, one on its way out and one on its way in, a zone around their noses only moves the wait to the lane exit: the search therefore also proposes zones that grow along the vehicles' way ahead, segment by segment, until they hold the whole lane up to the junction, never covering a charger or parking place. The AI agent receives each vehicle's way ahead and, as optional hints, these corridor zones. Variants close to unproductive attempts may be deferred. Deferred means untested: it does not prove equivalence or lack of value. Completion describes this selective search, not exhaustive coverage of all configurations or a global optimum.
How the AI agent works
The agent inspects incidents, fleet dimensions and motion, scanners, paths and link conditions. It can propose its own zone and transit-point operations, request a local trial and read its outcomes before revising the proposal or finishing. After two attempts in the same family without an operational gain against the current solution, further variants are deferred without simulation and the agent must change strategy. It can receive up to two diagnostic images generated from vehicle poses recorded in the trials, showing bodies, scanners and paths: these exclude the CAD background, user names and interface controls. Every improvement must still pass full verification.
Current strategy shows what the engine is doing and why. Open Context shared with AI to see the diagnostic images sent. Trial details → Recent attempts shows outcomes and reasons for attempts.
AI steps shows completed steps and the tranche limit. Work pauses at that limit, or after three consecutive repetitions without progress. Continue with AI explicitly authorises a new tranche; you can also continue locally or stop. Provider errors or exhausted quotas also pause assistance. Full access controls acceptance of improvements; it does not automatically renew the tranche or bypass account limits.
Stopping, keeping and recovering
Stop cancels the current attempt. Keep applies only the best configuration already verified and accepted; Discard retains the original project. Natural completion applies the best accepted configuration. The result is one undoable change with Ctrl+Z; use Save to write it to disk.
The browser keeps a verified recovery checkpoint, separate for each account and project. After an unexpected closure you can explicitly recover it: the interrupted attempt starts from the beginning and AI calls never restart by themselves. If IndexedDB is unavailable, a warning explains that recovery remains only in the open tab. If the AI provider fails or the quota is exhausted, you can continue locally or finish.
The report records duration, seeds, changes, productivity and remaining blocks. No blockages detected in the completed trials describes those trials: it does not guarantee every possible condition. A seed repeats one configuration; after a change, random draw order can change and so can the timing of disturbances.
Tugger trains in traffic
A train's trailers and drawbars hold their space as the tractor's body does: as one chain of rectangles from the hitch back, moved with the trailers. They only enter space the tractor has just held, because they follow its path, and the tractor's reservations are at least as wide as its trailers. Other vehicles therefore stop before the last trailer, cannot cut between tractor and trailers, and their scanners see the trailers too. An exclusive zone the train entered stays held until its last trailer has left it, and zone conditions on links count the trailers inside a zone. A train starts with its trailers straight behind it, so a start too close behind another stays free. With the traffic rules off the trailers drive through other vehicles like the tractors do. The model keeps a train forward-only (see Tugger trains) but does not prove that a layout with trains is free of deadlocks; the exit clearance of an exclusive zone is checked for the tractor, not for the whole train.
Layout design tips
- Prefer one-way loops with short two-way spurs to stations. Tugger trains cannot use spurs: give them loops through their stations.
- Protect every single-lane section that vehicles can enter from both ends with an exclusive zone that includes the entrances.
- Keep chargers and parking out of the main flow, and spaced at least the minimum distance apart.
- After editing directions or geometry, select each link and press Recalculate route.
- Run a short simulation and look at the Entry waits and Waiting hotspots heatmaps to see where traffic stalls (see Heatmaps).