The vision side of a pick ends with one line of numbers: an object location pose, written p[x, y, z, rx, ry, rz]. Those six values carry the part position and orientation from the camera into the robot program. Most commissioning delays around vision-guided picking come from reading them in the wrong frame, the wrong unit or the wrong order. This guide is for integrators and controls engineers wiring that hand-off. You will learn what each value holds, which conventions to check, how to carry the pose into robot coordinates, and how rz turns into a gripper rotation.
What the object location pose variable is
A pose holds position and orientation together: three numbers for where the part is, three for how it is turned (the pose definition used in computer vision covers the geometry). A vision system that has located a part returns that pose as a variable the robot can read. Whether your camera's tools call it object location, locate or matching, the output is the same six values. x, y and z give the position of the part reference point, and rx, ry and rz give its orientation as three rotations. The variable is the whole contract between the two machines: the found box drawn on the image and the match score are for the operator, and only the six values move the robot.
The reference point matters more than anything else in the hand-off. The pose locates the origin of the taught model, not the corner of the bounding box and not the center of the image. Teach the part on its centroid and the pose points at the centroid; teach on a hole and it points at the hole. Build the pick geometry on whatever you taught.
What each of the six values means
For the planar locate behind most picking — one camera looking straight down at a known plane — the values have a fixed meaning:
| Value | Typical unit | What it holds | A planar locate returns |
|---|---|---|---|
| x | mm | part reference point, first in-plane axis | anywhere across the field of view |
| y | mm | part reference point, second in-plane axis | anywhere across the field of view |
| z | mm | position along the camera axis | the calibrated reference plane, often 0.0 |
| rx | degrees or radians | rotation about x | 0 |
| ry | degrees or radians | rotation about y | 0 |
| rz | degrees or radians | in-plane rotation of the part | between −180° and +180° |
x and y are the payload: the part position in the plane where you calibrated. z is a reference, not a measurement — a 2D camera cannot know how far a part sits from the lens unless the plane it rests on was calibrated. rx and ry are zero by construction. rz is the in-plane angle that becomes the gripper rotation; the orientation angle a camera finds for a pick rotation is exactly this number.
Units, order and frame: the three conventions to check
Three conventions differ between vendors and account for nearly every mis-wired hand-off.
Units. Many vision outputs report angles in degrees; some robot pose types store radians. The magnitude tells you which you are holding: a value capped near ±3.2 is radians, one that reaches ±180 is degrees.
Rotation definition. rx, ry and rz can mean Euler angles in a fixed order or a rotation vector. A planar pick collapses the question, because only rz acts about the vertical axis and a single angle has no order ambiguity. Full six-degree poses, with all three angles non-zero, must match the controller's convention — the same trap that leaves a point cloud rotated 90 degrees after hand-eye calibration.
Frame. The pose arrives in whatever frame the vision system was calibrated to: the camera frame, or the robot frame if the hand-eye transform already runs on the vision side. Print the raw variable, slide the part in a direction you know, and watch which axis moves. Two minutes here prevents an hour of robot motion with the wrong signs.
Carrying the pose from camera frame to robot frame
The hand-eye calibration between camera and robot base is a rotation R and a translation t. Applying it is two short formulas:
R is a rotation by φ about the vertical axis for a planar cell, and t places the camera origin in robot coordinates. Position transforms with the full rotation; the in-plane angle just adds φ. With a camera mounted rotated 180° about its viewing axis — the common overhead arrangement — R flips the sign of both in-plane axes: a part at camera x = +42.6 mm sits 42.6 mm in the minus-robot-X direction from the camera origin.
Where the transform lives is a design choice. The eye to hand object pose transform for robot picks derives it and compares running it on the vision side against running it in the robot program. The object pose in the camera frame at runtime after hand-eye calibration shows the raw camera-frame pose before that step. Run the transform in exactly one place: a rotation applied twice shows up as a pick mirrored across the camera axis, not as a random error, and it survives every retry.
On the robot side the pose usually lands in a waypoint variable; defining variable waypoints with pose_trans and I/O in a robot script shows that pattern end to end, and configuring a work object's rotation for a vision offset covers the controllers that apply the offset through a work object instead.
Worked example: a 180°-mounted camera over a pick table
Inputs, all illustrative values from one planar cell — the first three come from the cell's calibration and teach, the fourth is what the vision system returns:
- Camera origin in robot coordinates: (600.0, 250.0) mm, from the hand-eye calibration.
- Frame rotation: φ = 180.0° about the vertical axis (camera mounted half a turn out of line with the robot).
- Taught pick: the gripper picks the reference part at a TCP rotation of −90.0°.
- Vision result for the next part: p = [42.6, −18.4, 0.0, 0.0, 0.0, 47.5], in millimeters and degrees.
- The part has 180° rotational symmetry.
The rule in words: negate both camera coordinates because φ = 180°, add the camera origin, carry rz into the robot frame by adding φ, reduce by the part symmetry, then add the result to the taught TCP rotation.
The arithmetic:
- X = 600.0 − 42.6 = 557.4 mm
- Y = 250.0 − (−18.4) = 250.0 + 18.4 = 268.4 mm
- Z: unchanged at the taught part-plane height (z = 0.0 mm on the reference plane)
- rz in the robot frame: 47.5° + 180.0° = 227.5°
- symmetry-equivalent angle: 227.5° − 180.0° = 47.5°
- grasp angle: −90.0° + 47.5° = −42.5°
The pick pose is X 557.4 mm, Y 268.4 mm, taught Z, TCP rotation −42.5°.
Decision: −42.5° sits inside ±180°, so no multi-turn unwinding is needed. Had the matcher returned the symmetry-equivalent −132.5° (= 227.5° − 360°), the same grasp results — both values describe the same part, and consistency between cycles matters more than which representative arrives. If a wrist pose ever comes back wrapped beyond ±180°, normalize by adding or subtracting 360° before comparing; the gripper rotation between pick and place full-turn diagnosis works that case.
Where the pose is computed: on the camera or on a controller
Both placements produce the same pose variable; they differ in what lives next to it.
| Smart camera | Vision controller | |
|---|---|---|
| Locate runs on | the camera | the controller, fed by any camera |
| Pose handed over | from the camera, over the network | from the controller, over the network |
| Cameras per cell | one or two | several, mixed types |
| Extra jobs beside the locate | little; the pose is the job | transforms, part database, result logging |
| Where you program | the camera's own environment | a full vision suite on standard hardware |
For a single-station pick the camera-only path is the shortest wiring: the smart camera runs the object-location job, holds the pose variable and serves it to the robot with no computer in the loop — the architecture in robot pick and place vision without an external PC. The smart cameras category and the camera finder filter by resolution, shutter, mount and interface.
- Interface
- GigE
- Resolution
- 6-10 MP
- Sensor format
- 1/2.4"
- Shutter
- Rolling
When several cameras feed one robot, or the cell needs transforms, a part database and result logging in one place, a vision controller takes over. Light control comes with it: the MV-VC2140-128G40-1T switches illumination from four built-in light channels, so the strobe that freezes the part is driven by the same device that computes the pose. The vision system and robot gripper control architecture guide sorts out who drives what in that split.
- LAN ports
- 3-4 LAN ports
- USB 3 ports
- 2 USB 3 ports
- Light outputs
- 4 built-in channels
- Memory
- 8 GB
Parts that keep moving under the camera need a global shutter to avoid rolling-shutter smear, and color when the part itself carries the distinguishing color: the MV-SC3050XC-16M-ATN-H (5 MP color, global shutter, Fast Ethernet) fits that description.
- Interface
- Fast Ethernet
- Resolution
- 5 MP
- Sensor format
- 1/1.45"
- Shutter
- Global
How well the pose is known: field of view, standoff and pixel scale
The pose is only as good as the image scale behind it, and both numbers fall out of one decision: field of view.
Take a 160 mm field of view (a 150 mm part plus margin) at a 300 mm working distance, on a 1/2.4-inch-format sensor, which is about 5.3 mm wide and about 3,072 pixels across at 6 MP. Focal length: f = 300 × 5.3 / 160 ≈ 10 mm, so the nearest standard 12 mm lens gives a 132.5 mm field of view. Pixel scale: 132.5 / 3,072 ≈ 0.043 mm per pixel. To size pixels from the smallest feature instead, the camera resolution calculator does that directly.
That pixel scale propagates straight into the pose. A matcher good to one or two pixels places the part to about 0.04–0.09 mm. Orientation scales with the feature radius: an edge 20 mm from the part centroid moves 0.043 mm per pixel, which is 0.043 / 20 rad ≈ 0.12° of angle per pixel. So expect rz to wander a few tenths of a degree between cycles on natural edges. Widen the field of view and both numbers degrade in proportion; halve it and they improve by half.
When the usual answer is wrong
Symmetric parts. A matcher cannot tell 0° from 180° on a two-fold symmetric part, or 120° steps on a three-fold one, so rz jumps between valid values. Both are correct for the part. When a feature, chamfer or gripper jaw breaks the symmetry, restrict the rz search window or teach the distinguishing feature. The symmetric part orientation matching and rotation tolerance guide works through the tolerance.
Tilted or stacked parts. The planar pose carries rx = ry = 0 and z = the reference plane no matter how the part actually sits. Parts arriving at changing heights need a height check at the gripper or a per-plane offset — the one snapshot position for multiple planes offset method — and parts whose orientation is genuinely three-dimensional belong with a 3D machine vision system rather than 2D.
Moving parts. A pose captured while the part slides carries the lag between exposure and command. Trigger the capture from the process, with a hardware trigger or encoder, so the image freezes one part at a known instant.
Uncontrolled light. A pose that drifts between day and night shift is usually exposure drift, not a matcher fault: shield the station and strobe the light through the exposure window, as the ambient light variation in pick and place vision guide lays out.
Checks before you wire the hand-off
Run these five checks on the bench; each catches one class of silent error.
- Print the raw variable. One line, six values, with units. Confirms order, unit scale and that the reference point sits where you taught it — before any robot motion.
- Scale check. Move the part +20.0 mm along robot X and re-locate. The pose's X must change by +20.0 mm; anything else means the transform's signs or rotation are wrong.
- Rotation check. Turn the part 90° clockwise and re-locate. rz must move 90° in the direction the gripper must turn; a reversed sign means the camera rotation was applied twice or not at all.
- Dry run in the air. Command an approach point 50 mm above the computed pick pose and look straight down at the offset. This exposes reference-point and frame errors while nothing can collide.
- Ten-cycle watch. Log the pose across ten cycles without moving the part. At the 0.043 mm-per-pixel scale of the worked example, position should repeat within a few hundredths of a millimeter. A wandering rz points at symmetry ambiguity; a drifting position points at mounting or trigger faults. The vision pick error under rotation diagnosis sorts those apart.
Keep the frame facts on a printed sheet inside the cell door: unit, frame, reference point, sign convention, symmetry. With those five lines written down, any engineer on the floor can re-commission the hand-off in minutes, and the systems topic page collects the rest of the architecture guides linked above. To size the hardware, work from the numbers: field of view from the part, shutter from the motion, LAN ports and light channels from the camera count. If you want the hand-off read through before parts are ordered, send the raw pose printout and both frames through the contact page.
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.
Questions
Are the rotation values in an object location pose in degrees or radians?
Check the magnitude before you use them. Values that stay within about ±3.2 for a quarter to half turn are radians; values reaching ±90 or ±180 are degrees. Convert with radians × 180 / π. The vision output and the robot's pose type may differ, so convert once, at the boundary, and keep one unit through the whole program.
Can a planar object location pose give the part's tilt out of the plane?
No. A downward-looking 2D locate returns rx and ry as zero and z as the calibrated reference plane, however the part sits. A tilted or stacked part therefore needs either a height measurement at the gripper, a second camera at an angle, or a 3D point-cloud match that returns a full six-degree pose. Decide by part geometry, not by the tool you already have.
Why does the pick succeed but the gripper land 180° rotated?
The part is rotationally symmetric and the matcher cannot tell 0° from 180°, so it returns one of the two valid angles. For a truly symmetric part both are correct. When a feature, a chamfer or the gripper itself breaks the symmetry, restrict the search range for rz or teach the distinguishing feature, otherwise roughly half of the picks come out flipped.
Do I add rz to the taught gripper angle or overwrite it?
Add the difference. Most locate tools report the part's absolute in-plane angle, so the grasp angle is the taught TCP rotation plus the live rz minus the rz of the teach image; tools that output the angle relative to the teach model give you that difference directly. Overwriting throws away the orientation the pick was taught with.
What frame is the pose in if I have not done a hand-eye calibration?
The camera frame, with axes in the image plane: x right across the image, y down the image, z along the viewing axis, all anchored where the calibration plate would sit. Nothing in the six values warns you about the missing transform; the position simply points to a spot in the air relative to the camera. Run the calibration first, then the pose values become robot coordinates.


