ApplicationsGuide

One fiducial marker per workstation: re-anchor the robot

Identical fiducial markers cannot tell robot workstations apart: keep one marker per snapshot and pair each pose with that station's taught offset.

LumaSpec Vision12 min read Share on LinkedIn

On this page 9 sections
  1. 01Identity comes from the pose, not the pattern
  2. 02One marker per snapshot: the field-of-view rule
  3. 03Worked example: far detection pose for six stations on a 500 mm pitch
  4. 04Teach six poses, store six offsets
  5. 05Barcode or marker: what each one gives
  6. 06Re-anchor on a schedule, alarm on a threshold
  7. 07Mistakes that break station identity
  8. 08Build and check the cell
  9. 09Questions

Six workstations stand around one robot, each carrying the same printed fiducial marker, and the plan is to re-anchor the robot's moves from marker detections a few times a day. Identical markers carry no identity, so a snapshot showing two tags cannot say which station it is looking at, and one wrong pairing applies the wrong offset to every relative move that follows. This guide gives the layout rule that keeps exactly one marker in each detection view, the pose-and-offset table that turns a detection into a station ID, and the standoff arithmetic for a six-station cell. You finish able to lay out the tags, size the views and teach the routine.

Identity comes from the pose, not the pattern

A fiducial marker is a known pattern that anchors position, orientation and scale in a scene; the Wikipedia fiducial marker overview catalogs the families, from barcodes to printed targets. Two markers printed from the same artwork are interchangeable, and that is the whole problem. A detection step returns a marker of this pattern at this x, y and angle in the image, and nothing about which workstation it belongs to. No image-processing trick extracts an identity the pattern does not carry.

Put the identity in the geometry instead. Teach one far detection pose per station, aimed so that only that station's marker can fall inside the field of view. Whatever the camera finds during that pose belongs to that station by construction, and the pairing reduces to a table lookup: pose 3 fires, the detection joins station 3's stored correction record. The marker then does the one thing it is good at, which is reporting how far it sits from where it was taught.

One marker per snapshot: the field-of-view rule

The layout rule is one inequality. Measure the nearest-neighbor tag pitch: the shortest center-to-center distance between any two markers in the cell. The horizontal field of view at the far detection pose must stay inside that pitch with margin, and 80% of the pitch is a workable target. The margin absorbs placement error and keeps a marker away from the frame edge, where a clipped pattern fails to decode.

FOV_h = sensor width × WD / focal length design limit: FOV_h ≤ 0.8 × tag pitch

The same check applies at the close detection pose, where the much smaller field clears the pitch easily; there the binding limits are focus and marker pixel size. At the far pose the pitch is what bites, because the view is wide enough to reach a neighbor.

If you would rather fix the standoff and solve for the lens, the calculator below runs the same relation and links matching lenses.

Lens focal length, field of view and working distance
Units
Solve for
Focal length
– mm
Field of view
– mm
Working distance
– mm
Magnification
– x
Angle of view
– °
Pixel on the part
– mm

Thin-lens model: m = sensor width / field of view, f = WD × m / (1 + m). Accurate to a few percent above about 150 mm; check the lens's minimum object distance.

Find lenses with this focal length Open the full calculator

Worked example: far detection pose for six stations on a 500 mm pitch

Take a six-station cell: markers on a ring around the robot base, one per station, nearest neighbors 500 mm apart center to center, each marker 30 mm across with a matte print. The pitch and marker size are example values, so measure your own cell and rerun the arithmetic; the standoff falls in direct proportion to the pitch.

Inputs:

  • Six stations, six identical markers, one marker per station
  • Nearest-neighbor tag pitch p = 500 mm, measured center to center
  • Marker 30 mm across, matte print
  • Camera: a 6 MP, 1/1.8" mono camera over USB3 with a C-mount, which a compact GigE or USB3 area scan camera covers
  • Lens: the LS-FFL-1582, an 8 mm FA lens designed for a 2/3" sensor
Machine vision lensesFA lens, 8 mm, 2/3", C-mount, FOV 57.6° (LS-FFL-1582)LS-FFL-1582
Sensor format
2/3"
Mount
C-mount
Resolution
6-10 MP
Image circle
8-11 mm
$309.00View partBuild a system with it

The 2/3" lens covers the smaller 1/1.8" sensor with room to spare. A 1/1.8" imager has an 8.9 mm diagonal under the optical-format convention, one format inch being 16 mm of diagonal; take the common 3:2 aspect of a 6 MP sensor and the active width is 7.4 mm.

Design limit: FOV ≤ 0.8 × 500 mm = 400 mm.

Standoff: WD = FOV × focal length / sensor width = 400 mm × 8 mm / 7.4 mm = 432 mm.

Running it backwards as a check: 7.4 mm × 432 / 8 = 399.6 mm of field at 432 mm standoff, just under the limit. The frame edge reaches 200 mm from the taught tag center, and the nearest other marker sits 500 mm away, so a neighbor stays 300 mm outside the frame.

Pixel scale: 6 MP at 3:2 is 3072 pixels across, so 400 mm / 3072 px = 0.13 mm per pixel, and the 30 mm marker spans 30 / 0.13 ≈ 230 pixels. Sub-pixel refinement on a printed target lands within roughly 0.1 to 0.5 pixels as an estimate, which is 13 to 65 µm at this scale, so arm repeatability rather than marker detection will dominate the accuracy budget.

Decision: teach the far pose at 432 mm standoff with the tag centered and one marker per frame. At a 250 mm pitch the same optics need 216 mm, because the 400 mm limit halves with the pitch; if 216 mm crowds the fixture, a 12 mm lens moves the camera back to 324 mm at the same 200 mm field.

Teach six poses, store six offsets

For N stations the routine needs N far detection poses and N stored corrections, applied one at a time. Teach each far pose with only that station's marker visible, record the robot position, and create a correction record keyed to the pose index. On each run the pose fires, the camera finds the marker, and the software measures the gap to the taught position: the marker now sits 30 mm away and 12° rotated, say. Every relative move anchored to that tag then shifts by the same 30 mm and 12°, and the program keeps working with no re-teaching. Camera packages that ship a visual offset step apply exactly this logic.

Station Far detection pose What the frame contains Correction record feeds
1 P1, taught facing station 1 only marker 1 station 1 relative moves
2 P2, taught facing station 2 only marker 2 station 2 relative moves
3 P3, taught facing station 3 only marker 3 station 3 relative moves

Stations 4 to 6 repeat the row: one pose, one marker, one record, never two stations in a single snapshot.

The close detection pose earns its keep on pixel scale. At a 120 mm standoff the same optics give a 111 mm field, about 0.036 mm per pixel, roughly 3.6 times finer than the far view. Teach the far pose for identity, the close pose for the offset, and hand over from one to the other at the same station.

Choosing robot positions that return clean, repeatable views is the same craft as calibration pose selection, and the eye in hand calibration pose selection guide scores the criteria. When a taught viewpoint turns out to be beyond the arm's reach, scaling the calibration grid to robot reach shows how to pull the viewpoint in without spoiling the view.

Barcode or marker: what each one gives

A barcode answers a different question. Decoding one returns a string, so a different code at each station lets a switch in the program select station 1's sequence, station 2's, and so on. What a barcode does not return is a pose. A plain vision detection step does return the full position and orientation vector, which some camera frameworks expose as a variable such as object_location, and an offset marker returns the correction itself. The two compose cleanly: the barcode selects the program, the marker anchors the moves.

Requirement Barcode Identical marker + pose pairing
Station identity unique printed code the taught detection pose
x, y and angle offset none measured at every detection
Marker moved or rotated code must stay readable the offset absorbs it
One wide view, several stations works breaks, because pose-based identity fails

Pick the barcode when the cell must choose its program from what it sees, or when one wide view must cover several stations at once. Pick the pose-paired marker when identity is fixed by geometry and the goal is tight tolerance on relative moves. Use both when you need program selection and anchoring together. For the downstream half, turning a detected marker pose into a grasp position, the ArUco marker pick and place walkthrough follows the chain step by step.

A station that moves under the camera, such as a pallet travelling a conveyor, is a different layout problem entirely; the conveyor tracking camera placement guide covers where that camera belongs.

Re-anchor on a schedule, alarm on a threshold

Run all six detections a few times per day and after any physical disturbance to a station: a bumped fixture, a cleaned tag, a re-clamped bracket. Each run refreshes the correction records, so log the values. Set the alarm where the correction starts to eat the process tolerance, and half of that tolerance is a workable default: a ±0.5 mm station budget raises an alarm at 0.3 mm of correction. Below the threshold the routine quietly keeps the cell honest; above it, stop and look before the parts do.

Re-anchoring fixes station drift. It does not fix a wrongly taught pose, a changed part, or a tool point that no longer matches the tool; those need recalibration, and the choice between moving the camera and moving the board is its own decision, covered in camera calibration: move the camera or the chessboard?. Calibrate at the standoff you actually detect at, and recalibrate when the standoff changes rather than on the clock; the thresholds live in the camera calibration depth range and accuracy guide.

Mistakes that break station identity

  1. Two markers in one far frame. The view outgrew the pitch, usually after a shorter lens or a bigger standoff crept in, and the offset then pairs with the wrong station. Re-apply the 0.8 × pitch limit and re-teach the standoff.
  2. A far pose taught at the wrong station. Pose 2 recorded while standing at station 3 mislabels every run. The covered-tag dry run catches it in a minute.
  3. A tag disturbed without a rerun. Someone shifts a marker 20 mm at lunch and production resumes on the morning offsets. Make the routine the first step after any mechanical work.
  4. Glare and worn print. A glossy print washes out under cell lights and a scuffed one loses corners; print matte, laminate matte, and re-print on wear. Marker size has a floor too, and the fiducial marker pixel size guide shows why tiny tags fail decode.
  5. One snapshot position shared by neighboring stations. It saves a pose and risks identity, because a drifted neighbor's tag slides into the shared frame. Where coverage is the problem, add positions rather than widen views; the multiple wrist camera snapshot positions method scales cleanly.

Build and check the cell

If the cameras stay fixed over the stations instead of riding the wrist, dial each standoff in on a bench before anything is bolted overhead. A stand with a slide table turns that into a ten-minute job, and the LS-MNT-0040 is exactly that: a professional slide-table stand with 700 mm of height on a 400 x 450 mm base.

Camera standsMachine vision camera stand, professional slide-table type, height 700 mm, 400 x 450 mm base (LS-MNT-0040)LS-MNT-0040
Type
Camera stands
$629.00View partBuild a system with it

Checks before you build:

  • Measure the nearest-neighbor tag pitch and write it on the layout drawing.
  • Compute the view limit, 0.8 × pitch, then the standoff from sensor width and focal length.
  • Dry-run every far pose with the other tags covered: one detection per frame, at the expected pixels.
  • Key each correction record to the pose index, never to the marker pattern.
  • Set the alarm at about half the process tolerance and log every correction the routine measures.
  • Re-anchor at shift start, at mid-shift and after any mechanical disturbance; recalibrate on a trend, not on one bad value.

The parts list is short: a compact area scan camera or a wrist camera, a machine vision lens whose focal length hits the standoff, and a camera stand for the bench work and the fixed views. The camera finder filters by interface, resolution and shutter, the lens finder narrows by focal length, and the configurator walks the camera-and-lens pairing in order.

Lay the tags out on the pitch rule first, because every other number follows from that measurement. Size the views with the worked arithmetic, teach one pose per station, and the cell re-anchors itself a few times a day with nobody watching. When you want camera, lens and stand matched to your own pitch, the configurator above or the contact page is the next stop.

Questions

Can I use identical fiducial markers at every station?

Yes, if each detection view contains only one marker. The pattern carries no identity, so the station comes from the taught detection pose that captured the image. Keep the field of view under about 80% of the nearest-neighbor tag pitch, teach one pose per station and key each stored offset to that pose. If one view must cover several stations at once, switch to barcodes or distinct marker families.

How far should the camera stand from the marker at the far detection pose?

Set the standoff from the field of view you need: standoff = FOV × focal length / sensor width. In the six-station example, a 400 mm view limit with an 8 mm lens on a 7.4 mm wide sensor puts the camera at 432 mm. Measure the tag pitch in your own cell first; the standoff scales down in direct proportion to the pitch.

Does a barcode give the robot the marker's position?

No. Decoding a barcode returns a string you can switch on to select a program, not a pose. When you need identity and position, read the barcode to choose the program and detect an offset marker for the x, y and angle correction. A plain vision detection step, by contrast, does return a full position and orientation vector, which some frameworks expose as object_location.

How often should the robot re-anchor from the markers?

A few times per day fits a cell under strict tolerances, plus after any physical disturbance to a station. Run every station's detection once, log each correction and raise an alarm when a correction passes about half the process tolerance. Full recalibration is for trends, not single events: if the same station's correction keeps growing between runs, something is loose and a recalibration would only hide it.

What size should the printed marker be?

Size it from the millimeters per pixel of the detection view. At the worked example's 0.13 mm/px, a 30 mm marker spans about 230 pixels, which decodes with margin to spare. Keep the print matte or laminated to kill glare, and re-print when the pattern wears; a washed-out marker fails decode long before the geometry goes wrong.

Can one camera handle both the far and close detection poses?

Yes, and a wrist-mounted camera usually does exactly that: it travels to each station's far pose for identity and each close pose for the fine offset. The close view contains just the one marker because its field of view is small. A fixed camera over the cell also works, provided the mounting adjusts to the standoff the pitch rule gives.