【路径规划】基于Lazy_Theta_star算法求解栅格地图路径规划附matlab代码

简介: 【路径规划】基于Lazy_Theta_star算法求解栅格地图路径规划附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信      无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机

⛄ 内容介绍

Lazy_Theta_star是在 Theta_star上的进一步改进,Theta_star是当节点加入open表时和当前点的父节点进行比较g值是否更小,对一些不必要的节点计算浪费了时间,而Lazy_Theta_star则是在弹出open表后进行比较,减少了不必要点的计算。

⛄ 部分代码

function Lazy_Theta_star

clc;

clear;

close all

%% 初始化界面

%load maze.mat map

n = 20;   % field size n x n tiles  20*20的界面

%wallpercent = 0.3;  % this percent of field is walls   15%的界面作为阻碍物(墙)

cmap = [1 1 1; ...%  1 - white - 空地

       0 0 0; ...% 2 - black - 障碍

       1 0 0; ...% 3 - red - 已搜索过的地方

       0 0 1; ...% 4 - blue - 下次搜索备选中心

       0 1 0; ...% 5 - green - 起始点

       1 1 0;...% 6 - yellow -  到目 标点的路径

      1 0 1];% 7 - -  目标点

colormap(cmap);

global field

field= ones(n);

startposind =22;   %sub2ind用来将行列坐标转换为线性坐标,这里是必要的,因为如果把startposind设置成[x,y]的形式,访问field([x,y])的时候

goalposind =250;    %它并不是访问x行y列元素,而是访问线性坐标为x和y的两个元素

%field(ceil(n^2.*rand(floor(n*n*wallpercent),1) )) =2;

field(1:5, 7) = 2;

field(8,1:3) = 2;

field(3:5,1:5)=2;

field(5,4)=2;

% startposind = sub2ind([n,n],ceil(n.*rand),ceil(n.*rand));   %sub2ind用来将行列坐标转换为线性坐标,这里是必要的,因为如果把startposind设置成[x,y]的形式,访问field([x,y])的时候

%goalposind = sub2ind([n,n],ceil(n.*rand),ceil(n.*rand));    %它并不是访问x行y列元素,而是访问线性坐标为x和y的两个元素

field(startposind )=5;

field(goalposind )=7;

costchart = NaN*ones(n);      %costchart用来存储各个点的实际代价,NaN代表不是数据(不明确的操作)

costchart(startposind) = 0;     %起点的实际代价

fieldpointers = zeros(n); %fieldpointers用来存储节点的父节点

global setOpenCosts;

setOpen = (startposind); setOpenCosts = (0); setOpenHeuristics = (Inf);

setClosed = []; setClosedCosts = [];%初始化起点的open表和close表

[goalpos(1) ,goalpos(2)] = ind2sub([n n],goalposind);

% uicontrol('Style','pushbutton','String','RE-DO', 'FontSize',12, ...

%          'Position', [10 10 60 40], 'Callback','ASTAR');

⛄ 运行结果

⛄ 参考文献


⛳️ 代码获取关注我

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料


相关文章
|
2月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
213 0
|
2月前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
146 8
|
2月前
|
机器学习/深度学习 算法 自动驾驶
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
159 8
|
2月前
|
机器学习/深度学习 数据采集 负载均衡
结合多种启发式解码方法的混合多目标进化算法,用于解决带工人约束的混合流水车间调度问题(Matlab代码实现)
结合多种启发式解码方法的混合多目标进化算法,用于解决带工人约束的混合流水车间调度问题(Matlab代码实现)
140 0
|
2月前
|
算法 定位技术 计算机视觉
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
113 0
|
2月前
|
算法 机器人 计算机视觉
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
|
2月前
|
新能源 Java Go
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
109 0
|
2月前
|
机器学习/深度学习 编解码 算法
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
143 8
|
2月前
|
机器学习/深度学习 数据采集 测试技术
基于CEEMDAN-VMD-BiLSTM的多变量输入单步时序预测研究(Matlab代码实现)
基于CEEMDAN-VMD-BiLSTM的多变量输入单步时序预测研究(Matlab代码实现)
|
2月前
|
编解码 运维 算法
【分布式能源选址与定容】光伏、储能双层优化配置接入配电网研究(Matlab代码实现)
【分布式能源选址与定容】光伏、储能双层优化配置接入配电网研究(Matlab代码实现)
156 12

热门文章

最新文章