3D visionTroubleshooting

3D ROI coordinate frame: diagnose an inverted point cloud

Diagnose a 3D ROI coordinate frame mismatch with checks for identity transforms, reversed extrinsics, axis conventions and physical ROI placement.

LumaSpec Vision9 min read Share on LinkedIn

On this page 10 sections
  1. 01Start by separating the symptom from its cause
  2. 02Record the coordinate contract before changing settings
  3. 03Check identity extrinsics when the origins coincide
  4. 04Verify transform direction with a numerical point
    1. Worked example: an overhead camera
  5. 05Distinguish optical axes from viewer orientation
  6. 06Place the ROI in the frame used for filtering
  7. 07Verify physical placement before accepting the result
  8. 08Select hardware for the scene, not to correct a frame error
  9. 09Finish with a saved acceptance checklist
  10. 10Questions

A point cloud that appears upside down does not necessarily contain incorrect measurements. Likewise, overlapping camera and robot axes do not prove that their physical origins coincide. For engineers setting an inspection volume or preparing robot guidance, the first task is to identify which coordinate frame contains the cloud and which contains the ROI. The checks below separate display orientation from transform errors and verify the volume against physical reference points.

Start by separating the symptom from its cause

A 3D ROI is a region of space expressed in a particular coordinate frame. Its numerical bounds have meaning only when the frame, units and transform chain are known.

The viewer adds another layer: its virtual viewing direction determines what appears upright on screen. Rotating that view can change the appearance without changing any point coordinates or ROI membership.

Use these observations to choose your first test:

Symptom Likely explanation to test First check
Camera and robot axes overlap before calibration Identity transform or shared display reference Inspect the active extrinsic transform
Cloud looks inverted, but known coordinates are correct Viewer orientation or expected axis convention Read point coordinates while rotating only the view
Known points have incorrect positions after transformation Wrong transform direction, units or calibration Calculate a reference point independently
Cloud looks correct, but ROI selects the wrong region ROI and cloud use different frames Trace the coordinates entering the ROI operation
Position changes incorrectly when the robot moves Wrong moving-frame transform or stale pose Compare timestamps and the complete transform chain

The depth camera orientation guide explains orientation relative to a reference frame. Here, the deciding question is narrower: does the ROI select the intended physical space?

Record the coordinate contract before changing settings

Write down the meaning of every input to the ROI operation. Do not rely on labels such as “world” or “camera” without checking their definitions.

Record:

  • The frame containing the incoming point cloud.
  • The frame containing the ROI center, bounds and orientation.
  • Whether transformation occurs before or after filtering.
  • The length unit used by each operation.
  • The source and destination frames of each transform.
  • Whether the camera is fixed or moves with the robot.
  • Whether an ROI setting changes stored coordinates or only its display.

A frame identifier should travel with the data whenever the software supports it. Otherwise, document the contract beside the processing step and in the saved configuration.

For a moving camera, also record the robot pose associated with each acquisition. Correct extrinsics combined with a pose from another instant can place the cloud incorrectly.

The guide to using eye-to-hand calibration results for robot-base picks covers the downstream conversion. Complete these frame checks before passing coordinates into that calculation.

Check identity extrinsics when the origins coincide

An identity transform maps a frame onto itself numerically. It has no rotation and no translation:

T = [1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1] p_out = p_in

If software uses identity extrinsics, camera coordinates displayed as base coordinates retain exactly the same values. The displayed axes can therefore overlap even though the physical camera sits far from the robot origin.

An identity transform may be an initial setting, an intentionally selected reference, or the result of loading the wrong configuration. Its presence is evidence to investigate, not proof of a particular software default.

Inspect the active values rather than a saved file alone. Confirm that the application loaded the intended calibration and applied it to the current cloud. Some systems retain separate calibration objects for acquisition, visualization and processing.

If calibration is missing, establish it through the documented workflow. The hand-eye calibration alignment guide explains the relationship between measured correspondences and coordinate alignment.

Verify transform direction with a numerical point

Choose explicit notation before using a matrix. Here, T_BC maps coordinates from camera frame C into base frame B. This naming convention is defined for this explanation; your software may use another convention.

p_B = R_BC p_C + t_BC p_C = R_BC^T (p_B - t_BC) T_CB = inverse(T_BC)

These equations assume column vectors and a rigid transform with an orthonormal rotation matrix. A row-vector implementation requires its corresponding multiplication convention.

Reversing the mapping requires both transposing the rotation and transforming the translation. Simply negating the translation is generally incorrect.

Worked example: an overhead camera

Consider an illustrative installation using millimetres throughout. The camera points downward, and its axes relate to the base through a half-turn about their common X direction:

R_BC = [1 0 0 0 -1 0 0 0 -1] t_BC = [500, 200, 1000] mm p_C = [100, 50, 600] mm R_BC p_C = [100, -50, -600] mm p_B = [100 + 500, -50 + 200, -600 + 1000] mm p_B = [600, 150, 400] mm

The negative signs are not themselves an error. They describe a valid rotation between differently oriented frames.

Apply the inverse as a round-trip check:

p_B - t_BC = [100, -50, -600] mm R_BC^T (p_B - t_BC) = [100, 50, 600] mm

The original camera point is recovered. However, a round-trip test alone does not establish physical correctness: a wrong transform and its matching inverse also cancel. Compare the transformed point with an independently known physical position.

For a calibrated installation, follow the additional checks in verifying the camera-to-base result.

Distinguish optical axes from viewer orientation

A common optical convention uses X to the image right, Y downward and Z forward from the camera. Other frames may use Z upward or another arrangement. Confirm the actual convention instead of inferring it from axis colors.

An overhead camera can produce a cloud that looks upside down when viewed using its optical axes. The measurements may still be correct. A viewer can also orbit beneath a cloud, making a familiar surface look inverted.

Perform these tests without modifying calibration:

  1. Select a recognizable physical point and record its XYZ coordinates.
  2. Rotate or reset only the viewer's virtual camera.
  3. Confirm that the recorded coordinates remain unchanged.
  4. Move a reference object along a known physical direction and observe which coordinate changes.
  5. Repeat along another independent direction and at a different height.

If only the screen appearance changes, investigate view controls rather than extrinsics. If the numeric motion contradicts the documented axes, investigate the frame conversion.

The optical-frame point-cloud transform guide covers that specific axis conversion. Do not apply a second conversion when the acquisition software has already performed it.

A pure rigid rotation preserves distances and handedness. Unexpected scaling or reflection points toward a different class of error, such as inconsistent units or an invalid axis remapping.

Place the ROI in the frame used for filtering

A box drawn in base coordinates cannot be compared directly with camera-coordinate points. Either transform the cloud into the box frame or transform each tested point into the ROI's local frame.

For an axis-aligned box expressed in B, membership is:

x_min <= x_B <= x_max y_min <= y_B <= y_max z_min <= z_B <= z_max

Using the worked example, define illustrative bounds:

x_B: 580 to 620 mm y_B: 130 to 170 mm z_B: 380 to 420 mm

The transformed point [600, 150, 400] mm lies inside all three intervals. Its camera-coordinate representation [100, 50, 600] mm does not. Testing the latter directly against base-frame bounds would reject the correct physical point.

For an oriented box, transform points into the box's local axes before applying its local limits. Do not transform only the minimum and maximum corners and assume the resulting box represents the same volume. Rotation generally changes its orientation.

If an axis-aligned enclosure is required after rotation, transform all eight corners and calculate new coordinate extrema. That enclosing box can include space outside the original ROI, so it is unsuitable when exact boundary membership matters.

In a shared-camera installation, establish the common reference first. The multi-camera shared-coordinate-frame guide explains the alignment problem that precedes a shared ROI.

Verify physical placement before accepting the result

Use a static scene first. Keep robot motion disabled during geometric diagnosis, following the machine's approved commissioning procedure.

  1. Choose identifiable reference features. Use at least three non-collinear points with known positions. Add a point at another height to challenge the vertical mapping.
  2. Save the unfiltered cloud. Preserve a baseline so an incorrect ROI does not hide the evidence needed to diagnose it.
  3. Compare transformed coordinates with reference positions. Record an error vector for each point, not just a screenshot.
  4. Test inclusion deliberately. Place a reference feature clearly inside the ROI, then outside each accessible boundary.
  5. Challenge height selection. Confirm that a surface above or below the intended volume is rejected for the expected reason.
  6. Reload the configuration. Repeat the checks after a normal application restart to detect unsaved settings or loading errors.

For example, with an application acceptance limit of 2 mm, a measured reference error of 6 mm fails even if the rendered cloud looks convincing. These are illustrative limits; derive your actual acceptance criteria from the inspection or guidance error budget.

Allow for measurement uncertainty near boundaries. A point that fluctuates across a boundary may reflect noise rather than a transform fault. Test well-separated inside and outside positions before evaluating boundary behavior.

A correctly placed inspection ROI is not a safety-rated protective function. Robot operation still requires the applicable safeguarding and validated control design.

Select hardware for the scene, not to correct a frame error

Replacing a sensor will not repair reversed extrinsics or an ROI evaluated in the wrong frame. Resolve the coordinate contract first, then assess coverage, surface visibility and measurement performance.

The 3D sensors category and camera finder help identify acquisition options. The MV-DLS300P-04 and MV-DPS200P-02 are catalogued in the stereo / structured-light category. Their inclusion here does not establish compatibility with a particular processing application.

3D sensorsHikrobot MV-DLS300P-04 Laser galvanometer stereo cameraMV-DLS300P-04
Type
Stereo / structured light
$16,579.00 · quotedView and quote
3D sensorsHikrobot MV-DPS200P-02 Projected structured-light 3D cameraMV-DPS200P-02
Type
Stereo / structured light
$8,829.00 · quotedView and quote

Before choosing a sensor, confirm its documented point-cloud units, output frame definitions, calibration interfaces and supported software integration. Check physical coverage using the 3D camera working-distance guide.

If processing runs on a dedicated device, evaluate vision controllers against the acquisition and processing requirements. Moving computation to another device does not change the coordinate contract or eliminate transform validation.

Finish with a saved acceptance checklist

Keep the following evidence with the project configuration:

  • Cloud frame, ROI frame and length units are explicitly recorded.
  • Active extrinsics match the intended calibration file and transform direction.
  • Viewer orientation has been tested independently from data coordinates.
  • Reference points agree with known physical positions within the application error budget.
  • ROI inclusion and exclusion work across the intended volume, including height.
  • Moving-camera data uses the corresponding robot pose and timestamps.
  • Restarting the application preserves calibration and ROI behavior.
  • Diagnostic processing remains separate from machine safety functions.

When coordinates are correct but the image still appears inverted, a viewer adjustment may be the right answer. When coordinates are wrong, changing the view only hides the fault.

For help selecting parts or reviewing the frame contract, send the transform convention, units, ROI bounds and reference-point errors through application support. You can also begin a component selection with the system configurator once the geometry is established.

Questions

Why do the camera and robot origins appear at the same position?

They can overlap numerically when the active mapping is identity, when calibration has not been applied, or when the viewer displays a shared reference. Inspect the active transform and test a physically known point. Overlapping graphics alone cannot establish the relationship between the real camera and robot origins.

Does an upside-down point cloud mean calibration is wrong?

Not necessarily. An overhead mounting arrangement, optical-axis convention or virtual viewing direction can make valid data look inverted. Read the coordinates of known features and move a reference object in known directions. Correct numeric behavior indicates that the display may need adjustment rather than the calibration.

Which coordinate frame should contain a 3D ROI?

Use the frame in which the filtering operation evaluates points, or provide the documented conversion between that frame and the ROI frame. A base-frame box requires base-frame coordinates for its membership test. A viewer displaying transformed data does not prove that filtering receives the same transformed cloud.

Should I change the robot frame to make the point cloud upright?

Usually this is the wrong correction. Changing a robot frame can alter existing motion coordinates while leaving the underlying vision mismatch unresolved. Verify the vision transform, units and ROI reference first. Make any robot frame changes only through the documented commissioning process and revalidate affected operations.