Object drift caused by sharp device movement

I'm developing an AR app in which the character jumps when the user does an abrupt "jump" with the phone (sharp lift of the device).


The problem I'm seeing is that this can often cause the device to lose tracking even if the camera is staying focused in the same point and the movement is very short. It seems the sharper and faster the movement (even if lasting only a fraction of a second), the worse the drift. If the movement is sharp enough, all of the models and planes seem to go flying off into space.


Is there anything that can be done to prevent this or is my control model concept doomed within the current limitations of ARKit / current gen hardware?

Replies

Moving the device too fast and abruptly will result in a blurred image, which reduces tracking quality.

It's recommended that apps monitor the tracking state (https://developer.apple.com/documentation/arkit/artrackingstate) during the session, and in case of limited tracking situations, guide users back to normal tracking.

An interaction model that explicitly asks for shaking or jumping movements is indeed not ideal for an AR experience.

For more information and best practices about ARKit tracking, you can check out this WWDC session:
https://developer.apple.com/videos/play/wwdc2018/610/