Hello,
I am trying to simulate the pose and IMU outputs of a ZED X Mini and I want to make sure I correctly understand the coordinate-frame conventions used by the ZED SDK.
Suppose I initialize the camera with:
init_params.coordinate_system = sl::COORDINATE_SYSTEM::RIGHT_HANDED_Z_UP_X_FORWARD;
My current understanding is the following:
Camera frame:
-
+X forward into the scene
-
+Y left
-
+Z up
-
origin approximately at the left eye by defaultWorld frame:
+Z gravity-aligned up, if gravity alignment is enabled
+X approximately the initial camera heading projected onto the horizontal plane
+Y approximately initial camera left
fixed after positional tracking initialization
initialized so the camera position starts near the world frame originPose from getPosition(…, REFERENCE_FRAME::WORLD):
pose of the left camera frame relative to the fixed world frameInitial pose:
translation is approximately (0, 0, 0)
rotation is approximately identity only if the camera starts level
if the camera starts pitched or rolled, the initial rotation may be non-identity
because the world frame is gravity-aligned while the camera frame is tilted