💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
目录
💥1 概述
近年来,智能机器人逐渐应用于医疗服务﹑航空等众多领域。路径规划作为机器人实现智能自主规划的关键技术,受到众多学者的广泛关注。其具体含义是指移动机器人在存在障碍物的真实空间环境中,自主规划出一条无碰撞的有效路径3。路径规划根据可支配的外界环境有效信息的程度可以分为静态路径规划和动态路径规划。实际案例中根据算法的表现来看,动态路径规划算法实时性较差﹑实现较为复杂,在现有的技术条件下难以保证搜索结果有较高的精度。
📚2 运行结果
📃2.1 算例1
基于人工势场法的机器人路径规划:随机生成12-15个障碍物,每个障碍物随机占据6-23个栅格,利用该人工势场法编程实现机器人从左下到右上的路径规划。同时在代码中已实现动态展示的效果。
📃2.2 算例2
基于果蝇优化算法的路径规划:根据提供的地图,实现单机器人的全局路径规划。以及拓展部份的双机器人路径规划,两个机器人分别从左下到右上,和从右下到左上。
部分代码:
function path = DijkstraPlan(position,sign)
%% 基于Dijkstra算法的路径规划算法
%position input %节点位置
%sign input %节点间是否可达
%path output %规划路径
%% 计算路径距离
cost = ones(size(sign))*10000;
[n,m] = size(sign);
for i = 1:n
for j = 1:m
if sign(i,j) == 1
cost(i,j) = sqrt(sum((position(i,:)-position(j,:)).^2));
end
end
end
%% 路径开始点
dist = cost(1,:); %节点间路径长度
s = zeros(size(dist)); %节点经过标志
s(1) = 1;dist(1) = 0;
path = zeros(size(dist)); %依次经过的节点
path(1,:) = 1;
%% 循环寻找路径点
for num = 2:n
% 选择路径长度最小点
mindist = 10000;
for i = 1:length(dist)
if s(i) == 0
if dist(i)< mindist
mindist = dist(i);
u = i;
end
end
end
% 更新点点间路径
s(u) = 1;
for w = 1:length(dist)
if s(w) == 0
if dist(u)+cost(u,w) < dist(w)
dist(w) = dist(u)+cost(u,w);
path(w) = u;
end
end
end
end
🎉3 参考文献
[1]鲍久圣,张牧野,葛世荣,刘琴,袁晓明,王茂森,阴妍,赵亮.基于改进A*和人工势场算法的无轨胶轮车井下无人驾驶路径规划[J].煤炭学报,2022,47(3):1347-1360
[2]温淑慧,问泽藤,刘鑫,温淑焕.基于ROS的移动机器人自主建图与路径规划[J].沈阳工业大学学报,2022,44(1):90-94