かみやんの技術者ブログ

主にプログラムの話です

ICP(Iterative Closest Point)マッチングによるオドメトリ その2

昨日のエントリでは、デバッグを進めたがICPスキャンマッチによるオドメトリは、軌跡があさっての方向へ行っていたので、さらにデバッグをしたところ、2つのスキャンの比較で現在のスキャンと1フレーム前のスキャンのマッチングをさせるべきところを、現在のスキャンとスタート地点のスキャンをマッチングさせていたというミス。

上図、LRFのICPスキャンマッチングによるオドメトリ軌跡(ピンク)
4台ロボットが並んでいますが、左からロータリーエンコーダオドメトリ(オレンジ)、コンパスオドメトリ(緑)、LRFオドメトリ(ピンク)、統合オドメトリ(コンパスオドメトリ+GPS)(黄緑)です。

LRFオドメトリの精度は、ロータリーエンコーダオドメトリより若干悪い。結論。ロータリーエンコーダ同様、方向差分の積算であるため、累積誤差が発生する。また、点群の少ない場所や移動物があるときなどで、マッチングに失敗したり大きく誤認識する場合がある(まだまだチューニングはできるが確立0にはならないだろう(ロータリーエンコーダも黄色い盲人用タイルを踏んで大きくずれる場合がある))。また、CPU負荷はロータリーエンコーダの方が低く、センサーの価格も安い。よって、LRFによるオドメトリは意味がない。地図が先にあって、ICPスキャンマッチで自己位置同定には使えると思うが、LRFオドメトリで綺麗な地図を描くのは難しい。

点群マップの方は、地磁気センサーの時間遅れ問題を対処して、統合オドメトリの精度をあげる方向でトライしようと思う。