✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
路径规划作为移动机器人导航系统的核心,在生活服务导航,外星球探索、无人驾驶、水下探索等诸多领域有着不可或缺的作用,解决了在已知起点和终点的情况下“怎么去”的问题。路径规划经历了从环境已知到环境未知、简单环境到复杂环境、小地图到大地图、简单人工智能向高级人工智能的发展。目前路径规划领域中针对未知环境下的移动机器人路径规划的研究尚未形成体系。尤其在大地图和复杂环境下,传统人工智能路径规划方法采用高分辨率地图表示环境,规划存在着盲目性、复杂性以及规划耗时等缺点。本文就如何在保证规划效果相近的前提下,优化环境地图空间表示、提高规划灵活性和高效性以减少路径规划花费时间进行研究。传统的路径规划方法在解决大地图环境路径规划时,通常采用大地图细粒化的方案,这样带来的弊端就是在未知环境下的重规划次数较多,而且随着栅格增多,规划算法复杂度呈指数级增大,规划十分耗时。除此之外,在环境比较复杂的情况下,传统规划方法因不能根据环境特点做出理性判断而导致其效率低下。本文对经典的路径规划方法进行了详细分析,着重分析各个算法的优缺点以及各自较为适用的特定场景。最终针对本文研究的复杂大地图下路径规划提出了一种融合算法,即将地图分层规划,细化规划方式以做到集合多种算法对于全局采用性能极好的D*Lite算法,对于局部采用具有环境自主学习能力的增强神经网络算法。事实上,采用多种算法融合的方法来解决特定环境下的路径规划具有一定的合理性。它可以集多种算法的优点,针对不同的特定环境下的路径规划做到局部最优,进而达到算法间优势互补的效果。本文采用微软公司推出的微软机器人开发者平台(Microsoft Robotics Developer Studio,MRDS)仿真平台对提出的机器人进行建模,将融合算法封装为一个服务提供给移动机器人,指导其进行路径规划。采用量化分析的方式,从规划路径长度、重规划次数、更新节点数以及规划花费时间等四个维度与传统D*Lite算法下路径规划进行对比分析。
⛄ 部分代码
function [Nodes,openList] = insert(Nodes,openList,pos,h_new)
if ismember(pos,openList(:,1))
idx = find(pos==openList(:,1));
openList(idx,:) = [];
end
Nodes(pos).h = h_new;
if isequal(Nodes(pos).t,'new')
Nodes(pos).k = h_new;
else
Nodes(pos).k = min(Nodes(pos).k,h_new);
end
Nodes(pos).t = 'open';
openList(end+1,:) = [pos,Nodes(pos).k];
end
⛄ 运行结果
⛄ 参考文献
[1] 余翀, 邱其文. 基于栅格地图的分层式机器人路径规划算法[J]. 中国科学院大学学报, 2013.
[2] 刘琳琳. 基于栅格地图环境的机器人路径规划算法[J]. 机电信息, 2018(30):3.
[3] 高涛黄睿杰. 基于改进D*Lite算法的无人车避障路径规划研究[J]. 江苏工程职业技术学院学报, 2022, 22(3):6-10.
[4] 徐开放. 基于D*Lite算法的移动机器人路径规划研究[D]. 哈尔滨工业大学.