前章
Turtlebot3のデフォルトslam-methodはgmappingですが、生成されるマップの出来栄えにちょっと不満を感じたのてCartographerを使ってみることにしました.
ROBOTISのサイトにはCartographerはソースを落としてきてビルドインストールする方法が提示されています(Read more about other SLAM methods
内)
しかしながらこの方法、ビルドが必ずしも成功するとは限らない(投稿者はprotobuf系でエラーしギブアップ)うえ、以降のワークスペースのビルドにはcatkin_make_isolatedを使用しなければいけません
ROSをある程度理解している個人が触る分にはいいのですが、その環境を他の人が使う場合に戸惑いを与えてしまいます.
というわけで他の方法を調べた結果,どうやらこの方法使えるんじゃないか?を記しておきます.記事もなかなかヒットしなかったので,常識の範疇なのかもしれません
環境
- Ububtu18.04
- ROS melodic
本文
このインストールだけでよかった…
$ sudo apt install ros-melodic-cartographer-ros ros-melodic-cartographer-rviz
本文終わり.
turtlebot3 simulationで利用する場合
turtlebot3 Simulationにて,gazebo上でCartographerを使用したslamをする場合は
Run SLAM Node
で
$ roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=cartographer configuration_basename:=turtlebot3_lds_2d_gazebo.lua
と,argを1つ追加で設定する必要があります.
デフォルトはturtlebot3_lds_2d.lua
ですね.
違いは22行目だけで,そこのコメントには
imu_link, If you are using gazebo, use 'base_footprint' (libgazebo_ros_imu's bug)
と書かれていました.
いつかこのバグが解決されたら良いですね…