Skip to main content
←API Reference ←NianticSpatial.NSDK.AR.VPS2

ARVps2Manager

↳ extends UnityEngine.XR.ARFoundation.SubsystemLifecycleManager

Declaration​

public class ARVps2Manager : SubsystemLifecycleManager<XRVps2Subsystem, XRVps2SubsystemDescriptor, Provider>

Summary​

The entry point to VPS2: configuration, localization, geolocation, anchors, and asset tracking.

Remarks​

This manager owns the VPS2 feature's lifecycle. The trackables are served by the ARVps2AnchorManager and ARVps2AssetManager components required next to it; the anchor and asset methods here forward to them.


Properties​

NameTypeSummary
AnchorDistanceGateMetersfloat
Distance gate in meters for anchor candidate filtering when geo-corrected.
Nodes farther than this distance from the device are skipped during anchor localization.
When only GPS is available (no geo-correction), the effective gate is 2x this value.
Pass 0 to use the default value (100 meters geo-corrected, 200 meters GPS-only).
Pass -1 to disable the distance check entirely.
readonly AnchorManagerARVps2AnchorManager
The trackable manager serving ARVps2Anchors.
readonly AssetManagerARVps2AssetManager
The trackable manager serving ARVps2Assets.
AssetTargetingEnterMarginMetersfloat
How far outside a VPS asset's geographic bounds the device can be and still start
localizing against that asset, in meters. Covers ordinary GPS error, so a device
standing just outside an asset still picks it up. An asset the server published no
bounds for is always a candidate.
0 uses the default (25 meters); a negative value means no margin, judging the bounds
exactly.
AssetTargetingExitMarginMetersfloat
How far outside its bounds an asset already being localized against is kept, in meters.
Larger than AssetTargetingEnterMarginMeters on purpose: the gap between
the two is what stops a device sitting on the boundary between two assets swapping
between them on every position update. A value below the enter margin is raised to it.
0 uses the default (50 meters); a negative value means no margin.
BlurDetectionEnabledbool
If true, enable the image blur check on the cloud localization path.
Advisory only: a frame whose sharpness score is below MinSharpnessScore
produces a FrameFlagged localization request record (error ImageTooBlurry) so the app
can warn the user, but is still sent for localization, never rejected.
Default false (disabled).
ContinuousVpsRequestsPerSecondfloat
Number of VPS localization requests per second to send the server after the
first successful localization on a VPS map.
DeviceMapLocalizationEnabledbool
If true, localization on device maps is enabled. Device maps are created by
the on-device mapping feature. They do not provide a georeference.
DeviceMapLocalizationFramerateint
Number of times per second to attempt localization on available device maps.
GeolocationSmoothingEnabledbool
If true, enables smooth interpolation between VPS2 localization updates. As
VPS2 updates its estimate from one localization to another, having
interpolation enabled will provide a more stable experience, especially when
GPS or compass readings update abruptly.
InitialVpsRequestsPerSecondfloat
Number of VPS localization requests per second to send the server prior to
the first successful localization on a VPS map.
MaxRequestsInTransitPerTargetuint
Maximum number of concurrent localization requests per target.
Pass 0 to use the default value (2).
MinSharpnessScorefloat
Sharpness threshold below which a frame is flagged as too blurry.
Higher scores mean sharper images. The default 0 flags nothing, since the score is
always non-negative. Only used when BlurDetectionEnabled is true.
TemporalFusionEnabledbool
If true, successive VPS localizations are temporally fused. Fusion smooths the
localization stream, at the cost of latency reacting to a genuine pose change.
Enabled by default.
readonly trackablesTrackableCollection<ARVps2Anchor>
The anchors served by AnchorManager.
readonly trackablesChangedUnityEvent<ARTrackablesChangedEventArgs<ARVps2Anchor>>
Invoked when anchors have changed: added, updated, or removed. Forwarded from
AnchorManager.
UniversalLocalizationEnabledbool
If true, enables cloud-based geopositioning: VPS2 sends camera imagery to the
cloud to compute an improved geoposition and heading, beyond what local
sensor fusion provides. Requires a network connection but no pre-scanned VPS
maps. If false, geopositioning relies on local sensor fusion alone.
UniversalLocalizationRequestsPerSecondfloat
Number of cloud geopositioning requests to send per second while
UniversalLocalizationEnabled is true.
VpsDebuggerEnabledbool
If true, enable the VPS Debugger, which will log VPS2 related internal events
to diagnose VPS2 tracking behavior and issues.
VpsDebuggerSavingFrameImageEnabledbool
If true (and VpsDebuggerEnabled), attach a 180x135 JPEG
thumbnail of each camera frame submitted with a VPS map localization request
to the VPS debugger data, adding roughly 3-5 KB per request.
VpsMapLocalizationEnabledbool
If true, localization on VPS maps is enabled. VPS maps only exist in
pre-scanned areas. Your device must be localized on a VPS map in order for
VPS anchors to be placed with high accuracy.

Methods​

NameTypeSummary
GetSessionIdbool
Gets the session id, if one exists.
RemoveAnchorvoid
Stops tracking an anchor and destroys its trackable.
Forwards to RemoveAnchor.
TryCreateAnchorbool
Attempts to create a new anchor at localPose, in AR session
space. Forwards to TryCreateAnchor.
TryGetAnchorPayloadbool
Gets the payload which encodes the anchor.
Forwards to TryGetAnchorPayload.
TryGetAssetTrackingDatabool
Attempts to get the pose of a VPS asset's origin, in AR session space.
TryGetDeviceGeolocationbool
Attempts to get the geolocation of the device's last known camera pose.
TryGetLatestLocalizationbool
Attempts to get the latest VPS2 localization, which carries the data required to
convert between the AR tracking space and geolocation.
TryGetPosebool
Attempts to convert a position and orientation in the global coordinate system to a
pose in AR session space, using the supplied localization snapshot.
TryLocalizebool
Requests localization to a site, identified by its site ID.
TryTrackAnchorbool
Starts tracking the anchor encoded by anchorPayload.
Forwards to TryTrackAnchor.
TryTrackAssetbool
Requests tracking of a VPS map asset's origin, identified by its asset ID.
Forwards to TryTrackAsset.

Events​

NameTypeSummary
DebuggerDataReceivedAction<VpsDebuggerDataEvent>
Invoked for each VPS Debugger event while VpsDebuggerEnabled is true.
LocalizationRequestRecordAddedAction<XRVps2LocalizationRequestRecord>
Invoked for each new localization request record: the outcome of a network
request or frame submission made by VPS2.

Relationships​

derived: ARLocationManager