后端参数优化
减少 optimize_every_n_nodes
( // 插入的节点数大于optimize_every_n_nodes时执行一次优化)
这样优化的频率更高了,如果出现了回环,就会立即被找到
增加MAP_BUILDER.num_background_threads核心数,核心增加后,后端实时高,延迟降低
减少 global_sampling_ratio
降低了回环约束的采样频率,降低了后端优化的数量,降低了计算量
减少 constraint_builder.sampling_ratio
降低了普通约束的采样频率,在优化位子图的时候计算量小
增加 constraint_builder.min_score
增加了普通约束的最小得分,阈值增加后,构建普通约束的数量就会减小
对于自适应体素滤波器,减少.min_num_points, .max_range, 增加.max_length
这相当于每个格子容纳的点云的数量变多,而这每个格子中的点云数据会被一个点代替,这样处理的数据也会减小
增加voxel_filter_size, submaps.resolution, 减少submaps.num_range_data
增加体素滤波的边长,增加子图的分辨率,这样就减小了子图的数量
减小每个子图插入节点的数量,因此子图的数量变多,因此增加了内存,空间换取时间
减少搜索窗口大小
.linear_xy_search_window,.linear_z_search_window,.angular_search_window
分支定界算法粗匹配的搜索窗口的范围降低,则计算量减小
增加 global_constraint_search_after_n_seconds
增加全局回环约束的计算时间(每隔多久计算一次回环约束),减少了回环的次数
减少 max_num_iterations 减小最大的迭代次数
前端参数优化
增加 voxel_filter_size 体素滤波
增加 submaps.resolution 子图分辨率
对于自适应体素滤波器,减少.min_num_points, .max_range, 增加.max_length,因此自适应体素滤波生成的点云减少
减少max_range(特别是如果数据嘈杂)减小雷达最大距离
减少 submaps.num_range_data 每个子图插入节点的数量(空间换时间)