【栅格地图路径规划】基于动态衡量启发式A星算法实现机器人栅格地图路径规划附matlab代码 |
您所在的位置:网站首页 › 在线运行matlab代码 › 【栅格地图路径规划】基于动态衡量启发式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电子书和数学建模资料 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |