栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

Day11学习笔记

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Day11学习笔记

运动规划 概率图路线算法

概率图路线算法是完备的,当地图有解的时候,它是一定能给出解的。
当我们直接对地图使用A算法时,实际上是对一张布满网格的地图进行图搜索,这是一张非常复杂的图,我们要想改进算法,搜索前需要讲栅格地图换成一种更简单的概率地图。这是PRM,PRM分为两个阶段。
Learning阶段,将一张地图采样,随机采样,根据一些规则,将点连成线。
query阶段,搜索阶段,使用A
算法进行路径搜索。
这样子虽然是对A*的算法效率有所提升,但这里还是有可以改进的空间。Learning在连成将概率点连成线的时候,不也可以在路线生成的时候同时也做一些规划吗?也就是说Learning和query做的工作有所冗余。我们可以在去掉query直接在learning上做一些规划。这里介绍一种这样的算法,Lazy collision-checking,这是在采样连线后直接按照距离最短的规定返回一条路径,然后做一些检测,是否穿过了障碍物,如果是的话,删掉通过障碍物的几条路径,重新选择,然后再返回再检测,这样就大大减少了路径规划的时间。
接下来介绍的是基于采样的Rapidy-exploring Random Trees. RRT算法。
RRT算法是在随机采样的点上建立起路径,直到终点被归纳进树里面,然后根据父节点直接返回一条路径.
RRT伪代码:

RRT的缺点是:

    在需要通过一些狭窄的地形下,随机采样落到狭窄地形的概率比较小, 所以搜索时间会大大增加.不一定是最短路径


解决方法:
Kd-tree:

当新增加一个点时,kd-tree能帮助你快速找到离它最近的一个.通过一种特殊的储存结构能够快速找出最近的一个节点,
Bidirectional RRT:
在narrow case 的情况下, 让终点长出两颗树来再进行搜索.
或者直接改进采样函数, 使它具有启发性.

C++ 函数调用运算符重载

其实就是重载小括号,这使得它的调用起来非常像函数,因此也被称为仿函数。

匿名函数对象

类名加()。如 Person(),这就是创建一个匿名对象,在此行结束后立刻被释放。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/784229.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号