首页 > 行业资讯 > 【机器人栅格地图】基于帝国企鹅、粒子群、遗传算法求解机器人栅格地图路径规划及避障问题附matlab代码

【机器人栅格地图】基于帝国企鹅、粒子群、遗传算法求解机器人栅格地图路径规划及避障问题附matlab代码

时间:2022-04-19 来源: 浏览:

【机器人栅格地图】基于帝国企鹅、粒子群、遗传算法求解机器人栅格地图路径规划及避障问题附matlab代码

天天Matlab 天天Matlab
天天Matlab

TT_Matlab

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。

收录于话题 #路径规划matlab源码 314个

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代码问题可私信交流。

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

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐