Repository navigation
Expand file tree
/
Copy pathgetcurrentPath.m
More file actions
66 lines (56 loc) · 1.96 KB
/
Copy pathgetcurrentPath.m
File metadata and controls
66 lines (56 loc) · 1.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
function [rotation,direction,goalFinal] = getcurrentPath(agvName,startNode,endNode,agvMission)
global agvPosition stor nodeArray goalLine;
x = startNode(1,1);
y = startNode(1,2);
x1 = endNode(1,1); % col
y1 = endNode(1,2); % row
[finalFscore,goal] = aStarSearch(x,y,x1,y1,stor,1,agvMission);
% Convert from [col,row] to real [x,y] coordinate.
for i = 1:size(goal,1)
sGoal_ = stor(goal(i,1),goal(i,2));
finalGoal(size(goal,1)-i+1,:) = [nodeArray(sGoal_,1),nodeArray(sGoal_,2)];
end
goal = finalGoal;
goalLine = line(goal(:,1),goal(:,2),'LineWidth',1.5,'Color','r');
%radi = ones(1,size(goal,1))*200;
% Mattanhen distance
% for i = 1:size(goal,1)-1
% dis(i)=abs((goal(i,1)-goal(i+1,1))+(goal(i,2)-goal(i+1,2)));
% end
% Set first AGV Point
agvPosition(agvName,1) = double(goal(1,1));
agvPosition(agvName,2) = double(goal(1,2));
% Tao ra ma tran huong
char direc = []; % ma tran huong
for i = 1:size(goal,1)-1
if(goal(i+1,1) > goal(i,1))
direc(i) ='W';
elseif(goal(i+1,2)> goal(i,2))
direc(i) ='N';
elseif(goal(i+1,1) < goal(i,1))
direc(i) ='E';
elseif(goal(i+1,2)< goal(i,2))
direc(i) ='S';
end
end
if direc(1)=='W' || direc(1) =='E'
beta = 90;
else
beta = 0;
end
agvPosition(agvName,3) = beta;
rot(1,:) = [0 0];
% Find rotation function
for i = 2: size(direc,2)
if (direc(i-1)-direc(i)) == 9 || (direc(i-1)-direc(i)) == -4 || (direc(i-1)-direc(i)) == -14
rot(i,:) = [1 90];
elseif (direc(i-1)-direc(i)) == -9 || (direc(i-1)-direc(i)) == 4 || (direc(i-1)-direc(i)) == 14
rot(i,:) = [1 -90];
else
rot(i,:) = [0 0];
end
end
direction = direc;
rotation = rot;
goalFinal = goal;
end