2016-11-08 4 views
0

Tango 앱을 개발할 때 다음과 같은 문제에 직면하고 있으며 올바른 방향에 있는지 여부를 모르겠습니다.이전 Tango 세션의 데이터로 평면 맞추기

것은 내가 달성하기 위해 노력하고있어 :

  1. 사용자가 사진을 촬영합니다. 백그라운드에서 앱은 현재의 포인트 클라우드를 지속적으로 저장하고 포즈를 저장합니다.
  2. 서버가 이미지를 가져 와서 장면 뒤에서 마술 처리를하고 (x, y) 좌표를 다시 앱으로 보냅니다 (비동기 및 현재 탱고 세션과 관련 없음).
  3. 앱을 다시 시작하고 새로운 탱고 세션을 시작하고 포인트 클라우드 및 포즈의 지속 복사본을 사용하여 (x, y)에 3 차원 개체를 표시합니다. RajawaliRenderer 렌더링하는 방법을 알고있는 Rajawali 객체 인 포즈를, (X, Y), 점 구름과 다음의 알고리즘에 포즈 얻을 -

는 나는 이러한 매개 변수를 사용할 수 있습니다 기대합니다.

탱고 초기화는 좌표 다음 프레임에 accoring에있다 :

TANGO_WORLD_BASE_COORDINATE_FRAME = new TangoCoordinateFramePair(
       TangoPoseData.COORDINATE_FRAME_AREA_DESCRIPTION, 
       TangoPoseData.COORDINATE_FRAME_DEVICE 
     ); 
  • 계획 맞추기 교차점을 사용하여 -

    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); 
          } 
        } 
    } 
    

그것은 TangoSupport.fitPlaneModelNearPoint에 TangoErrorException가 발생합니다.

필자는 fitPlaneModelNearPoint 메서드가 현재 Tango 세션에 의존하지 않는 순수 알고리즘을 수행해야한다고 설명하지만 구현이 없기 때문에 확신 할 수 없습니다.

도움을 주시면 감사하겠습니다.

답변

0

오케이 그건 완전히 내 실수였습니다.

포인트 클라우드를 직렬화하는 중에 버그가있었습니다. Gson 라이브러리는 하위 클래스로 역 직렬화하는 방법을 모르고 항상 부모 클래스로 구성합니다.이 경우 손상된 데이터가 생성됩니다.