1 简介
静态环境中移动机器人的路径规划问题在随科技发展过程中更多地被应用在实际应用中.本文在遗传算法的基础上,提出了一种移动机器人在静态多障碍物环境中的避障和路径规划算法,建立了简洁有效并且有针对性的适应度函数.该算法以多障碍物作为介质来找点规划,在二维空间中简化编码方法,并且克服了多目标情况下的避障问题.采用MATLAB仿真实验证明,本文提出的静态环境路径规划算法可使机器人快捷准确地找到最佳路径.
2 部分代码
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%函数名称:主函数
%%入口参数:无
%%出口参数:无
%%说明:无
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear
pc=0.7; %交叉概率
pm=0.006; %变异概率
[x,y]=popinit(500,10); %产生初始种群
D=calfitvalue(x,y); %计算种群适应度
for i=1:1:100 %设置进化代数
[newx,newy]=selection(x,y,D); %选择
[newx,newy]=crossover(newx,newy,pc); %交叉
[newx,newy]=mutation(newx,newy,pm); %变异
D=calfitvalue(newx,newy); %重新计算适应度
[newx,newy]=selection(newx,newy,D); %选择 保证交叉变异后的种群都不经过障碍物
D=calfitvalue(newx,newy); %重新计算适应度 选择之后的种群适应度也已经发生变化。所以必须重新计算
[bestx,besty,bestfit]=best(newx,newy,D); %选择最佳个体
bbestx(i,:)=bestx; %保存最佳个体
bbesty(i,:)=besty;
bbestfit(i)=bestfit;
x=newx;
y=newy;
end
[bbbestfit,I]=max(bbestfit) %计算选择出来的最佳个体中 适应度最大的个体,作为最优值输出
bbbestx=bbestx(I,:);
bbbesty=bbesty(I,:);
%%根据适应度函数中建立的环境模型,填充障碍物
fill([8,12,12,8,8],[8,8,12,12,8],[0,0,0])
hold on
fill([2,6,6],[2,2,4],[0,0,0])
hold on
fill([4,7,2],[6,15,15],[0,0,0])
hold on
fill([9,16,16],[16,10,18],[0,0,0])
hold on
fill([18,7,12],[1,6,2],[0,0,0])
hold on
%%画出最有路径的路线
plot(bbbestx,bbbesty,'r-')
title(['最短路径长度为:',num2str(200-bbbestfit)])
3 仿真结果
4 参考文献
[1]朱珂昕, 孙海洋, 陈珍. 基于遗传算法的机器人路径规划[J]. 电子世界, 2017(7):2.
部分理论引用网络文献,若有侵权联系博主删除。