【发布时间】:2016-04-28 03:22:12
【问题描述】:
我正在根据 OnExperimentalTangoImageAvailable 中返回的时间戳向 PoseProvider 查询 AD2Dev 姿势,我看到了一些奇怪的结果。
记录通过 OnTangoPoseAvailable 传入的姿势,我看到如下结果:
pose at time : 70595.754506
From Pose AD2Dev via callback
-0.2031748 -0.3201837 0.925312 -0.4358828
0.9790875 -0.0764451 0.1885304 -2.015653
0.01037121 0.9442661 0.3290197 0.1402309
0 0 0 1
我通过使用传入姿势的相同时间戳调用 GetPoseAtTime 来检查这一点,并得到相同的结果:
from pose AD GetPoseAtTime
-0.2031748 -0.3201837 0.925312 -0.4358828
0.9790875 -0.0764451 0.1885304 -2.015653
0.01037121 0.9442661 0.3290197 0.1402309
0 0 0 1
之后的姿势是这样的:
pose at time : 70595.764504
-0.2031739 -0.3201777 0.9253144 -0.4358475
0.9790877 -0.07645106 0.1885275 -2.015655
0.01037896 0.9442677 0.3290148 0.1403415
0 0 0 1
在 OnExperimentalTangoImageAvailable 中,我像这样更新纹理帧:
frameTimestamp = VideoOverlayProvider.RenderLatestFrame(TangoEnums.TangoCameraId.TANGO_CAMERA_COLOR);
这给了我 70595.755121338 的时间戳
为 AD2Dev 调用 GetPoseAtTime,我希望生成的姿势会影响上述两个姿势。 但是,我得到以下结果:
TANGO_POSE_VALID 70595.755121338 TANGO_COORDINATE_FRAME_AREA_DESCRIPTION TANGO_COORDINATE_FRAME_DEVICE
-0.1990919 -0.3197772 0.9263396 -0.437389
0.9799466 -0.07286096 0.1854613 -2.02092
0.008187711 0.9446872 0.3278706 0.1360694
0 0 0 1
可以看到位置不在两个bounding pose之间,旋转也相差很大。
谁能解释我做错了什么,或者为什么从 GetPoseAtTime 返回的结果姿势不是先前和后续姿势之间的直接 lerp?是否会因漂移而发生某种形式的反向校正?
【问题讨论】:
标签: unity3d google-project-tango