Overview: I am developing a Unity project for HoloLens 2 that uses Vuforia marker based tracking to track various objects. I have encountered an issue with both standard tracking and extended tracking. When I look at my image target, all tracked child objects appear and are in the correct relative positions. However, when I shift my own perspective while wearing the HoloLens, the tracked objects shift positionally to some extent when I need them to stay in the same position regardless of the perspective. For example, I turn my head to the right and the objects move to the right. There should only be movement of child objects when the actual tracked image moves. To clarify, whether the object is directly tracked, or extended tracking is employed, the child objects still change position depending on how I am looking at the tracked image.
Here is a list information that may be helpful:
- I am using the most recent versions of Unity and Vuforia
- The image target is a child of the AR Camera (I still have the issue whether or not the image is a child of the AR Camera)
- This issue can be replicated in sample projects
- I have tried AR camera with both World Center Mode as DEVICE_TRACKER and Camera
- I have read through the current forums posts regarding this issue and the general consensus seems is to use extended tracking but the issue still persists
- The image target in the Unity project is properly scaled with the real image target
- I have tried using multi targets and customizing my own targets by modifying the dataset configuration XML File
- "Track Device Pose" and "Load Object Targets On Detection" are enabled
- I am using 5 star images
Here is a link to a video someone else made regarding a similar issue: youtube.com/watch?v=E2rZs2RQWvg
Thank you for your time.
Hello,
AR experiences on see-through eyewear devices, such as HoloLens, are extremely sensitive to tracking jitter. For this reason, HoloLens uses a sophisticated tracking system consisting of several cameras fused with inertial sensors. Vuforia can only use a single camera which, by itself, is not sufficient to provide stable tracking and therefore always produces a combination of the tracked pose of the object and HoloLens' integrated tracking to provide stable, jitter-free AR experiences.
Minor corrections are also performed to compensate for the inevitable, smaller misalignments that happen as the user moves around the tracked object. But these corrections, as you observed, happen with a noticeable delay to avoid introducing jitter and jumps. In addition, the ADAPTIVE mode (now the DEFAULT with recent Engine SDK versions) also supports stronger object motions and automatically switches to a different mode when larger pose changes are detected. This switching is most likely introducing the sudden motion you are observing as you are moving the object.
The only way to turn this behavior off and get access to the raw camera-based poses is to use the AR_CONTROLLER (previously DYNAMIC) mode. But then, as you noted, the tracking stability is significantly reduced.
Kind regards,
Dave Downing
Vuforia Engine Technical Support