SensorFusionResult


public sealed interface SensorFusionResult

Known direct subclasses
RangingResult

Class for UWB ranging result update.

SensorFusionResult.Estimate

An estimate of the peer device's position produced from the sensor fusion algorithm.

SensorFusionResult.SensorFusionFallback

Sensor fusion failed to start and the session will fall back to UWB ranging.

Known indirect subclasses
RangingResult.RangingResultFailure

A ranging result indicating failure or suspension of a ranging session.

RangingResult.RangingResultInitialized

A ranging result when a ranging session is initialized with peer device.

RangingResult.RangingResultPeerDisconnected

A ranging result with peer disconnected status update.

RangingResult.RangingResultPosition

A ranging result with the device position update.

SensorFusionResult.DriftingEstimate

An Estimate backed by odometry data only because raw UWB range has failed.

SensorFusionResult.ImpreciseEstimate

An Estimate backed by raw UWB range only because the odometry sensor has failed.

SensorFusionResult.PreciseEstimate

An Estimate backed by both odometry data and range data.


An asynchronous update from a sensor fusion session.

Summary

Nested types

An Estimate backed by odometry data only because raw UWB range has failed.

public sealed interface SensorFusionResult.Estimate extends SensorFusionResult

An estimate of the peer device's position produced from the sensor fusion algorithm.

An Estimate backed by raw UWB range only because the odometry sensor has failed.

An Estimate backed by both odometry data and range data.

Sensor fusion failed to start and the session will fall back to UWB ranging.

Constants

default static final int

Failed because the sensor fusion algorithm reached a bad state.

default static final int

ARCore failed because the camera is in use by another application.

default static final int

ARCore failed due to excessive motion.

default static final int

Failed because the algorithm produced a bimodal or otherwise inconclusive result.

default static final int

ARCore failed due to insufficient visual features.

default static final int

ARCore failed due to poor lighting conditions.

default static final int

Failed because AoA is transiently unavailable for an expected reason, such as during initialization.

default static final int

Failed because excessive peer motion was detected.

default static final int

ARCore failed to start because the camera is in use by another app or process.

default static final int

The device is not compatible with ARCore.

default static final int

ARCore failed to start because the necessary android.opengl.EGLContext is not available on the polling thread.

default static final int

The ARCore SDK that the client was built with is too old and is no longer supported by the installed ARCore APK.

default static final int

This device supports hardware AoA which will be used instead of sensor fusion.

default static final int

Sensor fusion is not available on this device.

Public methods

abstract @NonNull UwbDevice

Constants

ESTIMATE_FAILURE_REASON_BAD_STATE

Added in 1.1.0-alpha02
default static final int ESTIMATE_FAILURE_REASON_BAD_STATE = 8

Failed because the sensor fusion algorithm reached a bad state. No user action is likely to fix this, consider restarting the session.

ESTIMATE_FAILURE_REASON_CAMERA_UNAVAILABLE

Added in 1.1.0-alpha02
default static final int ESTIMATE_FAILURE_REASON_CAMERA_UNAVAILABLE = 5

ARCore failed because the camera is in use by another application. Odometry will resume once this app regains priority, or once all apps with higher priority have stopped using the camera.

ESTIMATE_FAILURE_REASON_EXCESSIVE_MOTION

Added in 1.1.0-alpha02
default static final int ESTIMATE_FAILURE_REASON_EXCESSIVE_MOTION = 3

ARCore failed due to excessive motion. Ask the user to move the device more slowly.

ESTIMATE_FAILURE_REASON_INCONCLUSIVE_RESULT

Added in 1.1.0-alpha02
default static final int ESTIMATE_FAILURE_REASON_INCONCLUSIVE_RESULT = 7

Failed because the algorithm produced a bimodal or otherwise inconclusive result. Ask the user to move in a different direction than was done previously to help the algorithm converge.

ESTIMATE_FAILURE_REASON_INSUFFICIENT_FEATURES

Added in 1.1.0-alpha02
default static final int ESTIMATE_FAILURE_REASON_INSUFFICIENT_FEATURES = 4

ARCore failed due to insufficient visual features. Ask the user to move to a different area and to avoid blank walls and surfaces without detail.

ESTIMATE_FAILURE_REASON_INSUFFICIENT_LIGHT

Added in 1.1.0-alpha02
default static final int ESTIMATE_FAILURE_REASON_INSUFFICIENT_LIGHT = 2

ARCore failed due to poor lighting conditions. Ask the user to move to a more brightly lit area.

ESTIMATE_FAILURE_REASON_NOT_AVAILABLE

Added in 1.1.0-alpha02
default static final int ESTIMATE_FAILURE_REASON_NOT_AVAILABLE = 1

Failed because AoA is transiently unavailable for an expected reason, such as during initialization. This should resolve itself soon.

ESTIMATE_FAILURE_REASON_PEER_MOVING

Added in 1.1.0-alpha02
default static final int ESTIMATE_FAILURE_REASON_PEER_MOVING = 6

Failed because excessive peer motion was detected. The algorithm works best when the peer is stationary.

FALLBACK_REASON_ARCORE_CAMERA_NOT_AVAILABLE

Added in 1.1.0-alpha02
default static final int FALLBACK_REASON_ARCORE_CAMERA_NOT_AVAILABLE = 2

ARCore failed to start because the camera is in use by another app or process.

FALLBACK_REASON_ARCORE_DEVICE_NOT_COMPATIBLE

Added in 1.1.0-alpha02
default static final int FALLBACK_REASON_ARCORE_DEVICE_NOT_COMPATIBLE = 4

The device is not compatible with ARCore. If encountered after completing the installation steps, this usually indicates that ARCore has been side-loaded onto an incompatible device.

FALLBACK_REASON_ARCORE_MISSING_GL_CONTEXT

Added in 1.1.0-alpha02
default static final int FALLBACK_REASON_ARCORE_MISSING_GL_CONTEXT = 5

ARCore failed to start because the necessary android.opengl.EGLContext is not available on the polling thread.

NOTE: This should never occur unless there has been an internal failure. The ARCore session and necessary context object is managed within the UWB stack.

FALLBACK_REASON_ARCORE_SDK_TOO_OLD

Added in 1.1.0-alpha02
default static final int FALLBACK_REASON_ARCORE_SDK_TOO_OLD = 3

The ARCore SDK that the client was built with is too old and is no longer supported by the installed ARCore APK.

FALLBACK_REASON_HARDWARE_AOA_PRECEDENCE

Added in 1.1.0-alpha02
default static final int FALLBACK_REASON_HARDWARE_AOA_PRECEDENCE = 1

This device supports hardware AoA which will be used instead of sensor fusion.

To use sensor fusion even when hardware AoA is supported, configure the session with RangingParameters.isAoaDisabled set to true.

FALLBACK_REASON_NOT_AVAILABLE

Added in 1.1.0-alpha02
default static final int FALLBACK_REASON_NOT_AVAILABLE = 0

Sensor fusion is not available on this device.

Public methods

getDevice

Added in 1.1.0-alpha02
abstract @NonNull UwbDevice getDevice()