The pre-programmed path is a straight line taught once from CAD or a teach pendant, on the assumption every part is identical. Real parts are never that exact — fixturing slop and cutting/forming tolerance let the actual seam groove drift a few millimetres to over a centimetre off that nominal line. A laser or camera sensor mounted just ahead of the torch scans the groove before the arc gets there, so the controller knows exactly where the seam really is a fraction of a second before welding it.
sensed(z) = groove position at lookahead
torch.x += (sensed(z) − torch.x) · gain·dt // tracking ON
torch.x = programmed.x // tracking OFF (blind)
error = |torch.x − trueGroove(torch.z)|
- Tracking ON — the torch continuously bends its path onto the sensed groove; the weld bead lands in the seam and the offset error stays small even on a badly-toleranced part.
- Tracking OFF — the torch blindly replays the original straight line; the moment the real seam wanders away from that line, the bead is laid beside the groove instead of in it.
- Part tolerance variation — how far the true groove is allowed to wander from the programmed line; at zero, blind and tracked welds look identical because there's nothing to correct for.
- Travel speed — faster travel gives the correction loop less time per metre, so tracking error grows slightly with speed, mirroring the real sensor-to-arc control lag.
- Weave amplitude — the small side-to-side oscillation welders add to widen the deposited bead and fuse both groove walls; it rides on top of whichever path — tracked or blind — the torch is following.
This closed sense-correct loop is what lets robotic welding cells hold weld quality across a batch of parts whose real geometry never quite matches the CAD model they were programmed from.