Google Cartographer 配置参数详解
cartographer 项目地址: https://gitcode.com/gh_mirrors/car/cartographer
Google Cartographer 是一个功能强大的实时同步定位与地图构建(SLAM)系统,其性能很大程度上依赖于各种配置参数的合理设置。本文将深入解析 Cartographer 的核心配置参数,帮助开发者更好地理解和调优系统。
1. 基础配置参数
1.1 Ceres 求解器配置
Ceres Solver 是 Cartographer 后端优化使用的非线性最小二乘求解器,其配置参数位于 cartographer.common.proto.CeresSolverOptions
中:
use_nonmonotonic_steps
:是否使用非单调步长,影响优化收敛方式max_num_iterations
:最大迭代次数,控制优化时间num_threads
:求解器使用的线程数
1.2 地图构建器配置
MapBuilderOptions
控制整个 SLAM 系统的基础行为:
use_trajectory_builder_2d
/use_trajectory_builder_3d
:选择 2D 或 3D 建图模式num_background_threads
:后台计算线程数,影响并行处理能力
2. 2D SLAM 核心配置
2.1 局部轨迹构建器
LocalTrajectoryBuilderOptions
控制 2D 局部 SLAM 行为:
min_range
/max_range
:激光雷达有效测量范围voxel_filter_size
:点云降采样体素大小use_online_correlative_scan_matching
:是否使用在线相关扫描匹配imu_gravity_time_constant
:IMU 重力方向估计的时间常数
2.2 子地图配置
SubmapsOptions
控制 2D 子地图的生成:
resolution
:地图分辨率(米/像素)num_range_data
:每个子地图包含的扫描数据量
2.3 扫描匹配器
Cartographer 提供了多种扫描匹配算法配置:
-
FastCorrelativeScanMatcherOptions
:快速相关扫描匹配器参数linear_search_window
:线性搜索窗口大小angular_search_window
:角度搜索窗口大小
-
CeresScanMatcherOptions
:基于 Ceres 的扫描匹配器occupied_space_weight
:占据空间权重translation_weight
:平移权重rotation_weight
:旋转权重
3. 3D SLAM 核心配置
3.1 3D 局部轨迹构建器
LocalTrajectoryBuilderOptions
的 3D 版本特有参数:
high_resolution_adaptive_voxel_filter_options
:高分辨率点云滤波rotational_histogram_size
:旋转直方图大小
3.2 3D 子地图配置
3D 子地图具有双分辨率特性:
high_resolution
:高分辨率地图格大小low_resolution
:低分辨率地图格大小high_resolution_max_range
:高分辨率地图最大范围
4. 位姿图优化配置
4.1 约束构建器
ConstraintBuilderOptions
控制闭环检测:
sampling_ratio
:约束采样比例阈值min_score
:扫描匹配最低分数阈值loop_closure_translation_weight
:闭环平移约束权重
4.2 优化问题配置
OptimizationProblemOptions
控制后端优化:
huber_scale
:Huber 损失函数缩放因子acceleration_weight
:IMU 加速度项权重local_slam_pose_rotation_weight
:局部 SLAM 旋转权重
5. 运动滤波配置
MotionFilterOptions
控制何时插入新的扫描数据:
max_time_seconds
:最大时间间隔max_distance_meters
:最大移动距离max_angle_radians
:最大旋转角度
配置建议
- 分辨率选择:室内环境通常使用 0.05m 分辨率,室外可使用 0.1-0.2m
- 扫描匹配:在线相关扫描匹配可提高初始位姿估计质量
- IMU 参数:根据 IMU 质量调整重力时间常数
- 计算资源:根据 CPU 核心数合理设置线程数
通过合理配置这些参数,可以显著提升 Cartographer 在不同场景下的建图质量和实时性能。建议在实际应用中根据具体硬件和环境特点进行参数调优。
cartographer 项目地址: https://gitcode.com/gh_mirrors/car/cartographer
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考