python机器人编程进阶路线,开源了!机器人技术常用的路径规划算法(含动画演示)...

【导语】:一个实现了机器人技术中常用的路径规划算法的开源库,还有动图直观演示运行过程。该库公开时间不长,在 GitHub 已有 1200+ Star。

简介

在机器人研究领域,给定某一特定任务之后,如何规划机器人的运动方式至关重要。PathPlanning 是使用 Python 实现的存储库,实现了机器人技术中常用的路径规划算法。开发者还为每个算法设计了动画来演示运行过程,相当直观清晰。

项目地址:

这个项目的贡献者目前是 4 位国内开发者。

目录结构

PathPlanning 库实现的路径规划算法包括基于搜索和基于采样的规划算法,目录结构如下:

ccad945fbfc074ff734c38f5db016838.png

下面我们直接通过开发者设计的动图了解各个算法的运行过程:

基于搜索的路径规划算法

(1)最佳路径优先搜索算法

b24973e96bd95b71ec894091efc5bd8c.gif

"""Best-First Searching@author: huiming zhou"""import osimport sysimport mathimport heapqsys.path.append(os.path.dirname(os.path.abspath(__file__)) +                "/../../Search_based_Planning/")from Search_2D import plotting, envfrom Search_2D.Astar import AStarclass BestFirst(AStar):    """BestFirst set the heuristics as the priority     """    def searching(self):        """        Breadth-first Searching.        :return: path, visited order        """        self.PARENT[self.s_start] = self.s_start        self.g[self.s_start] = 0        self.g[self.s_goal] = math.inf        heapq.heappush(self.OPEN,                       (self.heuristic(self.s_start), self.s_start))        while self.OPEN:            _, s = heapq.heappop(self.OPEN)            self.CLOSED.append(s)            if s == self.s_goal:                break            for s_n in self.get_neighbor(s):                new_cost = self.g[s] + self.cost(s, s_n)                if s_n not in self.g:                    self.g[s_n] = math.inf                if new_cost 

(2)Dijkstra搜索算法

d0e152c55f74246753853b34d8a7e259.gif

(3)A*搜索算法

949c2e808889f4ff445940ae6dd027f9.gif

(4)双向A* 搜索算法

f4c989e7ad00d14c96aad397d17a7312.gif

(5)重复 A*搜索算法

fca637a1867f310329d181262aa1932d.gif

(6)ARA* 搜索算法

29dfaeb77b967f7fd46b3c37137e9432.gif

(7)LRTA* 搜索算法

f627eab301eed83e79e33a75f111d628.gif

(8)RTAA* 搜索算法

e3e515404cf619b862d89a313713551d.gif

(9)D* 搜索算法

02c43cc34a832f896f9ed86d0403cc9e.gif

(10)终身规划 A* 搜索算法

6f7ab25378123db0cc8db85aaf4702ac.png

(11)Anytime D* 搜索算法:变动较小

b8046aec356567a6d0cc9458dd01d924.gif

(12)Anytime D* 搜索算法:变动较大

74d1f1f6ae41ea0ea8b58af9dfadaec9.png

基于采样的路径规划算法

(1)RRT 算法

83f7059bfeb70cbb5a7b8c42190e7f53.gif

(2)目标偏好 RRT 算法

ceea7c77c9c93b420445c12c44484c1d.gif

(3)RRT_CONNECT 算法

8779e70d568f5faa3b5fecf67426ae4e.gif

(4)Extended_RRT 算法

b34df578aa990d4dc4ebb1c5852ef544.png

(5)动态 RRT 算法

f3e2a359e1c4133bd072ea1221b4378d.png

(6)N = 10000 时,rrt * 算法

0eb50d36890e95ee04af6dc66a6b1c8a.png

(7)N = 1000 时,rrt*-Smart 算法

bdbdcc62805f22ac82fbad515b659341.gif

(8)FMT* 算法

b497bdda75a299778ea29cfebf173976.gif

(9)N =1000 时,Informed rrt * 算法

05a9414d03e5289ed4b41e1300ff5d65.png

(10)BIT* 算法

60f321bac6fe58efa02c7e1fac6dc043.gif

以上是开发者设计的动画,是不是很直观生动呢?对路径规划算法感兴趣的童鞋可以到项目主页详细了解。

开源前哨 日常分享热门、有趣和实用的开源项目。参与维护 10万+ Star 的开源技术资源库,包括:Python、Java、C/C++、Go、JS、CSS、Node.js、PHP、.NET 等。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值