Symmetric parts are where vision-guided picking fails quietly. The matcher finds the blank and reports an angle of 87°, the robot turns to a pose that is mechanically identical to the one it learned, and nothing looks wrong — until a part sitting 15° off teach drops the match score, the station calls it a miss, and good product piles up in the reject bin. The fix is not a smarter matcher but arithmetic: a part with N-fold rotational symmetry only needs its pose resolved inside a window of 360°/N. This guide gives you that window for the shapes you load, the acceptance band that goes with it, one worked example with the pixel math shown, and the three cases where the 2D answer is wrong.
What symmetry does to the pose the matcher must resolve
A pattern match reports two things: where the part sits and how far it is rotated from teach. On a part with N indistinguishable orientations in the camera's view, a report of θ and a report of θ + 360°/N describe the same physical pose, so the matcher only has to land inside a window W = 360°/N. A square blank has four equivalent orientations and a 90° window; a rectangle has two and 180°; a 12-tooth gear has twelve and 30°. Precision demanded beyond that window is precision the robot cannot use and the matcher cannot reliably deliver.
Read N from the drawing as the camera sees it: count the rotations that map the silhouette onto itself, including 0°. The table lists the loading shapes that come up most, with the band set at half the window.
| Part in the camera's view | N | Window W | Band per equivalent |
|---|---|---|---|
| Round cap or lid, seen from above | unbounded | angle meaningless | skip roll, locate center only |
| Rectangular blank or obround gasket | 2 | 180° | ±90° |
| Square blank | 4 | 90° | ±45° |
| Five-vane impeller | 5 | 72° | ±36° |
| Hex nut or bolt flange, top view | 6 | 60° | ±30° |
| 12-tooth gear | 12 | 30° | ±15° |
Set the band to ±W/2 around every equivalent orientation and the bands tile the full circle with no gaps: 0°, 90°, 180° and 270° each at ±45° covers every possible report of a square blank. Subtract a margin from those bands and dead zones open at the window edges, where correctly presented parts get rejected on angle — the one fault a symmetric part should never have. Once the angle folds, roll precision stops mattering while the part stays truly symmetric; it binds again the moment a logo, chamfer or pin breaks the symmetry and N drops back to 1.
Why ignoring orientation is the wrong ask
The tempting request — tell the matcher the angle does not matter — deletes information the robot still needs. Matching methods that are truly rotation-invariant exist in the literature, but they return position without angle, and the gripper still needs a roll command unless the gripper itself is symmetric about the pick axis. Invariance also discards the strongest discriminator a plain part has: on a blank square scored without angle, a part at 87° looks as good as one at 45°, and a double-placed blank scores as well as a single one.
Keep the angle and widen the acceptance band instead. Teach once at whatever orientation the first part presented, search the full ±180°, and accept any report within ±W/2 of a taught equivalent — 0°, 90°, 180° or 270° for the square. A hit at 91° off teach becomes a clean pick at the next equivalent; a report with no equivalent nearby means the part is not where the model thinks, and that is a rejection worth having. The reverse fault, a match that passes scoring while pointing the gripper backwards, is diagnosed in Pattern match flips 180 degrees: fix false hits and tolerance settings.
How to set the angular tolerance
Five steps, in order:
- Count N from the drawing as the camera sees it. A cylinder seen from above has unbounded N: skip the roll and locate the center.
- Compute W = 360°/N and set the acceptance band to ±W/2 around every equivalent, not around teach alone.
- Teach one model at one orientation, with model features spread to the part's extremes. Angular precision scales with the distance from part center to the farthest taught feature, so corners beat the middle; a part that is mostly edge teaches by feature, as in teaching long thin parts by feature, not the whole part.
- Set the search range to ±180° so every equivalent orientation scores equally.
- Gate or fold. Gating: enumerate the equivalents through the tool's symmetry setting or by adding rotated models, and give each a ±W/2 band, so the bands tile the circle and no correctly presented part is rejected on angle. Folding: compute θ' = θ mod W and command the gripper with θ' minus the taught fold — three lines of code — and the folded angle becomes a tool rotation the same way as any guided pick, as in configuring tool rotation for vision-guided picking.
Worked example: 40 mm square blank under a 6 MP smart camera
Inputs, with where each comes from:
- Part: square blank, 40 mm sides, loaded flat into a cutting machine — the blank-loading case, four equivalent orientations, so N = 4 and W = 90°.
- Field of view: 200 mm across, chosen to cover the blank with approach margin on all sides.
- Camera: 6 MP in the common 3072 × 2048 format.
The rules, in words: pixel size equals field of view divided by pixels across; a match's angular noise is roughly one pixel of edge shift divided by the teach radius in pixels; the acceptance band is half the symmetry window, applied around every equivalent.
The arithmetic:
- Pixel size: 200 mm / 3072 px = 0.065 mm.
- Teach radius: half the diagonal, (40 mm × √2) / 2 = 28.3 mm, which is 28.3 / 0.065 ≈ 435 px from centroid to the farthest taught corner.
- Angular noise: 1 / 435 rad × 57.3°/rad ≈ 0.13°.
- Acceptance band: 360° / 4 = 90°, so ±45° around each of the four equivalents.
Result: the matcher's own angular noise, about 0.13°, is roughly three hundred times smaller than the 45° band and consumes under a third of a percent of it, so symmetry sets the band — not the camera. Teaching only the middle 100 px of the blank would push the noise to about 0.57° and still change nothing. A tighter field of view moves both numbers down in proportion: at 100 mm across, the pixel drops to 0.033 mm and the noise to about 0.07°.
Decision: set the band to ±45° around each of 0°, 90°, 180° and 270°. The four bands tile the circle exactly, so the angle rejects nothing — score and position carry the rejection. Fold the reported angle with θ mod 90° before the gripper roll is commanded: a part found at 87° picks with a wrist correction of −3°, and one found at 44° picks at +44°.
When the 2D window is wrong: chirality, near-symmetry and bins
Mirror-image parts. A flat bracket can show perfect 180° rotational symmetry in plan view while its top and bottom differ — chamfer up on one face, pocket down on the other. The drawing says N = 2; the part says N = 1, because the 180° move exists in the image plane but not in space. Flipped parts pass the match and fail the assembly. Test it once: turn a part face down and re-run the match. If it still scores, the model is reading silhouette only.
Near-symmetric parts. One clipped corner or a single index hole collapses the square from N = 4 back to N = 1. The window opens to 360° and the band to ±180°, which is to say the whole angle must now be resolved. That puts the outlier feature in the teach model and favors edge-based scoring, as in edge-based pattern matching for stable results when lighting changes.
Parts in a bin. Overlapping parts sit tilted, and a tilted square projects as a trapezoid whose 90° symmetry is only approximate. The pose is six degrees of freedom, not two, and a 3D sensor takes over: a projected structured-light camera such as the MV-DPS200P-02 returns the full pose, so the fold reduces to the roll about the gripping axis. Stacked and tangled parts are covered in bin picking non-planar parts with 3D vision guidance, and flat blanks in bins in 3D bin picking for flat parts: choosing a vision approach.
- Type
- Stereo / structured light
For the choice between one overhead 2D camera and a depth sensor, comparing 2D and 3D solutions for vision-guided robotic picking sets the two options side by side.
Cameras and controllers that run the fold
The fold runs anywhere a matcher runs. Browse the smart cameras for on-device locate-and-fold, the vision controllers for multi-camera stations, and the 3D sensors when the pose needs depth.
For a fixed overhead camera shooting a stopped scene, resolution is what buys angular precision, and mono sensors keep the edge contrast a matcher scores best.
- Interface
- GigE
- Resolution
- 6-10 MP
- Sensor format
- 1/2.4"
- Shutter
- Rolling
The MV-SC5060XM-08M-WBN is a 6 MP mono SC5000X smart camera with an 8 mm M12-mount lens, a 1/2.4" sensor, a rolling shutter and a GigE interface. Over the worked example's 200 mm field of view, 6 MP lands at 0.065 mm pixels and about 0.13° of angular noise, and the rolling shutter costs nothing because the scene is stopped when the snapshot fires.
If the camera rides the robot, or the part is still moving at exposure, choose a global shutter instead.
- Interface
- GigE
- Resolution
- 5 MP
- Sensor format
- 1/1.45"
- Shutter
- Global
The MV-SC6050C-08M-XBN is a 5 MP color SC6000 smart camera with an 8 mm M12-mount lens, a 1/1.45" sensor, a global shutter and an integrated multi-color light source. The global shutter freezes the part during exposure so motion cannot smear the reported angle, and the built-in light drops one separate lamp from a tight station.
Multi-camera stations put the fold in one place.
- LAN ports
- 5+ LAN ports
- USB 3 ports
- 3-4 USB 3 ports
- PoE
- PoE camera ports
- Light outputs
- 8 built-in channels
The MV-VC5525-256G70-NN is a VC5000 vision controller with an Intel Core i5 processor, 32 GB of memory, 5+ LAN ports, PoE camera ports and 8 built-in light channels. One controller runs several cameras, folds each reported angle into its own part's window, and hands the robot one pick frame per station.
Size the field of view before the camera: the window and band are free, but the pixels that resolve the teach radius are not. The camera finder filters by resolution and shutter, and the configurator below pairs a camera with a lens for your field of view.
The configurator matches a camera, lens, light, light controller and cables to each other, step by step, and lists only parts that fit what you already picked.
Checks before you commit the tolerance
Run this list on the bench before the first production pick:
- Rotate a part to 0°, 45°, 90° and 135° and log the reported angle. Equivalents must land near their class centers, and 45° should report 45°, not 90°.
- Fire ten snapshots with nothing moving. The spread of the reported angle is the matcher's real noise; it should sit well under a degree with features taught at the extremes.
- Flip one part face down. If it still scores, the model reads silhouette only and the chirality case applies.
- Command the folded pick ten times and measure the part's roll in the nest. While the part stays symmetric any spread passes, but note it: the day a logo or chamfer breaks the symmetry, that spread becomes your roll budget.
- Save an image with every reject, so a band set too narrow shows up in the data instead of in a stopped line.
When picks still drift after the fold, rotation is rarely the culprit: vision pick error under rotation: diagnose position drift separates position drift from rotation error, and stations that add flipping or nest placement on top of the locate step are covered in 2D vision pick and place: selecting a planar guidance system. More application guides sit on the applications topic page.
Size the camera on the finder above, or send the part silhouette and symmetry count through the contact page and we will check the window and band with you before you order.
Questions
How do I count the symmetry number N for an odd-shaped part?
Take the part drawing as the camera sees it and rotate it in CAD from 1° to 359°. Every angle where the silhouette lands exactly on itself is one equivalent orientation, and N is that count including 0°. A square gives 4 (0°, 90°, 180°, 270°), a part with one keyway gives 1, and a face with two slots gives 2. The window is then 360°/N.
What acceptance band suits a rectangular part?
A rectangle has 2-fold symmetry, so the window is 180° and the band is ±90° around each of the two equivalents — together they cover the circle with no gap. The gripper roll differs by exactly 180° between the two classes. If the part can also arrive face down, that is a chirality problem, not a tolerance one; handle it with a face check.
Does a fully round part need a rotation angle at all?
No. A circular silhouette carries no angle, so locate the center with a blob or circle tool and pick with no roll correction, or let a self-centering gripper take up the roll. The exception is a round part with a logo, pin or flat: that feature breaks the symmetry, N returns to 1, and the full 360° window applies again.
The matcher keeps rejecting parts near the window edge — why?
Three usual causes. The acceptance band was set smaller than ±W/2, which opens dead zones at the window edges. The teach model was built from central features, so the angular estimate is noisy — re-teach with features at the part extremes. Or the part sits tilted, so the projected symmetry is broken; level the part plane or move to 3D.
Can I teach the part once and accept any rotation?
Yes. Teach one model at one orientation, set the search range to the full ±180°, and set the acceptance band to ±W/2 around every equivalent — through the tool's symmetry setting or by adding rotated models. Every equivalent then scores the same, and the program folds the reported angle into the window before the gripper roll is commanded.



