ssk tech blog

自律移動ロボットの話を書きます

2DレーザーのみでGoogle Cartographer ros

目次

はじめに

こんにちは.ササキ(@saitosasaki)です.
今回は二次元のCartographer_rosをレーザのみで動かし、地図を作りました。

Cartographer_rosはgoogleが公開しているオープンソースのSLAM(Simultaneous Localization and Mapping)パッケージのrosラッパーです。

github.com

SLAMでループクロージャーができてるパッケージは貴重で、有名なgmappingは明示的にループが閉じないので屋外などの大規模環境で地図がずれるって人はこちらを使ってみたらよいと思います。使い方も簡単ですし。 (なお、パラメータチューニング)
2DではIMU・オドメトリが不要なのもポイント高いです。ただし、3DはIMUが必須です。

編集したところ 

1.レーザースキャンの型の設定

デフォルトではMultiEchoLaserScan型を読み込む設定なので、使用機器にあったLaserScan型に変更しました。ちなみにPointCloud2型も設定かえれば読み込めます。

cartographer_ros/cartographer_ros/configuration_files/backpack_2d.lua

options = {
・・・
num_laser_scans = 1,-- <--default:0
num_multi_echo_laser_scans = 0,-- <--default:1
num_subdivisions_per_laser_scan = 10,
num_point_clouds = 0,--<--if pc2 is used,set 1
・・・
}

2.IMUの設定

デフォルトではimuの入力が必要だったので、imuの設定を切りました。

cartographer/configuration_files/trajectory_builder_2d.lua

TRAJECTORY_BUILDER_2D = {
use_imu_data = false,-- <--default:true
・・・
}

実行

 レーザ用のnodeとcartographerのbackpack_2d.launchを立ち上げ

できた地図

20181206032203.png map_serverのmap_saverでpgm形式で保存もできます。

参考にしたもの

google-cartographer.readthedocs.io

google-cartographer-ros.readthedocs.io

関連記事

ssk0109.hatenablog.com