【问题标题】:Google Tango - Getting pose data with IMU as base frameGoogle Tango - 使用 IMU 作为基础框架获取姿势数据
【发布时间】:2017-08-05 09:00:13
【问题描述】:

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

我正在尝试修复此处提到的相机偏移:
Camera-Offset | Project Tango
但没有任何成功...

【问题讨论】:

    标签: android unity3d google-project-tango


    【解决方案1】:

    TangoSupport_getPoseAtTime 仅适用于获取固定坐标系和移动坐标系之间的位姿。 TANGO_INVALID 错误是因为TANGO_COORDINATE_FRAME_CAMERA_COLORTANGO_COORDINATE_FRAME_IMU 都是移动坐标系。

    为了找到TANGO_COORDINATE_FRAME_IMUTANGO_COORDINATE_FRAME_CAMERA_COLOR 之间(或任何一对移动坐标系之间)的偏移量,您需要改用TangoService_getPoseAtTime

    这段代码 sn-p 应该为您提供您正在寻找的转换:

    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);
    

    还要注意,由于这两个坐标系都在移动(即相对于设备处于固定位置,并且彼此相对),因此调用产生的姿势不会随着设备的移动而改变。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-06
      • 2010-12-23
      • 1970-01-01
      相关资源
      最近更新 更多