Почему положение якорей не меняется после того, как ARKit согласовал записанную карту мира с текущей средой? - PullRequest
0 голосов
/ 05 декабря 2018

Среда: ARKit 2.0, iPhone X, iOS 12.1

Во время работы ARSeesion в состоянии ARWorldMappingStatusMapped,

  1. Несколько пользовательских привязок в указанных положениях ( # A ) были добавлены на карту мира с помощью ARSession.AddAnchor.
  2. Карта мира была сохранена в файл.

Затем закрыть приложение и перезапустите ARSession,

  1. конфигурацию Загрузил сохраненную карту мира и присвоил ей ARKitWorldTrackingSessionConfiguration.initialWorldMap
  2. опция запуска сброс отслеживания и удаление существующих якорей
  3. Затем перезапустите сеанс, вызвав ARSession.runWithConfiguration с опцией configuration и run выше.
  4. Когда состояние ARSession указывает, что оно согласовало записанную карту мира с текущей средой, считайте положения якорей ( # B ) из ARWorldMap.anchors.

Но я обнаружил, что позиции якорей чтения ( # B ) не меняются по сравнению с позициями, когда они были сохранены ( #A ). Это неправильно.Почему?

Поскольку начальная позиция телефона - это позиция начала координат.И приложение было когда-то закрыто, и телефон был перемещен в другое место.Таким образом, положение начала координат изменилось после перезапуска ARSeesion.Тогда ARSession также должен согласовать позиции ARAnchors, сохраненные на карте мира, с надлежащими местами, таким образом, позиции ARAnchors должны были быть изменены.

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Я нашел причину.Начальный сеанс, для которого initialWorldMap равно nil, а параметр запуска - 0, начался после Я перезапустил сеанс для согласования.Так что это противоречило согласованию.Что отменяет примирение.Таким образом, положение загруженных якорей не изменится, потому что они неизвестны ARSession.

0 голосов
/ 05 декабря 2018

Из документации initialWorldMap:

В случае успеха состояние отслеживания переходит в состояние ARCamera.TrackingState.normal через короткое время, означает, что текущий мирсистема координат и якоря совпадают с записанными на карте мира .

Положение этих якорей должно быть одинаковым, однако происхождение мировой системы координат должно изменитьсяпосле перемещения

...