I have this parameters to run slamtoolbox in lifelong mapping , map is creating worse ( will give the pic below) here is the params:

# Plugin params
solver_plugin: solver_plugins::CeresSolver
ceres_linear_solver: SPARSE_NORMAL_CHOLESKY
ceres_preconditioner: SCHUR_JACOBI
ceres_trust_strategy: LEVENBERG_MARQUARDT
ceres_dogleg_type: TRADITIONAL_DOGLEG
ceres_loss_function: None

# ROS Parameters
odom_frame: odom
map_frame: map
base_frame: base_footprint
scan_topic: /scan_multi
mode: mapping

# lifelong params
lifelong_search_use_tree: true
lifelong_minimum_score: 0.1
lifelong_iou_match: 0.85
lifelong_node_removal_score: 0.04
lifelong_overlap_score_scale: 0.06
lifelong_constraint_multiplier: 0.08
lifelong_nearby_penalty: 0.001
lifelong_candidates_scale: 0.03

# if you'd like to immediately start continuing a map at a given pose
# or at the dock, but they are mutually exclusive, if pose is given
# will use pose
#map_file_name: lifelong_22.12

#map_start_pose: [-8.04, 14.20, 0.81]
#map_start_pose: [-17.657 7.370 0.323]
#map_start_at_dock: true

debug_logging: false
throttle_scans: 1
transform_publish_period: 0.05 #if 0 never publishes odometry
map_update_interval: 5.0
resolution: 0.05
max_laser_range: 20.0 #for rastering images
minimum_time_interval: 0.5
transform_timeout: 0.2
tf_buffer_duration: 10.
stack_size_to_use: 40000000 #// program needs a larger stack size to serialize large maps

# General Parameters
use_scan_matching: true
use_scan_barycenter: true
minimum_travel_distance: 0.2
minimum_travel_heading: 0.2
scan_buffer_size: 50
scan_buffer_maximum_scan_distance: 20
link_match_minimum_response_fine: 0.3 
link_scan_maximum_distance: 10
do_loop_closing: true 
loop_match_minimum_chain_size: 10           
loop_match_maximum_variance_coarse: 2.0  
loop_match_minimum_response_coarse: 0.45    
loop_match_minimum_response_fine: 0.35

# Correlation Parameters - Correlation Parameters
correlation_search_space_dimension: 0.3
correlation_search_space_resolution: 0.01
correlation_search_space_smear_deviation: 0.03 

# Correlation Parameters - Loop Closure Parameters
loop_search_space_dimension: 8.0
loop_search_space_resolution: 0.05
loop_search_space_smear_deviation: 0.05
loop_search_maximum_distance: 4.0

# Scan Matcher Parameters
distance_variance_penalty: 0.35      
angle_variance_penalty: 1.0    

fine_search_angle_offset: 0.00349     
coarse_search_angle_offset: 0.349   
coarse_angle_resolution: 0.0349        
minimum_angle_penalty: 0.9
minimum_distance_penalty: 0.5
use_response_expansion: false

pic: enter image description here

  • $\begingroup$ What happens if the bot moves slower? What happens when the bot does a 360 every few meters? $\endgroup$ Dec 26, 2023 at 20:22
  • $\begingroup$ I get that kind of map when there are areas with insufficient features to “close the loop” for localization such as black objects, mirrors, and distance to the walls greater than the lidar range. There is a tuning guide paper that suggests the order to start tweaking. arxiv.org/pdf/1706.09068.pdf $\endgroup$ Dec 26, 2023 at 20:37

1 Answer 1


Lifelng mapping in SLAM Toolbox is in the experimental namespace and documented as an experimental-only feature. There are definitely gaps in it.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.