聊聊路径规划算法(二)——图搜索法

图搜索法通过利用已有的环境地图和版图中的障碍物等数据信息建立,由起点至结束点的可行路线。一般分为深度最优和广度最优二种走向。深度优先算法优先拓展搜索深度较大的节点,因此能够更迅速的获得下一个可行路径,不过深度优先算法获取的第一个路径通常是比较长的路径。而广度优先算法则优先拓展深入较小的节点,呈波形的检索方式。因此广度优先算法检索到的第一个路径通常是最短路径。

可视图法

可视图法是由Lozano-PErEz和WESlEy于1979年所创立的,是机器人全局运动计划中的典型算法。在视野法中,机器人用点来表示,阻碍物用多角形表示。把起始点S、目标点G,以及多角形阻碍物的所有顶点(设V零是各个阻碍物的顶端组成的整体)进行了综合联系,并规定起始点和阻碍物各顶部相互之间、目标点与阻碍物各顶部相互之间和各个阻碍物顶部和顶端相互之间的连接都不得通过阻碍物,即直线是"可视的"。给图中的所有边赋值,然后建立了可视地图G(V,E),并且点集V=∪{S,G},E为每个弧段中即可视边的总和。然后釆如果用一些优化计算就找到了从开始点S到目标点G的最优预测路径,那么再经过累加并对比上述直线的距离就可以得出了从开始点到目标点的到V路径,如图所示。


因此看来,用视图法规定的避障路线重点就是建立可视图,而建立可视图的关键性问题则就是对障碍物各个顶点清晰度的确定。判断时大致包括以下二个情况,相同障碍物中间各节点间能见度的判断和各个障碍物中间顶点可见性的判断。

可视图法虽然能获得较短路线,但搜索时长过久,而且没有灵敏度,亦即一旦自动化机器人的起始点和目标地点都出现了变化,就需要重新建立可视图,相当困难。所以可视野法更适用于多边形障碍物,对圆障碍物则没有。切线图法和Voronoi图法[12]对可视野法做出了改良。切线图法用障碍物的切线代表圆弧,所以从开始点到目标地点的最短路线的图,移动机器人需要基本完全贴近障碍物进行。其缺陷是一旦在进行监控流程中出现了位置误差,则自动机器人撞击障碍物的概率将会非常高。而Voronoi图法用尽量避开障碍物和墙壁的路线代表圆弧。这样,从启动点到目标地点的路程就会增加,在使用这个操控方法之后,虽然形成了位置误差,但移动机器人却并没有遇到障碍物。

 Dijkstra算法

Dijkstra计算由荷兰最著名的计算机物理学家艾兹赫尔.戴克斯特拉(Edsger Wybe Dijkstra)给出,通过预测从初始点至空间中任意一个点的最短距离,使其能够获取全局最佳路径。计算从开始站出发的附近4或8个站点至新开始站点的路程,然后再将新算距离的最后一点作为计算节点,计算从附近一点至新开始站点的路程,这个计算就像波阵面一样在整个距离里传输,直至抵达目标地点。这就能够算得到机器人的最短时间路程。

Dijkstra算法是一个典型的广度最大化的状态空间搜索算法,该算法能够从起始位置出发逐层一层的寻找整个自由空间,直至最后抵达目标地点。这会增加运算时间和数据量。而另一方面,依靠搜索而得到的大量数据对于机器人驾驶者来说又是毫无意义的。

点击聊聊路径规划算法(二)——图搜索法 - 古月居 可查看全文

相关推荐

  1. 路径规划):Dijkstra算法

    2024-04-22 00:08:03       60 阅读
  2. 搜索算法A*、Dijkstra在路径规划中的应用

    2024-04-22 00:08:03       24 阅读
  3. 人工势场路径规划算法

    2024-04-22 00:08:03       22 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-22 00:08:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-22 00:08:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-22 00:08:03       82 阅读
  4. Python语言-面向对象

    2024-04-22 00:08:03       91 阅读

热门阅读

  1. OpenMP:变量作用域

    2024-04-22 00:08:03       37 阅读
  2. 代码随想录算法训练营day41

    2024-04-22 00:08:03       32 阅读
  3. Mysql优化

    2024-04-22 00:08:03       35 阅读
  4. spring的refresh

    2024-04-22 00:08:03       38 阅读
  5. 如何防止服务器被攻击

    2024-04-22 00:08:03       34 阅读
  6. CSS 预处理器

    2024-04-22 00:08:03       39 阅读
  7. CSS 伪元素和伪类的用法和区别

    2024-04-22 00:08:03       38 阅读
  8. 开发语言漫谈-rust

    2024-04-22 00:08:03       34 阅读