I am overlaying a constructing `.scn` mannequin on an actual building web site utilizing ARKit + SceneKit on iPhone 14 Professional (LiDAR).
**What I’ve working**
– `ARWorldTrackingConfiguration` with `sceneReconstruction = .mesh` (LiDAR)
– `ARGeoTrackingConfiguration` for tough GPS-based placement
– Save/load `ARWorldMap` with `NamedAnchor` for session persistence
– Guide nudge/rotation by way of joystick within the UI (coarse alignment)
– ICP refinement: I extract vertices from `ARMeshAnchor`, run `ICPSolver.run()` towards the mannequin level cloud, then apply the ensuing rework if RMSE < threshold
**The issue**
After ICP converges (~2–3 cm RMSE indoors), the overlay drifts outdoor inside 30–60 seconds. On a big web site (50 m+), alignment error grows to twenty–40 cm even with ARGeoTracking energetic.
My present pipeline:
1. ARGeoTracking locations the mannequin roughly (~1–3 m error)
2. Person nudges manually to ~10 cm
3. ICP refines to ~2–3 cm
4. Drift resumes outdoor after ~30 s
**Query**
Is there a dependable technique to re-anchor or appropriate drift repeatedly outdoor, past re-running ICP periodically?
Particularly:
– Can `ARGeoTrackingConfiguration` accuracy callbacks be used to set off re-alignment mechanically?
– Is LiDAR ICP steady sufficient on a featureless outside web site (flat concrete, sky), or does it want visible anchor factors?
– What’s a sensible accuracy ceiling for ARKit-only BIM overlay on a 50 m+ web site?
I’m not utilizing exterior {hardware} (no RTK GPS, no complete station) for now, however open to listening to if that’s the solely path to <5 cm accuracy.
