[英]Getting pose data for OpenGL Coordinate System using Google Tango with Unity
[英]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_COLOR
和TANGO_COORDINATE_FRAME_IMU
均為移動坐標系這一事實造成的。
為了找到TANGO_COORDINATE_FRAME_IMU
和TANGO_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.