当前位置: 首页 > news >正文

基于Dijkstra、A*和动态规划的移动机器人路径规划(Matlab代码实现)

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

目录

💥1 概述

📚2 运行结果

📝2.1 Dijkstra算法

📝2.2 A*算法

📝2.3 动态规划

🎉3 Matlab代码实现

💥1 概述

     在基于采样的方法中,需要在落在给定地图的未占用区域的地图上生成一定数量的点。然后,我们计算哪个节点与哪些节点有连接。通过这种方式,获得了生成的随机点的无向图。

    为了生成这些点,可以使用一些复杂的方法来尽可能聪明地在地图周围分布节点。但是在那个存储库中,选择通过均匀随机来生成它们。生成了100个节点,这些节点位于地图的自由区域。有给定的映射,生成的节点及其连接。

      通过Dijkstra、Astar和动态规划测试了102个节点图路径规划。

📚2 运行结果

📝2.1 Dijkstra算法

📝2.2 A*算法

📝2.3 动态规划

部分代码:

function [map, nodelocation]= generate_node(map,nnode)

% merge vertices of all obstacle
obsx=map.pgx{1};
obsy=map.pgy{1};
for i=2:length(map.pgx)
    obsx=[obsx NaN map.pgx{i}];
    obsy=[obsy NaN map.pgy{i}];
end
map.obsx=obsx;
map.obsy=obsy; 
% set nodelocation to all zero
nodelocation=zeros(nnode,2);
% generate nodes
n=1;
while (n<=nnode)
    % generate random two number in range of map's border
    rx=rand* (map.xrange(2)-map.xrange(1)) + map.xrange(1);
    ry=rand* (map.yrange(2)-map.yrange(1)) + map.yrange(1);
    state=0;
    % if this node is not inside any obstacle
    if ~inpolygon(rx,ry,obsx,obsy)
        % add this location to nodelocation list
        nodelocation(n,1)=rx;
        nodelocation(n,2)=ry;
        n=n+1;
    end
end
hold on;
plot(nodelocation(:,1),nodelocation(:,2),'r*');
hold off;

 

🎉3 Matlab代码实现

相关文章:

  • 【无标题】Java_Se 数据变量与运算符
  • 骑砍2霸主MOD开发(26)-使用TrfExporterBlender制作TRF文件
  • 集群聊天服务器项目【C++】(二)Json的简单使用
  • react 基础语法
  • 【重学 MySQL】二十七、七种 join 连接
  • 2024第三届大学生算法大赛 真题训练2 解题报告 | 珂学家 | FFT/NTT板子
  • vmware中Numlock和caplock一直闪烁(更新时间24/2/28)
  • Kafka集群详解
  • 2024年sCrypt编程马拉松即将开幕
  • Spring Boot项目误将Integer类型写成int来进行传参
  • docker学习快速入门
  • 主数据管理是数字化转型成功的基石——江淮汽车案例分享
  • 【C语言】文件操作(万字详解,教你掌握文件操作)
  • 【数据结构】-----二叉树(递归、层次实现二叉树的遍历)
  • Java安全框架(课时二十三)笔记内容十三
  • 一种更优雅书写Python代码的方式
  • Linux学习-02-Linux的安装
  • PicoDet 训练自己的数据集(COCO)
  • css flex布局 —— 项目属性 flex-shrink
  • 以梦为马,以汗为泉,不忘初心,不负韶华。
  • MySQL数据库不会安装?看过来,保姆级安装详细教程来啦(图文结合,含安装包,包教包会)以及开启与关闭MySQL服务
  • BP神经网络原理(附MATLAB程序)
  • 分布式任务调度XXL-JOB-第二章-SpringBoot集成XXL-JOB
  • MySQL5.5.28版本的安装与配置完整版
  • 《趣学算法》阅读笔记(一)
  • TCP通信过程三次握手、TCP通信四次挥手
  • “泰迪杯”技能赛丨第二期赛前培训预告
  • 【附源码】计算机毕业设计SSM商品推荐系统
  • 【allegro 17.4软件操作保姆级教程二】布局前准备
  • C++入门基础(上)
  • 广度优先遍历解决迷宫问题
  • 开放机器人控制软件Orocos