Large objects shifting

I made a sample ARKit demo for my company. We manufacture equipment which is large. Think roughly the size of a car. The problem I am seeing is that when i try placing a large object such as this on a plane that ARKit finds, if I try to walk to either side of the object, the object very definitely moves a small degree in that direction on its own. So again, if I walk 12 feet to the right, the object itself may wind up shifting to the right by about a foot itself. Has anyone else noticed this? or is there a possible explanation of why this is happening? I am trying this on a 10.5“ iPad Pro.

Replies

Are you in a low-lighting situation?

I have seen same problem when writting my open source ARMeasuringTape (find and try it from github). My object is a measure which has vary size (from few milimeters to hundress metters). I have tried many ways to test (with my iPhone 7+) and improve it, from testing in low-ligh to high-ligh, good / bad texture, use or not use anchors... the measure always shifts a bit when working. Google the problem, someone explaned it is caused by camera accuracy / single lens and we cannot do much at the moment.

once it wasn't gyroscope noise ...

Be sure you aren't making your AR objects children of the plane node, which may change its position or extent as it is updated. Instead, you should use (for instance) the scene root as parent and then apply the transform determined at that moment by the plane or by a hit-test.


Put another way: the plane moves. If your AR objects are children of the plane they'll move too..

I have tried both. For current release code, I simply add new measure to scene root (self.sceneView.scene.rootNode.addChildNode(self.measuringRuler!). When trying to improve it, I added it to a plan node. But results are similar (still shifting).

No, this is out in bright sunlight

Thanks for the reply. Have you had any experience with the dual lens cameras on the phone 7 plus or 8 plus? Do they mititate it at all?

I also just tried this using the ARKit plugin for Unity3D. In that scenario (really nice plugin BTW), I have no linkage to the plane whatsoever, as I was placing a Unity prefab object in the scene using the raw X,Y,Z coordinate from the plane it found. So there was absolutely no linkage between my object and the AR Data. And it still moved quite a bit. TonyPham's comment about the single camera accuracy makes sense. In my case though, the amount of shift is a bit of a let-down.


I haven't had a change to measure things yet, but from my initial experiments large planes it finds seems to be losing accuracy as far as the size they indicate that they are. I found an 8 foot and 12 foot plane out on the parking lot and my guess is that they were a bit shorter than that. I'm going take some exact mesasurements later on to see if they really are that far off or not. Once again, though I am using an iPad Pro, with a single camera.