【栅格地图路径规划】基于动态衡量启发式A星算法实现机器人栅格地图路径规划附matlab代码

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

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

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

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

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

⛄ 内容介绍

一种基于动态权重的A星算法改进方法,其中方法包括:对A星算法的估价函数进行改进;设计动态权值生成器,根据环境信息实时生成当前节点的启发式权值;当机器人离起始点较近时,h(n)占的比重较大;当机器人不断接近目标时,g(n)的权值逐渐增加;其中,h(n)为从指定位置运行到终点的估计代价,g(n)为从起点移动到指定方格的移动代价.本发明在机器人对目标点进行寻路地过程中,通过对A星算法的路径评价函数加入实时调整的动态启发式权值,来实现寻路的精确度与效率的统一.​

⛄ 部分代码

%% 

%这个矩阵的作用就是随机生成环境,障碍物,起始点,终止点等

function [field, startposind, goalposind, costchart, fieldpointers] = initializeField(n,wallpercent)

    field = 10*ones(n,n);%设置任意两方格间的距离为10

    field(ind2sub([n n],ceil(n^2.*rand(n*n*wallpercent,1)))) = Inf;%向上取整

    % 随机生成起始点和终止点

    startposind = sub2ind([n,n],ceil(n.*rand),ceil(n.*rand));  %随机生成起始点的索引值

    goalposind = sub2ind([n,n],ceil(n.*rand),ceil(n.*rand));   %随机生成终止点的索引值

    field(startposind) = 0; field(goalposind) = 0;  %把矩阵中起始点和终止点处的值设为0

    

    costchart = NaN*ones(n,n);%生成一个nxn的矩阵costchart,每个元素都设为NaN。就是矩阵初始NaN无效数据

    costchart(startposind) = 0;%在矩阵costchart中将起始点位置处的值设为0

    

    % 生成元胞数组

    fieldpointers = cell(n,n);%生成元胞数组n*n

    fieldpointers{startposind} = 'S'; fieldpointers{goalposind} = 'G'; %将元胞数组的起始点的位置处设为 'S',终止点处设为'G'

    fieldpointers(field==inf)={0};

    

   

end

% end of this function

⛄ 运行结果

⛄ 参考文献

[1] 周东健, 张兴国, 马海波,等. 基于栅格地图-蚁群算法的机器人最优路径规划[J]. 南通大学学报:自然科学版, 2013, 12(4):91-94.

[2] 华洪, 张志安, 施振稳,等. 动态环境下多重A算法的机器人路径规划方法[J]. 计算机工程与应用, 2021.

[3] 翟冬灵, 葛凯, 张二阳. 一种基于改进A星策略的移动机器人路径规划方法:.

⛳️ 代码获取关注我

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值