Open Source Robotics

高品質なオープンソースロボティクスプロジェクト、ツール、ソフトウェアの厳選コレクション。

CT-ICP: Real-time Elastic LiDAR Odometry with Loop Closure

著者: Pierre Dellenbach, Jean-Emmanuel Deschaud, Bastien Jacquet, François Goulette · ICRA 2022

ライセンス

  • オープンアクセス
  • 論文: CC BY 4.0

以下の内容はすべて、論文のライセンス(CC BY 4.0)に従い論文全文に基づいています。図は著者のクレジットを付けて掲載しています。

要約

スキャンごとに開始姿勢と終了姿勢を持ち、スキャン間の跳びを許すスキャン対マップ ICP に、標高画像によるループクロージャを加えたもの。KITTI のリーダーボードで RTE 0.59%、スキャンあたり 60 ms。

重要な理由

本手法は点の座標と点ごとのタイムスタンプのみを必要とし、車載、Segway 搭載、手持ちの LiDAR を 1 つのフレームワークで扱う。運転向けプロファイルのオドメトリは CPU の 1 スレッドでスキャンあたり 60-80 ms で動作し、完全な SLAM は LiDAR データのみを用いる。

課題

回転式のマルチビーム LiDAR は移動しながら各スキャンを記録するため、点をセンサの動きに対して補正しなければならない。多くのオドメトリ手法は等速モデルでスキャンの歪みを一度だけ補正するが、これは向きや加速度が急に変化すると失敗する。一方、滑らかな軌道を用いる連続時間の手法は、実際のプラットフォームの高周波で揺れる動きに追従できない。

提案手法

CT-ICP は各スキャンを開始姿勢と終了姿勢で表し、各点のタイムスタンプからその点の姿勢を補間し(回転は slerp、並進は線形)、開始姿勢を直前の終了姿勢の近くに保ち加速度を制限する弱い制約付きで、点対平面のスキャン対マップ ICP を解く。ローカルマップは疎なボクセルグリッド内の密な点群(ボクセルあたり最大 20 点)であり、ループクロージャモジュールは集約したローカルマップの標高画像上で 2D 特徴をマッチングし、ICP でマッチを精緻化して、g2o のポーズグラフを最適化する。

主な知見

  • スキャンの開始姿勢が直前のスキャンの終了姿勢と異なることを許すことで、滑らかな連続時間軌道では表現できない高周波の動きを吸収できる。
  • スキャン内の弾性変形は生データで重要である。これを等速モデルによる歪み補正に置き換えると、RTE は KITTI-raw で 0.55% から 0.79% に、KITTI-360 で 0.45% から 0.60% に上昇する。
  • 法線と平面性の重みは、現在のスキャンではなく密なローカルマップから計算され、点対平面の残差に対してより豊富な近傍が得られる。
  • 疎なボクセルマップは、kd 木の対数時間のアクセスではなく定数時間の近傍アクセスを提供し、密なマップをリアルタイムで使えるようにする。
  • 動き補正済みの KITTI のスキャンでは比較したすべての手法が近い結果となり、差は補正されていない生のスキャンで現れる。

主な結果

  • KITTI オドメトリのリーダーボード(テストシーケンス 11-21):RTE 0.59%、当時公開コードを持つ手法の中で 1 位。
  • 真値のあるシーケンスでの平均 RTE:動き補正済みの KITTI で 0.53%(60 ms/スキャン)、KITTI-raw で 0.55%(65 ms)、KITTI-360 で 0.45%(70 ms)。IMLS-SLAM、MULLS、pyLiDAR F2M は KITTI-raw で 0.71-1.61%、KITTI-360 で 0.68-1.55%。
  • KITTI-CARLA(シミュレーション):RTE 0.09%、他の最良のオドメトリは 0.81%。ParisLuco:1.11%、IMLS-SLAM は 1.26%。
  • 高周波運動プロファイル:Newer College で RTE 0.55%(pyLiDAR F2M は 2.20%)、NCLT 2012-01-08 で 1.17%(pyLiDAR F2M は 19.80%)、スキャンあたり 430 ms と 180 ms。
  • ループクロージャにより、ATE は KITTI-raw 00 で 6.22 m から 0.66 m に、KITTI-360 00 で 29.87 m から 1.07 m に、ParisLuco で 29.16 m から 9.65 m に低下する。KITTI-CARLA の Town01 では 0.2 m 付近にとどまる(0.21 m から 0.26 m)。
  • 標高グリッドの構築とマッチングには 1 回あたり平均 1.1 s かかり、ループが見つかった場合はさらにポーズグラフ最適化に 1.2 s かかる。

制限事項

  • ループクロージャには、センサの動きがおおむね平面的であることと、外部キャリブレーションで z 軸を地面の法線に合わせることが必要であり、対応できるセンサ構成と動きが限られる。
  • ループクロージャはメインスレッドで実行される(標高グリッドごとに 1.1 s、ポーズグラフ最適化ごとに 1.2 s)ため、完全な SLAM はまだリアルタイムではない。著者らは別スレッドにすればリアルタイムになると述べている。
  • ローカルマップはスライディングウィンドウで点を忘れないため、誤ったレジストレーションがマップを汚染する。これを防ぐロバストなプロファイルは実行時間を増加させる(Newer College でスキャンあたり 430 ms、NCLT で 180 ms)。
  • すべての実験で用いた Gauss-Newton ソルバは手計算のヤコビアンを持つため、その制約は変更できない。より柔軟な Ceres の選択肢は、リアルタイムで使うには複数のスレッドを必要とする。
  • ループクロージャの候補数(10)は想定されるドリフトに合わせて調整する必要があり、KITTI-CARLA ではループクロージャ後に ATE が改善しなかった。

分野への影響

ICRA 2022 Outstanding Paper のファイナリストで、被引用数は 301。論文は CT-ICP オドメトリを C++ で公開しており(github.com/jedeschaud/ct_icp)、これを公開された寛容なライセンスのオープンソースコードと説明している。ループ検出とポーズグラフのバックエンドは pyLiDAR-SLAM(github.com/Kitware/pyLiDAR-SLAM)に組み込まれ、使用したデータセットも論文が述べる形でオンラインで公開されている。

概要

マルチビーム LiDAR センサは、ロボティクス、特に自動運転車において、自己位置推定と知覚のタスクのためにますます使われており、どちらのタスクも環境の精密な地図を構築する能力に依存している。そのために我々は、CT-ICP(Continuous-Time ICP)と呼ぶ新しいリアルタイムの LiDAR のみによるオドメトリ手法を提案し、新しいループ検出手順によって完全な SLAM へと拡張する。本手法の核心は、スキャンマッチングにおけるスキャン内の連続性とスキャン間の不連続性の組み合わせを導入したことにある。これにより、レジストレーション中にスキャンを弾性的に変形させて精度を高めることと、不連続性によって高周波の動きに対するロバスト性を高めることの両方が可能になる。

このオドメトリの上に、標高画像の 2D マッチングに基づく高速な LiDAR のみのループ検出を用いて完全な SLAM を構築し、ループ制約付きのポーズグラフを提供する。本手法のロバスト性を示すため、運転および高周波運動のシナリオにおいて、KITTI、KITTI-raw、KITTI-360、KITTI-CARLA、ParisLuco、Newer College、NCLT の 7 つのデータセットでテストした。CT-ICP オドメトリとループ検出はどちらもオンラインで公開されている。CT-ICP は現在、KITTI オドメトリのリーダーボードにおいて公開コードを提供している手法の中で 1 位であり、平均相対並進誤差(Relative Translation Error, RTE)は 0.59%、シングルスレッドの CPU でのスキャンあたりの平均時間は 60ms である。

リンク

  • arXiv 2109.12979: https://arxiv.org/abs/2109.12979
  • DOI 10.48550/arXiv.2109.12979: https://doi.org/10.48550/arXiv.2109.12979
  • PDF: https://arxiv.org/pdf/2109.12979v1
  • コード: https://github.com/jedeschaud/ct_icp

このウェブサイトにはJavaScriptが必要です。オープンソースロボティクスプロジェクトを閲覧するにはJavaScriptを有効にしてください。