LOAM

Zhang 2014 · 論文

一行要約 — LOAMは、エッジ・平面特徴を抽出し、推定を高周波のスキャン対スキャンオドメトリと低周波のスキャン対マップ精緻化に分割するという、LiDAR SLAMの基礎的なレシピを確立した。その後のほぼすべてのLiDARシステムは、これを基盤とするか、あるいはこれに反する形で構築されている。

問題

LiDAR SLAMは2つの競合する要求に直面する。リアルタイム動作は高速な処理を要求するが、精度は各スイープを大規模で整合的なグローバルマップに対してレジストレーションすることを要求する——同時に、動いているスキャナが各スイープに刻む運動歪みも解消しなければならない。単純なスキャン対マップマッチングはリアルタイムには遅すぎ、純粋なフレーム対フレームオドメトリはドリフトする。LOAM(RSS 2014)は、この緊張を、異なる周波数で並列に動作する2つの協調アルゴリズム——粗く高速なオドメトリと、細かく低速なマッピング——に問題を分割することで解決する。

手法とアーキテクチャ

特徴抽出。 各スキャンの点は、同一スキャン内の近傍点集合 SS に対する局所表面平滑度項によって評価される。

c=1SX(k,i)LjS,ji(X(k,i)LX(k,j)L),c = \frac{1}{|S| \cdot \big\| X^{L}_{(k,i)} \big\|} \, \Big\| \sum_{j \in S,\, j \neq i} \big( X^{L}_{(k,i)} - X^{L}_{(k,j)} \big) \Big\|,

ここで X(k,i)LX^{L}_{(k,i)} はLiDAR座標系 LL におけるスイープ kk の点 ii である。最大ccの点はエッジ点、最小ccの点は平面点となる。各スキャンは4つのサブ領域に分割され、それぞれ最大2つのエッジ点と4つの平面点を提供し、ビームに平行な面や遮蔽境界上の点は信頼性が低いとして除外される。

LiDARオドメトリ(約10 Hz)。 前回のスイープの点群は、スイープ境界に再投影され、KD木に格納される。新しい各エッジ点は(異なるスキャンからの)2つの最近傍エッジ点 j,lj, l を通る直線にマッチングされ、各平面点は3点 j,l,mj, l, m を通る平面にマッチングされる。残差は点対線距離および点対平面距離である。

dE=(X~(k+1,i)LXˉ(k,j)L)×(X~(k+1,i)LXˉ(k,l)L)Xˉ(k,j)LXˉ(k,l)L,dH=(X~(k+1,i)LXˉ(k,j)L)((Xˉ(k,j)LXˉ(k,l)L)×(Xˉ(k,j)LXˉ(k,m)L))(Xˉ(k,j)LXˉ(k,l)L)×(Xˉ(k,j)LXˉ(k,m)L).d_{\mathcal{E}} = \frac{\big| (\tilde{X}^{L}_{(k+1,i)} - \bar{X}^{L}_{(k,j)}) \times (\tilde{X}^{L}_{(k+1,i)} - \bar{X}^{L}_{(k,l)}) \big|}{\big| \bar{X}^{L}_{(k,j)} - \bar{X}^{L}_{(k,l)} \big|}, \qquad d_{\mathcal{H}} = \frac{\big| (\tilde{X}^{L}_{(k+1,i)} - \bar{X}^{L}_{(k,j)}) \cdot \big( (\bar{X}^{L}_{(k,j)} - \bar{X}^{L}_{(k,l)}) \times (\bar{X}^{L}_{(k,j)} - \bar{X}^{L}_{(k,m)}) \big) \big|}{\big| (\bar{X}^{L}_{(k,j)} - \bar{X}^{L}_{(k,l)}) \times (\bar{X}^{L}_{(k,j)} - \bar{X}^{L}_{(k,m)}) \big|}.

スイープ内の運動は等角速度・等線速度でモデル化されるため、各点のその時刻 tit_i におけるポーズは、スイープ変換 Tk+1L=[tx,ty,tz,θx,θy,θz]T^{L}_{k+1} = [t_x, t_y, t_z, \theta_x, \theta_y, \theta_z]^{\top} から線形補間される。

T(k+1,i)L=titk+1ttk+1Tk+1L,T^{L}_{(k+1,i)} = \frac{t_i - t_{k+1}}{t - t_{k+1}} \, T^{L}_{k+1},

これは同時に点群のスキュー除去も行う。各特徴の残差行を f(Tk+1L)=df(T^{L}_{k+1}) = d に積み重ね、ポーズはバイスクエア重み付き(大きな残差を持つ特徴は重みを下げられ、閾値を超えるとゼロになる)ロバストレーベンバーグ・マルカート法で解かれる。

Tk+1LTk+1L(JJ+λdiag(JJ))1Jd.T^{L}_{k+1} \leftarrow T^{L}_{k+1} - \big( J^{\top} J + \lambda \, \mathrm{diag}(J^{\top} J) \big)^{-1} J^{\top} d.

LiDARマッピング(1 Hz)。 スイープごとに1回、歪み補正された点群が、10倍多い特徴点を用いて蓄積マップにレジストレーションされる。マップは10 mの立方体単位で格納され、対応関係は各特徴のマップ近傍の共分散行列の固有値分解から得られる(1つの支配的固有値ならエッジ直線、2つなら平面パッチ、関連する固有ベクトルが方向を与える)。同じ距離残差が最小化され、マップは5 cmのボクセルグリッドでダウンサンプリングされる。最終的なポーズ出力は、マッピングのポーズ TkWT^{W}_{k} とオドメトリの運動 Tk+1LT^{L}_{k+1} を、オドメトリの10 Hzレートで融合したものである。設計上、ループ閉じ込みは行わない。

実験結果

SLAMにおける意義

LOAMは、視覚SLAMにおけるPTAMに相当するLiDAR SLAMのアーキテクチャ上のテンプレートである。LeGO-LOAMとLIO-SAMは、その曲率ベースのエッジ・平面特徴抽出とオドメトリ/マッピング分割を直接引き継いでいる。FAST-LIO2は特徴抽出を完全に取り除くことで、これに反する立場を取っている。運動のスキュー除去は、以降のすべての回転式LiDARパイプラインで必須の前処理ステップとなり、LOAMは長年KITTIの上位ランクを保ち続け、標準的なベースラインであり続けた。もし古典的なLiDAR論文を1本だけ読むなら、これを読むべきである——「エッジ特徴」「平面特徴」「スキャン対マップ精緻化」という、この分野に浸透した語彙はここから始まる。

関連ノート