ssk tech blog

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

Google Cartographerのパラメータチューニングに関するIssuesまとめ

目次

はじめに

Google Cartographerのパラメータチューニングに関するIssuesをまとめました.

github.com

ちなみに公式ドキュメントにおけるチューニング・ガイドはこちらです.
cartographer_ros/tuning.rst at master · googlecartographer/cartographer_ros · GitHub

問題

主にIMU・オドメトリに関する問題

Parameter tuning issues for hallways · Issue #48 · googlecartographer/cartographer_turtlebot · GitHub

  • レーザーのURDFが正しくなかった.

  • IMUの性能が悪い.
    対策:IMUを無効にして、代わりに相関スキャンマッチャーに切り替える.

TRAJECTORY_BUILDER_2D.use_imu_data  =  false  
TRAJECTORY_BUILDER_2D.use_online_correlative_scan_matching  =  true  
  • オドメトリの性能が良いのに,SLAMに反映できていない.
    対策:オドメトリをより信頼できるように以下のパラメータを調整する.
TRAJECTORY_BUILDER_2D.ceres_scan_matcher.translation_weight  =  70  
TRAJECTORY_BUILDER_2D.ceres_scan_matcher.rotation_weight  =  300  

誤ったループ閉じ込みのせいで地図が歪む問題

about the global loop-closure optimization between sub-maps · Issue #127 · googlecartographer/cartographer · GitHub

対策:誤ったループ閉じ込みを行わないようにするためにもっと高い最小得点とHuberスケールに設定する.

POSE_GRAPH.optimization_problem.huber_scale = 1e2 --<--1e1
POSE_GRAPH.constraint_builder.min_score = 0.8 --<--0.5

レーザースキャナに関する問題

Cartographer worse than Gmapping · Issue #202 · googlecartographer/cartographer · GitHub

  • レーザーの検出レンジが大きいのに,Cartographerが読み取るレーザーレンジがあっていない.
    対策:Cartographerの設定のレーザーレンジを上げる.
TRAJECTORY_BUILDER_2D.laser_max_range = 50 --<--30
  • レーザーの性能が悪い.
    対策:サブマップの分解能を下げる.
TRAJECTORY_BUILDER_2D.submaps.resolution = 0.15 --<--0.05