cartographer-分支定界

七个主要要点:
1)先把得分最大的节点一层层的向下分支,其他的节点一开始是不分支的。
2)每个节点都会匹配打分,用的栅格金字塔的不同层。上层的节点得分必定>=下层的节点得分,因为上层的栅格地图更粗,下层击不中的语义点,上层可能会击中,语义点击中的概率会更高,这也是分支定界可以实现的默认假设,这个假设不成立,搜索到的将不是最优解。
3)分到最低层才开始回溯,其他层是不会回溯的。
4)从开始分支到分支到最底层(回溯前),这样的子树有同样的下边界。
5)每次回溯会更新下边界,再次分支形成的子树,用的新的下边界。
6)回溯后,for循环到同层下一个节点,大于下边界向下分支,小于下边界全部截支。注意这里的下边界是节点分支时的下边界,不是最新下边界。向下进行新的分支用的新的下边界,同样大于下边界向下分支,小于下边界全部截支。
7)回溯到最高一层,for循环到下一个节点,会有角度的变化。因为最高层包含各个角度的解并且也排过序,得分低于下边界的会直接截支掉。

大致过程:
一开始,节点打分排序(得分从高到底),将得分最高四等分及排序,继续将得分最高四等分及排序,直至递归到第零层,这个过程下边界全是初始设定值0.55。第零层后回溯到第一层,返回最优节点,更新下边界得到最优解及最优得分(比如0.6)。for循环到下一个节点,同样和0.55比较,大于分支小于截支(因为这个节点都是在0.55分支出来的)。当大于0.55,四等分及排序,往下递归到第零层时,最优解已是0.6(因为进行新的分支,传的是新的最优解)。同样第零层回溯第一层,返回最优节点更新最优解(比如0.62)。for循环到下一个节点,如果后面的节点得分低于0.55,直接截支,回溯到第二层(没有更新最优解,因为递归下去的是0.55,回溯的是0.62)。for循环到下一个节点,大于0.55,四等分及排序,递归到第一层,传入最优解是0.62,最左边的节点<0.62直接就截支了,而>0.62时,将其四等分及排序,递归到第零层,第零层同样回溯更新最优解。如此往复。当回溯到最高一层时,for循环到下一个节点,有可能改变角度,继续分支定界,因为最高层的候选解,包含了不同的角度,并且也是经过排序的,某个角度得分高的,先分支定界,后面的得分低于最优得分,也会直接截支。回溯前的所有递归下边界都是一样的。每一次打分用的地图精度是不一样的,不同层障碍物会被不同的膨胀,第七层按64的模板膨胀,第六层按32的模板膨胀,以此类推。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值