SLAM_Karto 主要参数解析
- SLAM_Karto 主要参数解析
- 参数英文解释
- 优化方向的思考
- (1) Map_update_Interval 影响
- (2)”MinimumTravelDistance” ,”MinimumTravelHeading” 与 “ScanBufferSize” “ScanBufferMaximumScanDistance” 关系
- (3)”LinkMatchMinimumResponseFine” 和”LinkScanMaximumDistance” 与Link Match 添加相邻变的关系
- (4) 回环检测中的几个参数LoopSearchMaximumDistance,LoopMatchMinimumChainSize,LoopMatchMaximumVarianceCoarse,LoopMatchMinimumResponseCoarse,LoopMatchMinimumResponseFine
- 参考文章
常规调节时的主要参数
参数 | 解释 | 默认值 | 掌握 |
---|---|---|---|
“UseScanMatching” | 是否使用 ScanMatching 算法, 设置为true则会算法上纠正里程计的误差 | true | Y |
“UseScanBarycenter” | 使用每个 scan 的质心来查看两个 scan 的距离 | true | Y |
“MinimumTimeInterval” | 设置建立节点最小时间段, 如果超过这个时间里程计小于最小移动距离,则建立一个节点 | 3600 | Y |
“MinimumTravelDistance” | 设置最小距离,里程计移动长度超过此距离,则建立一个节点 | 0.2 | Y |
“MinimumTravelHeading” | 设置最小偏转角,如果里程计转向超过此值,则建立一个节点 | math::DegreesToRadians(10) | Y |
“ScanBufferSize” | 设置 ScanBuffer 的长度, 其应该设置为约 ScanBufferMaximumScanDistance / MinimumTravelDistance | 70 | Y |
“ScanBufferMaximumScanDistance” | 设置 ScanBuffer 的最大长度和 Size作用类似 | 20.0 | Y |
“LinkMatchMinimumResponseFine” | 设置 最小scans 连接 的最小响应阈值 | 0.8 | H |
“LinkScanMaximumDistance” | 设置两个连接的 scans 最大距离, 大于此值则不考虑两者的响应阈值 | 10.0 | H |
“LoopSearchMaximumDistance” | 搜寻 回环匹配的最大距离 | 4.0 | Y |
“DoLoopClosing” | 做回环匹配优化 | true | Y |
“LoopMatchMinimumChainSize” | 找到的回环匹配的node,必须位于大于此值的 ScanBuffer上 | 10 | Y |
“LoopMatchMaximumVarianceCoarse” | 回环匹配时粗匹配的最大协方差值, 小于此值才认为是一个可行解 | math::Square(0.4) | N |
“LoopMatchMinimumResponseCoarse” | 回环匹配时粗匹配的最小响应, 响应值大于此值将会开始粗精度的回环优化 | 0.8 | N |
“LoopMatchMinimumResponseFine” | 回环匹配最小响应阈值,大于此值才开始进行高精度匹配 | 0.8 | N |
位姿纠正时的主要参数
参数 | 解释 | 默认值 | 掌握 |
---|---|---|---|
“CorrelationSearchSpaceDimension” | 纠正位姿时使用的匹配器的大小 | 0.3 | Y |
“CorrelationSearchSpaceResolution” | 纠正位姿时使用的解析度 | 0.01 | Y |
“CorrelationSearchSpaceSmearDeviation” | 纠正位姿时将会被此值平滑 | 0.03 | H |
使用出处:
Mapper.cpp 中第 2180行
m_pSequentialScanMatcher = ScanMatcher::Create(this, m_pCorrelationSearchSpaceDimension->GetValue(),
m_pCorrelationSearchSpaceResolution->GetValue(),
m_pCorrelationSearchSpaceSmearDeviation->GetValue(), rangeThreshold);
第338行的
CorrelationGrid::CreateGrid (gridSize, gridSize, resolution, smearDeviation)
CorrelationGrid 类在 Mapper.h:820 中定义的静态类,就是创建了一个栅格图,而 SmearDrviation 是用来求栅格数值的系数
回环检测时的主要参数
参数 | 解释 | 默认值 | 掌握 |
---|---|---|---|
“LoopSearchSpaceDimension” | 回环检测时 匹配器的大小 | 9.0 | |
“LoopSearchSpaceResolution” | 回环检测时 匹配器的解析度 | 0.05 | |
“LoopSearchSpaceSmearDeviation” | 回环检测时的 平滑系数 | 0.03 |
使用出处:
Mapper.cpp 1129:
ScanMatcher::Create(pMapper, m_pMapper->m_pLoopSearchSpaceDimension-></