add plot move
parent
442eeb5195
commit
0a6cb88a99
|
@ -0,0 +1,129 @@
|
|||
clear -all
|
||||
|
||||
graphics_toolkit('gnuplot')
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% config nang kene
|
||||
|
||||
bParam = struct();
|
||||
bParam.model = omnidirectional(0.94, 0.96, 0.01, 2.2, 1.5,0.099,0.1,1.5,0.025,30,0.035,19,0.00011,1.69,0.0059,0.0059,0.9,9.1,6,'./');
|
||||
bParam.edgeL = [1 2 1;3 2 1;3 1 1;];
|
||||
bParam.dScale = 3;
|
||||
bParam.nNodeVref = 1;
|
||||
bParam.ki1 = 0;
|
||||
bParam.ki2 = 0;
|
||||
bparam.hStep = .01;
|
||||
bParam.tspan = 1:bparam.hStep:20;
|
||||
# coba solo
|
||||
bParam.corRobot = [0; 0;0;1; 2;0;3; -3;0;]; % xy xy xy
|
||||
## CASE 1
|
||||
bParam.kp1 = 50;
|
||||
bParam.kp2 = 3;
|
||||
|
||||
bP(1,1) = bParam;
|
||||
# solo coba
|
||||
###### KOOR 1
|
||||
##bParam.corRobot = [0; 0;0;1; 2;0;-2; 3;0;]; % xy xy xy
|
||||
## ## CASE 1
|
||||
## bParam.kp1 = 50;
|
||||
## bParam.kp2 = 3;
|
||||
##
|
||||
## bP(1,1) = bParam;
|
||||
##
|
||||
## ## CASE 2
|
||||
## bParam.kp1 = 80;
|
||||
## bParam.kp2 = 7;
|
||||
##
|
||||
## bP(1,2) = bParam;
|
||||
##
|
||||
## # CASE 3
|
||||
## bParam.kp1 = 100;
|
||||
## bParam.kp2 = 15;
|
||||
##
|
||||
## bP(1,3) = bParam;
|
||||
##
|
||||
#### KOOR 2
|
||||
##bParam.corRobot = [0; 0;0;-2; -4;0;3; -2;0;]; % xy xy xy
|
||||
## ## CASE 1
|
||||
## bParam.kp1 = 50;
|
||||
## bParam.kp2 = 3;
|
||||
##
|
||||
## bP(2,1) = bParam;
|
||||
##
|
||||
## ## CASE 2
|
||||
## bParam.kp1 = 80;
|
||||
## bParam.kp2 = 7;
|
||||
##
|
||||
## bP(2,2) = bParam;
|
||||
##
|
||||
## # CASE 3
|
||||
## bParam.kp1 = 100;
|
||||
## bParam.kp2 = 15;
|
||||
##
|
||||
## bP(2,3) = bParam;
|
||||
##
|
||||
## KOOR 3
|
||||
##bParam.corRobot = [0; 0;0;1; 2;0;3; -3;0;]; % xy xy xy
|
||||
## ## CASE 1
|
||||
## bParam.kp1 = 50;
|
||||
## bParam.kp2 = 3;
|
||||
##
|
||||
## bP(3,1) = bParam;
|
||||
##
|
||||
## ## CASE 2
|
||||
## bParam.kp1 = 80;
|
||||
## bParam.kp2 = 7;
|
||||
##
|
||||
## bP(3,2) = bParam;
|
||||
##
|
||||
## # CASE 3
|
||||
## bParam.kp1 = 100;
|
||||
## bParam.kp2 = 15;
|
||||
##
|
||||
## bP(3,3) = bParam;
|
||||
##
|
||||
#### KOOR 4
|
||||
##bParam.corRobot = [0; 0;0;-2; -3;0;3; 2;0;]; % xy xy xy
|
||||
## ## CASE 1
|
||||
## bParam.kp1 = 50;
|
||||
## bParam.kp2 = 3;
|
||||
##
|
||||
## bP(4,1) = bParam;
|
||||
##
|
||||
## ## CASE 2
|
||||
## bParam.kp1 = 80;
|
||||
## bParam.kp2 = 7;
|
||||
##
|
||||
## bP(4,2) = bParam;
|
||||
##
|
||||
## # CASE 3
|
||||
## bParam.kp1 = 100;
|
||||
## bParam.kp2 = 15;
|
||||
##
|
||||
## bP(4,3) = bParam;
|
||||
|
||||
close all
|
||||
|
||||
for i = 1:size(bP,1)
|
||||
[t,y,Dd,DdNorm] = run_my_simulation(bP(i,1));
|
||||
|
||||
plot_move(y', length(bP(1,1).tspan), "/home/a2nr/Documents/FormationControlSimulation/SOURCE/output/",bP(i,1));
|
||||
|
||||
figure
|
||||
plot_con( y', bParam.edgeL, [1, length(bP(1,1).tspan)] ,bP(i,1));
|
||||
title(sprintf("Motion dari Robot Case %i ", i ));
|
||||
|
||||
## figure
|
||||
## resdd = struct();
|
||||
## resdd.DdNorm = DdNorm;
|
||||
## allresdd(1) = resdd;
|
||||
## for j = 2:size(bP,2)
|
||||
## [t,y,Dd,resdd.DdNorm] = run_my_simulation(bP(i,j));
|
||||
## allresdd(j) = resdd;
|
||||
## endfor
|
||||
## plot(t,allresdd(1).DdNorm,t,allresdd(2).DdNorm,t,allresdd(3).DdNorm);
|
||||
## title(sprintf("Norm Distance error Case %i ", i));
|
||||
endfor
|
||||
|
||||
|
||||
|
||||
|
||||
|
Binary file not shown.
|
@ -0,0 +1,50 @@
|
|||
function plot_move(yOut,time,path,bParam)
|
||||
lengthCorRobot = length(bParam.corRobot);
|
||||
robStateLen = size(bParam.model.origin.A,1);
|
||||
lengthNode = length(bParam.edgeL);
|
||||
tspan = bParam.tspan;
|
||||
|
||||
xi = 1:robStateLen:lengthCorRobot-1;
|
||||
yi = 2:robStateLen:lengthCorRobot;
|
||||
str_tmp = "@(e) plot(";
|
||||
for i = 1:lengthNode-1
|
||||
str_tmp = strcat(str_tmp,sprintf("yOut(%i,1:e),yOut(%i,1:e),",xi(i),yi(i)));
|
||||
endfor
|
||||
str_tmp = strcat(str_tmp,sprintf("yOut(%i,1:e),yOut(%i,1:e));",xi(i+1),yi(i+1)));
|
||||
_plot_move = eval(str_tmp); %_plot_move(end);
|
||||
|
||||
|
||||
% membuat fungsi plot robot di waktu
|
||||
% tertentu
|
||||
str_tmp = "@(t) plot( [";
|
||||
for i = 1:robStateLen:lengthCorRobot
|
||||
str_tmp = strcat( str_tmp, sprintf("yOut(%i,t), ",i));
|
||||
endfor
|
||||
str_tmp = strcat( str_tmp, sprintf("], ["));
|
||||
for i = 2:robStateLen:lengthCorRobot
|
||||
str_tmp = strcat( str_tmp, sprintf("yOut(%i,t), ",i));
|
||||
endfor
|
||||
str_tmp = strcat( str_tmp, sprintf("], \"^\");"));
|
||||
plot_rb = eval(str_tmp); % plot_rb(coordinat)
|
||||
|
||||
str_tmp = "legend(";
|
||||
for i = 1:numNodes(edgeL2adjL(bParam.edgeL))-1;
|
||||
str_tmp =strcat(str_tmp,sprintf("\"R%i \", ",i));
|
||||
endfor
|
||||
str_tmp =strcat(str_tmp,sprintf("\"R%i \" )",++i));
|
||||
|
||||
|
||||
for t=1:time
|
||||
f=figure('visible', 'off');
|
||||
hold on
|
||||
_plot_move(t);
|
||||
plot_rb(t);
|
||||
eval(str_tmp);
|
||||
filename=strcat(path,sprintf('x%03d%03d_y%03d%03d_kp1%03d_kp2%03d_%05d.png', ...
|
||||
bParam.corRobot(4),bParam.corRobot(5),bParam.corRobot(7),bParam.corRobot(8),...
|
||||
bParam.kp1,bParam.kp2,t));
|
||||
print(filename);
|
||||
hold off
|
||||
close(f);
|
||||
endfor
|
||||
endfunction
|
Loading…
Reference in New Issue