Search code examples
iosswiftaugmented-realityarkitios12

ARKit 2.0 Bug? "Error initializing VIO"


I try to use the ARWorldMap sharing feature.

EDIT: I'm using the newest (Beta 3) versions for Xcode, iOS and macOS, downloadable from the Apple dev site.

So I make a MultipeerConnectivity Connection between 2 devices. One is scanning until is has a .mapped WorldMap which then is being sent to the other device.

Once there and unwrapped, I create a new ARConfiguration and set configuration.initialWorldMap to be my received map and run this config by my ARSession.

Shortly thereafter I get this:

2018-07-06 15:45:15.453812+0200  [Technique] Error initializing VIO handle (0x116113a00):
2018-07-06 15:45:15.456922+0200  [Session] Session (0x115d22340): did fail with error: Error Domain=com.apple.arkit.error Code=200 UserInfo={NSLocalizedDescription=<redacted>, NSLocalizedFailureReason=<redacted>}
2018-07-06 15:45:15.456995+0200  [Technique] ARWorldTrackingTechnique(0x11a5b2e40) error resetting object detection: ObjectDetectionCallbackNotSet
SessionFailed: World tracking failed.

And session(_:didFailWithError:) is called. I can even reproduce this error in Apples ARMultiuser App (Radar filed already). A similar error occurs when trying to save and reload the world map.

My code after I receive and unwrap my WorldData:

let configuration = ARWorldTrackingConfiguration()  

configuration.initialWorldMap = worldData.map    // is of type ARWorldMap  

sceneView.session.run(configuration, options: [.resetTracking, .removeExistingAnchors])  

Notice: I'm not asking you to fix Apple's bugs. The reason I came here is simply because I didn't got any feedback not from Apple (yet) and neither from any other Dev. online.

So (just to make sure) all I'm actually asking right now is: Can you use ARKit 2.0 with the world-sharing feature in the latest beta version? Do you think this is a valid bug? And can you think of any workarounds?

ANY feedback about the latest beta version of ARKit 2.0 is appreciated ^^


Solution

  • I'm sorry, no idea how to bypass the VIO (Visual Inertial Odometry, jic someone doesn't know: its basically the AR tracking technique) error.

    But I can approve it. I tried it with the sample code from apple you linked and got the same error. I guess you have to wait for Apple to fix it :/