0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于过Python+matplotlib数据可视化路径规划算法实现

新机器视觉 来源:新机器视觉 2023-11-09 15:03 次阅读

这里我们通过Python编程+matplotlib数据可视化来实现路径规划算法,这里我们主要实现A Star算法、D Star算法、Dijkstra算法、RRT算法在2D空间下3D空间下的实现。

A Star算法的设计与实现

Astar潜在地搜索图中一个很大的区域。和Dijkstra一样,Astar能用于搜索最短路径。和BFS一样,Astar能用启发式函数引导它自己。在简单的情况中,它和BFS一样快。

程序入口部分我们指定起始点和目标点,通过调用定义的Astar类来进行路径录规划,最后通过plot进行可视化绘制显示,如图所示。

393bee1e-7eab-11ee-939d-92fbcf53809c.png

类的初始化内容如下,主要是传入参数以plot点坐标和算法类型。这里以dict的方式存储,plot通过关键字进行索引找寻数据,如图所示。

39543352-7eab-11ee-939d-92fbcf53809c.png

通过A Star算法搜索路径点并加入显示,如图所示。

396fabd2-7eab-11ee-939d-92fbcf53809c.png

最终路径求解如下,如图所示。

3988787e-7eab-11ee-939d-92fbcf53809c.png

在A Star算法的3D空间路径搜索部分,我们添加全部所有的方位点Direction,这里对所有的求解方位,如图所示。

399dbbb2-7eab-11ee-939d-92fbcf53809c.png

其余部分内容和2D A Star求解一样,这是增加了求解实现描述显示,求解效果如下,如图所示。

39b95f02-7eab-11ee-939d-92fbcf53809c.png

39d1175a-7eab-11ee-939d-92fbcf53809c.png

D Star算法的设计与实现

D Star算法对在移动环境中的寻路也比较高效,向当前节点迁移时,可以只考察最近路线上的结点以及相邻节点的变化状况,包括机器人寻路等结果。

这里我们依旧是指定起始点和目标点,通过调用DStar类的方式实现算法的验证和分析,如图所示。

39eec016-7eab-11ee-939d-92fbcf53809c.png

类的构造函数部分,调用Plotting类实现图表的图表的初始化构造,并声明相关阈值变量存储区,如图所示。

3a0285ec-7eab-11ee-939d-92fbcf53809c.png

这部分是算法的实现核心,主要是“贪心策略”迭代找寻更优的求解。如果发现比当前更短的路径,则进行迭代,这里可能向前迭代,也可能向后迭代。D Star算法核心实现如图所示

3a166a80-7eab-11ee-939d-92fbcf53809c.png

Dstar算法对2D空间的求解如图所示:

3a2e5172-7eab-11ee-939d-92fbcf53809c.png

D Star算法对3D空间的求解如如图所示:

3a49b714-7eab-11ee-939d-92fbcf53809c.png

Dijkstra算法的设计与实现

Dijkstra算法也可以算是用贪心思路进行的,首先把从起点到每个节点之间的一段距离都保存留下来并寻找一个到v的,之后松弛一下再重新寻找到v的,所谓的放松方式就是,先遍历一下把刚才发现的相距比较近的一点作为中转站会不会更近,如果还更近就再调节一段距离,这样当把所有的节点都找遍了以后,就保存并留下了从起点到其他每个节点之间的最短距离。

和前两个一样,在指定起始点和目标点之后,调用定义的Dijkstra类实现路径的搜索规划,最终通过plot类进行可视化显示。图可函数如图所示。

3a66fb6c-7eab-11ee-939d-92fbcf53809c.png

Dijkstra算法较为较为简单,这是依据数据结构的基本构造进行实现,核心代码如如图所示。

3a7b315e-7eab-11ee-939d-92fbcf53809c.png

Dijkstra算法2D路径规划如如图所示。

3a968026-7eab-11ee-939d-92fbcf53809c.png

Dijkstra算法3D路径规划效果如图所示:

3aae988c-7eab-11ee-939d-92fbcf53809c.png

RRT算法的设计与实现

RRT(快速寻找随机树)是一个很普通的办法,无所谓任何机器人种类、无所谓自由度是多少、也无所谓约束有多繁复,都可以使用。

并且它的基本原理非常简洁,这是其在机器人应用领域受欢迎的主要因素之一。但是它的缺陷也非常突出,它得到的路通常质量都不会非常好,例如可能具有棱角,不平滑,通常也远离最优路线。

RRT算法是基于抽样路径规划,它在3D空间下的路径规划效果较好。核心功能函数如图所示。

3ac1f148-7eab-11ee-939d-92fbcf53809c.png

RRT算法在3D空间下规划效果如图所示。

3ae1a204-7eab-11ee-939d-92fbcf53809c.png

编辑:黄飞

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 路径规划
    +关注

    关注

    0

    文章

    78

    浏览量

    15287
  • python
    +关注

    关注

    51

    文章

    4675

    浏览量

    83466

原文标题:路径规划算法实现

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    动态规划算法

    动态规划算法资料。
    发表于 08-30 20:44

    数据可视化Python-matplotlib概述

    数据可视化(二):Python-matplotlib
    发表于 07-22 14:58

    python数据可视化的方法和代码

    Python数据可视化汇总
    发表于 10-14 14:59

    Python数据可视化专家的七个秘密

    分享 Python数据可视化专家的七个秘密
    发表于 05-15 06:43

    python数据可视化之画折线图

    python数据可视化之画折线图,散点图
    发表于 05-27 08:09

    Python数据可视化

    Python数据可视化:网易云音乐歌单
    发表于 07-19 08:30

    你知道有哪几种常见的车辆路径规划算法吗?

    如何去提高汽车的主动安全性和交通安全性?从算法上解读自动驾驶是如何实现的?有哪几种常见的车辆路径规划算法
    发表于 06-17 10:56

    基于路径跟踪方法的路径规划算法

    为解决拖挂式移动机器人系统路径规划算法精准性低、稳定性差和无法考虑系统间安全性等的问题,提出一种基于路径跟踪方法的路径规划算法。该
    发表于 12-04 14:18 6次下载
    基于<b class='flag-5'>路径</b>跟踪方法的<b class='flag-5'>路径</b><b class='flag-5'>规划算法</b>

    机器人技术中常用的一些路径规划算法

    最近,GitHub 上开源了一个存储库,该库实现了机器人技术中常用的一些路径规划算法,大部分代码是用 Python 实现的。值得一提的是,开
    的头像 发表于 12-28 14:25 6645次阅读
    机器人技术中常用的一些<b class='flag-5'>路径</b><b class='flag-5'>规划算法</b>

    水下航行器自主巡航的路径规划算法实现

    路径规划算法是自主水下航行器(AUV)完成水下自主巡航的核心算法之一。分别综述了基于环境建模和路径搜索两类AUⅣ路径
    发表于 04-09 16:01 8次下载
    水下航行器自主巡航的<b class='flag-5'>路径</b><b class='flag-5'>规划算法</b><b class='flag-5'>实现</b>

    嵌入式GIS中最优路径规划算法研究与实现

    嵌入式GIS中最优路径规划算法研究与实现(嵌入式开发项目经理)-嵌入式GIS中最优路径规划算法研究与实现
    发表于 07-30 12:49 4次下载
    嵌入式GIS中最优<b class='flag-5'>路径</b><b class='flag-5'>规划算法</b>研究与<b class='flag-5'>实现</b>

    A星路径规划算法完整代码资料汇总

    A星路径规划算法完整代码资料汇总
    发表于 12-03 17:16 11次下载

    使用Python来收集、处理和可视化人口数据

    如何使用Python这一流行的编程语言来收集、处理和可视化印度和中国的人口数据呢?本文将向你介绍一些基本的步骤和技巧,帮助你掌握Python进行可视
    的头像 发表于 06-21 17:08 956次阅读
    使用<b class='flag-5'>Python</b>来收集、处理和<b class='flag-5'>可视化</b>人口<b class='flag-5'>数据</b>

    机器人基于搜索和基于采样的路径规划算法

    基于搜索的路径规划算法已经较为成熟且得到了广泛应用,常常被用于游戏中人物和移动机器人的路径规划
    发表于 10-13 14:23 198次阅读
    机器人基于搜索和基于采样的<b class='flag-5'>路径</b><b class='flag-5'>规划算法</b>

    机器人技术中常用的路径规划算法的开源库

    如何规划机器人的运动方式是机器人开发领域的一大课题,本文分享GitHub的一个机器人技术中常用的路径规划算法的开源库,并用动图直观演示运行过程。其中大部分代码由Python
    的头像 发表于 10-21 09:36 455次阅读
    机器人技术中常用的<b class='flag-5'>路径</b><b class='flag-5'>规划算法</b>的开源库