1 Star 0 Fork 0

gzl2012/lmx_ems_sim

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
Lag_clear.m 2.54 KB
一键复制 编辑 原始数据 按行查看 历史
LiAnn 提交于 2018-05-10 13:47 . test OK.
%% tunel尽头区域(与W-mytuggel一致)内???处于state1或7的飞机 % 1就等,0就走
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% gg组
function tempLag_clear= Lag_clear(gg,center,biaozhi)
global UavTeam
global UavHighway
M = UavTeam.AvailableNumMax;
tempLag_clear = 1;
for k3=1:M
% if k3 == j && gg == g % 排除自己
% if有飞机在tuggel状态或者wait状态
if UavTeam.Team(gg).Uav(k3).state == 1 || UavTeam.Team(gg).Uav(k3).state == 7
tempx = UavTeam.Team(gg).Uav(k3).CurrentPos(1,1);
tempy = UavTeam.Team(gg).Uav(k3).CurrentPos(2,1);
if biaozhi == 3
temptuggel = UavHighway.GoNum;
elseif biaozhi == 2
temptuggel = UavHighway.AllNum;
end
theta1 = theta(temptuggel,gg);
ph1x1=UavHighway.group(gg).Highway(temptuggel).ph1(1)+UavHighway.group(gg).Highway(temptuggel).rh*sin(theta1);
ph1x2=UavHighway.group(gg).Highway(temptuggel).ph2(1)+UavHighway.group(gg).Highway(temptuggel).rh*sin(theta1);
ph1y1=UavHighway.group(gg).Highway(temptuggel).ph1(2)-UavHighway.group(gg).Highway(temptuggel).rh*cos(theta1);
ph1y2=UavHighway.group(gg).Highway(temptuggel).ph2(2)-UavHighway.group(gg).Highway(temptuggel).rh*cos(theta1);
ph2x1=UavHighway.group(gg).Highway(temptuggel).ph1(1)-UavHighway.group(gg).Highway(temptuggel).rh*sin(theta1);
ph2x2=UavHighway.group(gg).Highway(temptuggel).ph2(1)-UavHighway.group(gg).Highway(temptuggel).rh*sin(theta1);
ph2y1=UavHighway.group(gg).Highway(temptuggel).ph1(2)+UavHighway.group(gg).Highway(temptuggel).rh*cos(theta1);
ph2y2=UavHighway.group(gg).Highway(temptuggel).ph2(2)+UavHighway.group(gg).Highway(temptuggel).rh*cos(theta1);
p1=[(ph1x1+ph1x2)/2;(ph1y1+ph1y2)/2];
p2=[(ph2x1+ph2x2)/2;(ph2y1+ph2y2)/2];
%% one more time
p1=[(p1(1)+ph1x2)/2;(p1(2)+ph1y2)/2];
p2=[(p2(1)+ph2x2)/2;(p2(2)+ph2y2)/2];
%% one more time
p1=[(p1(1)+ph1x2)/2;(p1(2)+ph1y2)/2];
p2=[(p2(1)+ph2x2)/2;(p2(2)+ph2y2)/2];
x1 = ph2x1;
x2 = ph2x2;
x3 = p2(1);
x4 = p1(1);
y1 = ph2y1;
y2 = ph2y2;
y3 = p2(2);
y4 = p1(2);
xv= [x1 x2 x3 x4 x1];
yv= [y1 y2 y3 y4 y1];
in = inpolygon(tempx,tempy,xv,yv);
% 且在终点区域
if in ==1
ctn = UavTeam.Team(gg).Uav(k3).CurrentTaskNum;
NextPdes = UavTeam.Team(gg).Uav(k3).Waypoint(:,ctn+1);
if NextPdes == center
tempLag_clear = 0;
break;
end
end
end
end
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/gzl2012/lmx_ems_sim.git
git@gitee.com:gzl2012/lmx_ems_sim.git
gzl2012
lmx_ems_sim
lmx_ems_sim
master

搜索帮助