3D visionApplication note

3D scan based robot path correction: hitting ±0.2 mm over 2 m

Scan the part, match the point cloud to CAD, shift the taught path: the numbers behind 3D scan based robot path correction to a ±0.2 mm bead.

LumaSpec Vision11 min read Share on LinkedIn

On this page 10 sections
  1. 01How scan-based path correction works
  2. 02The accuracy budget: four terms added in quadrature
  3. 03Worked example: holding ±0.2 mm on a part 50 mm off its teach
  4. 04Choosing and mounting the profiler
  5. 05Scan speed, point spacing and material open time
  6. 06From scan to corrected path
  7. 07Part-to-part variation and shiny metal
  8. 08Checks before you release the cell
  9. 09When the scan-correct answer is wrong
  10. 10Questions

A robot path taught on one part only lands on the next if that part sits exactly where the first one did. In large cells the assumption fails: a two-metre assembly arrives pre-positioned by fixtures, yet still tens of millimetres and a degree or two off its teach. The sealant bead around each bearing must land within ±0.2 mm. The working pattern is scan, match, correct, dispense. A laser profiler scans the actual seats, the point cloud is fitted to a surface model built from the CAD data, the fitted six-degree-of-freedom pose transforms the taught path, and the robot dispenses onto the part as measured. This guide gives you the accuracy budget behind a ±0.2 mm result, a worked stack-up with the arithmetic shown, the scanner and mounting choices, and the release checks that decide whether your cell holds the tolerance.

How scan-based path correction works

The sensor rides on the robot wrist (eye-in-hand); a profiler fixed in the cell wins only when parts present one face at a station. The robot visits each bearing seat, and the profiler captures a stripe of X-Y-Z points at every position. The vision software joins the stripes into a point cloud of the part as it actually sits. That cloud is matched against a surface model built from the CAD data. The match returns six numbers: three translations and three rotations that place the model onto the measurement. The taught path, authored once in model coordinates, is transformed by that pose at run time. So the bead follows the seat in front of the nozzle instead of the seat the robot was taught. The wider set of integration questions around such a cell is collected on the 3D vision topic page.

Two numbers make the case for the scan. Published laser-tracker studies put an uncalibrated six-axis arm's absolute pose error near 1 mm. Its path error at full rated speed runs into the millimetres; the scan-correct loop replaces that whole absolute term with the arm's far smaller repeatability. Fixtures do not rescue the tolerance either. ±50 mm of position scatter is absorbable, but at 1° of part rotation a seat 100 mm from the datum moves 100 mm × sin(1°) ≈ 1.7 mm, more than eight times the bead limit. The match therefore has to solve rotation, not just an in-plane shift.

The accuracy budget: four terms added in quadrature

Four independent terms decide where the bead lands. Localization covers everything from laser stripe to fitted pose: profiler repeatability, surface quality and match residual together. ±0.05 mm is a realistic target on a machined or lightly painted seat, measured as the 3σ spread of repeated scans plus the fit residual.

Hand-eye is the camera-to-flange (or camera-to-base) transform, and sloppy chains measure in whole millimetres. Published refinement work reports a 3D scanning chain's RMS falling from 8.7 to 3.2 mm, and a ±0.2 mm bead tolerates neither figure. Hold the residual at ±0.05 mm after checking it against the tool centre point.

Robot repeatability is the arm's data-sheet number, typically ±0.02 to ±0.10 mm for a six-axis machine. Process is the dispensing hardware itself: nozzle stand-off, tool compliance and bead swell, starting fairly at ±0.10 mm from bead trials on a stiff head.

σ_total = √(σ_loc² + σ_handeye² + σ_robot² + σ_process²)

Independent errors add as the root sum of squares, not linearly. Only a correlated drift — sensor and calibration moving together with temperature — adds arithmetically, and that is what the warm-up check later is for.

Worked example: holding ±0.2 mm on a part 50 mm off its teach

The inputs, with their origin:

  • Part offset: ±50 mm in position, up to 2° in rotation — fixture scatter on a pre-positioned assembly. The match absorbs it, so it sets the search range (take ±75 mm) and the scan volume, not the tolerance.
  • Cell: about 2 m × 2 m × 1.5 m of robot travel; the profiler visits each seat on the wrist.
  • Localization: ±0.05 mm, as defined in the budget above.
  • Hand-eye: ±0.05 mm after touch-off verification.
  • Robot repeatability: ±0.05 mm, a mid-size six-axis data-sheet value.
  • Process: ±0.10 mm from bead trials.
  • Material: two-component sealant, open time about 2 h at room temperature.

The rule in words: add the four independent terms as the root sum of squares.

σ² = 0.05² + 0.05² + 0.05² + 0.10² = 0.0025 + 0.0025 + 0.0025 + 0.0100 = 0.0175 mm² σ = √0.0175 ≈ 0.13 mm

The predicted bead-to-seat error is ±0.13 mm, inside the ±0.20 mm requirement with 0.07 mm — about a third of the limit — in hand. The worst-case linear sum of the same terms is 0.25 mm and would fail, which is exactly why every term is measured before release rather than assumed. The decision rule: release the cell when each measured term sits at or below its budget, and treat ±0.15 mm as the ceiling on the process term, because √(0.0075 + 0.0225) ≈ ±0.17 mm still passes but with almost nothing left. If bead trials on a perfect path already scatter ±0.2 mm, the process dominates; fix nozzle, air and viscosity before touching vision.

Choosing and mounting the profiler

For a part spanning two metres, put the profiler on the wrist and scan seat by seat between moves. Mount at the sensor's rated mid-range stand-off; the geometry behind that choice is in the 3D camera working distance and positioning guide. Rigidity matters more than resolution: a bracket that moves 0.1 mm under wrist acceleration injects a systematic error no software can remove. Reuse the pose discipline from eye-in-hand calibration for the scan poses — stripe square to the seat, consistent stand-off, no occlusion — as laid out in eye-in-hand pose selection: robot positions that work.

Two profiler lines cover the wrist-mounted duty, from compact sensors to the higher-performance series:

3D sensorsHikrobot MIS-DP3850-01P 3D laser profile sensorMIS-DP3850-01P
Type
Laser profiler
$12,379.00 · quotedView and quote
3D sensorsHikrobot MV-DP4180-03P 3D Laser Profile SensorMV-DP4180-03P
Type
Laser profiler
$12,389.00 · quotedView and quote

Deep or stepped seats shadow the laser stripe from a single viewpoint, and shadowed points become holes exactly where the bead must run. A binocular single-line profiler views each line from two directions and fills them; the DP3000 series includes such a variant:

3D sensorsHikrobot MV-DP3062-01D 3D laser profile sensor, DP3000 series binocular single-lineMV-DP3062-01D
Type
Laser profiler
$12,379.00 · quotedView and quote

Thermal growth moves the sensor relative to the flange through the shift, so warm the cell before judging results and re-check the hand-eye when the season turns. The mechanism is the same one behind static camera calibration errors when moved parts drift off target. Treat the stripe as the laser it is: keep the class label on the housing, keep it out of eyes, and gate the scan with the cell door interlock.

Scan speed, point spacing and material open time

Along the bead, point spacing is robot speed divided by profile rate: Δ = v / f. At a 50 mm/s scan move and 1,000 profiles per second, points land 50 ÷ 1,000 = 0.05 mm apart, dense enough to average stripe noise. Across the line, spacing is strip width divided by points per profile; describing a 5 mm bead with at least 20 points needs 0.25 mm or better, which an industrial profiler delivers at native resolution. When you want denser data, slow the robot move rather than the line rate. Size the rate for your own speeds with the line-scan calculator below.

Line-scan camera line rate
Units
Pixel on the part
– mm
Line rate needed
– kHz
Longest exposure
– µs
Data rate
– MB/s
Lines per metre
–
Encoder setting
–

Square pixels: line rate = speed / pixel on the part; the exposure must end within one line period. Encoder: lines per pulse = (π × roller diameter / pulses per revolution) / pixel on the part.

Find line scan cameras Open the full calculator

A line scan camera building an image line by line The camera images one thin line of the moving web per exposure, lit by a line light. An encoder on the conveyor triggers each line so the pixels stay square at any speed.one line per exposureLine scanline lightweb speed vencoderline rate = v / object pixelexposure < 1 / line rate
A line scan camera building an image line by line. The camera images one thin line of the moving web per exposure, lit by a line light. An encoder on the conveyor triggers each line so the pixels stay square at any speed.

Where the part travels past a fixed station, a line-scan 2.5D system replaces the robot motion with a conveyor and covers long parts in one pass. The MV-HLVS-16K100-L60 line-scan 2.5D system spans a 600 mm strip per pass at a 120 kHz profile rate with 16K resolution, which suits long panels:

3D sensorsHikrobot MV-HLVS-16K100-L60 Line-scan 2.5D, 16K resolution, Sampling rate 120 kHz, Emitting area length 600 mmMV-HLVS-16K100-L60
Type
2.5D inspection
Price on requestView and quote

Dispensing adds a clock the scan does not have. Scanning and localization take seconds per seat, so the sequence that protects the material is scan, fit, dry-run, then mix and dispense; in the worked case the mixed sealant stays open about 2 h. Faster materials invert the order: compute first, mix last.

From scan to corrected path

Everything hangs on one transform chain:

P_base = T_base_camera × T_camera_part × P_CAD

T_base_camera comes from hand-eye calibration — composed with forward kinematics for a wrist-mounted sensor, fixed for a cell-mounted one — and T_camera_part is the match result from the current scan. Every taught point is pushed through the chain at run time, so one calibration serves every part and variant. The camera-to-robot transform walkthrough and how nine-point hand-eye alignment works cover building the link, and using eye-to-hand calibration results to compute robot-base picks shows the runtime side. If your robot controller accepts one, a real-time X-Y-Z adjustment in play mode applies a small per-part nudge without regenerating the program.

Choose the correction mode from how the parts vary. One rigid pose per part is right when the whole assembly moves as one between fixtures. Match each seat separately when seats are placed or dimensioned independently: a single rigid fit averages seat-to-seat differences into every bead, while per-seat matching leaves each bead facing only its own seat's error, which is what the ±0.13 mm budget describes.

Part-to-part variation and shiny metal

Sealant work multiplies variants: different bearing diameters, different seats, different part numbers on one fixture. Store a surface model and a scan-parameter set per variant and switch them per part; the pattern for changing capture parameters between parts without re-teaching is in switching 3D camera capture parameters per part. Combine 2D and 3D rather than choosing between them: edges of the painted surface in the intensity image give a fast coarse pose, and the cloud around the seat gives the final fit, keeping match time short enough to stay inside the material's open time.

Bronze and stainless bearings are specular, and a stripe arriving at a steep angle reflects straight past the receiver. Scan the machined seat instead of the polished flange, tilt the scan line a few degrees so direct reflections leave the sensor, and cut exposure until only the stripe saturates. Then judge the fit, not the prettiness of the cloud: a hole-free cloud that matches poorly is worse than a small dense one, and the fit residual is the number that enters the budget. 3D point cloud resolution settings without distortion covers spacing the points without biasing that fit, and the 3D point-cloud inspection workflow for pin features shows the per-feature logic around round features like these seats.

Checks before you release the cell

Release on measurements, not on the solver's internal cost:

  • Touch-off: command the corrected tool centre point onto a marked point on five seats; mean within ±0.05 mm, worst within ±0.10 mm, or the hand-eye term re-enters the budget at its measured value.
  • Rescan: scan one seat ten times; the pose's 3σ must stay within ±0.05 mm.
  • Bead trial: dispense three parts and measure bead-centre offset against the seat; it should land inside the predicted ±0.13 mm and must stay inside ±0.2 mm.
  • Warm-up: run the cell 30 minutes before judging; cold-to-warm drift shows up as an offset that grows through the shift.
  • Mount: rescan a seat at two wrist angles; a pose shift means the bracket flexes.
  • Interlocks: gate the laser scan with the cell door and keep the housing's class label intact.

When the scan-correct answer is wrong

The stack exposes weak arms quickly. At ±0.10 mm repeatability the worked budget becomes √0.025 ≈ ±0.16 mm; at ±0.15 mm it reaches √0.0375 ≈ ±0.19 mm with no margin left. Measure the arm with a laser tracker or ballbar before promising ±0.2 mm on a long-reach machine.

A flat part with in-plane variation only does not need the 3D chain; a single 2D camera solving X-Y-rotation is faster and cheaper. The scan earns its place when heights and tilts vary, and around bearings they always do. And if a dedicated fixture can hold a seat within ±0.1 mm for less than the cost of integrating the scanner, fixture the part and skip the scan — the scan pays for itself when part value, complex geometry, or operator exposure to the sealant makes fixturing the expensive option.

To size your own cell, start from the 3D sensors range or the camera finder, put a candidate profiler into the system configurator, and if the budget comes out tight, bring your four measured terms to the contact page and we will check the arithmetic with you.

Questions

How accurate is 3D scan based robot path correction?

Add the independent sources as the root sum of squares. With ±0.05 mm localization, ±0.05 mm hand-eye and ±0.05 mm robot repeatability, the vision-and-motion subtotal is √(3 × 0.0025) = √0.0075, about ±0.09 mm. Add a ±0.10 mm process term and the overall figure becomes √0.0175, about ±0.13 mm. The term you skip measuring is the one that breaks the total: an unrefined hand-eye can sit in whole millimetres.

Can one laser profiler scan a two-metre part in a single pass?

Usually not. A fixed profiler reads one strip per position: the MV-HLVS-16K100-L60 line-scan 2.5D system, for example, spans a 600 mm strip per pass. A two-metre part then needs several stitched passes on a motion axis, or a wrist-mounted profiler that visits each bearing seat between moves. Robot-mounted scanning also keeps the stripe square to each seat, which is what the CAD match wants.

Does vision correction remove the need for robot calibration?

No. Vision replaces the arm's absolute accuracy — near 1 mm on an uncalibrated six-axis machine — but the path is still executed with the arm's repeatability, typically ±0.02 to ±0.10 mm. The camera-to-robot transform stays in the chain too, so its residual keeps its place in the budget. Both terms stay measured, not assumed, before the cell is released.

How do you scan shiny bearing races without losing points?

Scan the machined seat rather than the polished flange, tilt the stripe a few degrees so direct reflections miss the receiver, and cut exposure until only the stripe saturates. For shadowed seats, a binocular profiler that views each line from two directions fills the holes a single viewpoint leaves. Then trust the fit residual, not the look of the cloud: a dense cloud that matches poorly is worse than a small one that matches well.

When should you scan relative to mixing two-component sealant?

Compute before you mix. Scanning a seat and fitting the pose takes seconds, while two-component sealants give an open time from tens of minutes up to about two hours at room temperature. Sequence scan, fit and dry-run first, then mix and dispense immediately; for faster materials the whole scan stage moves before mixing starts.