✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
路径规划作为移动机器人导航系统的核心,在生活服务导航,外星球探索,无人驾驶,水下探索等诸多领域有着不可或缺的作用,解决了在已知起点和终点的情况下"怎么去"的问题.路径规划经历了从环境已知到环境未知,简单环境到复杂环境,小地图到大地图,简单人工智能向高级人工智能的发展.目前路径规划领域中针对未知环境下的移动机器人路径规划的研究尚未形成体系.尤其在大地图和复杂环境下,传统人工智能路径规划方法采用高分辨率地图表示环境,规划存在着盲目性,复杂性以及规划耗时等缺点.
⛄ 部分代码
%% 更新open表
function update_open(ii,ii1)
global setOpenCosts
global setOpenCosts1
global setOpen
global setOpen1
global setOpenHeuristics;
global setOpenHeuristics1;
% 更新OPEN表 分为三种情况
%从起点开始的open表
if (ii > 1 && ii < length(setOpen)) %temp在OPEN表的中间,删除temp
setOpen = [setOpen(1:ii-1); setOpen(ii+1:end)];
setOpenCosts = [setOpenCosts(1:ii-1); setOpenCosts(ii+1:end)];
setOpenHeuristics = [setOpenHeuristics(1:ii-1); setOpenHeuristics(ii+1:end)];
elseif (ii == 1)
setOpen = setOpen(2:end); %temp是OPEN表的第一个元素,删除temp
setOpenCosts = setOpenCosts(2:end);
setOpenHeuristics = setOpenHeuristics(2:end);
else %temp是OPEN表的最后一个元素,删除temp
setOpen = setOpen(1:end-1);
setOpenCosts = setOpenCosts(1:end-1);
setOpenHeuristics = setOpenHeuristics(1:end-1);
end
% 从终点开始的open表
if (ii1 > 1 && ii1 < length(setOpen1)) %temp在OPEN表的中间,删除temp
setOpen1 = [setOpen1(1:ii1-1); setOpen1(ii1+1:end)];
setOpenCosts1 = [setOpenCosts1(1:ii1-1); setOpenCosts1(ii1+1:end)];
setOpenHeuristics1 = [setOpenHeuristics1(1:ii1-1); setOpenHeuristics1(ii1+1:end)];
elseif (ii1 == 1)
setOpen1 = setOpen1(2:end); %temp是OPEN表的第一个元素,删除temp
setOpenCosts1 = setOpenCosts1(2:end);
setOpenHeuristics1 = setOpenHeuristics1(2:end);
else %temp是OPEN表的最后一个元素,删除temp
setOpen1 = setOpen1(1:end-1);
setOpenCosts1 = setOpenCosts1(1:end-1);
setOpenHeuristics1 = setOpenHeuristics1(1:end-1);
end
end
⛄ 运行结果
⛄ 参考文献
[1]王帅军. 基于D~*算法的移动机器人路径规划. Diss. 广西大学.