cartographer-project / cartographer_ros

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

Is there a way to select z_min and z_max height of pointcloud in 3d slam? #1821

Open ZihuiGao opened 4 months ago

ZihuiGao commented 4 months ago

I want to use 3d slam in my ardupilot_ros drone, and I add the depth camera in the SDF file. When I use 3D slam, the viewing angle in the z-axis direction is too large so that it seems to make the ground and ceiling to be barriers. So is there a way to select z_min and z_max height of pointcloud in 3d slam? And I also try to use TRAJECTORY_BUILDER_2D.min_z = 0.1, but it seems didn't work. My .lua file is as follows.

include "map_builder.lua" include "trajectory_builder.lua"

options = { map_builder = MAP_BUILDER, trajectory_builder = TRAJECTORY_BUILDER, map_frame = "map", tracking_frame = "base_scan", published_frame = "odom", odom_frame = "odom", provide_odom_frame = false, publish_frame_projected_to_2d = false, use_odometry = true, 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 = 1., imu_sampling_ratio = 1., landmarks_sampling_ratio = 1., }

TRAJECTORY_BUILDER_3D.num_accumulated_range_data = 1 TRAJECTORY_BUILDER_3D.min_range = 0.2 TRAJECTORY_BUILDER_3D.max_range = 150 TRAJECTORY_BUILDER_2D.min_z = 0.1 TRAJECTORY_BUILDER_2D.max_z = 3.0 TRAJECTORY_BUILDER_3D.use_online_correlative_scan_matching = false

MAP_BUILDER.use_trajectory_builder_3d = true MAP_BUILDER.num_background_threads = 4 POSE_GRAPH.optimization_problem.huber_scale = 5e2 POSE_GRAPH.optimize_every_n_nodes = 320 POSE_GRAPH.constraint_builder.sampling_ratio = 0.03 POSE_GRAPH.optimization_problem.ceres_solver_options.max_num_iterations = 20 POSE_GRAPH.constraint_builder.min_score = 0.5 POSE_GRAPH.constraint_builder.global_localization_min_score = 0.55

POSE_GRAPH.optimization_problem.odometry_translation_weight = 1e3 POSE_GRAPH.optimization_problem.odometry_rotation_weight = 1e3

return options

jhpark98 commented 1 month ago

Hello Zihui, were you able to figure it out?