• 大小: 5KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-04
  • 语言: Matlab
  • 标签: matlab  

资源简介

这是一份关于MATLAB基于几何图形法的障碍物地图构建算法的源代码,是我总结的自己关于线性规划的构图方法的理解,里面包含四个matlab的函数,可以直接调试,没有主函数,直接运行需要自己提供输入参数,具体参数代码注释的很详细,不理解的可以看我写的博客,link:https://blog.csdn.net/SimileciWH/article/details/83958617

资源截图

代码片段和文件信息

function  [numbarrierquadrantBarrier] = Barrier( xyconfine)
%构建障碍物区域
%输入参数
% x----x轴坐标
% y----y轴坐标
% confine----地图边界
% 输出参数
% orderBarrier----返回改点在第几象限
% numbarrier----该象限第几个障碍物若numbarrier == 32代表到达地图边界若numbarrier==0代表不在障碍物区域numbarrier = 16代表坐标轴
%%

quadrant = 0;
numbarrier = 0;
quadrantBarrier = 0;
%判断点在哪一个象限
if x >= 0 && y >= 0
    quadrant = 1;
elseif x < 0 && y > 0
    quadrant = 2;
elseif x < 0 && y < 0
    quadrant = 3;
else
    quadrant = 4;
end

switch (quadrant)
    case 1
        quadrantBarrier = 1; %第一象限
        if x <= 0||y <= 0
            numbarrier = 16;
        end
        if x >= confine || y >= confine
             numbarrier = 32; 
        end
        if x-2-y <= 0 && 0.5-y <= 0 && -x+2-y <= 0 && y-x-1 <= 0 && y-2.5 <= 0 && y+x-5 <= 0%第一象限障碍物区
            numbarrier = 1;%返回1表示在障碍物区域
        end

    case 2
        quadrantBarrier = 2; %第二象限
        if x >= 0||y <= 0
            numbarrier = 16;
        end
        if x <= -confine || y >= confine
             numbarrier = 32; 
        end
%%
% 对于组合图形 1 的描述
        if x+2.5-y <= 0 && -x-1.5-y <= 0 && y-x/3-13/6 <= 0
            numbarrier = 1;
        end
%         if y+x+1.5 <= 0 && x+4.5-y <= 0 && y-2*x-8.5 <= 0
%              numbarrier = 1;
%         end
        if -x-1.5-y <= 0 && y-2*x-8.5 <= 0 && y+x+0.5 <= 0 && x/3+13/6-y <= 0
             numbarrier = 1;
        end
%
    case 3
        quadrantBarrier = 3; %第三象限
        if x >= 0||y >= 0
            numbarrier = 16;
        end
        if x <= -confine || y <= -confine
             numbarrier = 32; 
        end
%%
% 对于组合图形 1 的描述        
        if x+1 <= 0 && -3.5-x <= 0 && y+1 <= 0 && -1.5-y <= 0
            numbarrier = 1;
        end
        if x+1.5 <= 0 && -3.5-x <= 0 && y+1.5 <= 0 && -2-y <= 0
            numbarrier = 1;
        end
        if x+1.5 <= 0 && -2.5-x <= 0 && y+2 <= 0 && -2.5-y <= 0 
             numbarrier = 1;
        end
%
    case 4
        quadrantBarrier = 4; %第四象限
        if x <= 0||y >= 0
            numbarrier = 16;
        end
        if x >= confine || y <= -confine
             numbarrier = 32; 
        end
        if 1.5*x-5-y <= 0 && -x-y <=0 && y+0.5 <=0
            numbarrier = 1;
        end
end

end


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        2432  2018-05-28 09:07  Barrier.m
     文件        4043  2018-06-04 09:43  drawMap.m
     文件        3194  2018-05-25 09:44  EvaSafe.m
     文件       12276  2018-06-12 10:45  searchBarrier.m

评论

共有 条评论