当前位置 : 主页 > 编程语言 > python >

【二维路径规划】基于遗传算法实现障碍机器人路径规划matlab代码

来源:互联网 收集:自由互联 发布时间:2022-06-18
1 简介 静态环境中移动机器人的路径规划问题在随科技发展过程中更多地被应用在实际应用中.本文在遗传算法的基础上,提出了一种移动机器人在静态多障碍物环境中的避障和路径规划

1 简介

静态环境中移动机器人的路径规划问题在随科技发展过程中更多地被应用在实际应用中.本文在遗传算法的基础上,提出了一种移动机器人在静态多障碍物环境中的避障和路径规划算法,建立了简洁有效并且有针对性的适应度函数.该算法以多障碍物作为介质来找点规划,在二维空间中简化编码方法,并且克服了多目标情况下的避障问题.采用MATLAB仿真实验证明,本文提出的静态环境路径规划算法可使机器人快捷准确地找到最佳路径.

2 部分代码


function [ genx ,geny ] = initgen(sizegen,n,lim,xobs,yobs,robs,xs,ys,xt,yt)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%initgen():初始化个体 sizegen:种群大小
% xobs,yobs,robs为障碍物圆心和半径
%n:每个个体的染色体数目 lim:范围[xmin xmax ymin ymax]
%genx\geny:初始化种群 每一行为一个个体(genx 和 geny)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
genx = zeros(sizegen,n); %初始化种群
geny = zeros(sizegen,n);
for tt = 1:sizegen %循环 随机产生路径
genxx1 = lim(1) + (lim(2)-lim(1))*rand(1,n);
genyy1 = lim(3) + (lim(4)-lim(3))*rand(1,n);
while(1)
if(iscollison([xs genxx1 xt],[ys genyy1 yt],xobs,yobs,robs)~=0)
break; %路径与障碍物碰撞则重新生成
end
genxx1 = lim(1) + (lim(2)-lim(1))*rand(1,n);
genyy1 = lim(3) + (lim(4)-lim(3))*rand(1,n);
end
genx(tt,:) = genxx1; %保留路径
geny(tt,:) = genyy1;
end
end

3 仿真结果

【二维路径规划】基于遗传算法实现障碍机器人路径规划matlab代码_路径规划

【二维路径规划】基于遗传算法实现障碍机器人路径规划matlab代码_移动机器人_02

4 参考文献

[1]彭丽. 基于遗传算法的移动机器人路径规划[D]. 长沙理工大学.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

【二维路径规划】基于遗传算法实现障碍机器人路径规划matlab代码_路径规划_03



网友评论