簡體   English   中英

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。

但是,如果我僅將基准更改為此

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

還應注意,由於這兩個坐標系都在移動(即,相對於設備處於固定位置,並且彼此相對),因此該調用產生的姿勢不會隨着設備的移動而改變。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM