【问题标题】:Bad relocalization after motion tracking loss运动跟踪丢失后重新定位不良
【发布时间】:2017-01-04 22:47:58
【问题描述】:

我们希望与我的团队一起在我们的项目中实施区域学习以实现重新定位。

我添加了这个功能,它似乎运行良好。但是当发生漂移灾难(运动跟踪丢失)并且主摄像机瞬间投射到“宇宙的另一边”时,程序无法成功重新定位它:摄像机在下方 2 米,或在 3 米旁边它应该在哪里。

这是一个区域描述错误(因为它没有足够的兴趣点)? 还是我还没有理解如何使用区域学习?

非常感谢。

附: 我使用 Unity SDK。

public void Update()
{
    TangoPoseData pose = new TangoPoseData ();
    TangoCoordinateFramePair pair;

    if(poseLocalized)
    {
        pair.baseFrame = TangoEnums.TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_AREA_DESCRIPTION;
        pair.targetFrame = TangoEnums.TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_DEVICE;
    }
    else
    {
        pair.baseFrame = TangoEnums.TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_START_OF_SERVICE;
        pair.targetFrame = TangoEnums.TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_DEVICE;
    }
    double timestamp = VideoOverlayProvider.RenderLatestFrame(TangoEnums.TangoCameraId.TANGO_CAMERA_COLOR);
    PoseProvider.GetPoseAtTime (pose, timestamp, pair);
    m_status = pose.status_code;

    if (pose.status_code == TangoEnums.TangoPoseStatusType.TANGO_POSE_VALID)
    {
        // it does not differ with the pair base frame
        Matrix4x4 ssTd = UpdateTransform(pose); 
        m_uwTuc = m_uwTss * ssTd * m_dTuc;
    }
}

public void OnTangoPoseAvailable(TangoPoseData pose)
{
    if (pose == null)
    {
        return;
    }

    // Relocalization signal
    if (pose.framePair.baseFrame == TangoEnums.TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_AREA_DESCRIPTION &&
        pose.framePair.targetFrame == TangoEnums.TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_START_OF_SERVICE)
    {
        poseLocalized = true;
    }

    // If pose status is not valid, nothing is valid 
    if (!(pose.status_code == TangoEnums.TangoPoseStatusType.TANGO_POSE_VALID))
    {
        poseLocalized = false;
        // Do I forget something here ?
    }
}

【问题讨论】:

    标签: google-project-tango


    【解决方案1】:

    我经常观察到区域学习的定位和重新定位可以产生 x,y Pose 坐标偏离几米。

    如果我在移动到新区域之前更加小心地记录区域,坐标会更准确。

    重新定位后,如果平板电脑能够在移动到新区域之前使用缓慢、一致的移动来观察该区域,则可以提高坐标精度。

    如果我学习了一个新领域,我总是会回到一个众所周知的领域以获得更好的准确性,如 drift correction 所述:

    我有两台使用 Java 应用程序的 Tango 平板电脑,该应用程序可以自动导航我家中的 iRobot。我已经设置了一个网格测试站点,使用 1 米的胶带标记进行观察。

    【讨论】:

      猜你喜欢
      • 2018-07-20
      • 1970-01-01
      • 1970-01-01
      • 2017-08-02
      • 2016-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-07
      相关资源
      最近更新 更多