cartographer学习之调参小结

文章介绍了Cartographer在SLAM过程中的参数调整对算法性能的影响,包括雷达参数、体素滤波大小、扫描匹配权重、子图与优化参数等。同时,提出了降低延迟、减少计算量和内存的方法,以及提升纯定位模式稳定性的参数调整建议。
摘要由CSDN通过智能技术生成

cartographer使用过程中也涉及到了很多的参数调整,不同的参数对算法的影响是不同的。这里简单记录一下一些常调的参数以及一些比较重要的参数。

1、常调的参数

TRAJECTORY_BUILDER_2D.min_range = 0.3
TRAJECTORY_BUILDER_2D.max_range = 100
TRAJECTORY_BUILDER_2D.min_z = 0.2

雷达参数的最大最小距离,以及z轴的高度。单线的时候min_z需要设置为负数或者可以不用设置min_z。

TRAJECTORY_BUILDER_2D.voxel_filter_size = 0.02

体素滤波的大小。

TRAJECTORY_BUILDER_2D.ceres_scan_matcher.occupied_space_weight = 10
TRAJECTORY_BUILDER_2D.ceres_scan_matcher.translation_weight = 1
TRAJECTORY_BUILDER_2D.ceres_scan_matcher.rotation_weight = 1

扫描匹配相关的几个权重。cartographer没有几个可以调整建图效果的参数,这几个应该是为数不多会影响到建图效果的参数。如果将下述两个改大,算法会倾向于相信预测的位姿。将第一个改大,算法会倾向于相信扫描匹配的结果。

TRAJECTORY_BUILDER_2D.submaps.num_range_data = 80
TRAJECTORY_BUILDER_2D.submaps.grid_options_2d.resolution = 0.1

子图相关的参数,num_range_data代表一个子图插入多少数据,实际数据会在这个基础上乘以2。resolution为地图分辨率。

POSE_GRAPH.optimize_every_n_nodes = 160 --2倍的num_range_data以上
POSE_GRAPH.constraint_builder.sampling_ratio = 0.3
POSE_GRAPH.constraint_builder.max_constraint_distance = 15
POSE_GRAPH.constraint_builder.min_score = 0.48
POSE_GRAPH.constraint_builder.global_localization_min_score = 0.6

优化相关的参数,optimize_every_n_nodes代表插入多少个节点优化一次,一般设置为2倍的num_range_data。sampling_ratio为优化的采样频率。max_constraint_distance表示回环检测的最大约束距离,min_score为回环检测的阈值。global_localization_min_score表示大回环匹配的阈值。如果建图时发现回环检测效果不好,存在误匹配的情况,可以提高这两个阈值。

2、降低延迟与减少计算量

2.1、前端部分
减小max_range,减少了需要处理的点数,在雷达数据远距离的点不准时一定要减小这个值。
增大voxel_filter_size,相当于减小了需要处理的点数。
增大submaps.resolution,相当于减小了匹配的搜索量。
对于自适应体素滤波,减小min_num_points与max_range,增大max_length,相当于减小了需要处理的点数。
2.2、后端部分
增大optimize_every_n_nodes,降低优化频率,减小计算量。
增大MAP_BUILDER.num_background_threads,增加计算速度。线程数,可以降低延迟。
减小global_sampling_ratio,减小计算全局约束的频率。
减小constraint_builder.sampling_ratio,减少了约束的数量。
增大constraint_builder.min_score,减少了约束的数量。
减小分支定界搜索窗的大小,包括linear_xy_search_window,linear_z_search_window,angular_search_window
增大global_constraint_search_after_n_seconds,减小计算全局约束的频率。
减小max_num_ietrations,减小迭代次数

3、降低内存

增大子图分辨率submaps.resolution

这是唯一可以降低内存的参数。

4、降低纯定位时错误重定位的概率

可以通过修改一部分pose_graph.lua文件下的参数提高纯定位模式的稳定性:

4.1、提高optimize_every_n_nodes,减少优化的次数。
4.2、减小sampling_ratio,减少了计算约束的次数。
4.3、减小max_constraint_distance,减少了计算约束的距离。
4.4、提高min_score,减小了计算约束的数量。
4.5、提高global_localization_min_score,减小了计算约束的数量。
4.6、提高global_constraint_search_after_n_seconds,减少了回环的次数。
### 回答1: cartographer参数配置是指在进行地图绘制和制图过程中,根据具体需求对cartographer(地图绘制软件)进行设置和调整的过程。通过合理配置参数,可以达到更好的绘图效果和符合实际需求的地图制作。参数配置涉及到包括投影方式、坐标系统、地形高程、符号样式等多个方面。 首先,投影方式是参数配置中重要的一部分,可以选择不同的投影方式,比如等距圆柱投影、等面积投影、等角圆柱投影等,以适应实际应用需求。其次,坐标系统的选择也很关键,可以根据地图绘制的范围和精度选择合适的坐标系,如WGS84坐标系、Web墨卡托投影坐标系等。地形高程参数配置可以根据地理要素的高度信息进行设置,如山脉、高原、海洋等,可以使用等高线、渐变色等方式进行显示。符号样式的配置可以根据绘制目的和地图主题进行选择和调整,如图标、颜色、线型、填充样式等。 此外,还可以根据具体绘图需求进行更细致的参数配置。比如,地图比例尺、标注字体、注记位置、边框样式、图例等配置项。通过合理配置这些参数可以达到更好的地图效果和可视化效果。 总之,cartographer参数配置是地图绘制过程中的重要一环,通过合理设置各种参数可以制作出符合实际需求的地图,从而更好地展示和传达地理信息。 ### 回答2: Cartographer是谷歌开发的一种强大的SLAM算法,用于构建3D地图。在使用Cartographer进行参数配置时,可以根据具体的应用需求不同来进行相应的设置。 首先,可以调整Cartographer的传感器配置参数。这包括传感器的帧率、分辨率等参数。帧率设置越高,可以获得更多的数据,但也会增加处理数据的复杂度。分辨率可以根据需要进行调整,高分辨率可以获得更多细节,但也会占用更多的存储空间。 其次,需要对Cartograher的地面过滤器参数进行配置。地面过滤器可用于去除地面的杂乱数据,使地图更加准确。地面过滤器的参数设置包括地面点云高度阈值、地面点云最小点数等。这取决于实际地面的特征和要求。 另外,还可以配置Cartographer的回环检测参数。回环检测是指在建立地图过程中,检测到之前已经经过的地方,并将其与新观测的数据进行匹配,从而完善地图。回环检测参数的设置包括回环检测范围、回环关联的匹配阈值等。这些参数的设置直接影响到回环检测的准确性和效率。 最后,可以根据应用需求调整Cartograher的运行速度和精度之间的权衡参数。这些参数可以根据具体的情况进行调整,包括优化器迭代次数、点云配准的误差阈值等。通过调整这些参数,可以在满足实际应用需求的同时提高运行效率或提高地图的精度。 总之,Cartographer参数配置是一个根据具体应用需求进行调整的过程,通过合理配置参数,可以提高地图构建的准确性和效率,满足不同应用场景下的需求。 ### 回答3: cartographer是谷歌开发的一种用于构建实时二维或三维地图的SLAM(即时定位与地图构建)算法。该算法能够结合多个传感器的数据,如激光雷达和相机,来进行地图的构建和定位。 在使用cartographer时,有一些参数配置可以根据具体的应用场景进行调整,以达到更好的地图构建和定位效果。 其中一些重要的参数配置包括: 1. map_resolution(地图分辨率):该参数决定了地图中每个栅格的大小。较小的分辨率可以捕捉更多的细节,但会增加地图的大小和计算量。 2. num_submaps(子地图数量):cartographer将整个地图划分为多个子地图,该参数配置了子地图的数量。较大的值可以提高地图的准确性,但也会增加计算量。 3. submap_size(子地图大小):决定了每个子地图的尺寸。较大的尺寸可以包含更多的环境信息,但也会增加计算和存储开销。 4. scans_per_fog_update(每次迭代更新的扫描次数):用于控制每次迭代更新时使用的激光雷达扫描次数。较大的值可以提高地图的质量,但会增加计算开销。 5. matching_submaps_options(子地图匹配选项):用于配置子地图之间的匹配方式,如匹配口大小和难度。根据环境特点进行调整,可以提高地图匹配的准确性。 6. motion_filter_options(运动滤波器选项):用于筛选掉不符合运动规律的激光雷达数据点,以减少噪音和误差。根据传感器和环境特点进行调整,可以提高定位的准确性。 以上是一些常见的cartographer参数配置,根据具体的应用需求和环境特点,可以对这些参数进行调整,以达到更好的地图构建和定位效果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一叶执念

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值