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
- パラメータの詳細については以下を参照されたい。
- 移動
終わり
コメント