2016-12-12 7 views
0

私は、(Unity SDKを使用して)ドリフト補正を正しく使用する方法の詳細を探しています。(実験的)ドリフト補正はまだ動作していますか?

Tangoのウェブサイトでは、「ドリフト補正されたフレームは領域記述参照フレームを通過します」、フレーム開始サービス - >デバイス「ドリフト補正は含まれていません」、エリア説明 - >サービス開始ローカリゼーションイベントやドリフト補正が発生した場合にのみ更新を提供するということです。

ドリフト補正されたポーズを使用する方法は、TangoPointCloudプレハブのように、フレームのペアSoS - > Deviceの結果であるstartServiceTDeviceという行列でデプスポイントを乗算することです。ドリフト補正されたフレームがADフレーム内にあると仮定すると、SoS→ADが必要です。 AD - > SoSだけが利用できるので、私はこの1つとその逆を試みました。結果のポーズは小さすぎますが、意味がありません(誤った方向を使用していても、私が歩き回っていれば、翻訳はゼロに近くないはずです)。それでADフレームは実際にはドリフト補正されたサービス開始のようなものだと考えましたが、AD - > DeviceとSoS - > Deviceの間にはっきりとした違いは見当たりません。 。私はスキャンを終えた後にポーズを要求しているので、ドリフトはそれまでに検出されているはずです。

Tangoのウェブサイトでは、「ドリフト補正されたフレームが利用できないスタートアップの後に期間があります」と言われていますが、AD - > SoSポーズは最初から有効ですまだ動かなかった状況を生み出すことはできませんでした。

ドリフト補正はまったく機能しますか?または私はそれをすべて間違って使用していますか?

PS:latest stackoverflow postでは、あたかもトラッキングロスの後に再位置合わせのためにドリフト補正が行われているように見えます。しかし、Tangoのウェブサイトではドリフト補正について「デバイスがあなたのセッションで以前に見たことが分かっている場所を見たら、それがループで移動し、パスがより一貫して調整されることを認識していますその前の観察 "。

答えて

1

この時点では、ドリフト補正が実験的な機能として機能していますが、コーナーケースが壊れてしまいます。後ほど詳しく説明します。

ドリフト補正ポーズを使用するには、ADF_T_Deviceフレームペア(ADFはベースフレーム、デバイスはターゲットフレームです)を使用する必要があります。ドリフト補正ポーズを使用してワールド空間にポイントを投影する例では、Adf_T_ss * ss_T_device変換を行う必要はなく、ADF_T_deviceフレームを直接使用するだけで済みます。これがUnityであれば、PointCloudプレハブのuse area description poseをチェックすることができます。

コーナードリフト補正を壊し例:

  1. ユーザーは、右の経験を開始した後、デバイスを振ります。

ドリフト補正は、ADFのより高密度ですがより正確なバージョンを構築しています。ユーザが最初にカメラや揺れ装置を覆うと、バッファにADF(または機能)が保存されなくなります。したがって、APIはADF_T_Deviceフレームペアから有効なポーズを決して与えない状態になる可能性があります。

  1. デバイスのトラッキングが失われ、ユーザーが再ローカライズすることなく新しいスペースに移動しました。

これは最初のケースに似ています。ユーザーが追跡を失った後に再指定することなく新しい空間に移動した場合、デバイスは再統一されないため、有効なポーズはADF_T_deviceフレームから利用できなくなります。

ドリフト補正APIはまだ実験段階ですが、APIレベルでも上記の問題に取り組んでいます。

関連する問題