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

    文章

    79

    浏览量

    15642
  • python
    +关注

    关注

    57

    文章

    4858

    浏览量

    89587

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    数据可视化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

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

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

    Python拉勾网数据采集与可视化

    本文是先采集拉勾网上面的数据,采集的是Python岗位的数据,然后用Python进行可视化。主要涉及的是爬虫&
    的头像 发表于 03-13 14:18 3675次阅读
    <b class='flag-5'>Python</b>拉勾网<b class='flag-5'>数据</b>采集与<b class='flag-5'>可视化</b>

    相比Matplotlib 可视化神器Altair登场

    语言的开发者使用最多的是 matplotlib,一个很强大的可视化库,不过它的局限也非常严重,制作交互式图表也是一件难事。
    的头像 发表于 05-23 14:49 3485次阅读
    相比<b class='flag-5'>Matplotlib</b> <b class='flag-5'>可视化</b>神器Altair登场

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

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

    Python数据可视化编程实战

    Python数据可视化编程实战资料免费下载。
    发表于 06-01 14:37 29次下载

    嵌入式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 2263次阅读
    使用<b class='flag-5'>Python</b>来收集、处理和<b class='flag-5'>可视化</b>人口<b class='flag-5'>数据</b>

    分享10个适用于多个学科的Python数据可视化

    matplotlibPython可视化程序库的泰斗。经过十几年它任然是Python使用者最常用的画图库。它的设计和在1980年代被设计的商业
    的头像 发表于 08-14 10:40 1347次阅读
    分享10个适用于多个学科的<b class='flag-5'>Python</b><b class='flag-5'>数据</b><b class='flag-5'>可视化</b>库

    Python 可视化如何配色

    我们在利用Python进行数据可视化时,有着大量的高质量库可以用,比如: Matplotlib 、 seaborn 、 Plotly 、 Bokeh 、 ggplot 等等。但图表好不
    的头像 发表于 10-30 15:43 1003次阅读
    <b class='flag-5'>Python</b> <b class='flag-5'>可视化</b>如何配色