0

Tango アプリの開発中に次の問題に直面していますが、正しい軌道に乗っているかどうかはわかりません。

私が達成しようとしていること:

  1. ユーザーが写真を撮ります。バックグラウンドで、アプリは現在のポイント クラウドとポーズを永続的に保存します。
  2. サーバーはその画像を取得し、舞台裏でいくつかの魔法の処理を行い、(x,y) 座標をアプリに送り返します (非同期で、現在の Tango セッションとは無関係です)。
  3. アプリを再起動し、新しいタンゴ セッションを開始して、ポイント クラウドとポーズの永続コピーを使用して (x,y) に 3D オブジェクトを表示します。

これらのパラメーター (x,y)、ポイント クラウド、およびポーズを次のアルゴリズムで使用して、RajawaliRenderer がレンダリング方法を知っている Rajawali オブジェクトであるポーズを取得できることを期待しています。

タンゴの初期化は、次の座標フレームに従っています:

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 セッションに依存しない純粋なアルゴリズムを実行する必要がありますが、その実装がないため確信が持てません。

どんな助けでも大歓迎です。

4

1 に答える 1

0

わかりました、それは完全に私の間違いでした。

点群のシリアル化にバグがありました。Gson ライブラリは、サブクラスに逆シリアル化する方法を認識せず、常に親クラスに構築します - この場合、破損したデータが作成されます

于 2016-11-13T13:13:11.093 に答える