[英]Google Tango - Getting pose data with IMU as base frame
I am working with Google Project Tango and I tried a basic example with getting pose data: 我正在使用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);
This gives TANGO_SUCCESS. 这给出了TANGO_SUCCESS。
However, if I only change base to this 但是,如果我仅将基准更改为此
pair.base = TANGO_COORDINATE_FRAME_IMU;
...I keep getting TANGO_INVALID. ...我一直得到TANGO_INVALID。
I tried using C API and Unity SDK, and both have a same invalid result. 我尝试使用C API和Unity SDK,但两者都有相同的无效结果。
Why is that? 这是为什么? Why can't I use TANGO_COORDINATE_FRAME_IMU?
为什么不能使用TANGO_COORDINATE_FRAME_IMU?
I am trying to fix Camera offset as mentioned here: 我正在尝试修复相机偏移,如下所述:
Camera-Offset | 相机偏移| Project Tango
探戈计划
but without any success... 但没有成功...
TangoSupport_getPoseAtTime
only works for getting a pose between a fixed coordinate frame and a moving coordinate frame. TangoSupport_getPoseAtTime
仅用于在固定坐标系和移动坐标系之间获取姿势。 The TANGO_INVALID
error results from the fact that TANGO_COORDINATE_FRAME_CAMERA_COLOR
and TANGO_COORDINATE_FRAME_IMU
are both moving coordinate frames. TANGO_INVALID
错误是由于TANGO_COORDINATE_FRAME_CAMERA_COLOR
和TANGO_COORDINATE_FRAME_IMU
均为移动坐标系这一事实造成的。
In order to find the offset between TANGO_COORDINATE_FRAME_IMU
and TANGO_COORDINATE_FRAME_CAMERA_COLOR
(or between any pair of moving coordinate frames), you need to use TangoService_getPoseAtTime
instead. 为了找到
TANGO_COORDINATE_FRAME_IMU
和TANGO_COORDINATE_FRAME_CAMERA_COLOR
之间(或任何一对移动坐标系之间)的偏移,您需要改用TangoService_getPoseAtTime
。
This code snippet should give you the transform you're looking for: 此代码段应为您提供所需的转换:
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);
Note also that since both of these coordinate frames are moving (ie in a fixed position with respect to the device, and each other) the pose resulting from this call will not change as the device moves. 还应注意,由于这两个坐标系都在移动(即,相对于设备处于固定位置,并且彼此相对),因此该调用产生的姿势不会随着设备的移动而改变。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.