Commit 5dd426d5 authored by Farid Alijani's avatar Farid Alijani
Browse files

Paper modified for print

parent 16c50dd4
......@@ -155,8 +155,8 @@ hold on
plot(t_P_sec_data_2,Pose_X_data_2,'r','LineWidth',1.7);
% hold on
% plot(t_P_sec_data_3,Pose_X_data_3,'g','LineWidth',1.6);
ylabel('${x_{mar}}$ [m]','interpreter','latex','FontSize',20);
title('a) ${x_{mar}}$','interpreter','latex','FontSize',20);
% ylabel('${x_{mar}}$ [m]','interpreter','latex','FontSize',20);
% title('a) ${x_{mar}}$','interpreter','latex','FontSize',20);
% set(gca,'fontsize',20);
subplot(323);
......@@ -165,8 +165,8 @@ hold on
plot(t_P_sec_data_2,Pose_Y_data_2,'r','LineWidth',1.7);
% hold on
% plot(t_P_sec_data_3,Pose_Y_data_3,'g','LineWidth',1.6);
ylabel('${y_{mar}}$ [m]','interpreter','latex','FontSize',20);
title('b) ${y_{mar}}$','interpreter','latex','FontSize',20);
% ylabel('${y_{mar}}$ [m]','interpreter','latex','FontSize',20);
% title('b) ${y_{mar}}$','interpreter','latex','FontSize',20);
% set(gca,'fontsize',20);
subplot(325);
......@@ -176,9 +176,9 @@ plot(t_P_sec_data_2,Theta_data_2,'r','LineWidth',1.7);
% hold on
% plot(t_P_sec_data_3,Theta_data_3,'g','LineWidth',1.6);
title('c) ${\theta_{mar}}$','interpreter','latex','FontSize',20);
ylabel('${\theta_{mar}}$ [rad]','interpreter','latex','FontSize',20);
xlabel('$ time$ [s]','interpreter','latex','FontSize',20);
% title('c) ${\theta_{mar}}$','interpreter','latex','FontSize',20);
% ylabel('${\theta_{mar}}$ [rad]','interpreter','latex','FontSize',20);
% xlabel('$ time$ [s]','interpreter','latex','FontSize',20);
% set(gca,'fontsize',20);
% % control signals
......@@ -192,9 +192,9 @@ hold on
plot(t_V_sec_data_2,Vel_X_data_2,'r','LineWidth',1.7);
% hold on
% plot(t_V_sec_data_3,Vel_X_data_3,'g','LineWidth',1.6);
title('d) $\dot{x}_{Rob}$','interpreter','latex','FontSize',20);
ylabel('$\dot{x}_{Rob}$ [m/s]','interpreter','latex','FontSize',20);
%
% title('d) $\dot{x}_{Rob}$','interpreter','latex','FontSize',20);
% ylabel('$\dot{x}_{Rob}$ [m/s]','interpreter','latex','FontSize',20);
l2 = legend('${Left}$', '${Right}$');
set(l2,'interpreter','latex','FontSize',14);
......@@ -208,8 +208,8 @@ hold on
plot(t_V_sec_data_2,Vel_Y_data_2,'r','LineWidth',1.7);
% hold on
% plot(t_V_sec_data_3,Vel_Y_data_3,'g','LineWidth',1.6);
ylabel('$\dot{y}_{Rob}$ [m/s]','interpreter','latex','FontSize',20);
title('e) $\dot{y}_{Rob}$','interpreter','latex','FontSize',20);
% ylabel('$\dot{y}_{Rob}$ [m/s]','interpreter','latex','FontSize',20);
% title('e) $\dot{y}_{Rob}$','interpreter','latex','FontSize',20);
% set(gca,'fontsize',20);
subplot(326);
......@@ -218,9 +218,9 @@ hold on
plot(t_V_sec_data_2,Omega_Z_data_2,'r','LineWidth',1.7);
% hold on
% plot(t_V_sec_data_3,Omega_Z_data_3,'g','LineWidth',1.6);
xlabel('$ time$ [s]','interpreter','latex','FontSize',20);
ylabel('$\dot{\theta}_{Rob}$ [rad/s]','interpreter','latex','FontSize',20);
title('f) $\dot{\theta}_{Rob}$','interpreter','latex','FontSize',20);
% xlabel('$ time$ [s]','interpreter','latex','FontSize',20);
% ylabel('$\dot{\theta}_{Rob}$ [rad/s]','interpreter','latex','FontSize',20);
% title('f) $\dot{\theta}_{Rob}$','interpreter','latex','FontSize',20);
% set(gca,'fontsize',20);
% Trajectory
......@@ -247,8 +247,8 @@ hold on
plot(y_circle,x_circle,'k--','LineWidth',3.4);
% axis([-.4 .4 .18 1.4]);
title('${a) Approach + SM + Target}$','interpreter','latex','FontSize',20);
ylabel('${x}_{mar}$ [m]','interpreter','latex','FontSize',20);
% title('${a) Approach + SM + Target}$','interpreter','latex','FontSize',20);
% ylabel('${x}_{mar}$ [m]','interpreter','latex','FontSize',20);
% set(gca,'fontsize',20);
subplot(132);
......@@ -260,8 +260,8 @@ plot(Pose_Y_data_2,Pose_X_data_2,'r','LineWidth',1.6);
hold on
plot(y_circle,x_circle,'k--','LineWidth',3.4);
title('$ {b) SM + Target}$','interpreter','latex','FontSize',20);
xlabel('${y}_{mar}$ [m]','interpreter','latex','FontSize',20);
% title('$ {b) SM + Target}$','interpreter','latex','FontSize',20);
% xlabel('${y}_{mar}$ [m]','interpreter','latex','FontSize',20);
axis([-.03 0.03 -.29 -.191]);
% set(gca,'fontsize',20);
......@@ -274,7 +274,7 @@ plot(Pose_Y_data_2,Pose_X_data_2,'r','LineWidth',2);
hold on
plot(y_circle,x_circle,'k--','LineWidth',3.4);
title('$ {c) Target}$','interpreter','latex','FontSize',20);
% title('$ {c) Target}$','interpreter','latex','FontSize',20);
axis([-.0202 -.017 -.2054 -.199]);
% set(gca,'fontsize',20);
......
clc;
close all;
clear all;
yaw_off = pi;
%% Import data and time conversion
% data 1: 556 ros messages for geometry_msgs/Twist
% 557 ros messages for geometry_msgs/PoseStamped
%
Pose_Matrix_data_1 = csvread('POSE_with_Py0.86_Iy0_Dy0.002ANDPt0.08_It0_Dt0.txt',1,0);
Vel_Matrix_data_1 = csvread('VEL_with_Py0.86_Iy0_Dy0.002ANDPt0.08_It0_Dt0.txt',1,0);
% Pose_Matrix_data_1 = csvread('CAM_PID_.28_.0001_.01.txt',1,0);
% Vel_Matrix_data_1 = csvread('vel_PID_.28_.0001_.01.txt',1,0);
% time in position
TimeP_ros_data_1 = Pose_Matrix_data_1(:,1); % ros time, needs to be converted to sec...
% duriation = end_time - start_time
durationP_data_1 = (TimeP_ros_data_1(size(TimeP_ros_data_1,1),:) - TimeP_ros_data_1(1,:))*10^(-9);
t_P_sec_data_1 = 0:durationP_data_1/size(TimeP_ros_data_1,1):durationP_data_1;
t_P_sec_data_1(:,size(t_P_sec_data_1,2)) = [];
% time in vel
TimeV_ros_data_1 = Vel_Matrix_data_1(:,1); % ros time, needs to be converted to sec...
% duriation = end_time - start_time
durationV_data_1 = (TimeV_ros_data_1(size(TimeV_ros_data_1,1),:) - TimeV_ros_data_1(1,:))*10^(-9);
t_V_sec_data_1 = 0:durationV_data_1/size(TimeV_ros_data_1,1):durationV_data_1;
t_V_sec_data_1(:,size(t_V_sec_data_1,2)) = [];
% -----------------------------------------------------------------------------------------------------
% data 2: 588 ros messages for geometry_msgs/Twist
% 589 ros messages for geometry_msgs/PoseStamped
% y-axis gains:
% P = .5; I = 0.001; D = 0.03;
% theta-axis gains:
% P = .28; I = 0.1; D = 0.15;
%
Pose_Matrix_data_2 = csvread('POSE_with_Py0.66_Iy0_Dy0.1ANDPt0.08_It0_Dt0.txt',1,0);
Vel_Matrix_data_2 = csvread('VEL_with_Py0.66_Iy0_Dy0.1ANDPt0.08_It0_Dt0.txt',1,0);
% Pose_Matrix_data_2 = csvread('CAM_PID_.29_.00026_.015.txt',1,0);
% Vel_Matrix_data_2 = csvread('vel_PID_.29_.00026_.015.txt',1,0);
% time in position
TimeP_ros_data_2 = Pose_Matrix_data_2(:,1); % ros time, needs to be converted to sec...
% duriation = end_time - start_time
durationP_data_2 = (TimeP_ros_data_2(size(TimeP_ros_data_2,1),:) - TimeP_ros_data_2(1,:))*10^(-9);
t_P_sec_data_2 = 0:durationP_data_2/size(TimeP_ros_data_2,1):durationP_data_2;
t_P_sec_data_2(:,size(t_P_sec_data_2,2)) = [];
% time in vel
TimeV_ros_data_2 = Vel_Matrix_data_2(:,1); % ros time, needs to be converted to sec...
% duriation = end_time - start_time
durationV_data_2 = (TimeV_ros_data_2(size(TimeV_ros_data_2,1),:) - TimeV_ros_data_2(1,:))*10^(-9);
t_V_sec_data_2 = 0:durationV_data_2/size(TimeV_ros_data_2,1):durationV_data_2;
t_V_sec_data_2(:,size(t_V_sec_data_2,2)) = [];
% -----------------------------------------------------------------------------------------------------
% data 3: 538 ros messages for geometry_msgs/Twist
% 539 ros messages for geometry_msgs/PoseStamped
% y-axis gains:
% P = .44; I = .0005; D = 0.15;
% theta-axis gains:
% P = .08; I = 0; D = 0;
Pose_Matrix_data_3 = csvread('POSE_with_Py0.86_Iy0_Dy0.1ANDPt0.08_It0_Dt0.txt',1,0);
Vel_Matrix_data_3 = csvread('VEL_with_Py0.86_Iy0_Dy0.1ANDPt0.08_It0_Dt0.txt',1,0);
% Pose_Matrix_data_3 = csvread('Trans_PID_.28_0_.006.txt',1,0);
% Vel_Matrix_data_3 = csvread('vel_PID_.28_0_.006.txt',1,0);
% time in position
TimeP_ros_data_3 = Pose_Matrix_data_3(:,1); % ros time, needs to be converted to sec...
% duriation = end_time - start_time
durationP_data_3 = (TimeP_ros_data_3(size(TimeP_ros_data_3,1),:) - TimeP_ros_data_3(1,:))*10^(-9);
t_P_sec_data_3 = 0:durationP_data_3/size(TimeP_ros_data_3,1):durationP_data_3;
t_P_sec_data_3(:,size(t_P_sec_data_3,2)) = [];
% time in vel
TimeV_ros_data_3 = Vel_Matrix_data_3(:,1); % ros time, needs to be converted to sec...
% duriation = end_time - start_time
durationV_data_3 = (TimeV_ros_data_3(size(TimeV_ros_data_3,1),:) - TimeV_ros_data_3(1,:))*10^(-9);
t_V_sec_data_3 = 0:durationV_data_3/size(TimeV_ros_data_3,1):durationV_data_3;
t_V_sec_data_3(:,size(t_V_sec_data_3,2)) = [];
% -----------------------------------------------------------------------------------------------------
% data 4: 450 ros messages for geometry_msgs/Twist
% 451 ros messages for geometry_msgs/PoseStamped
% y-axis gains:
% P = .86; I = 0; D = 0.002;
% theta-axis gains:
% P = .08; I = 0; D = 0;
%
% Pose_Matrix_data_4 = csvread('POSE_with_Py0.51_Iy0.0005_Dy0.05ANDPt0.08_It0_Dt0.txt',1,0);
% Vel_Matrix_data_4 = csvread('VEL_with_Py0.51_Iy0.0005_Dy0.05ANDPt0.08_It0_Dt0.txt',1,0);
Pose_Matrix_data_4 = csvread('CAM_PID_.266_.0003_.014.txt',1,0);
Vel_Matrix_data_4 = csvread('vel_PID_.266_.0003_.014.txt',1,0);
% time in position
TimeP_ros_data_4 = Pose_Matrix_data_4(:,1); % ros time, needs to be converted to sec...
% duriation = end_time - start_time
durationP_data_4 = (TimeP_ros_data_4(size(TimeP_ros_data_4,1),:) - TimeP_ros_data_4(1,:))*10^(-9);
t_P_sec_data_4 = 0:durationP_data_4/size(TimeP_ros_data_4,1):durationP_data_4;
t_P_sec_data_4(:,size(t_P_sec_data_4,2)) = [];
% time in vel
TimeV_ros_data_4 = Vel_Matrix_data_4(:,1); % ros time, needs to be converted to sec...
% duriation = end_time - start_time
durationV_data_4 = (TimeV_ros_data_4(size(TimeV_ros_data_4,1),:) - TimeV_ros_data_4(1,:))*10^(-9);
t_V_sec_data_4 = 0:durationV_data_4/size(TimeV_ros_data_4,1):durationV_data_4;
t_V_sec_data_4(:,size(t_V_sec_data_4,2)) = [];
% -----------------------------------------------------------------------------------------------------
% data 5: ANDROID CAMERA
Pose_Matrix_data_5 = csvread('Pose_with_Android.txt',1,0);
Vel_Matrix_data_5 = csvread('Velocity_with_Android.txt',1,0);
% time in position
TimeP_ros_data_5 = Pose_Matrix_data_5(:,1); % ros time, needs to be converted to sec...
% duriation = end_time - start_time
durationP_data_5 = (TimeP_ros_data_5(size(TimeP_ros_data_5,1),:) - TimeP_ros_data_5(1,:))*10^(-9);
t_P_sec_data_5 = 0:durationP_data_5/size(TimeP_ros_data_5,1):durationP_data_5;
t_P_sec_data_5(:,size(t_P_sec_data_5,2)) = [];
% time in vel
TimeV_ros_data_5 = Vel_Matrix_data_5(:,1); % ros time, needs to be converted to sec...
% duriation = end_time - start_time
durationV_data_5 = (TimeV_ros_data_5(size(TimeV_ros_data_5,1),:) - TimeV_ros_data_5(1,:))*10^(-9);
t_V_sec_data_5 = 0:durationV_data_5/size(TimeV_ros_data_5,1):durationV_data_5;
t_V_sec_data_5(:,size(t_V_sec_data_5,2)) = [];
% -----------------------------------------------------------------------------------------------------
% data 6: with several oscilations
Pose_Matrix_data_6 = csvread('CAM_PID_.39_.0005_.01.txt',1,0);
Vel_Matrix_data_6 = csvread('vel_PID_.39_.0005_.01.txt',1,0);
% time in position
TP_ros_6 = Pose_Matrix_data_6(:,1); % ros time, needs to be converted to sec...
% duriation = end_time - start_time
duP_6 = (TP_ros_6(size(TP_ros_6,1),:) - TP_ros_6(1,:))*10^(-9);
t_P_ave_6 = 0:duP_6/size(TP_ros_6,1):duP_6;
t_P_ave_6(:,size(t_P_ave_6,2)) = [];
% time in vel
TV_ros_6 = Vel_Matrix_data_6(:,1); % ros time, needs to be converted to sec...
% duriation = end_time - start_time
duV_6 = (TV_ros_6(size(TV_ros_6,1),:) - TV_ros_6(1,:))*10^(-9);
t_V_ave_6 = 0:duV_6/size(TV_ros_6,1):duV_6;
t_V_ave_6(:,size(t_V_ave_6,2)) = [];
%% Pose estimation
%data 1:
% when using marker pose ,,,,
Pose_X_data_1 = Pose_Matrix_data_1(:,4);
Pose_Y_data_1 = Pose_Matrix_data_1(:,3);
Theta_data_1 = Pose_Matrix_data_1(:,7);
% for i = 1:size(Theta_data_1,1)
% if (Theta_data_1(i) > 0)
% Theta_data_1(i) = Theta_data_1(i) - yaw_off;
% else if(Theta_data_1(i) < 0)
% Theta_data_1(i) = Theta_data_1(i) + yaw_off;
% end
% end
% end
% Extracting reference values when the robot is manually docked!
ref_X_data_1 = Pose_X_data_1(size(Pose_X_data_1,1));
ref_Y_data_1 = Pose_Y_data_1(size(Pose_Y_data_1,1));
ref_Theta_data_1 = Theta_data_1(size(Theta_data_1,1));
ref_Pose_data_1 =[ref_X_data_1;ref_Y_data_1];
%data 2:
% when using marker pose ,,,,
Pose_X_data_2 = Pose_Matrix_data_2(:,4);
Pose_Y_data_2 = Pose_Matrix_data_2(:,3);
Theta_data_2 = Pose_Matrix_data_2(:,7);
% for i = 1:size(Theta_data_2,1)
% if (Theta_data_2(i) > 0)
% Theta_data_2(i) = Theta_data_2(i) - yaw_off;
% else if(Theta_data_2(i) < 0)
% Theta_data_2(i) = Theta_data_2(i) + yaw_off;
% end
% end
% end
% Extracting reference values when the robot is manually docked!
ref_X_data_2 = Pose_X_data_2(size(Pose_X_data_2,1));
ref_Y_data_2 = Pose_Y_data_2(size(Pose_Y_data_2,1));
ref_Theta_data_2 = Theta_data_2(size(Theta_data_2,1));
ref_Pose_data_2 =[ref_X_data_2;ref_Y_data_2];
%data 3:
% when using marker pose ,,,,
Pose_X_data_3 = Pose_Matrix_data_3(:,4);
Pose_Y_data_3 = Pose_Matrix_data_3(:,3);
Theta_data_3 = Pose_Matrix_data_3(:,7);
%
% for i = 1:size(Theta_data_3,1)
% if (Theta_data_3(i) > 0)
% Theta_data_3(i) = Theta_data_3(i) - yaw_off;
% else if(Theta_data_3(i) < 0)
% Theta_data_3(i) = Theta_data_3(i) + yaw_off;
% end
% end
% end
% Extracting reference values when the robot is manually docked!
ref_X_data_3 = Pose_X_data_3(size(Pose_X_data_3,1));
ref_Y_data_3 = Pose_Y_data_3(size(Pose_Y_data_3,1));
ref_Theta_data_3 = Theta_data_3(size(Theta_data_3,1));
ref_Pose_data_3 =[ref_X_data_3;ref_Y_data_3];
%data 4:
% when using marker pose ,,,,
Pose_X_data_4 = Pose_Matrix_data_4(:,4);
Pose_Y_data_4 = Pose_Matrix_data_4(:,3);
Theta_data_4 = Pose_Matrix_data_4(:,7);
%
% for i = 1:size(Theta_data_4,1)
% if (Theta_data_4(i) > 0)
% Theta_data_4(i) = Theta_data_4(i) - yaw_off;
% else if(Theta_data_4(i) < 0)
% Theta_data_4(i) = Theta_data_4(i) + yaw_off;
% end
% end
% end
% Extracting reference values when the robot is manually docked!
ref_X_data_4 = Pose_X_data_4(size(Pose_X_data_4,1));
ref_Y_data_4 = Pose_Y_data_4(size(Pose_Y_data_4,1));
ref_Theta_data_4 = Theta_data_4(size(Theta_data_4,1));
ref_Pose_data_4 =[ref_X_data_4;ref_Y_data_4];
%data 5:
% when using marker pose ,,,,
Pose_X_data_5 = Pose_Matrix_data_5(:,4);
Pose_Y_data_5 = Pose_Matrix_data_5(:,3);
Theta_data_5 = Pose_Matrix_data_5(:,7);
% Extracting reference values when the robot is manually docked!
ref_X_data_5 = Pose_X_data_5(size(Pose_X_data_5,1));
ref_Y_data_5 = Pose_Y_data_5(size(Pose_Y_data_5,1));
ref_Theta_data_5 = Theta_data_5(size(Theta_data_5,1));
ref_Pose_data_5 =[ref_X_data_5;ref_Y_data_5];
%data 6:
% when using marker pose ,,,,
X_6 = Pose_Matrix_data_6(:,4);
Y_6 = Pose_Matrix_data_6(:,3);
Theta_6 = Pose_Matrix_data_6(:,7);
% Extracting reference values when the robot is manually docked!
ref_X_data_6 = X_6(size(X_6,1));
ref_Y_data_6 = Y_6(size(Y_6,1));
ref_Theta_data_6 = Theta_6(size(Theta_6,1));
ref_Pose_data_6 =[ref_X_data_6;ref_Y_data_6];
% Reference Circle
thresh_X = .001;
theta = 0:.001:2*pi;
% needs to be adjusted manually if docking platform is replaced!
ref_x = .2026;
ref_y = .0087;
x_circle = thresh_X*cos(theta) + ref_x; % ref_X needs to be recorded
y_circle = thresh_X*sin(theta) + ref_y; % ref_Y needs to be recorded
%% Velocity estimation
% data 1:
Vel_X_data_1 = Vel_Matrix_data_1(:,2);
Vel_Y_data_1 = Vel_Matrix_data_1(:,3);
Omega_Z_data_1 = Vel_Matrix_data_1(:,7);
% data 2:
Vel_X_data_2 = Vel_Matrix_data_2(:,2);
Vel_Y_data_2 = Vel_Matrix_data_2(:,3);
Omega_Z_data_2 = Vel_Matrix_data_2(:,7);
% data 3:
Vel_X_data_3 = Vel_Matrix_data_3(:,2);
Vel_Y_data_3 = Vel_Matrix_data_3(:,3);
Omega_Z_data_3 = Vel_Matrix_data_3(:,7);
% data 4:
Vel_X_data_4 = Vel_Matrix_data_4(:,2);
Vel_Y_data_4 = Vel_Matrix_data_4(:,3);
Omega_Z_data_4 = Vel_Matrix_data_4(:,7);
% data 5:
Vel_X_data_5 = Vel_Matrix_data_5(:,2);
Vel_Y_data_5 = Vel_Matrix_data_5(:,3);
Omega_Z_data_5 = Vel_Matrix_data_5(:,7);
% data 6:
X_dot_6 = Vel_Matrix_data_6(:,2);
Y_dot_6 = Vel_Matrix_data_6(:,3);
theta_dot_6 = Vel_Matrix_data_6(:,7);
%% Plots
% % marker position
% figure;
% plot(t_P_sec_data_6,Pose_Y_data_6,'k','LineWidth',1.6);
% xlabel('time');
% ylabel('y');
%
% figure;
% plot(t_P_sec_data_6,Theta_data_6,'k','LineWidth',1.6);
% xlabel('time');
% ylabel('\theta');
% camera pose estimation
figure;
set(gcf,'color','white');
subplot(321);
plot(t_P_sec_data_1,Pose_X_data_1,'LineWidth',2.1);
hold on
plot(t_P_sec_data_2,Pose_X_data_2,'r','LineWidth',1.7);
hold on
plot(t_P_sec_data_3,Pose_X_data_3,'g','LineWidth',1.8);
hold on
plot(t_P_sec_data_4,Pose_X_data_4,'m','LineWidth',1.5);
title('Pose estimation in marker coordinate system');
ylabel('${x_{mar}}$ [m]','interpreter','latex','FontSize',14);
% l2 = legend('${P_y = 0.28, I_y = 0.0001, D_y = 0.01}$', '${P_y = 0.29, I_y = 0.00026, D_y = 0.015}$','${P_y = 0.28, I_y = 0, D_y = 0.006}$','${P_y = 0.266, I_y = 0.0003, D_y = 0.014}$');
% set(l2,'interpreter','latex','FontSize',11);
% legend('boxoff');
subplot(323);
plot(t_P_sec_data_1,Pose_Y_data_1,'LineWidth',2.1);
hold on
plot(t_P_sec_data_2,Pose_Y_data_2,'r','LineWidth',1.7);
hold on
plot(t_P_sec_data_3,Pose_Y_data_3,'g','LineWidth',1.8);
hold on
plot(t_P_sec_data_4,Pose_Y_data_4,'m','LineWidth',1.5);
ylabel('${y_{mar}}$ [m]','interpreter','latex','FontSize',14);
subplot(325);
plot(t_P_sec_data_1,Theta_data_1,'LineWidth',2.1);
hold on
plot(t_P_sec_data_2,Theta_data_2,'r','LineWidth',1.7);
hold on
plot(t_P_sec_data_3,Theta_data_3,'g','LineWidth',1.8);
hold on
plot(t_P_sec_data_4,Theta_data_4,'m','LineWidth',1.5);
xlabel('$ time [sec]$','interpreter','latex','FontSize',14);
ylabel('${\theta_{mar}}$ [rad]','interpreter','latex','FontSize',14);
% control signals
% figure;
% set(gcf,'color','white');
subplot(322);
plot(t_V_sec_data_1,Vel_X_data_1,'LineWidth',2.1);
hold on
plot(t_V_sec_data_2,Vel_X_data_2,'r','LineWidth',1.7);
hold on
plot(t_V_sec_data_3,Vel_X_data_3,'g','LineWidth',1.8);
hold on
plot(t_V_sec_data_4,Vel_X_data_4,'m','LineWidth',1.5);
title('Control Signals');
ylabel('$\dot{x}_{Rob}$ [m/s]','interpreter','latex','FontSize',14);
l2 = legend('${P_y = 0.28, I_y = 0.0001, D_y = 0.01}$', '${P_y = 0.29, I_y = 0.00026, D_y = 0.015}$','${P_y = 0.28, I_y = 0, D_y = 0.006}$','${P_y = 0.266, I_y = 0.0003, D_y = 0.014}$');
set(l2,'interpreter','latex','FontSize',11);
legend('boxoff');
subplot(324);
plot(t_V_sec_data_1,Vel_Y_data_1,'LineWidth',2.1);
hold on
plot(t_V_sec_data_2,Vel_Y_data_2,'r','LineWidth',1.7);
hold on
plot(t_V_sec_data_3,Vel_Y_data_3,'g','LineWidth',1.8);
hold on
plot(t_V_sec_data_4,Vel_Y_data_4,'m','LineWidth',1.5);
ylabel('$\dot{y}_{Rob}$ [m/s]','interpreter','latex','FontSize',14);
subplot(326);
plot(t_V_sec_data_1,Omega_Z_data_1,'LineWidth',2.1);
hold on
plot(t_V_sec_data_2,Omega_Z_data_2,'r','LineWidth',1.7);
hold on
plot(t_V_sec_data_3,Omega_Z_data_3,'g','LineWidth',1.8);
hold on
plot(t_V_sec_data_4,Omega_Z_data_4,'m','LineWidth',1.5);
xlabel('$ time [sec]$','interpreter','latex','FontSize',14);
ylabel('$\dot{\theta}_{Rob}$ [rad/s]','interpreter','latex','FontSize',14);
% Trajectory
%
% figure;
% plot(Pose_Y_data_1,Pose_X_data_1,'b',ref_Y_data_1,ref_X_data_1,'k*');
% hold on
% plot(Pose_Y_data_2,Pose_X_data_2,'r',ref_Y_data_2,ref_X_data_2,'k*');
%
% hold on
% plot(Pose_Y_data_3,Pose_X_data_3,'g',ref_Y_data_3,ref_X_data_3,'k*');
%
% for k = Pose_X_data_1(1):Pose_X_data_1(size(Pose_X_data_1,1))
% x_arrow(k) =
%
% end
%
% x_arrow = linspace(Pose_X_data_1(1),Pose_X_data_1(size(Pose_X_data_1,1)),150);
% y_arrow = linspace(Pose_Y_data_1(1),Pose_Y_data_1(size(Pose_Y_data_1,1)),150);
%
% Vx = gradient(Pose_X_data_1);
% Vy = gradient(Pose_Y_data_1);
% figure;
% plot(Pose_Y_data_1,Pose_X_data_1,'b','LineWidth',3.5);
% hold on
% quiver(Pose_Y_data_1,Pose_X_data_1,Vy,Vx,'r--','LineWidth',.1);
figure;
plot(Y_6,X_6,'k','LineWidth',1.4);
% axis([-.3 .7 .1 1.6]);
figure;
subplot(321);
plot(t_P_ave_6,X_6,'LineWidth',2.1);
subplot(322);
plot(t_V_ave_6,X_dot_6,'LineWidth',2.1);
subplot(323);
plot(t_P_ave_6,Y_6,'LineWidth',2.1);
subplot(324);
plot(t_V_ave_6,Y_dot_6,'LineWidth',2.1);
subplot(325);
plot(t_P_ave_6,Theta_6,'LineWidth',2.1);
subplot(326);
plot(t_V_ave_6,theta_dot_6,'LineWidth',2.1);
figure;
subplot(1,3,1);
plot(Pose_Y_data_1,Pose_X_data_1,'b','LineWidth',2);
% hold on
% quiver(abs(Pose_Y_data_1),Pose_X_data_1,gradient(Pose_Y_data_1),gradient(Pose_X_data_1),'r--','LineWidth',.1);
hold on
plot(Pose_Y_data_2,Pose_X_data_2,'r','LineWidth',2);
% hold on
% quiver(abs(Pose_Y_data_2),Pose_X_data_2,gradient(Pose_Y_data_2),gradient(Pose_X_data_2),'m--','LineWidth',.1);
hold on
plot(Pose_Y_data_3,Pose_X_data_3,'g','LineWidth',2);
% hold on
% quiver(abs(Pose_Y_data_3),Pose_X_data_3,gradient(Pose_Y_data_3),gradient(Pose_X_data_3),'k--','LineWidth',.1);
hold on
plot(Pose_Y_data_4,Pose_X_data_4,'m','LineWidth',2);
% hold on
% quiver(abs(Pose_Y_data_4),Pose_X_data_4,gradient(Pose_Y_data_4),gradient(Pose_X_data_4),'b--','LineWidth',.1);
hold on
plot(y_circle,x_circle,'k--','LineWidth',3.4);
title('Approach zone + SM zone + Target area');
ylabel('${x}_{mar}$ [m]','interpreter','latex','FontSize',14);
axis([-.05 .26 .19 1.52]);
subplot(1,3,2);
plot(Pose_Y_data_1,Pose_X_data_1,'b','LineWidth',2);
hold on
plot(Pose_Y_data_2,Pose_X_data_2,'r','LineWidth',2);
hold on
plot(Pose_Y_data_3,Pose_X_data_3,'g','LineWidth',2);
hold on
plot(Pose_Y_data_4,Pose_X_data_4,'m','LineWidth',2);