We have faced some Head Tracking Lost Issue recently when testing our application onsite.
When we wear headset and stand in front of window (at a distance between window and headset of approx. 50cm) , the headset tracking is lost - all we see is the real environment ; all assets have disappeared. However when we move little bit back, the tracking came back but the calibration of our assets was completely lost.
This error is major as it affects the experience heavily from an end user point of view.
Please advise at the earliest
Would you mind sharing a few details?
- Unity Editor version
- ML2 OS Version
- ML SDK Version
- Development OS (e.g. Mac, Windows)
Regarding Headpose Issues
Magic Leap 2 uses an environment's "features" to calculate its pose or orientation. These are high contrast points in your environment that the device can easily recognize and track. The Magic Leap's world cameras capture these points, and as your head moves, the device tracks the shift of these points to estimate its new position and orientation.
When the device struggles to maintain head pose, it's usually because it's having difficulty finding enough feature points to track. This could happen in environments with a lack of distinct visual elements, low lighting, or where the majority of surfaces are uniform in color or texture.
Please see the best practices for maintaining head pose.
Regarding content disappearing and not re-initializing properly.
When your headset maintains consistent tracking, it can accurately display virtual objects in fixed positions within your environment. However, if tracking is interrupted or lost, the headset doesn't have enough data to estimate its movement and position correctly. To maintain the user experience and prevent disorientation, the device temporarily hides virtual content to avoid it from appearing as if it's 'head locked' or tethered to your head movement.
Once tracking is restored, the Magic Leap 2 attempts to estimate its position relative to the last known location as swiftly as possible. Depending on how long tracking was lost and how much movement happened during that period, virtual content might reappear at a slightly shifted or inaccurate position.
To resolve this issue and provide a more stable experience, we recommend using our Spaces application to map your environment and create what we call "Spatial Anchors".
Here's how it works:
- Begin by mapping your space using the Spaces tool.
- Once your space is mapped, you can create Spatial Anchors inside your application. These anchors serve as persistent reference points within the space.
These anchors remain consistent and are restored to their correct position even after tracking is regained or the device is rebooted. By anchoring your virtual content to these spatial anchors, you can ensure that the content remains in the intended position in your environment.
Note: Once you've localized into a space within the Spaces application, your selection persists across device reboots, and the headset will attempt to localize into that map every time it starts. You also have the flexibility to select a space from within your application using our MLSpaces API.
Below is the version of software I am using:
Unity version: 2022.2.0f1
Magic Leap SDK version: 1.2.0 - dev1
Magic leap 2 Headset OS: B3E.220424.01-R.037
Thanks for writing.
There is a issue that when we stand infront of mirror/Glass wall then after that the tracking lost its may be the reflection in the wall or something but when we move back tracking came back but the virtual assets in the app will not at same position as in start and after that we have to restart the app and sometimes the magicleap device also for same experience.
I will send your feedback regarding poor tracking when standing close to walls.
To make sure content appears correctly, See the comment above regarding the Spaces Tool and Spatial anchors. You can also try to map the space in the Spaces app. Localize into it, then Spatical Anchors scene from the Magic Leap Unity Example's project to test the anchor functionality.