2016-10-18 7 views
0

У меня возникла следующая проблема при разработке Tango и не уверен : Я нахожусь на правильном пути для решения или нет.Невозможно повторно использовать TangoPointCloudData в другом сеансе Tango

Что я пытаюсь сделать (вкратце): сериализация облака точек (объект TangoPointCloudData) и поза (объект TangoPoseData) в файл для последующего использования. Выполнение некоторой магической обработки за сценой, чтобы вычислить некоторые координаты объекта (x и y), Затем - снова подключить танго и показать 3D-объект в x, y.

Я инициализирую объект Tango через пару кадров SOS и FD (устройство рамки).

Исключение происходит, когда я вызова этой строки с последней TangoPointCloudData + TangoPoseData на новой сессии Tango:

TangoSupport.calculateRelativePose(
       0.0, 
       TangoPoseData.COORDINATE_FRAME_CAMERA_COLOR, pointCloud.timestamp, 
       TangoPoseData.COORDINATE_FRAME_CAMERA_DEPTH); 

Очень не информативный журнал я получаю это:

com.google.atap.tangoservice.TangoErrorExceptioncom.google.atap.tangoservice.Tago.throwTangoExceptionIfNeeded(Tango.java:958) 
com.projecttango.tangosupport.TangoSupport.calculateRelativePose(TangoSupport.java:231) 

Вот и все.

Tango core version Я развиваюсь на 1.44.2016.09.19-wasat-release.

Моя интуиция заключается в том, что проблема может возникнуть из-за того, что я не сохранил данные правильно или он был разрушен где-то в коде, не инициалировал Tango правильно или не пытался использовать старый объект xyzIj в новой сессии Tango. Я перепроверял все (кроме последней, которая может быть проблемой (?)) И не могла найти что-то не так, поэтому пыталась обратиться к моему потоку в большое сообщество StackOverflow.

ответ

1

Вторая временная метка (targetTimestamp), которую вы передаете методу TangoSupport.calculateRelativePose, должна быть допустимой меткой времени в текущем сеансе Tango. Если я правильно понял, timestamp xyzIj.timestamp - это предыдущая сессия Tango (?).

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