移动机器人路径规划算法介绍及A*算法详解

综述

随着人工智能的兴起,移动机器人逐渐走入了更多人的视线,ML和DL为移动机器人的导航及定位算法提供了很多的重要参考。对于移动机器人的研发最为基本的问题就是如何对机器人的运动进行控制,在目前众多的机器人路径规划算法中,针对静态、动态环境存在着很多不同的解决方案,本文将对现存的主流算法进行大致的讲解和优劣分析。同时,对于在静态环境中广泛使用的A*算法,进行详细的解读。

路径规划算法总结

下面是现在流行的主要路径规划算法:

  1. 广度优先算法(Breadth-First-Search, BFS): 广度优先算法实际上已经能够找到最短路径,BFS通过一种从起点开始不断扩散的方式来遍历整个图。可以证明,只要从起点开始的扩散过程能够遍历到终点,那么起点和终点之间一定是连通的,因此他们之间至少存在一条路径,而由于BFS从中心开始呈放射状扩散的特点,它所找到的这一条路径就是最短路径。
  2. 启发式搜索:改变广度优先算法原来队列的FIFO模式,给不同的点加入优先级,可以知道,距离终点的曼哈顿距离越小的点,该点的优先级越高。然而这导致了先入为主地将最早遍历路径当成最短路径。
  3. Dijkstra算法:主要思想是从多条路径中选择最短的那一条:我们记录每个点从起点遍历到它所花费的当前最少长度,当我们通过另外一条路径再次遍历到这个点的时候,由于该点已经被遍历过了,我们此时不再直接跳过该点,而是比较一下目前的路径是否比该点最初遍历的路径花费更少,如果是这样,那就将该点纳入到新的路径当中去。
    优点:肯定找到最短路径,算法简单。
    缺点:需要遍历并记录所有节点。
  4. A*算法 :我们需要算法有方向地进行扩散(启发式),另一方面我们需要得到尽可能最短的路径,因此A*就诞生了, 它结合了Dijkstra和启发式算法的优点,以从起点到该点的距离加上该点到终点的估计距离之和作为该点在Queue中的优先级。在下文会详细介绍此算法。
    优点:比dijkstra快,因评价函数存在,算法会放弃掉图的边缘节点。
    缺点:h函数的选择决定了算法速度。
  5. LPA_star :是A_star的增量版本,它可以适应图形中的变化而无需重新计算整个图形,方法是在当前搜索期间更新前一次搜索的g值(从开始起的距离),以便在必要时进行更正。与A_star一样,LPA*使用启发式算法,该启发性来源于从给定节点到目标路径代价的更低边界。如果保证是非负的(零可以接受)并且从不大于到目标的最低路径的代价,则允许该启发式。
    启发式搜索和增量式搜索的区别在于,启发式搜索是利用启发函数来对搜索进行指导,从而实现高效的搜索,启发式搜索是一种“智能”搜索,典型的算法例如A_star算法、遗传算法等。增量搜索是对以前的搜索结果信息进行再利用来实现高效搜索,大大减少搜索范围和时间,典型的例如LPA_star、D_star Lite算法等。
  6. D*路径搜索算法: “D_star算法”的名称源自 Dynamic A Star,最初由Anthony Stentz于“Optimal and Efficient Path Planning for Partially
  • 5
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值