ドリフトは蓄積する
位置合わせごとにわずかな誤差が残り、数千スキャンにわたって積み上がります。1回ずつは問題なく見えても、10分歩いた廊下が数メートル曲がることがあります。
SLAMはSimultaneous Localization and Mapping、つまり自己位置推定と地図作成の同時実行を指します。未知の空間を移動するセンサーが、同一の計測データから空間の形状と自身の位置の両方を求める技術です。LiDARの場合、その計測データは1スキャンあたり数万点のレーザー測距値になります。
スキャンを地図上に正しく配置するにはセンサーの位置が必要です。しかしセンサーの位置を知るには、 比較対象となる地図が必要です。SLAMはこれを同時に解きます。新しいスキャンをそれまでに構築した 地図に位置合わせし、その結果で推定姿勢を更新し、位置合わせ済みのスキャンで地図を拡張します。 これを数千回繰り返すことで、軌跡と点群が得られます。
生のPointCloud2フレームを単純に重ねても地図にならないのは このためです。各フレームは異なる時刻のセンサー座標系にあり、姿勢推定を伴わなければ結果は ぼやけた点の集まりにしかなりません。
位置合わせごとにわずかな誤差が残り、数千スキャンにわたって積み上がります。1回ずつは問題なく見えても、10分歩いた廊下が数メートル曲がることがあります。
同じ場所に戻ってきたことを認識できれば、軌跡全体を整合させる拘束を追加できます。ループを見逃すと、ドリフトはそのまま地図に固定されます。
特徴の乏しいトンネル、空の駐車場、雪原など、多くの位置から同じに見えるスキャンでは、その軸方向の運動を拘束できません。IMUが価値を持つのはこの場面です。
唯一の正解と言えるLiDAR SLAMパッケージは存在しません。以下の4つで実運用の大半をカバーでき、 計算コスト、調整の手間、グローバルな整合性の間で異なる選択をしています。
産業技術総合研究所の小出健司氏によるLiDAR慣性マッピングフレームワークです。GPUによるマッチングとグローバルな軌跡最適化を用いるため、ループを含む長時間の記録でも整合性が保たれます。LidarFlowが実行しているエンジンです。
GitHubでGLIMを見る反復カルマンフィルタを核とする密結合のLiDAR慣性オドメトリです。非常に高速で軽量なため機体上での実行に向いており、ドローンや小型ロボットのリアルタイム用途でよく使われます。
GitHubでFAST-LIOを見るループ閉じ込みとGPSファクタを備えたファクタグラフ型のLiDAR慣性システムです。文書が充実し導入実績も多いため、既に多くの検証がなされた構成を選びたい場合の堅実な基準になります。
GitHubでLIO-SAMを見る意図的に最小構成としたpoint-to-point ICPオドメトリで、調整項目がほとんどなくIMUも不要です。結果のどこまでがデータ由来で、どこからがパラメータ選択由来かを確認する基準として有用です。
GitHubでKISS-ICPを見る上記のいずれを使う場合も、ビルド、CUDAとROSのバージョン整合、トピックの配線、そして地図が 崩れなくなるまでの調整が必要です。そこがプロジェクトの本題でないなら、記録データを アップロードしてください。LidarFlowは 小出健司氏とGLIMプロジェクト によるGLIMを実行し、再構成した地図をお返しします。
.mcapまたはROS1の.bagoutput.pcd、マッピング済み点群map.ply、フル解像度の出力slam_trajectory.txt、センサー軌跡metadata.json、設定と検証結果GPSが分かるのはセンサーのおおよその位置で、精度はメートル級、屋外に限られます。周囲の形状については何も分かりません。SLAMはLiDARの戻り点から幾何形状を構築し、その中をセンチメートル級で追跡した軌跡を推定します。屋内でも機能します。実務では両者は補完関係にあり、SLAMが局所精度を、GNSSがグローバル座標への基準づけを担います。
多くは次の4つのいずれかです。特徴の乏しい長い廊下や開けた平地のようにスキャンから運動を拘束できない退化した幾何、スキャンレートで追従できない速い動き、IMUの欠如またはキャリブレーション不良、そしてループが認識されずドリフトが補正されないことです。人や車が多く動く環境も誤った拘束を生みます。
重視する要素によります。FAST-LIOは高速で計算負荷が軽く、LIO-SAMはループ閉じ込みを備えた実績豊富な密結合LiDAR慣性システム、KISS-ICPは意図的に最小構成でほぼ調整不要、GLIMはGPUによるマッチングでグローバルに整合した地図を重視します。いずれも妥当な選択肢です。LidarFlowはGLIMを採用しています。
可能です。.bagまたは.mcapをアップロードすると再構成は当社側で実行され、output.pcd、map.ply、推定軌跡が返ります。ローカルへの導入もパラメータ調整も不要です。