2016-11-08 7 views
0

Ich stehe beim Entwickeln der Tango-App dem folgenden Problem gegenüber und bin mir nicht sicher, ob ich auf dem richtigen Weg bin oder nicht.Flugzeug passend mit Daten von vorheriger Tangositzung

Was ich versuche zu erreichen:

  1. Benutzer nimmt ein Bild. Im Hintergrund speichert die App die aktuelle Punktwolke und Pose persistent.
  2. Der Server erhält dieses Bild und macht einige magische Verarbeitung hinter der Szene und sendet (x, y) Koordinaten zurück an die App (Async und unabhängig von der aktuellen Tango-Sitzung).
  3. Starten Sie die App neu, starten Sie eine neue Tangositzung und zeigen Sie ein 3D-Objekt bei (x, y) mit der persistenten Kopie der Punktwolke und Pose.

Ich erwarte, dass ich in der Lage sein werden, diese Parameter zu verwenden - (x, y), Punktwolke und Pose in den folgenden Algorithmus und eine Pose bekommen, die ein Rajawali Objekt ist, dass RajawaliRenderer weiß, wie zu machen.

Tango Initialisierung accoring an den Rahmen folgenden Koordinaten:

TANGO_WORLD_BASE_COORDINATE_FRAME = new TangoCoordinateFramePair(
       TangoPoseData.COORDINATE_FRAME_AREA_DESCRIPTION, 
       TangoPoseData.COORDINATE_FRAME_DEVICE 
     ); 
  • Plan Fit Schnittpunkt unter Verwendung -

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

Es wirft TangoErrorException TangoSupport.fitPlaneModelNearPoint auf.

Nach meinem Verständnis sollte die fitPlaneModelNearPoint-Methode einen reinen Algorithmus ausführen, der nicht auf der aktuellen Tangositzung beruht, aber ich kann nicht sicher sein, weil ich seine Implementierung nicht habe.

Jede Hilfe würde sehr geschätzt werden.

Antwort

0

Okay, es war total mein Fehler.

Beim Serialisieren der Punktwolke ist ein Fehler aufgetreten. Gson-Bibliothek kann nicht in Unterklasse deserialisieren und immer in eine Elternklasse konstruieren - die in diesem Fall beschädigte Daten erstellt