我正在寻找更多关于如何正确使用漂移校正(使用Unity )的信息。
在Tango网站上,它说“经漂移校正的帧来自区域描述参考框架”,服务->设备的帧对启动“不包括漂移校正”,对于区域描述-> Start Of Service,它“仅在发生本地化事件或漂移校正时才提供更新”。
我想使用一个漂移校正的姿态的方式是类似于TangoPointCloud预置,其中深度点乘以矩阵startServiceTDevice,这是由帧对SoS ->设备产生的。假设漂移校正的帧在AD帧中,我需要SoS -> AD。由于只有AD -> SoS可用,所以我尝试了这个和它的反向。所产生的姿态太小,但没有任何意义(即使使用错误的方向,翻译不应该接近于零,如果我走来走去的话)。然后,我考虑到AD框架可能实际上类似于一个经过漂移修正的服务启动,但我仍然找不到AD ->设备和SoS ->设备之间的任何显著/可见的差异,其中肯定没有循环闭包。在扫描完成后,我请求并申请姿势,所以到那时漂移应该已经被检测到了。
在Tango网站上,还有人进一步说,“在启动后的一段时间内,漂移校正的帧是不可用的。”然而,AD -> SoS的姿势从一开始就可以使用(而且是有效的),我还无法产生这样的情况(例如,没有运动,快速运动……)。
漂移校正是否有效?还是我用错了?
PS:在latest stackoverflow post上,听起来好像漂移校正只用于跟踪损失后的重新定位。然而,我很难相信这一点,因为Tango网站将漂移校正描述为“当设备看到它在你的会话早期看到过的某个地方时,它会意识到它在一个循环中运行,并调整其路径以使其更符合先前的观察结果。”
发布于 2016-12-13 09:58:13
漂移校正目前正在作为实验特征发挥作用,有一些拐角处的情况会被打破。我稍后会详细讨论。
为了使用漂移校正姿态,您将需要使用ADF_T_Device帧对(ADF是基本帧,设备是目标帧)。在使用漂移校正姿态将点投影到世界空间的例子中,您不需要进行Adf_T_ss * ss_T_device转换,而是只需要直接使用ADF_T_device帧。如果是在联合中,您只需检查use area description pose on PointCloud预置即可。
打破漂移的拐角处-校正:
在罩下,漂移校正正在构造一个更密集但更精确的ADF版本。如果用户在一开始就覆盖摄像头或抖动设备,这将导致缓冲区中没有保存ADF (或功能)。因此,API可能会进入一种从未从ADF_T_Device帧对中提供任何有效姿态的状态。
这类似于第一种情况。如果用户移动到一个新的空间,而没有重新定位后,失去跟踪,设备将永远不会重新定位,因此没有有效的姿态将提供通过ADF_T_device帧。
漂移校正API仍然是实验性的,我们也试图从API级别来解决上述问题。
https://stackoverflow.com/questions/41104348
复制相似问题