关于cartographer中的分支定界搜索

# 关于分支定界

分支定界搜索是一种离散优化,核心问题是:

1. 节点选择;

2. 如何分支;

即约束与限界,解决问题的思路要从是否可能有最优解出发。

在分支定界中,从上到下搜索需要寻找一个度量,保证上面的结果是可以覆盖下面的,从概率的角度理解,即需要P(上) >= P(下);对于分支定界最常见的背包问题即以单位价值衡量,满足P(上) >= P(下);

# cartographer中的分支定界搜索

在cartographer中,首先不考虑平移建立了rotated_scans,然后将其在离散化成在格网坐标系下的数据,然后按照search_parameters中的搜索范围建立最低分辨率下的candidates,这些最低分辨率下的candidates即分支定界中的第一层;在此基础上,然后开始继续按照不同平移进行一层层往下搜索,搜索的分辨率随着树的深度的增加而变高(越搜越精细),衡量搜索结果的好坏为各candidates在各分辨率下的概率格网中的匹配度;

此处是比较关键的,因为要保证前文所述的度量要求。细看下去,可以发现cartographer的作者在这里使用分支定界设计的非常巧妙。主要有以下几点:

  1. 分辨率是按2的阶数一级级变高,所以粗分辨率上搜索的结果是包含它高一级分辨率上的搜索结果的。从概率格网上很容易理解;可以想象一下,大致由下图表示;
  2. 每一次分支,在2d中是分四个支,在3d中是分8个支;
  3. 一步一步不断地向真值走进,每一步都是当前分辨率下的格网边长的一半,且每一步都是低一级分辨率下的一步的一半;

关于cartographer中的分支定界搜索_第1张图片

 

你可能感兴趣的:(SLAM,cartographer,slam)