以下の説明はこちらのROS_WIKIを参考にしています. 何よりもまず始めにオドメトリを調整することをオススメします. 調整するパラメータは以下の2つです.
- wheel_radius_multiplier
- wheel_separation_multiplier
- icartでは
~/icart_mini/icart_mini_control/configのicart_mini_control.yamlで設定されています
- icartでは
まず, 調整のための準備を行います. Rvizを開き, Global OptionsのFixed Frameをodomに設定します. そしてaddパネルからLaserScanを追加し, そのDecay Timeを高く(20くらい)設定します.
LaserScanのtopicも指定してください. (/scan等)
設定をsaveさせておくと次回以降楽です.
準備が整ったら, 並進成分のテストを行います. 壁から数メートル離してロボットを起動させ, 先程設定したRvizを立ち上げます. 壁に向かって1メートル走らせ, そしてスキャンに数センチ以上の厚みがないことを確認します. 数メートルに渡ってスキャンが広がっていたらwheel_radius_multiplierを調整してください.
次に回転成分のテストを行います. 先程同様, 設定したRvizを立ち上げ, ロボットをその場で回転させます. 理想はスキャンがぴったり重なることですが, 多少の回転ドリフトは予想されるので, スキャンが1~2度以上ずれていないことを確認します. それよりも大きくずれている場合, wheel_separation_multiplierを調整してください.
最後に, このテストを終えたら, もう一度 2. 並進成分のテストを実行してください. ずれがないことを再確認してオドメトリの調整は完了です.
before
after

