Depth noise that grows with conveyor speed, doubled edges in the point cloud, surfaces that tear into holes — none of these are calibration faults; they are motion faults. A rolling-shutter depth sensor exposes its rows one after another, so a moving part is never in one place for a whole frame, and the stereo matching behind the depth image quietly falls apart. This guide gives you the two numbers that decide whether a rolling-shutter rig can scan at speed — the half-pixel-per-frame speed budget and the one-pixel exposure limit — the bench tests that measure both on your parts, the fixes ranked by the speed each one buys, and the point at which a different sensor class is the honest answer.
Why does depth accuracy collapse when the part moves?
A rolling-shutter depth sensor reads its rows one after another, so a part that moves during the frame is captured at a different position by every row; the depth engine then matches pixels that were never seen at the same instant, and accuracy collapses.
Three failure layers stack up, and they strike in this order:
- Row shear. At 30 fps the readout sweeps the frame in one frame period, 33.3 ms, so the bottom row sees the part 33.3 ms after the top row. A part moving 30 mm/s shears 1.0 mm between the first and last row — 5 px at a 0.20 mm pixel scale — and the matcher tries to fuse five different positions of the same part into one depth value.
- Exposure smear. Auto-exposure left on its own picks tens of milliseconds indoors. At 30 mm/s, a 20 ms exposure smears every edge 0.60 mm — 3 px — in both cameras of the stereo pair at once.
- A frame rate that never arrived. An exposure longer than the frame period caps the camera below its nominal fps, which shrinks every budget computed below by the same factor.
The symptoms are specific: flat, stationary surfaces measure clean while every moving edge turns noisy, leading edges dissolve into depth holes, and the confidence flags drop exactly where the part moved — the 3D camera confidence image decoder shows how to read those flags straight off the sensor. For the shutter choice behind all of this, see global vs rolling shutter sensors for moving targets, and for the exposure side, exposure time vs shutter speed for moving-part inspection.
How fast can the part move before rolling shutter ruins the depth?
Keep the displacement between the first and last row of one frame under about half a pixel; with a 0.20 mm pixel scale at 30 fps that caps relative speed at about 3 mm/s, and the same camera at 90 fps reaches about 9 mm/s.
Rolling shutter does not blur first — it shears. Every row is sharp, but each row is a snapshot taken 69 µs after the previous one, so the geometry the matcher assumes (both views at the same instant) only holds while the part barely moves during the sweep. Below half a pixel of travel per frame the shear hides inside the matching window; above it, disparity error climbs at roughly one pixel per extra 33.3 ms of travel.
Worked example — a depth camera covering a 170 mm field with 848 pixels at 30 fps:
- Pixel scale: p = 170 mm / 848 px = 0.20 mm/px.
- Sweep: 1/30 s = 33.3 ms, spread over 480 rows = 69 µs per row.
- Half-pixel budget: 0.5 × 0.20 mm = 0.10 mm per frame.
- Speed limit: 0.10 mm / 33.3 ms = 3.0 mm/s.
- Same camera at 90 fps: sweep 1/90 s = 11.1 ms, so 0.10 mm / 11.1 ms = 9.0 mm/s.
Pixel scale moves the limit first — tighten the field to 85 mm and the budget halves to 1.5 mm/s at the same fps — and frame rate moves it second, linearly. Both follow from working distance and resolution, so recompute p after every camera move: the 3D camera working distance guide covers the geometry, and stereo disparity scale and calibration ties pixel scale to depth units. The 3 mm/s belongs to this example's pixels; rescale it with your own p and fps, then let the ruler test below hand you the real number for your matcher.
How short must the exposure be to stop motion blur?
Set a manual exposure no longer than one pixel of travel: at a 0.20 mm pixel scale and 30 mm/s that is 6.7 ms, so 6 ms leaves margin, while auto-exposure left alone picks far longer and smears every edge in both views.
Blur in pixels is speed times exposure divided by pixel scale: blur_px = v × t_exp / p. Requiring blur ≤ 1 px gives t_exp_max = p / v. At 30 mm/s and 0.20 mm/px that is 0.20 mm / 30 mm/s = 6.7 ms. Lock 6 ms and the worst smear is 30 mm/s × 6 ms = 0.18 mm = 0.9 px in each camera, so the stereo match survives; the 6 ms also sits inside the 11.1 ms period at 90 fps with 5.1 ms to spare, so a later fps raise does not collide with it.
Three settings make a short exposure usable:
- Cap or disable auto-exposure so it cannot climb back — the maximum auto exposure cap is exactly this set-up.
- Recover the lost light with IR gain first, added IR illumination second; the manual IR gain tune for near range gives the order.
- A strobe fired inside the exposure freezes motion with light instead of electronics — the external flash sync guide uses the exposure setting itself as the shutter.
How do you measure shear and blur on your own rig?
Scan a ruler or a calibrated target at production speed and count pixels: skew above about 0.5 px between the first and last row of one frame, or an edge smeared wider than one pixel, says the scan is too fast for that set-up.
Run the three tests in this order:
- Ruler shear test. Fix a 1 mm-tick ruler in the field at working distance, run the part or the camera at production speed, and grab single frames. Find the same tick in the top and bottom row of one frame; that shift in pixels is your shear. At the worked example's budget the tick travels 0.10 mm — 0.5 px — per frame.
- Stop test. Freeze the motion axis and capture 20 frames. Depth noise that collapses the moment the part stops convicts motion; noise that persists with everything still points at calibration and lighting instead.
- Edge-width audit. On the raw IR frame, an edge that should cross 2 px but crosses 3 px carries 1 px of smear. At a known exposure that converts straight back to speed: 1 px × 0.20 mm/px / 6 ms ≈ 33 mm/s — you were sitting at the one-pixel limit, so any faster shows up as a wider edge.
A scan that passes the ruler test at production speed holds its depth accuracy; one that fails by more than a pixel will not be rescued in post-processing.
Which fix buys the most scan speed first?
Rank the fixes by the speed they add: lock the exposure first (it costs nothing), raise the frame rate next for 3×, crop the row count for 2× per halving, then stop-and-stare, and change the sensor class only when the arithmetic still falls short.
- Lock the exposure. Same camera, same fps, but edges stop smearing during speed changes and start-stop moves — which is where most scans actually fail.
- Raise the frame rate — 3×. Going from 30 to 90 fps cuts the sweep from 33.3 to 11.1 ms and lifts the budget from 3.0 to 9.0 mm/s. Check that the locked exposure still fits the shorter period; when it does not, the camera drops fps instead, as laid out in depth camera frame rate drops: exposure settings cap the FPS.
- Crop the rows — 2× per halving. Cutting 480 rows to 240 halves the sweep and doubles the budget to 6.0 mm/s at the same fps, provided the row clock rather than a fixed frame timer sets the sweep; keep only the rows the part occupies. The 2D vs 3D camera ROI guide walks the crop, and configuring a one-inch Z-layer ROI on a depth camera shows one worked end to end.
- Stop-and-stare — the budget resets to zero. Move, settle about 30 ms, capture one 33.3 ms frame, move on. Nothing moves during capture, so shear and blur both vanish; you pay the cycle time: roughly move time + 64 ms per slice.
- Change the sensor class. When fps, rows and exposure are all maxed and the ruler still fails, the pixel-scale arithmetic is the limit — next section.
When should you switch to a different depth sensor class?
Switch when the speed you need is more than about ten times the rolling-shutter budget, when parts never stop, or when the depth must hold measurement grade on moving surfaces — projected structured light, laser profilers and line-scan 2.5D systems are built for that duty.
The 10× line is arithmetic, not folklore: a camera that freezes whole frames with the locked 6 ms exposure runs 0.20 mm / 6 ms ≈ 33 mm/s at the same pixel scale — about ten times the 3.0 mm/s rolling-shutter budget at 30 fps — and the shear is gone entirely, because both views are simultaneous.
| Sensor class | How it treats motion | Budget at 0.20 mm/px | Choose it when |
|---|---|---|---|
| Rolling-shutter stereo, 30 fps | shears across the 33.3 ms sweep | ~3 mm/s | static or hand-fed parts |
| Rolling-shutter stereo, 90 fps, locked exposure | sweep cut to 11.1 ms | ~9 mm/s | slow conveyors, hand scanning |
| Whole-frame stereo, 6 ms locked exposure | blur held at ≤ 1 px | ~33 mm/s | continuous conveyor scanning |
| Projected structured light | coded pattern burst freezes the frame | still for the burst length | scan-grade surface detail |
| Laser profiler | one sharp profile per exposure | profile pitch × line rate | fast profiles along a line |
| Line-scan 2.5D | per-line exposure, encoder-synced | set by the line rate | continuous web and conveyor |
A ToF camera sidesteps row shear by integrating the whole scene per frame and pays an exposure-versus-frame-rate trade instead — MV-DT01WMU is that class, with the trade-off laid out here.
- Type
- Depth / ToF camera
Projected structured light freezes a moving part inside a coded pattern burst, which makes it the scan-grade answer to motion:
- Type
- Stereo / structured light
A laser profiler reads each profile from its projected laser line in one short exposure, so profiles stay sharp while the part advances beneath it:
- Type
- Laser profiler
Continuous webs and endless conveyors belong to encoder-synced line-scan 2.5D systems; MV-HLVS-16K100-L60 prints a 16K resolution, a 120 kHz sampling rate and a 600 mm emitting area for exactly that duty.
- Type
- 2.5D inspection
The 3D sensor category holds every class in the table, and the camera finder filters them by type. For the wider build decision — 2D versus 3D, one camera or several, cell or line — see 2D or 3D camera for conveyor pick and place, then configure the winning class in the system configurator.
How do you keep depth accuracy on every future scan?
Lock the parameters auto-exposure would otherwise move — exposure first, then gain — recompute the pixel scale after every working-distance or resolution change, and repeat the ruler test at each new part speed before the line sees production parts.
At set-up:
- Compute and record p = FOV / pixels at every working distance, then v_max = 0.5 × p × fps and t_exp_max = p / v_target next to it. All three travel with pixel scale, so a camera re-mount invalidates every old number.
- Lock the exposure at or below t_exp_max and cap auto-exposure, which otherwise drifts long under dim light and undoes the budget quietly.
- Read back the achieved fps after locking; exposure is the usual hidden cap.
- Parts that run at different speeds get their own capture parameter set, switched per part — the per-part capture parameter switch shows the pattern.
At every changeover:
- Ruler shear test at production speed; pass mark 0.5 px of skew.
- Confidence flags watched on moving edges through the first production run — flags that drop only while parts move mean the budget is being exceeded again.
When the ruler still fails:
- fps, rows and exposure maxed and shear above 0.5 px means the pixel-scale arithmetic, not the settings, is the limit; the sensor-class table above is the fix, not more tuning.
Everything we keep current on depth capture — flash sync, gain tuning, working distance — lives on the 3D topic page. If your line needs more than the rolling-shutter budget at scan grade, send the conveyor speed and your pixel scale through the quote request and we will match the sensor class to the arithmetic above.
Questions
Does the speed limit change when the depth resolution goes up?
Yes, and it drops. Pixel scale is field of view divided by pixels across, so going from 848 to 1280 pixels across the same 170 mm view moves the scale from 0.20 to 0.13 mm per pixel, and the half-pixel budget at 30 fps falls from 3.0 to 2.0 mm/s. Tighter pixels buy depth detail but spend scan speed — budget both before changing resolution.
Which scan direction is easiest on a rolling-shutter depth camera?
Motion parallel to the sensor rows. Horizontal movement smears a row only during that row's own exposure — about 69 µs in the worked example — while the same speed across the rows displaces successive rows over the full 33.3 ms frame period. Turning the camera 90 degrees, or feeding parts along the row direction, is the easiest accuracy gain available on an existing rig.
Can a strobe replace a short exposure to freeze the scan?
Yes, on cameras whose triggering supports it. A strobe fired inside the exposure lights the part for tens of microseconds, so motion smear comes from the flash width rather than the sensor exposure — effectively a global shutter made of light. You still need the flash timed to the frame, which is what external flash sync sets up.
How does working distance change the scan speed budget?
Linearly, through pixel scale. Doubling the working distance roughly doubles the field of view, so pixel scale goes from 0.20 to 0.40 mm per pixel and the half-pixel budget at 30 fps doubles from 3.0 to 6.0 mm/s. Pull the camera closer for depth detail and you spend scan speed in the same proportion.
Do ToF and structured-light depth cameras shear the same way?
No. A rolling-shutter stereo pair shears row by row; ToF integrates the whole scene per frame, projected structured light reads full frames of its projected pattern, and a laser profiler captures one line per exposure. Each class keeps its own motion limit instead — integration time, pattern-burst length, line rate — so the one-pixel exposure arithmetic is still the number to run.



