Point cloud coordinates vary greatly in different reference_frame

I used the zed2i camera to get the point cloud of the crane. The blue point coordinate value in the following figure is (1688726). When I set measure3D_ reference_ Frame to sl.REFERENCE_FRAME.CAMERA The point cloud coordinates obtained is (5.078392267227173, 0.7637787759304047, 16.464277267456055). When I set measure3D_ reference_ Frame to sl.REFERENCE_ FRAME.WORLD the point cloud coordinates obtained is (5.0526838302612305, -1.2955542206764221, 16.438910484313965). I use sl.COORDINATE_ SYSTEM.IMAGE coordinate systemThe difference between these two values is very large. What is the reason for this? In addition, I need to project the blue point to the ground. Which of the two modes is more appropriate?

Hi @cao
Welcome to the Stereolabs community.

I see a bit of confusion in what you write, so I try to better explain those concepts.

The parameter coordinate_system of the structure InitParameters defines how the axis of the reference frame are orientated:

The parameter measure3D_reference_frame of the structure RuntimeParameters defines where is the origin of the reference system defined by InitParameters.coordinate_system.
If the origin is REFERENCE_FRAME.CAMERA the coordinates of each point of the cloud is always referred to the center of the left camera sensor.
If the origin is REFERENCE_FRAME.WORLD the coordinates of each point of the cloud is always referred to the first position of the camera when the positional tracking module is started.

Thank you for your reply. It seems that I made a mistake. Their values are equal.

1 Like