ROS: Roomba 800 地図生成


Roomba 800シリーズにHokuyo Lidar (UTM-30 LX)を積んでGmappingした時のメモ

1. 環 境

  • Ubuntu 16.04
  • ROS Kinetic

 

2.準 備

  • ルンバにPC、LIDAR、Joystickを接続して電源をいれてPCで以下のコマンドを実行する。
    • $ roslaunch ca_driver create_2.launch
    • $ roslaunch ca_tools joy_teleop.launch
    • $ roslaunch urg_node urg_lidar.launch

 

3.データ取得

  • bagファイル用のディレクトリの作成
    • $ mkdir  -p  ~/bag
  • 作成したディレクトリへ移動する
    • $ cd ~/bag
  • 全Topicデータを記録する
    • $ rosbag record -a
  • Joystickを操作してロボットを動かし地図生成のためのデータを取得する。取得が終わったら、忘れないで、Ctrl-Cでrosbagを止める。

 

4.地図生成

  •  bagファイルを使って地図生成するための設定
    • $ rosparam set use_sim_time true
  • SLAMの実行
    • パラメータを変更しない場合
      • $rosrun gmapping slam_gmapping
    • パラメータを変更する場合
      •  [5.パラメータの設定]に従い作業する。
      • $roslaunch gmapping gmapping_happy.launch
  • topicの再生
    • $ rosbag play  --clock "bagファイル名"
  • 地図用ディレクトリの作成と移動
    • $ mkdir -p ~/map
    • $ cd ~/map
  • 地図の取得
    • topicの再生が終了してから以下のコマンドを実行する。ただし、地図の取得が終わるまではgmappingを終了させてはいけない。
    • $ rosrun map_server map_saver  -f  mapname
      • mapnameはユーザが指定する地図名。-f mapnameをつけないとファイル名はmapとなる。
    • ~/mapディレクトリにmap.pgmとmap.yamlが生成される。map.pgmは画像ファイル、map.yamlは設定ファイル。画像ファイル名を変更するときはmap.yamlの1行目image:のファイル名も変更する必要がある。

 

5.パラメータの設定

  • デフォルトのパラメータでうまく地図ができる場合は良いが、そうでない場合はパラメータを変更する。そのため、雛形となるlaunchファイルを取得する。
    • $ cd  ~/catkin_ws/src
    • $ git clone https://github.com/ros-perception/slam_gmapping
    • $ cd ~/catkin_ws
    • $ catkin_make
  • launchファイルの作成
    • 移動
      • $ cd ~/catkin_ws/src/slam_gmapping/gmapping/launch
    • 雛形となるpr2用のlaunchファイルslam_gmapping_pr2.launchはLIDARのトピック名を3行目で以下のように名前をscanからbase_scanに変更しているので削除して保存する。
      • <remap from=”scan” to=”base_scan”/>
    •  変更したslam_gmapping_pr2.launchをコピーする。ここではgmapping_happy.launchというファイル名にコピーする。
      • cp  slam_gmapping_pr2.launch   gmapping_happy.launch
    •  パラメータの詳細については以下を参照されたい。

終わり

コメント

タイトルとURLをコピーしました