gmappingに入門する
ROSさんお手やわらかに:ROS奮闘編
roombaプラットフォームがテレオペレーションで動くようになったので、いよいよgmappingでマップの作成をやってみる。
gmappingは、ロボットのレーザー測域センサのトピックと、オドメトリのトピックから、マップを作成するためのパッケージだ。リアルタイムにマップを作成することもできるが、ロボットを一度動かして、トピックのログを取り、これからマップを作成することもできる。
まずはチュートリアルでサンプルデータをマップ化してみる。
・gmappingはインストール済みなので、インストールの必要はない。
・サンプルデータをダウンロード(homeに置いた)
$ wget http://pr.willowgarage.com/data/gmapping/basic_localization_stage.bag
・新たに端末を開いてroscoreを起動
・新たに端末を開いて初期化後、gmappingを起動
$ source ~/catkin_ws/devel/setup.bash
$ rosparam set use_sim_time true
$ rosrun gmapping slam_gmapping scan:=base_scan
・新たに端末を開いて初期化後、rosbagでサンプルデータを再生
$ rosbag play basic_localization_stage.bag
これを実行すると、gmappingを起動している端末に、レスポンスがある。黄色い文字でワーニング(よく出るのは"TF_OLD_DATA")が出ているとダメ。白文字でのメッセージならうまくいっている。
なお、サンプルデータをすべて再生するには結構時間がかかる。このへんでいいやと思ったらCtrl+cでrosbagを終了しても構わない。データ数が多ければそれだけ精度の高い地図ができるが、途中でやめてもそれなりの地図にはなる。
・同じ端末で今のデータをマップデータに変換
$ rosrun map_server map_saver
homeにmap.pgmというファイルができているので、これをダブルクリックで開く(画像ビューアが立ち上がる)
流れはこんな感じ。rosbagの代わりにrqt_bag(groovyではこっちと他のページにあったので)を使ったおかげでうまくいかず、少々てこずったが、チュートリアルどおりにrosbagを使うことで問題なく終了。次はroombaでマップ作成の下準備をする。
« roombaプラットフォームのまとめ(おしまい) | トップページ | gmappingを使う準備をする »
「ROSさんお手やわらかに」カテゴリの記事
- 3Dプリンターで作る簡単turtlebot(おしまい)(2017.01.07)
- 3Dプリンターで作る簡単turtlebot(raspberry pi3の取り付け)(2017.01.03)
- 3Dプリンターで作る簡単turtlebot(kinectの取り付け)(2017.01.02)
- 3Dプリンターで作る簡単turtlebot(パーツの組み立て2)(2016.12.29)
- 3Dプリンターで作る簡単turtlebot(パーツの組み立て1)(2016.12.25)
コメント