
机器人路径规划
文章平均质量分 73
火山&飘雪
敲代码的假文艺青年
展开
-
RRT* 算法原理以及在二维仿真环境中的实现 -- Python代码实现
RRT* 算法是在 RRT 的基础上做出了一些改进,主要改进的点有两点:新结点生成后,优化其父结点。在生成新结点 new_node 后,首先设置一个搜索区域的半径,搜索该区域中的树结点,并计算其中的每一个结点到新结点 new_node 的距离。# 改进一:当生成新的结点时,判断在一定范围内的结点是否有比当前父结点路径更有的结点near_inds = self.find_near_nodes(new_node)new_node = self.choose_parent(new_node, n原创 2021-02-17 16:46:43 · 3506 阅读 · 3 评论 -
RRT路径规划算法在二维仿真环境中的应用 -- Python代码实现
在上一节中,介绍了 RRT 算法的原理,这一节将一步步实现 RRT 路径规划算法在二维环境中的路径规划,来进一步加深对 RRT 算法的理解。二维环境的搭建我们将搭建下图所示的二维环境,绿色点为起点(0,0),红色点为目标点(15, 12),黑色的圆表示障碍物。实现上述环境的代码如下:start = [0, 0] # 起点goal = [15, 12] # 终点# 障碍物 (x, y, radiu)obstacle_list = [ (3, 3, 1.5),原创 2021-02-16 21:33:22 · 4939 阅读 · 6 评论 -
RRT 算法原理以及过程演示
RRT 适用于涉及非完整约束场合下的路径规划问题。RRT 算法为一种递增式的构造方法,在构造过程中,算法不断在搜索空间中随机生成状态点,如果该点位于无碰撞位置,则寻找搜索树中离该节点最近的结点为基准结点,由基准结点出发以一定步长朝着该随机结点进行延伸,延伸线的终点所在的位置被当做有效结点加入搜索树中。这个搜索树的生长过程一直持续,直到目标结点与搜索树的距离在一定范围以内时终止。随后搜索算法在搜索树中寻找一条连接起点到终点的最短路径。下面用一个示例来说明RRT算法的过程。初始化一个环境,包括地图,起原创 2021-02-09 20:34:29 · 27806 阅读 · 13 评论 -
A* 算法原理以及在二维环境地图中的应用 -- Python 代码实现
上节学习了 Dijkstra 路径规划规划算法,虽然能够找到最短的路径,但是其遍历的搜索过程具有盲目性,因此效率比较低,计算量非常大。而实际中电子地图的结点数量是非常庞大的,Dijkstra 算法在有限的时间内可能无法搜索到目标点,此时就要用到启发式搜索。启发式搜索就是在搜索的过程中加入与问题有关的的启发式信息,引导搜索朝着最优的方向前进。这样就可以忽略大量与启发式信息无关的结点,提高搜索效率。在启发式搜索中,对结点的估价十分重要,采用不同的估价标准会产生不同的结果。A*算法是建立在 Dijkstra原创 2021-02-06 15:05:02 · 3484 阅读 · 2 评论 -
Dijkstra 路径规划算法在二维仿真环境中的应用 -- Python代码实现
在上一节中,介绍了 Dijkstra 算法的原理以及在图中的应用,这一节将一步步实现 Dijkstra 路径规划算法在二维环境中的路径规划,来进一步加深对 Dijkstra 算法的理解。所需要用到的 python 库为 matplotlib 和 math。二维环境的搭建我们将搭建下图所示的二维环境,其中黑色原点围成的为墙壁障碍物,绿色点为起点(30, 30),红色点为目标点(70,70)。后面需要将所示环境地图转换为栅格地图,所以在此设置栅格地图中栅格的大小为:1.0, 设置移动机器人的半径为: 2.原创 2021-02-06 10:48:19 · 4116 阅读 · 9 评论 -
Dijkstra 路径规划算法原理详解及 Python 代码实现
荷兰数学家 E.W.Dijkstra 于 1959 年提出了 Dijkstra 算法,它是一种适用于 非负权值 网络的 单源最短路径算法,同时也是目前求解最短路径问题的理论上最完备、应用最广的经典算法。它可以给出从指定节点到图中其他节点的最短路径,以及任意两点的最短路径。Dijkstra 算法是一种基于 贪心策略 的最短路径算法,该种算法的原理是按照路径长度逐点增长的方法构造一棵路径树,从而得出从该树的根节点(即指定节点)到其他所有节点的最短路径。Dijkstra 算法的 核心思想 是:设置两个点的集原创 2021-02-03 21:32:04 · 22122 阅读 · 11 评论