2

地上レーザー スキャナーを使用して 3 つの異なる位置で取得した 3 つの点群 (雲 0、雲 1、雲 2) があります。これらの雲はそれらの間で重なり合っています。これは、1 つの雲を別の雲に正しく登録する剛体 3D ボディ変換 T があることを意味します。これらの変換のうちの 2 つ、T10 があります。これは雲 1 を雲 0 に移動します。T20 は雲 2 を雲 0 に移動します (雲 0 がグローバル リファレンスとして選択されました)。問題は、クラウド 2 とクラウド 1 をオーバーラップする変換をどのように見つけるかです。回転は既に見つかりましたが、並進ベクトルが見つかりません。それが可能だ?

T10^(-1) = T01、したがって、T20*T01 = T21 であるため、変換 T20 に T10 の逆数を掛けて得た回転です。この変換を雲 2 に適用すると、雲 2 が雲 1 に正しく回転します (どちらも同じ方向です) が、それらの間にずれがあります。その理由はわかりません。

これらの変換は、単純に回転行列 R (3x3) と並進ベクトル t (3x1) の結合である同次行列 T (4x4) ですよね? 回転を構成できます。雲 2 から雲 1 への回転を見つけたという事実は、これを示しています。しかし、なぜこの変化が翻訳に現れるのでしょうか?

実際、私はいくつかの雲を持っています。原点から遠く離れた雲を登録するには、乗算によっていくつかの変換を累積する必要があります (例: T50 = T54 * T43 * T32 * T21 * T10)。乗算すればするほど、差が大きくなります。翻訳で。

乗算はエラーを蓄積しますが、登録は手動で行われ、ICP によって洗練されているため、エラーは非常に小さいと言いたいです。実際、ペアで変換を適用すると、ほぼ完全にオーバーラップしますが、それらを累積すると、変換に大きな偏差が生じます。回転は非常に良好であるため、ループ クロージャは実質的に恒等行列になります。

4

1 に答える 1