This is something that we ARKit users / coders have seen all the time. When world tracking is enabled, sometimes, the scene we're viewing suddenly jumps a bit, in order to better accomodate itself into the real world after we move our device. Which is perfectly understandable and OK.
I've been trying to understand what are the conditions that trigger such a jump, in order to be able to, well, compensate a bit for them in my experimental app (more on that later). At first, I thought that anytime anchors appear, or change, in the session, the world tracking information is recalculated and thus, the jump occurs. Problem is, unless I have something wrong in my anchor change detection code, jumps can also occur outside of any anchor updates. I'm not really sure what exactly is triggering these recalculations that cause these small jumps, but they're there.
Do you guys know of a mechanism in ARKit, anything, that lets me know when this recalculation is about to be performed - or, even better, after the calculations have been performed and applied to the transform in the camera?
I'm currently using ARKit without SceneKit, in order to minimize the amount of frameworks in use, but if SceneKit offers some help related to it, I have no problem in including it into my app, if that helps me detect the jumps.