Google Tango - 以 IMU 作为基础框架获取姿势数据
Google Tango - Getting pose data with IMU as base frame
我正在使用 Google Project Tango,我尝试了一个获取姿势数据的基本示例:
TangoCoordinateFramePair pair;
pair.base = TANGO_COORDINATE_FRAME_START_OF_SERVICE;
pair.target = TANGO_COORDINATE_FRAME_CAMERA_COLOR;
base = TANGO_SUPPORT_ENGINE_OPENGL;
target = TANGO_SUPPORT_ENGINE_OPENGL;
error = TangoSupport_getPoseAtTime(poseTimestamp, pair.base, pair.target, base, target, ROTATION_0, &pose);
这给出 TANGO_SUCCESS。
但是,如果我只将 base 更改为这个
pair.base = TANGO_COORDINATE_FRAME_IMU;
...我一直收到 TANGO_INVALID。
我试过使用 C API 和 Unity SDK,但都得到了相同的无效结果。
这是为什么?为什么我不能使用 TANGO_COORDINATE_FRAME_IMU?
我正在尝试按照此处所述修复相机偏移:
但没有任何成功...
TangoSupport_getPoseAtTime
仅适用于获取固定坐标系和移动坐标系之间的位姿。 TANGO_INVALID
错误是由于 TANGO_COORDINATE_FRAME_CAMERA_COLOR
和 TANGO_COORDINATE_FRAME_IMU
都是移动坐标系。
为了找到TANGO_COORDINATE_FRAME_IMU
和TANGO_COORDINATE_FRAME_CAMERA_COLOR
之间(或任何一对移动坐标系之间)的偏移量,您需要使用TangoService_getPoseAtTime
代替。
此代码片段应为您提供所需的转换:
TangoCoordinateFramePair pair;
pair.base = TANGO_COORDINATE_FRAME_IMU;
pair.target = TANGO_COORDINATE_FRAME_CAMERA_COLOR;
TangoPoseData pose;
TangoErrorType result = TangoService_getPoseAtTime(0.0, pair, &pose);
另请注意,由于这两个坐标系都在移动(即相对于设备处于固定位置,并且彼此处于固定位置),因此调用产生的姿势不会随着设备移动而改变。
我正在使用 Google Project Tango,我尝试了一个获取姿势数据的基本示例:
TangoCoordinateFramePair pair;
pair.base = TANGO_COORDINATE_FRAME_START_OF_SERVICE;
pair.target = TANGO_COORDINATE_FRAME_CAMERA_COLOR;
base = TANGO_SUPPORT_ENGINE_OPENGL;
target = TANGO_SUPPORT_ENGINE_OPENGL;
error = TangoSupport_getPoseAtTime(poseTimestamp, pair.base, pair.target, base, target, ROTATION_0, &pose);
这给出 TANGO_SUCCESS。
但是,如果我只将 base 更改为这个
pair.base = TANGO_COORDINATE_FRAME_IMU;
...我一直收到 TANGO_INVALID。
我试过使用 C API 和 Unity SDK,但都得到了相同的无效结果。
这是为什么?为什么我不能使用 TANGO_COORDINATE_FRAME_IMU?
我正在尝试按照此处所述修复相机偏移:
但没有任何成功...
TangoSupport_getPoseAtTime
仅适用于获取固定坐标系和移动坐标系之间的位姿。 TANGO_INVALID
错误是由于 TANGO_COORDINATE_FRAME_CAMERA_COLOR
和 TANGO_COORDINATE_FRAME_IMU
都是移动坐标系。
为了找到TANGO_COORDINATE_FRAME_IMU
和TANGO_COORDINATE_FRAME_CAMERA_COLOR
之间(或任何一对移动坐标系之间)的偏移量,您需要使用TangoService_getPoseAtTime
代替。
此代码片段应为您提供所需的转换:
TangoCoordinateFramePair pair;
pair.base = TANGO_COORDINATE_FRAME_IMU;
pair.target = TANGO_COORDINATE_FRAME_CAMERA_COLOR;
TangoPoseData pose;
TangoErrorType result = TangoService_getPoseAtTime(0.0, pair, &pose);
另请注意,由于这两个坐标系都在移动(即相对于设备处于固定位置,并且彼此处于固定位置),因此调用产生的姿势不会随着设备移动而改变。