2017-08-02 48 views
0

我與谷歌Tango項目工作,我試圖得到一個基本的例子姿態數據:谷歌探戈 - 掌握IMU姿態數據作爲基礎框架

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
但沒有任何成功...

回答

1

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

還要注意的是,因爲這兩個座標系是移動(即在固定的位置相對於設備,每個其他)由此調用產生的姿勢不會隨着設備移動而改變。