Robust pose-graph optimization

標準的な姿勢グラフ最適化には危険な特性がある。すべてのエッジを信頼してしまうことである。オドメトリエッジは通常信頼できるが、ループ閉じ込みエッジは場所認識から得られるものであり、それは時に嘘をつく — 知覚的アリアシング(見た目が同じ2つの通路)が偽のループ閉じ込みを生じさせる。1本の誤ったループエッジを最小二乗法に投入すると、二次コストが1つの悪い制約に全体を支配させてしまうため、最適化器はマップを自身に折り畳んでしまう。Robust pose-graph optimizationは、バックエンドが外れ値制約を乗り越えて生存できるようにする手法群である。

ロードマップで名前が挙げられている3つの古典的アプローチは以下の通り。

これらのアイデアは、より広いロバスト推定のツールボックスと結びついている。M推定量カーネル(Huber、Cauchy)は中程度の外れ値の重みを下げ、Graduated Non-Convexity (GNC)は初期化を必要とせずに強く非凸なロバストコストを解く。実際のシステムでは防御を複数層に重ねる。フロントエンドでの幾何学的検証、PCM式の整合性チェック、そして最後の防衛線として最適化器内のロバストカーネルまたはDCSである。

M推定量の視点

すべての「軟らかい」手法は、1つの操作の変種である。二次コストをロバストカーネル ρ\rho に置き換えることである。

min{Ti}(i,j)ρ(eijΣij1),\min_{\{T_i\}} \sum_{(i,j)} \rho\left(\|\mathbf{e}_{ij}\|_{\Sigma_{ij}^{-1}}\right),

これは、大きな残差に対してコストの影響力(その導関数)が成長を止める — あるいは縮小する — ように選ばれる。二次関数の下では、残差 10σ10\sigma のエッジは 1σ1\sigma のエッジよりも100倍強く引く。Huberの下では線形にしか強く引かない。CauchyやGeman-McClureの下では、残差が大きくなるにつれてその引く力は薄れていく。実装の観点では、これは**反復再重み付け最小二乗法(iteratively reweighted least squares)**になる。各Gauss-Newton反復で、現在の残差から計算される重み w(e)w(\|\mathbf{e}\|) をすべてのエッジの情報行列に乗じる — これはまさにDCSが特定の閉形式の重みで行うことであり、switchable constraintsが明示的なスイッチ変数で達成することでもある。トレードオフとして、redescendingカーネル(Cauchyおよびそれより強いもの)は大きな外れ値を完全に排除できるが、コストを非凸にしてしまうため、初期化が悪いと良いエッジまでロックアウトされてしまう可能性がある — これはGNCが凸なサロゲートから始めて徐々に鋭くしていくことで対処する問題である。

フロントエンド側の補完的なハードチェックはカイ二乗ゲーティングである。エッジが受理される前に、現在の推定値の下でその残差が統計的にあり得るかどうかを検定する。eTΣ1e<χd,0.952\mathbf{e}^T \Sigma^{-1} \mathbf{e} < \chi^2_{d,\,0.95}(SE(3)SE(3)エッジでは6自由度)。ゲーティングは明白な外れ値を安価に捕捉できるが、これは現在の推定値を信頼している — ドリフトが大きい場合、正しいループ閉じ込みもあり得ないように見えてしまう。これはまさにPCMの対整合性ロジックがより良く処理するケースである。

よくある落とし穴

SLAMにおける意義

1本の偽ループ閉じ込みが、1時間かけて構築したマップを破壊しうるため、デプロイされたシステムにおいてバックエンドでのロバスト性は必須である。このトピックはまた、マルチロボットSLAMへの入り口でもある。そこではロボットたちは、他のロボットが生成した制約を信頼すべきかどうかを判断しなければならず、これはPCMが設計された状況そのものである。

ハンズオン

関連ノート