2016-11-08 5 views
0

У меня возникла следующая проблема при разработке приложения Tango, и я не уверен, что я на правильном пути или нет.Плоский монтаж с данными предыдущей сессии Tango

То, что я пытаюсь достичь:

  1. Пользователь делает снимок. В фоновом режиме приложение сохраняет постоянное текущее облако точек и создает.
  2. Сервер получает это изображение и выполняет магическую обработку за сценой и отправляет (x, y) координату обратно в приложение (Async и не связан с текущей сессией Tango).
  3. Перезапустите приложение, запустите новую сессию танго и покажите 3D-объект в точке (x, y) с использованием сохраняющейся копии облака точек и позы.

Я ожидаю, что я буду в состоянии использовать эти параметры - (х, у), облака точек и Pose в следующем алгоритме и получить позу, которая является объектом Rajawali, что RajawaliRenderer знает, как сделать.

инициализации танго в Согласно наблюдениям следующей системе координат:

TANGO_WORLD_BASE_COORDINATE_FRAME = new TangoCoordinateFramePair(
       TangoPoseData.COORDINATE_FRAME_AREA_DESCRIPTION, 
       TangoPoseData.COORDINATE_FRAME_DEVICE 
     ); 
  • план Fit, используя точку пересечения -

    private void convertByIntersectionPoint(float x, float y, 
        TangoPointCloudData tangoPointCloudData, TangoPoseData devicePose, 
        TangoPoseData colorTdepthPose) { 
        if (tangoPointCloudData != null) { 
    
         TangoSupport.IntersectionPointPlaneModelPair intersectionPointPlaneModelPair = 
           TangoSupport.fitPlaneModelNearPoint(tangoPointCloudData, 
             colorTdepthPose, x, y); 
    
         if (devicePose.statusCode == TangoPoseData.POSE_VALID) { 
          mRenderer.updateObjectPose(
            intersectionPointPlaneModelPair.intersectionPoint, 
            intersectionPointPlaneModelPair.planeModel, 
            devicePose); 
          } 
        } 
    } 
    

Он бросает TangoErrorException на TangoSupport.fitPlaneModelNearPoint.

Насколько я понимаю, метод fitPlaneModelNearPoint должен делать чистый алгоритм, который не полагается на текущий сеанс Tango, но я не могу быть уверен, потому что у меня нет его реализации.

Любая помощь будет оценена по достоинству.

ответ

0

Хорошо, это была моя ошибка.

Ошибка в сериализации облака точек. Библиотека Gson не знает, как десериализовать в подкласс и всегда строить в родительский класс, который в этом случае создает поврежденные данные