Gointerface接口声明实现及作用详解
335
2022-09-08
【机器人栅格地图】基于帝国企鹅、粒子群、遗传算法求解机器人栅格地图路径规划及避障问题附matlab代码
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 3 仿真结果 4 参考文献 [1]李吉功, 冯宜伟, 郭戈. 基于栅格地图的通用机器人避障算法[C]// 中国自动化学会第21届青年学术年会. 0. 博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。 部分理论引用网络文献,若有侵权联系博主删除。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~