あかすくぱるふぇ

同人サークル「あかすくぱるふぇ」のブログです。

2018年05月

amclはマップを使って自己位置(オドメトリ)を補正する。
gmappingはマップの生成と自己位置の補正を並行して行う。

amclもgmappingも使わない場合、自己位置の誤差が蓄積していく。
つまり、間違った自己位置をもとに経路を生成していく。

amclを使うと、LRFとマップを比較して、自己位置を補正する。
自己位置を補正するといっても、オドメトリの積分値(/huskey_velocity_controller/odom)を補正するのではなく、
 オドメトリの初期位置(/odom, tf)を補正する。なので、/mapと/odomがずれていく。

gmappingのソフトウェア構成はamclとほぼ同じ。/mapが入力ではなく、出力になるだけ。

・デバッグすべきこと
/gmappingノードが起動していること
ロボットを走らせたら、static mapやGlobal costmapが広がること
/mapトピックが存在すること(move_baseだけだと/mapトピックは存在しない)

rVizの2D Nav Goalは、/move_base_simple/goalトピックをpublishする
/move_baseは、/move_base_simple/goalをsubscribeして、/cmd_velをpublishする
 /move_baseはさらに/move_base/goalをpublishする(何に使うのは不明)
/twist_muxは、/cmd_velをsubscribeして、/..._controller/cmd_velをpublishする
/move_baseにはデフォルトのlaunchファイルが無いので自分で書く

・デバッグすべきこと
2D Nav Goalで/move_base_simple/goalがpublishされること
/move_baseノードが起動していること
/tfに/odomと/base_linkが含まれていること(/worldは不要)
2D Nav Goalを指定すると、/move_baseからcmd_velがpublishされること
/twist_muxノードが起動していること?
/twist_muxが/..._controller/cmd_velをpublishし、それを/gazeboがsubscribeしていること

↑このページのトップヘ