谷歌探戈 - 以IMU作为基础框架获取姿势数据



我正在使用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。

但是,如果我只将基础更改为此

pair.base = TANGO_COORDINATE_FRAME_IMU;

。我一直在TANGO_INVALID。

我尝试使用 C API 和 Unity SDK,两者都有相同的无效结果。
为什么?为什么我不能使用TANGO_COORDINATE_FRAME_IMU?

我正在尝试修复此处提到的相机偏移:
相机偏移|探戈计划,
但没有任何成功...

TangoSupport_getPoseAtTime仅适用于在固定坐标框和移动坐标框之间获取姿势。TANGO_INVALID误差是由于TANGO_COORDINATE_FRAME_CAMERA_COLORTANGO_COORDINATE_FRAME_IMU都是移动的坐标系。

为了找到TANGO_COORDINATE_FRAME_IMUTANGO_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);

另请注意,由于这两个坐标帧都在移动(即相对于设备以及彼此处于固定位置(,因此此调用产生的姿势不会随着设备的移动而改变。

最新更新