如何检测到已发生本地化? [英] How do I detect that localisation has occured?

查看:119
本文介绍了如何检测到已发生本地化?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用探戈时,我将使用什么,回调或其他方式来检测设备何时已本地化为先前加载的ADF?

When utilising a Tango what would I use, callbacks or otherwise to detect when the devise has localised to a previously loaded ADF?

这主要是与Tango UX一起用于UI的目的,告诉用户在环境中四处走动.

This is mainly for UI purposes in conjunction with Tango UX, telling a user to walk around an environment.

推荐答案

当您的frame 的"nofollow> TangoPoseData ADF恢复有效.

Localization may be detected when your TangoPoseData with a frame of ADF comes back valid.

查看

Look at the Tango Java examples of AreaLearningActivity with this simplified logic:

//tell tango to provide pose for ADF
ArrayList<TangoCoordinateFramePair> framePairs = new ArrayList<TangoCoordinateFramePair>();
framePairs.add(new TangoCoordinateFramePair(
        TangoPoseData.COORDINATE_FRAME_AREA_DESCRIPTION,
        TangoPoseData.COORDINATE_FRAME_DEVICE));

//register a listener for the frames chosen
mTango.connectListener(framePairs, new OnTangoUpdateListener() {

  //listens for updates from tango pose
  public void onPoseAvailable(TangoPoseData pose) {

    //base frame of ADF provides coordinates relative to the origin of the ADF
    if (pose.baseFrame == TangoPoseData.COORDINATE_FRAME_AREA_DESCRIPTION
        && pose.targetFrame == TangoPoseData.COORDINATE_FRAME_DEVICE)

      //if the status is valid then localization has succeeded
      if(pose.statusCode == TangoPoseData.POSE_VALID){
        Log.i(TAG,"Successfully localized with ADF");
      }
    }
  }

您的配置必须指出感兴趣的ADF:

Your config must indicate which ADF is of interest:

 config.putString(TangoConfig.KEY_STRING_AREADESCRIPTION,adfId);

从代码中不容易观察到此过程,但是我发现它可以调试AreaLearningActivity示例. Java API将受益于更高级别的抽象,从而使您请求的常见场景更加明显并且更易于使用:

This process is not easily observed from the code, but I discovered it debugging the AreaLearningActivity example. The Java API would benefit from a higher level of abstraction making the common scenario you requested more obvious and easier to use:

TangoLocalizer.builder().register(myListener).adfId(myAdfId).build();

这篇关于如何检测到已发生本地化?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆