ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

Cartographer 2D generates wrong map

asked 2022-07-21 10:54:59 -0500

user112233 gravatar image

Hello All,

I am new to cartographer and am trying to generate a map for my data using it. I have a VLP-16 sensor and I make ue of the VLP16_points.launch file in velodyne_pointcloud package to generate a laserscan for the specific ring. When I run 2D cartographer on this laserscan, my map is static (submaps are overwritten at the same point and the trajectory path is stationary) although my sensor is mounted on a car that is in motion.

Lua file:

include "map_builder.lua"

include "trajectory_builder.lua"

options = { map_builder = MAP_BUILDER,

trajectory_builder = TRAJECTORY_BUILDER,

map_frame = "map",

tracking_frame = "base_link",

published_frame = "base_link",

odom_frame = "odom",

provide_odom_frame = true,

publish_frame_projected_to_2d = true,

use_pose_extrapolator = true,

use_odometry = false,

use_nav_sat = false,

use_landmarks = false,

num_laser_scans = 1,

num_multi_echo_laser_scans = 0,

num_subdivisions_per_laser_scan = 1,

num_point_clouds = 0,

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., }

MAP_BUILDER.use_trajectory_builder_2d = true TRAJECTORY_BUILDER_2D.num_accumulated_range_data = 1

MAP_BUILDER.use_trajectory_builder_2d = true

TRAJECTORY_BUILDER_2D.min_range = 0.0

TRAJECTORY_BUILDER_2D.max_range = 20.0

TRAJECTORY_BUILDER_2D.missing_data_ray_length = 20

TRAJECTORY_BUILDER_2D.use_imu_data = false TRAJECTORY_BUILDER_2D.use_online_correlative_scan_matching = true TRAJECTORY_BUILDER_2D.real_time_correlative_scan_matcher.linear_search_window = 0.1 TRAJECTORY_BUILDER_2D.real_time_correlative_scan_matcher.translation_delta_cost_weight = 10. TRAJECTORY_BUILDER_2D.real_time_correlative_scan_matcher.rotation_delta_cost_weight = 1e-1 TRAJECTORY_BUILDER_2D.motion_filter.max_angle_radians = math.rad(0.2)

POSE_GRAPH.constraint_builder.min_score = 0.5

POSE_GRAPH.constraint_builder.global_localization_min_score = 0.5

POSE_GRAPH.optimization_problem.huber_scale = 1e2

POSE_GRAPH.optimize_every_n_nodes = 35

return options

The sensor length and radius (in urdf file) are 0.07 and 0.05.

Can someone please help me understand what am I doing wrong?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2023-06-08 03:03:18 -0500

satvikgupta gravatar image

Have you tried running the Google Cartographer first on demo bag files? I would recommend you to try running and generating the map using the demo bag files and then try running the code on your robot. Follow the steps here: https://google-cartographer-ros.readt...

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2022-07-21 10:53:05 -0500

Seen: 24 times

Last updated: Jul 21 '22