gpt4 book ai didi

java - 检查加载的 ADF 中的区域是否已本地化

转载 作者:行者123 更新时间:2023-12-01 09:54:19 25 4
gpt4 key购买 nike

更新:

我找到了重新定位的线路,但设备无法本地化本身。加载 ADF 后,我总是会收到状态代码 POSE_INITIALIZING。还有Java中的重新本地化Area_Description_Example不起作用。有人有同样的问题吗?唯一可以进行重新本地化的应用程序是“Explorer”和“ADF Inspector”,但我没有它的源代码。

这是我的第一个问题的解决方案,加载 ADF 后检查重新本地化的代码:

TangoPoseData lastFramePose = mTango.getPoseAtTime(mRgbTimestampGlThread,
FRAME_PAIR);
if (lastFramePose.statusCode == TangoPoseData.POSE_VALID) {

// Device is re-located!

// Update the camera pose from the renderer
mRenderer.updateRenderCameraPose(lastFramePose);
mCameraPoseTimestamp = lastFramePose.timestamp;
} else {
Log.w(TAG, "Can't get device pose at time: " + mRgbTimestampGlThread);
}

旧版:

在我的应用程序中,用户可以决定是否启动新 session 或加载以前记录的 ADF(区域描述文件)。我加载了 ADF (adfUUID) 并将其添加到 Tango 类对象 (mTango),如下所示:

TangoConfig config = mTango.getConfig(TangoConfig.CONFIG_TYPE_CURRENT);
config.putString(TangoConfig.KEY_STRING_AREADESCRIPTION, adfUUID);
mTango.setRuntimeConfig(config);

所以我现在的问题是,如何检查该区域是否已使用加载的 ADF 进行本地化?我想要一个坐标引用系来启动已加载的 ADF 服务,而不是新 session 的服务。这是我在 connectTango() 函数中的设置:

TangoConfig config = mTango.getConfig(TangoConfig.CONFIG_TYPE_DEFAULT);
config.putBoolean(TangoConfig.KEY_BOOLEAN_LOWLATENCYIMUINTEGRATION, true);
config.putBoolean(TangoConfig.KEY_BOOLEAN_DEPTH, true);
config.putBoolean(TangoConfig.KEY_BOOLEAN_LEARNINGMODE, true);
config.putBoolean(TangoConfig.KEY_BOOLEAN_COLORCAMERA, true);
mTango.connect(config);

我使用的帧对是:

private static final TangoCoordinateFramePair FRAME_PAIR = new TangoCoordinateFramePair(
TangoPoseData.COORDINATE_FRAME_AREA_DESCRIPTION,
TangoPoseData.COORDINATE_FRAME_DEVICE);

最佳答案

“在学习模式开启的情况下加载 ADF”和“在学习模式关闭的情况下加载 ADF”都很好。目前他们正在使用不同位置的管道。因此,第一个本地化时间比第二个本地化时间要长得多。ADF 检查器用于加载 ADF 并关闭学习”Tango Explorer 应使用“在学习时加载 ADF”进行重新本地化

有关如何检查 ADF 本地化的问题,请参阅示例 java 代码:

  // Check for Device wrt ADF pose, Device wrt Start of Service pose,
// Start of Service wrt ADF pose (This pose determines if the device
// is relocalized or not).
if (pose.baseFrame == TangoPoseData.COORDINATE_FRAME_AREA_DESCRIPTION
&& pose.targetFrame == TangoPoseData
.COORDINATE_FRAME_START_OF_SERVICE) {
if (pose.statusCode == TangoPoseData.POSE_VALID) {
mIsRelocalized = true;
} else {
mIsRelocalized = false;
}

第三个的姿势数据:

ArrayList<TangoCoordinateFramePair> framePairs = new ArrayList<TangoCoordinateFramePair>();
framePairs.add(new TangoCoordinateFramePair(
TangoPoseData.COORDINATE_FRAME_START_OF_SERVICE,
TangoPoseData.COORDINATE_FRAME_DEVICE));
framePairs.add(new TangoCoordinateFramePair(
TangoPoseData.COORDINATE_FRAME_AREA_DESCRIPTION,
TangoPoseData.COORDINATE_FRAME_DEVICE));
framePairs.add(new TangoCoordinateFramePair(
TangoPoseData.COORDINATE_FRAME_AREA_DESCRIPTION,
TangoPoseData.COORDINATE_FRAME_START_OF_SERVICE));

关于java - 检查加载的 ADF 中的区域是否已本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37363225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com