ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

阅读点赞评论收藏操作【路径规划】基于遗传算法求解栅格全路径规划及避障Matlab代码

阅读点赞评论收藏操作【路径规划】基于遗传算法求解栅格全路径规划及避障Matlab代码 1 简介采用栅格法建立机器人工作环境模型,并用MATLAB语言随机产生栅格中障碍物的位置及数量,应用遗传算法完成机器人路径规划,对遗传算法的插入和删除操作进行了改进,提高了遗传算法的搜索速度,并采用序号编码的方法,减小编码长度,简化遗传算法程序,缩短程序执行时间。仿真结果表明了该方法的有效性及可行性。2 部分代码clcclearclose allglobal liantong_point num_point sign hang_shange lie_shange zhangai_pointload(data.mat)%导入相关数据figure(1)%画障碍图hold onfor i1:hang_shangefor j1:lie_shangeif sign(i,j)1y[i-1,i-1,i,i];x[j-1,j,j,j-1];hfill(x,y,g);endtext(j-0.8,i-0.5,num2str((i-1)*lie_shangej))endendaxis([0 lie_shange 0 hang_shange])%限制图的边界set(gca,YDir,reverse);for i1:hang_shangeplot([0 lie_shange],[i-1 i-1],k-);endfor i1:lie_shangeplot([i i],[0 hang_shange],k-);%画网格线endpop[1,2,randperm(num_point-2)2];popdeal_fun4(pop);rere_fun(pop);disp([转向次数,num2str(re(1))])disp([重复点数,num2str(re(2))])disp([路径长度,num2str(num_point-length(zhangai_point)-1re(2))])for i2:num_point-length(zhangai_point)lt_linliantong_point{pop(i-1)};if sum(ismember(lt_lin,pop(i)))1Q1[mod(pop(i-1)-1,lie_shange)0.5,ceil(pop(i-1)/lie_shange)-0.5];Q2[mod(pop(i)-1,lie_shange)0.5,ceil(pop(i)/lie_shange)-0.5];plot([Q1(1),Q2(1)],[Q1(2),Q2(2)],r-,LineWidth,2)jiantou_fun(Q1,Q2)elseQ2[mod(pop(i)-1,lie_shange)0.5,ceil(pop(i)/lie_shange)-0.5];lt_lin1liantong_point{pop(i)};p_linpop(i-1);while sum(ismember(lt_lin1,p_lin(end)))0Q1[mod(p_lin(end)-1,lie_shange)0.5,ceil(p_lin(end)/lie_shange)-0.5];lt_lin2liantong_point{p_lin(end)};angle_lin[];for j1:length(lt_lin2)Q3[mod(lt_lin2(j)-1,lie_shange)0.5,ceil(lt_lin2(j)/lie_shange)-0.5];aQ2-Q1;bQ3-Q1;angle_lin(j)acos(dot(a,b)/norm(a)/norm(b));end[~,index1]sort(angle_lin);if sum(ismember(p_lin,lt_lin2(index1(1))))0p_lin[p_lin lt_lin2(index1(1))];elsep_lin[p_lin lt_lin2(index1(2))];endendp_lin[p_lin pop(i)];for j2:length(p_lin)Q1[mod(p_lin(j-1)-1,lie_shange)0.5,ceil(p_lin(j-1)/lie_shange)-0.5];Q2[mod(p_lin(j)-1,lie_shange)0.5,ceil(p_lin(j)/lie_shange)-0.5];plot([Q1(1),Q2(1)],[Q1(2),Q2(2)],r-,LineWidth,2)jiantou_fun(Q1,Q2)endfor j2:length(p_lin)-1x_linmod(p_lin(j)-1,lie_shange)1;y_linceil(p_lin(j)/lie_shange);y[y_lin-1,y_lin-1,y_lin,y_lin];x[x_lin-1,x_lin,x_lin,x_lin-1];hfill(x,y,y);set(h,facealpha,0.5)endendendtitle(路径图,fontsize,12);xlabel(X-position,fontsize,12)ylabel(Y-position,fontsize,12)​3 仿真结果4 参考文献[1]薛冰冰. (2012). 基于改进型遗传算法的足球机器人路径规划研究. (Doctoral dissertation, 长春工业大学).
返回列表