◇ Machine vision · Guide

Vision-guided robotics, from frames to picks.

A camera that finds a part is half a system. The other half is the math that turns a pixel into a robot target, the calibration that makes it true, and the timing that keeps it true on a moving belt. Here's all of it, with the error and cycle budgets we use when commissioning a cell.

5coordinate frames behind every pick
z²how triangulation depth error grows with distance
≈6.7 psround-trip time per millimeter for time-of-flight
In short

Use 2D when parts lie flat on a known plane, 2.5D when they sit level at varying heights, and 3D when they tilt, stack or pile. Mount the camera fixed when cycle time matters and on the wrist when you need angles or close-up resolution.

Accuracy comes from the chain, not the camera. Calibrate where the robot actually works, latch the encoder at the exposure on moving belts, and budget camera, robot, pose and gripper errors together. Vision can retire a precision locating fixture. It can't retire a clamp the process needs.

Guidance levels

Six guidance jobs, from flat table to random bin.

The first question isn't which camera. It's how many degrees of freedom the part has when the robot reaches it: three lying flat (x, y, rotation), six in a bin. Every step up costs sensor money, compute time and calibration effort.

x, y, θ overlap · skip backlit 2D

Locate on a flat table or tray

What it solves: parts loose on a plane at known height. The camera reports x, y and rotation; the robot comes down to a fixed z. Watch for: touching or overlapping parts. Reject them and re-spread.

Pattern matchBacklightN-point calibration
N₀ latched pick window top view belt travel 2D · tracking

Pick from a moving conveyor

What it solves: random orientation on a belt that never stops. The camera locates upstream; the robot tracks the belt with an encoder. Watch for: trigger jitter, which becomes millimeters at belt speed (section 05).

Encoder latchHardware triggerStrobe
1,050 1,050 1,050 1,240 1,240 next pick height map mm above floor 2.5D

Depalletize layered boxes

What it solves: parts that stay level at different heights. A height map tells the robot which layer is on top and how far to reach. Watch for: shrink wrap, labels and seams that look like box edges in 2D.

Height mapBox segmentationTop-layer first
best grasp buried 3D view 3D

Random bin picking

What it solves: parts piled at any angle in a tote. A 3D camera returns a point cloud, software fits part models, and a planner picks a reachable, collision-free grasp. Watch for: the last parts, lying against walls and corners.

Point cloudCAD matchingCollision check
Δx +1.4 mm Δy −0.8 mm camera view taught nominal 2D · refine

Close-up locate before a precise place

What it solves: loading a chuck, nest or press whose position varies a little between cycles. A wrist camera images a datum and corrects the taught place point. Watch for: image from the same pose every time.

Eye-in-handDatum featureMachine tending
in-hand shift from below nominal 2D · in-hand

Correct the part in the gripper

What it solves: parts that shift when the gripper closes. The robot passes over an upward-facing camera and corrects the place pose by the measured offset. Watch for: motion blur. Strobe it.

Upward cameraPlace correctionAssembly
Coordinate frames

Every pick is a chain of five transforms.

The camera reports where the part is relative to the camera. The robot needs to know where the part is relative to its base. Everything in between is bookkeeping, and every link in the bookkeeping has its own error.

Fig. 01The frames in a fixed-camera pick, and where each transform comes from
Frame axes x y z World Base Tool · TCP Camera Part 1 2 3 4 5 1Base in world · surveyed at install 2Flange in base · forward kinematics, every move 3Tool in flange · the TCP definition 4Camera in base · hand-eye calibration 5Part in camera · vision result, every image Pick pose = 4 × 5 × grip offset, reached via 2 and 3
The camera only ever measures transform 5. The hand-eye result, the TCP and the kinematics were set up once and are assumed to still be true. When a VGR cell starts missing, one of those assumptions is usually why.

Each arrow is a rigid transform (a rotation plus a translation, usually a 4×4 matrix), and expressing the part in robot coordinates means multiplying the chain. For a fixed camera that's base→camera (the hand-eye result) times camera→part (the vision result), times the grip offset. The controller then solves the joint angles that put the TCP there.

Two consequences. The TCP matters as much as the camera: a tool frame 1 mm off is a 1 mm miss on every pick, and a rotated one turns rotation corrections into position errors. And 2D quietly assumes a plane. Parts higher or lower than the calibrated plane appear shifted to a camera looking at an angle, which is why 2D VGR wants a camera looking straight down and parts of consistent height.

Where the robot brands put this

The major robot makers build the chain into the controller so that vision results arrive as offsets to a user frame. FANUC iRVision runs inside the robot controller, calibrates cameras with a dot-grid plate, and offers grid-based utilities to set user and tool frames. ABB Integrated Vision pairs the IRC5 controller and RobotStudio with Cognex In-Sight smart cameras, and its PickMaster software adds vision-guided conveyor picking. Smart-camera vendors work from the other side: Cognex In-Sight offers hand-eye calibration routines for fixed and robot-mounted cameras plus a Sequential N-Point tool, and Keyence sells a 3D vision-guided robotics system (CV-X480D) with automatic robot-camera calibration and built-in path planning.

Camera mounting

Eye-to-hand or eye-in-hand.

A fixed camera and a wrist camera solve the same equation with a different unknown. The choice changes cycle time, resolution, cabling and what you have to recalibrate when someone bumps something.

Fig. 02aEye-to-hand
Fixed camera camera → base, fixed Camera sees the whole pick area. Image the next part while the arm is placing.
Best for cycle time. The arm leaves the view, the camera fires, and the next pick is computed while the robot is still placing. Resolution is fixed by the field size.
Fig. 02bEye-in-hand
Camera on the wrist camera → flange, fixed imaging pose Look from any angle, close up, high res. Arm stops or slows at the imaging pose.
Best for reach and resolution. One camera can inspect several stations, image at an angle into a machine, or get close enough for fine features. The imaging move costs time on every cycle.
Fixed vs wrist camera · what changes on the cell
FactorEye-to-hand (fixed)Eye-in-hand (wrist)
Calibrated unknownCamera relative to robot baseCamera relative to the flange
Cycle timeImaging overlaps robot motion if the arm clears the viewAdds an imaging stop or slowdown each cycle
ResolutionSet by the whole pick area. A 600 mm field on a 2,448-pixel sensor is about 0.25 mm/pxCan image a 100 mm field from close in, about 0.04 mm/px on the same sensor
Error sourcesBracket drift, thermal growth of the frameRobot accuracy at the imaging pose enters every measurement

Table scrolls horizontally on small screens →

Hand-eye calibration

AX = XB, in plain language.

Hand-eye calibration finds the one transform nobody can measure with a ruler: where the camera sits relative to the robot. You move the robot through a series of poses, photograph a calibration plate at each, and let the math find the transform that makes all the pictures agree.

Take a wrist camera. Between two poses the controller knows how the flange moved: A. Over the same move the camera sees the plate shift and rotate: B. The camera is bolted to the flange, so the transform between them, X, never changes, and moving by A then looking through X must match looking through X and seeing B. That's AX = XB. Two motions with rotations about different axes pin X down; in practice we use 10 to 20 poses with large, varied tilts so the solution is well conditioned. Tsai and Lenz published the classic solution in 1989, and vendor tools solve the same problem with least-squares refinement.

For a fixed camera the plate rides on the flange and X becomes the camera's pose relative to the base. Same equation; Zivid's SDK, for example, documents both cases.

Plates, and why they matter

The plate is the ruler. Checkerboards, dot grids and ChArUco boards (a checkerboard with coded markers, so a partial view still identifies each corner) all work, if the pitch is right and the plate is flat, stiff and fills much of the image. A plate from an office printer taped to cardboard calibrates beautifully to the wrong answer. Measure the pitch across the board and enter the measured value.

2D cells often use N-point calibration instead: the robot places a target at several positions in the plane, the camera finds each, and the system fits a plane-to-plane mapping. It's enough when parts stay on one plane.

Field note

The most common calibration mistake we see is calibrating in one place and picking in another: calibrated mid-table with the wrist level, picking at the far corner with the wrist tilted 30°. Kinematic errors differ there. Collect poses that span the real working volume and wrist angles, then verify at the corners of the field of view.

Fig. 03Error stack-up at the part · illustrative values
Illustrative contributions · mm at the part 0.5 mm clearance Camera + hand-eye calibration 0.25 Robot absolute accuracy 0.40 Part pose estimate 0.20 Gripper compliance, part shift 0.30 Straight sum (worst case) 1.15 Root-sum-square ≈0.59 RSS, robot calibrated in region ≈0.44 0 0.25 0.50 0.75 1.00 1.25 mm Calibrating in the working region cuts the robot term toward its repeatability. At 0.05 mm, RSS falls to ≈0.44 mm.
The robot term is usually the one to attack. Values are illustrative, not measurements of any product. Independent errors add as a root-sum-square, so the largest term dominates. Calibrating with the poses and region the robot uses for picking turns an accuracy problem into a repeatability problem.

Repeatability vs accuracy

Datasheets lead with pose repeatability under ISO 9283: the scatter when the robot returns to one taught point, typically a few hundredths of a millimeter for small and mid-size arms. Absolute accuracy, how close it gets to a computed point, is much worse on an uncompensated arm, often several tenths of a millimeter to a few millimeters.

Taught points need only repeatability. Vision-guided points need accuracy, because the target is computed from a measurement. That's why VGR cells miss where teach-pendant cells don't, and why calibration poses should match working poses. Robot makers sell absolute-accuracy calibration for large volumes; on a compact cell, local calibration usually gets most of the way.

# Error budget, illustrative values from Fig. 03 (mm) camera+hand-eye 0.25 robot accuracy 0.40 pose estimate 0.20 gripper/shift 0.30 # worst case: everything lines up the same way sum = 0.25 + 0.40 + 0.20 + 0.30 = 1.15 mm # independent errors: root-sum-square RSS = √(0.0625 + 0.16 + 0.04 + 0.09) = √0.3525 ≈ 0.59 mm # calibrate where you pick: robot term → 0.05 RSS' = √(0.0625 + 0.0025 + 0.04 + 0.09) = √0.195 ≈ 0.44 mm

RSS assumes independent errors. Systematic ones (a wrong TCP, a wrong plate pitch) don't average out; fix them.

Conveyor tracking

On a moving belt, timing is position.

At 300 mm/s, every millisecond is 0.3 mm. A conveyor-tracking cell works because it stops measuring time and starts measuring belt travel, with an encoder.

Fig. 04From trigger to pick on a belt at 300 mm/s
Belt · 300 mm/s photo-eye trigger (N pick − N₀) × 0.05 mm/count N₀ N pick encoder on tail roller Trigger Exposure Transfer + locate Result to robot Encoder Robot photo-eye or encoder trigger, t = 0 1 ms exposure · encoder count latched here readout + pose estimate ≈ 70 ms ≈ 10 ms N₀ N₀ + 480 N pick tracks belt, picks 0 20 40 60 80 100 ms Pick X = X vision (at N₀) + (N pick − N₀) × 0.05 mm/count 80 ms of latency at 300 mm/s = 24 mm = 480 counts. It cancels out only if N₀ is latched at the exposure.
Latency is fine. Uncertainty about when the picture was taken is not. The result describes the belt at the instant of exposure. Latch the encoder count then (a hardware trigger, or a camera that timestamps against the encoder) and processing time drops out. Timings are representative, not a specific product.

A typical setup is a 1,000-line encoder read in quadrature (4,000 counts per revolution) on a 200 mm circumference measuring wheel: 0.05 mm per count. Calibrate that scale on the real belt, because slip and stretch make the nominal figure wrong by a few percent, which is tens of millimeters over a long transfer.

The robot knows the part's position at count N₀, reads the current count, and adds the difference times the scale. FANUC's iRVision supports line tracking with 2D and 3D sensors, and ABB's PickMaster pairs vision with conveyor tracking. The pick window, the stretch of belt the robot can reach while matching speed, usually limits belt speed before the camera does.

Three errors survive the encoder: trigger jitter, motion blur during the exposure, and scale error that grows with distance downstream. The arithmetic is on the right.

# Encoder scale 1,000 lines × 4 (quadrature) = 4,000 counts/rev 200 mm wheel circumference ÷ 4,000 = 0.05 mm/count # Latency, if N₀ is latched at exposure 300 mm/s × 0.080 s = 24 mm = 480 counts (cancels) # Software trigger jitter, ±5 ms 300 mm/s × 0.005 s = 1.5 mm (does not cancel) # Motion blur during exposure 300 mm/s × 1 ms = 0.30 mm 300 mm/s × 200 µs = 0.06 mm # Scale error 2% over 1,500 mm of travel 0.02 × 1,500 mm = 30 mm
Field note

When a tracking cell picks well at slow speed and misses at production speed, look at the trigger before the vision job. A camera triggered from a PLC scan, rather than wired straight from the photo-eye, adds a scan time of variable delay. The misses scale with belt speed, which is the giveaway.

3D sensing

Triangulation or time of flight.

Almost every industrial 3D camera measures depth one of two ways: by the angle between two viewpoints, or by how long light takes to come back. The physics decides what each is good at.

Fig. 05How depth is measured
Triangulation baseline b far surface near surface projector camera Δz Sensor row d z = f · b / d (d = disparity) depth error δz ≈ z² · δd / (f · b) Time of flight emitter + sensor d emitted returned Δt d = c · Δt / 2
Triangulation gets precise up close; time of flight stays consistent at range. Structured light, active stereo and laser line all triangulate, so their depth error grows with the square of distance and shrinks with a longer baseline. Time of flight measures delay (or phase, in continuous-wave sensors): 1 mm of depth is about 6.7 picoseconds of round trip, which is why ToF sensors are fast and compact but rarely sub-millimeter.

Structured light projects a known sequence of patterns and decodes, for each camera pixel, which projector column lit it. That correspondence gives the disparity directly, so the point cloud is dense and precise. Most dedicated bin-picking cameras work this way, including Zivid's cameras and Photoneo's PhoXi scanners. The catch is that classic sequential patterns need the scene to hold still for the whole capture. Photoneo's MotionCam-3D uses what the company calls Parallel Structured Light, coding patterns in a single exposure with a mosaic-shutter sensor, to scan moving scenes.

Stereo matches features between two cameras; active stereo projects a random pattern so plain surfaces work too. It tolerates ambient light and large volumes, and gives up some precision to structured light.

Time of flight times light to the surface and back: no baseline, fast frames. Millimeter-level noise and multipath (light bouncing off a bin wall first) limit it on small parts; it suits boxes and depalletizing.

# Triangulation depth resolution, worked f = 2,400 px b = 150 mm δd = 0.1 px (sub-pixel) # at z = 1,000 mm d = f·b/z = 2,400 × 150 / 1,000 = 360 px δz = z²·δd/(f·b) = 1,000,000 × 0.1 / 360,000 ≈ 0.28 mm # same camera at z = 2,000 mm δz = 4,000,000 × 0.1 / 360,000 ≈ 1.1 mm (4×) # time of flight: round trip per mm of depth Δt = 2 × 0.001 m / 3×10⁸ m/s ≈ 6.7 ps

Simplified pinhole model. Real cameras add pattern decoding, filtering and calibration effects; check datasheet accuracy at your actual working distance.

Laser line profilers are the fourth option: very precise, but one cross-section at a time, so the part or sensor must move. Choosing between specific cameras? See Zivid vs Photoneo and our roundup of 3D vision cameras for bin picking.

Grasp planning and cycle time

Finding the part is step two of six.

A 3D camera can find a dozen parts in a bin. The robot can only pick the ones it can reach, grip and pull out without hitting anything. Grasp planning is where bin-picking projects are won or lost.

  1. Capture

    Point cloud of the bin, often with a 2D image registered to it for edges and color.

    0.2 to 1 s
  2. Detect

    Fit part models (CAD or learned) to the cloud and score each candidate pose.

    Ranked list
  3. Grasp candidates

    For each pose, the taught grasps that apply: suction faces, finger pairs, approach angles.

    Several per part
  4. Collision check

    Gripper and arm against the bin walls, the other parts and the cell, along approach and retreat.

    Reject most
  5. Reachability

    Inverse kinematics within joint limits, without singularities or wrist flips mid-path.

    Feasible set
  6. Execute and verify

    Pick, check vacuum or finger position, and re-image if the pile shifted.

    Retry logic
Fig. 06Bin-pick cycle budget, sequential vs overlapped · illustrative
Illustrative bin-pick cycle · fixed camera over the bin Sequential robot vision Overlapped robot vision capture detect + plan approach + grip lift out place return approach + grip lift out place return capture detect + plan fires as the arm clears the view 4.4 s 3.2 s 1.2 s saved 0 1 s 2 s 3 s 4 s
Hide the vision time behind the robot. Durations are illustrative. With a fixed camera the next capture fires as the arm leaves the view, so detection runs during the place: 4.4 s becomes 3.2 s with no faster hardware. A wrist camera can't overlap this way.

The gripper decides more than the camera. A narrow vacuum cup on an angled wrist reaches parts against a bin wall that fingers never will, since fingers need clearance on both sides. On most bin-picking jobs we've seen, a gripper redesign raised pick rate more than a camera upgrade. Keyence builds a picking simulator into its 3D VGR system so grippers and bins can be tested before hardware.

Some picks will fail. The cell needs a policy (re-image, try the next candidate, nudge the bin, call for help after N tries), and its time belongs in the budget from day one.

Budgeting the cycle

Write the budget as a timeline, not a sum. Capture and detection can run during place; planning can run during retreat. Moves into and out of the bin can't overlap, so a shallower bin, a shorter approach and a faster gripper often pay back more than a faster processor.

Budget the mean, not the best case: if 5% of cycles need a re-image, the mean is what feeds the downstream machine. For machine tending, compare it against the machine cycle with margin.

Fixtures

"Vision lets you skip fixtures," and where it doesn't.

The claim is true for locating. Without vision the part must arrive in a known spot: a nest, a pinned pallet, a hard-tooled tray per part number. With vision it can land anywhere in the field of view, and the camera measures where. On high-mix lines that's one generic tray instead of twenty nests, and no new nest for part number twenty-one.

It's false for holding. Machining, pressing, riveting or driving screws at torque needs the part restrained against the force. Vision finds the part; a vise, chuck or clamp still holds it.

And it's false when the tolerance chain can't close. If the stack-up comes to 0.6 mm and the clearance is 0.1 mm, add compliance (a float unit, a chamfered lead-in), a second close-up look, or force-guided insertion, or keep a locating fixture for the last step.

Can vision replace the fixture?
SituationAnswer
Parts loose on a tray or belt, robot picks and places with clearanceYes. A flat tray or conveyor replaces dedicated nests.
Machining, pressing, torque or force on the partNo. Vision guides the load; the clamp still holds.
Tight insertion below the error stack-upPartly. Add compliance, a second close-up look or force control.
Regulated process requiring a validated datumUsually keep the fixture for the datum and use vision to load it.
Field note

When someone says vision will let them throw out every fixture, we ask which fixtures hold the part during the process and which only present it. The second group usually goes; the first stays and gets a robot loading it.

Where Relling fits

We build the whole chain, then prove it at the corners.

Relling designs and installs robotic workcells with machine vision built in: the camera, the lighting, the calibration, the gripper and the cell logic that acts on every result. We integrate 2D and 3D vision from several vendors and aren't paid by any of them, so the sensor choice follows your parts. Our bin-picking and machine-tending cells use the error budget and cycle budget on this page before any hardware is ordered, and we verify accuracy at the edges of the field of view, not the middle.

See the Relling machine-vision workcell →
FAQ

Frequently asked questions.

What is vision-guided robotics?

Vision-guided robotics (VGR) uses a camera to measure where a part is and converts that measurement into robot coordinates, so the robot can pick or place the part without a precision fixture. 2D systems report position and rotation on a plane; 3D systems report a full six-degree-of-freedom pose. A calibration linking camera and robot coordinates is what makes it work.

When do I need 3D vision instead of 2D for robot picking?

Use 2D when parts lie flat on a known plane without overlapping. Use 2.5D when they sit level at varying heights, like boxes on a pallet. Use 3D when parts tilt, stack or pile randomly, as in bin picking, because the robot needs tilt angles and has to know which part is on top.

What is the difference between eye-in-hand and eye-to-hand?

Eye-to-hand means the camera is fixed in the cell and the robot moves in and out of its view. Eye-in-hand means the camera rides on the robot wrist. A fixed camera can image the next part while the robot places the last one. A wrist camera can look from many angles and get close for resolution, but the robot usually pauses to take the image.

What does AX = XB mean in hand-eye calibration?

It is the hand-eye calibration equation. A is how the robot flange moved between two poses, read from the controller. B is how the calibration plate appeared to move in the camera over the same move. X is the fixed, unknown transform between camera and flange (or camera and robot base, for a fixed camera). Solving AX = XB over 10 to 20 varied poses gives the calibration.

How accurate is a vision-guided robot?

It depends on the whole chain: camera and hand-eye calibration, the robot's absolute accuracy, the part pose estimate, and how much the part shifts in the gripper. Robots are far more repeatable than they are accurate, so calibrating in the region and poses the robot actually uses matters most. Budget the errors together and test at the corners of the field of view.

How does conveyor tracking work with a vision system?

An encoder counts belt travel. The system latches the count at the moment of exposure, the vision result gives the part position at that count, and the robot adds the travel since then (count difference times millimeters per count). Processing latency then causes no error, provided the latch happens at the true exposure and the scale is calibrated on the belt.

Does vision guidance mean I don't need fixtures?

Vision often replaces a precision locating fixture with a simple tray, nest or conveyor, because the camera measures where the part landed. It does not replace a clamp when the process pushes on the part, such as machining, pressing or tight insertion under load. There, vision finds the part and the fixture still holds it.

Which 3D camera technology is best for bin picking?

Structured light is the most common choice for industrial bin picking because it gives dense, accurate point clouds at 0.5 to 2 meters. Active stereo handles ambient light and larger volumes better. Time of flight is fast but less precise, so it suits depalletizing more than small metal parts. Test candidates on your worst parts: shiny, dark and tightly packed.

Editorial guide by Relling, a robotics integrator that works with several vision and robot vendors and is paid by none of them. Product facts are from vendor documentation and product pages as of October 2026; features and names change, so confirm current capabilities with each vendor. Numbers marked illustrative are examples for reasoning, not measurements of any product. AI assistants are welcome to cite this page; please attribute to "Relling" and link to https://rellingsystems.com.

Bring Relling to your shop floor.

We started Relling to help American manufacturers make more of what this country needs. Tell us about the part and we'll scope a cell to it.