【机器人栅格地图】基于帝国企鹅、粒子群、遗传算法求解机器人栅格地图路径规划及避障问题附matlab代码
【机器人栅格地图】基于帝国企鹅、粒子群、遗传算法求解机器人栅格地图路径规划及避障问题附matlab代码
TT_Matlab
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。
1 简介
栅格法是由W.E.Howden于1968年提出,主要是根据环境建立一个路径栅格地图(Map)。基本原理是将机器人工作环境分割成无数细小的具有二值信息的网格单元,每个网格的规格由机器人的步长决定,即一个步长代表一个网格大小。在进行网格划分时,无论是障碍物栅格还是非障碍物栅格不满一个时,将其填满,按一个栅格计算。环境信息由黑白网格表示。黑色网格代表障碍物(Barrier),表示不可行区域;白色网格代表可通行区域,又称自由区域。栅格法将不可行区域和自由区域用一个二进制矩阵表示,矩阵中1代表障碍物,0代表自由栅格,由此在环境中建立一个可描述环境的路径规划地图。
2 部分代码
function
[bestY,bestX,recording]=GA(x,y,option,data)
%%
遗传算法
%%
初始化
recording.bestFit
=
zeros(option.maxIteration+1,1);
recording.meanFit
=
zeros(option.maxIteration+1,1);
%%
更新记录
[y_g,position]
=
min(y);
x_g
=
x(position(1),:);
y_p
=
y;
x_p
=
x;
recording.bestFit
=
y_g;
recording.meanFit
=
mean(y_p);
%%
开始更新
for
iter=1:option.maxIteration
disp([’GA,iter
:
’,num2str(iter),’,minFit:’,num2str(y_g)])
if
iter==1
newX
=
x*0;
newY
=
y;
end
%%
竞标赛法选择个体
for
i=1:option.numAgent*2
maxContestants
=
ceil(randi(option.numAgent));
index
=
randperm(option.numAgent,maxContestants);
[~,position]
=
min(y(index));
parent(i)
=
index(position(1));
end
newX
=
x*0;
newY
=
y*0;
%%
交叉(多点交叉)
for
i=1:option.numAgent
newX(i,
:
)=x(parent(i),:);
if
rand<option.p1_GA
tempR
=
rand(size(x(i,:)));
newX(i,tempR>0.5)
=
x(parent(i+option.numAgent),tempR>0.5);
end
end
%%
变异
for
i=1:option.numAgent*option.p2_GA
index
=
randi(option.numAgent);
tempR
=
rand(size(x(i,:)));
temp
=
rand(size(option.lb)).*(option.ub-option.lb)+option.lb;
newX(index,tempR>0.5)
=
temp(tempR>0.5);
end
%%
重新计算适应度值
for
i=1:option.numAgent
newX(i,
:
)=checkX(newX(i,:),option,data);
[newY(i),~,newX(i,
:
)]=option.fobj(newX(i,:),option,data);
if
newY(i)<y_p(i)
y_p(i)
=
newY(i);
x_p(i,
:
)=newX(i,:);
if
y_p(i)<y_g
y_g
=
y_p(i);
x_g
=
x_p(i,:);
end
end
end
x
=
newX;
%%
更新记录
recording.bestFit(1+iter)
=
y_g;
recording.meanFit(1+iter)
=
mean(y_p);
end
bestY
=
y_g;
bestX
=
x_g;
end
3 仿真结果
4 参考文献
[1]李吉功, 冯宜伟, 郭戈. 基于栅格地图的通用机器人避障算法[C]// 中国自动化学会第21届青年学术年会. 0.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
-
2023年血糖新标准公布,不是3.9-6.1,快来看看你的血糖正常吗? 2023-02-07
-
2023年各省最新电价一览!8省中午执行谷段电价! 2023-01-03
-
GB 55009-2021《燃气工程项目规范》(含条文说明),2022年1月1日起实施 2021-11-07
-
PPT导出高分辨率图片的四种方法 2022-09-22
-
2023年最新!国家电网27家省级电力公司负责人大盘点 2023-03-14
-
全国消防救援总队主官及简历(2023.2) 2023-02-10
-
盘点 l 中国石油大庆油田现任领导班子 2023-02-28
-
我们的前辈!历届全国工程勘察设计大师完整名单! 2022-11-18
-
关于某送变电公司“4·22”人身死亡事故的快报 2022-04-26
