Исключения и перезагрузки при создании якорей в ARCore

Я экспериментирую с базой кода Android, изначально полученной из примера приложения ARCore (Java). Вместо того, чтобы прикреплять якоря к плоскости, я сохраняю позу камеры в определенных случаях, а позже прикрепляю якоря на основе этой сохраненной позы, но с некоторым смещением положения. Обычно это работает нормально, но иногда возникает одна из следующих проблем:

  1. Исключение без дополнительных подробностей, когда я пытаюсь создать привязку с предыдущей записью журнала: query_timestamp_s не находится в допустимом диапазоне (может быть просто совпадением)

  2. Исключение без дополнительных подробностей, когда я пытаюсь создать привязку, с предыдущим загадочным сообщением журнала, говорящим: Не удалось создать PoseNode

  3. Телефон зависает примерно на три секунды, а затем перезагружается (Google Pixel 2).

Буду признателен за любые идеи о более глубоком поиске неисправностей, а также за информацию о том, были ли у кого-нибудь похожие проблемы.

Отредактировано с возможным решением: я получил информацию от Google о том, что проблема могла быть вызвана в некоторых случаях повторным использованием объектов позы между кадрами (в отличие от постоянного прикрепления якорей и получения новой позы для сравнения. ). Я смутно осознавал это ограничение, но, похоже, пропустил несколько мест. Первоначальное расследование, похоже, подтвердило это как вероятную причину, поскольку я не мог быстро воспроизвести проблему.


person soderbjorn    schedule 24.01.2018    source источник


Ответы (1)


Я думаю, это из-за

По мере изменения понимания ARCore окружающей среды, она корректирует свою модель мира, чтобы все было согласовано. Когда это происходит, числовое положение (координаты) камеры и якорей может значительно измениться, чтобы поддерживать соответствующие относительные положения физических местоположений, которые они представляют.

как состояние документа. Возможно, запись и вычисление точного пути, по которому ваша камера переместилась (направление в метрах) с момента вашего исходного положения. Когда вам нужна предыдущая позиция, просто вычислите прошлую позицию с текущей и записанным путем.

person ManuelTS    schedule 14.10.2018