Cartographer doesn't update map in real time

asked 2020-09-10 03:27:49 -0600

Sergekj gravatar image

Hi.

I am trying Cartographer 2D SLAM with a VLP16 Lidar. The map can be visualized in Rviz but as when the robot moves the new map is published on top of the previous one which is not cleared fast enough. And the wheels of the robot don't follow the base in real time. All those delays make a blurred map.

Is it possible to accelerate the algorithm? And also to decrease the time a map is kept when an update is possible?

The lua file looks like this:


options = {
map_builder = MAP_BUILDER,
trajectory_builder = TRAJECTORY_BUILDER,
map_frame = "map",
tracking_frame = "imu_link",
published_frame = "base_link",
odom_frame = "odom_cartographer",
provide_odom_frame = true,
publish_frame_projected_to_2d = false,
use_odometry = false,
use_nav_sat = false,
use_landmarks = false,
num_laser_scans = 0,
num_multi_echo_laser_scans = 0,
num_subdivisions_per_laser_scan = 1,
num_point_clouds = 1,
lookup_transform_timeout_sec = 0.2,
submap_publish_period_sec = 0.3,
pose_publish_period_sec = 5e-3,
trajectory_publish_period_sec = 30e-3,
rangefinder_sampling_ratio = 1.,
odometry_sampling_ratio = 1,
fixed_frame_pose_sampling_ratio = 0.1,
imu_sampling_ratio = 0.1,
landmarks_sampling_ratio = 1.,
}

MAP_BUILDER.use_trajectory_builder_2d = true

TRAJECTORY_BUILDER_2D.num_accumulated_range_data = 1

TRAJECTORY_BUILDER_2D.min_range = 0.3
TRAJECTORY_BUILDER_2D.min_z = -0.5
TRAJECTORY_BUILDER_2D.max_z = 0.5
TRAJECTORY_BUILDER_2D.missing_data_ray_length = 2.
TRAJECTORY_BUILDER_2D.use_imu_data = false
TRAJECTORY_BUILDER_2D.ceres_scan_matcher.translation_weight = 10
TRAJECTORY_BUILDER_2D.ceres_scan_matcher.rotation_weight = 15

POSE_GRAPH.constraint_builder.fast_correlative_scan_matcher.angular_search_window = math.rad(15.)
POSE_GRAPH.constraint_builder.fast_correlative_scan_matcher.linear_search_window = 3.

POSE_GRAPH.optimization_problem.huber_scale = 1e2 POSE_GRAPH.optimization_problem.local_slam_pose_translation_weight = 10 POSE_GRAPH.optimization_problem.local_slam_pose_rotation_weight = 15 POSE_GRAPH.optimization_problem.odometry_translation_weight = 0 POSE_GRAPH.optimization_problem.odometry_rotation_weight = 0

POSE_GRAPH.optimize_every_n_nodes = 100
POSE_GRAPH.global_sampling_ratio = 0.003
POSE_GRAPH.constraint_builder.sampling_ratio = 0.4
POSE_GRAPH.constraint_builder.min_score = 0.85
POSE_GRAPH.global_constraint_search_after_n_seconds = 30

TRAJECTORY_BUILDER_2D.submaps.num_range_data = 100
TRAJECTORY_BUILDER_2D.max_range = 10.

return options

edit retag flag offensive close merge delete