Include the following details (edit as applicable):
- Issue category: Lightship Maps / Semantic Segmentation / Multiplayer / Real-time Mapping-Depth / ARDK Documentation / Unity Example Package / Sample App aka ‘AR Voyage’ / ARDK Virtual Studio Tools / Developer Tools / Networking / VPS / Scanning Framework
- Device type & OS version: Android
- Host machine & OS version: Windows
- Issue Environment : On Device
- ARDK version: 3.9 & 3.11
- Unity version: U6 & U2022
Description of the issue:
We are facing significant drift when using WPS to place objects in GPS space while running on Unity.
We have gone to great lengths to ensure that we only start “activating” content once the device and WPS is fully localized by:
- Waiting until the device has a GPS reading before initializing anything.
- Once you have a GPS Location, wait to ensure that positioned items are being generated in the right place (we create a dummy WPS object at Lat/Lon 0 and wait until it is positioning far away from the device
- Once everything is positioning correctly, then we start initializing objects
However, once placed, after anywhere from 30 seconds to a few minutes the placed object drift away. Sometimes by little (less than 1 meter), sometimes by a lot (several meters).
Worse, placed anchors will drift by different amounts.
We can provide lots of video reports demonstrating this.
The test project is using minimal Lightship services to keep performance down, but repeated tests produce similar results.
Any suggestions, or other settings / configuration we can apply to reduce placed drift. Or even some indicator on the ObjectPositioner to denote the device is stable enough to start displaying content?
Further testing would indicate the issue is Compass related, as the “content” seems to rotate around, especially on device lost / gained focus (from the device getting locked / screen off and back on again with the app running)
Everything seems to rotate around the device, setting near but almost never on the original points. Further testing ongoing
Hello! ARDK support for Unity 6 could be released within the next version (3.12) but isn’t available at the moment. However, if you could provide us with screenshots of how you are initializing WPS and a video of the WPS drifting on Unity 2022.3, that would be appreciated!
I will try and provide the video evidence when I can , but due to urgency of projects, we have moved testing to Google GeoSpatial Anchors which seem to be more stable (however, granted, they have a longer “settling in” time once loaded)
Google also do not have a concept of Device localised altitude, so we are having to compensate for that, which Niantic does “out of the box”.
Retested with 3.12 @Josh_Niantic and there seems to been a little improvement, while the compass does still “go out” following a calibration manoeuvre, it does now attempt to resettle although still off from it’s previous direction. Tried a few times with varying results even in the same session. While this is “not usual”, the same can occur if the user holds their phone down while navigating and then raising their device back up to view again (same session).
Ideally, there should be some events from the WPS component to denote that “tracking lost” and “Tracking found” so that localised content can be hidden (and a message displayed) during this period to avoid content “jumping around the place”.
-
Start session
-
Post calibration
-
After “settling”
Tested in both Unity 2022 and Unity 6 with ARDK 3.12
P.S. great work getting U6 over the line (although work still needed to handle the non-breaking api updates (findobject)
/cc @Jesus_Niantic