cartographer-project / cartographer_ros

Provides ROS integration for Cartographer.
Apache License 2.0
1.64k stars 1.2k forks source link

Tuning help request. Challenging data #1563

Open archererer opened 3 years ago

archererer commented 3 years ago

Hi, I'm new to slam and unable to get the tuning right after hours of trial and error and would really appreciate some help and pointers. I have odometry available but since it's not super accurate during turns, I have TRAJECTORY_BUILDER_2D.ceres_scan_matcher.rotation_weight and translation_weight reduced while occupied_space_weight is increased. Here's my data: image main data Submaps seem to drift apart at loop closures (I think) image only submaps But reducing POSE_GRAPH.constraint_builder.loop_closure_*_weight means that global slam doesn't work right. Look at the start/end position image bad loop closure Here's another bad with the same setup, if that helps. It looks like image another rosbag

Data: rosbag validate rosbag

Another rosbag validate another rosbag

tf is included in the bags. My fork has test.launch that remaps scan to my laser topic. I followed the tuning guide but still unable to get consistent results. I also have a couple of walls vanishing in the second bag. Please let me know if I should share any more data. Thanks!

edit: Also, is there a way to make farther laser values "weigh" less than closer reading, so that if a 2d lidiar isn't perfectly horizontal, farther laser range values would have a less impact then closer ones on the map?

eithwa commented 3 years ago

image try this POSE_GRAPH.optimization_problem.huber_scale = 5e2 POSE_GRAPH.constraint_builder.sampling_ratio = 0.03