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

您所在的位置:网站首页 在线运行matlab代码 【栅格地图路径规划】基于动态衡量启发式A星算法实现机器人栅格地图路径规划附matlab代码

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

2023-05-27 10:45| 来源: 网络整理| 查看: 265

✅作者简介:热爱科研的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

⛄ 运行结果

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

⛄ 参考文献

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

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

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

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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3