2016-10-18 8 views
0

私はTangoへの開発中に確信が持てません 解決策が正しいかどうかは私が次の問題に直面しています。別のTangoセッションでTangoPointCloudDataを再利用することはできません

ポイントクラウド(TangoPointCloudDataオブジェクト)をシリアライズし、後で使用するためにファイルにポーズ(TangoPoseDataオブジェクト)します。いくつかのオブジェクトの座標(xとy)を計算するためにシーンの背後でいくつかのマジック処理を行い、次にタンゴを再接続してx、yに3Dオブジェクトを表示します。

フレームペアSOSとFD(フレームデバイス)でTangoオブジェクトを初期化しています。

私は新しいタンゴのセッションで最新TangoPointCloudData + TangoPoseDataと、このラインを起動していたときに例外が発生します。

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) 

それはすべてです。

私が開発しているタンゴコアバージョンは1.44.2016.09.19-wasat-releaseです。

データが正しく保存されなかったり、コードのどこかに壊れてしまったり、Tangoを正しく初期化しなかったり、新しいTangoセッションで古いxyzIjオブジェクトを使用しようとしたために問題が発生することがあります。私はすべてのことを確認しましたが(最後のものは問題(?)かもしれません)、間違ったものを見つけられず、スレッドを偉大なStackOverflowコミュニティに対処しようとしました。

答えて

1

メソッドTangoSupport.calculateRelativePoseに渡す2番目のタイムスタンプ(targetTimestamp)は、現在のTangoセッションで有効なタイムスタンプである必要があります。私が正しく理解していれば、タイムスタンプxyzIj.timestampは以前のTangoセッション(?)のものです。

さらに一般的に、Tangoデバイスはデフォルトで以前のセッションで得られたエリア知識を保存しません。以前のTangoセッションの結果を現在のセッションに挿入するには、学習した領域(領域学習)を読み込んでデバイスを自動的に再配置するか、手動で結果を新しいTango参照フレームに合わせる必要があります。

関連する問題