2016年6月11日土曜日

パーティクルフィルタによるグリッドマップマッチング

result

今回,著作権的にグレーな感じがするので問題があればご一報ください.

専門ではないですが,ロボットの自己位置推定に興味を持ったのでMATLAB/simulinkでシミュレーションしてみました.
ところどころ用語が間違っていると思いますがご容赦ください.

手を付けたきっかけは,“グリッドマップのマッチングに基づく未知障害物にロバストな自己位置推定”という論文の発表を聞いたことです.

面白そうだったので今回は,これを実装したいと思います.

また,今回の記事の大部分はMyEnigmaさんの記事を参考にしています.

パーティクルフィルタやグリッドマップそれぞれについては,こちらがとてもに詳しいのですが,これらを組み合わせた実装について記載がなかったため,本記事で述べていきます.

自己位置推定は,ロボットが現在,どこに居るのかを知るための手法です.
見晴らしの良い屋外であればGPSで事足りることが多いかと思いますが,そうでない場合にはロボット自身が現在の位置を知ることは難しくなります.

自己位置推定はよく知るものだとカーナビがありますが,これは普段はGPSで位置を測定していて,トンネル内などのGPSの電波が入らないところでは,タイヤの回転数(回転角)や加速度センサの2回積分(位置)を使って,自己位置を推定しています(多分).

カーナビでは,トンネル内であまり自己位置の精度が要求されない(トンネル内での分岐は少ない)ことと,道路自体がカーナビ内部にあるので推定された位置が多少ズレていても道路に引き寄せられること,最終的な運転は人間が行うことから,あまり自己位置推定は難しくない/重要でないのでは,と以前は思っていました.

ロボットの場合だと,精度の高い自己位置の推定が要求されるため,いろいろな手法が開発されてきたとのことです.あまり詳しくないのでこの辺りは省略します.

今回はその中でもパーティクルフィルタによるグリッドマップマッチングについてシミュレーションをしてみました.