plot: revise plots
parent
9d49b16d23
commit
ca49a61744
79
plot_all.m
79
plot_all.m
|
@ -1,4 +1,4 @@
|
|||
clc
|
||||
<\clc
|
||||
clear all
|
||||
close all
|
||||
|
||||
|
@ -8,32 +8,14 @@ disp('Photos will start in 3s')
|
|||
pause(3)
|
||||
|
||||
PLOT_TESTS = [
|
||||
<<<<<<< HEAD
|
||||
"results-diffdrive/straightline/chill/01-Aug-2024 15-34-03";
|
||||
"results-diffdrive/straightline/chill_errortheta_pisixths/01-Aug-2024 15-56-36";
|
||||
"results-diffdrive/square/01-Aug-2024 16-18-51";
|
||||
"results-diffdrive/circle/start_center/01-Aug-2024 16-46-41";
|
||||
"results-diffdrive/circle/start_tangent/01-Aug-2024 16-55-09";
|
||||
"results-diffdrive/circle/toofast/01-Aug-2024 17-35-25";
|
||||
"results-diffdrive/straightline/toofast/01-Aug-2024 15-37-48";
|
||||
"results-diffdrive/figure8/chill/15-Aug-2024 09-16-21";
|
||||
"results-diffdrive/figure8/toofast/15-Aug-2024 09-10-32";
|
||||
"results-diffdrive/straightline/abrupt_stop_chill/27-Aug-2024 10-15-43";
|
||||
"results-diffdrive/straightline/abrupt_stop_toofast/27-Aug-2024 10-44-35";
|
||||
"results-diffdrive/sin/no_start_error/27-Aug-2024 19-28-17";
|
||||
"results-diffdrive/sin/no_start_error/27-Aug-2024 19-29-42";
|
||||
"results-diffdrive/sin/no_start_error/27-Aug-2024 19-31-17";
|
||||
"results-diffdrive/sin/no_start_error/27-Aug-2024 19-38-03";
|
||||
=======
|
||||
"results-uni/straightline/chill/30-08-2024 19-37-07";
|
||||
"results-uni/straightline/chill_errortheta_pisixths/30-08-2024 19-38-37";
|
||||
"results-uni/square/30-08-2024 19-44-27";
|
||||
"results-uni/sin/no_start_error/30-08-2024 19-45-33";
|
||||
"results-uni/circle/start_center/30-08-2024 19-50-23";
|
||||
"results-uni/circle/start_tangent/30-08-2024 19-51-58";
|
||||
"results-uni/circle/toofast/30-08-2024 19-48-47";
|
||||
"results-uni/circle/start_center_plus_tolerance/01-09-2024 19-20-41";
|
||||
>>>>>>> c772cb1 (plots: increase font size for better reading in ppt)
|
||||
"results-diffdrive/straightline/chill/10-09-2024-22-30-28";
|
||||
"results-diffdrive/straightline/chill_errortheta_pisixths/10-09-2024-22-31-10";
|
||||
"results-diffdrive/straightline/chill_errory/10-09-2024-22-32-34";
|
||||
"results-diffdrive/circle/start_center/10-09-2024-22-33-21";
|
||||
"results-diffdrive/square/10-09-2024-22-40-01";
|
||||
"results-diffdrive/figure8/chill/10-09-2024-22-34-26";
|
||||
"results-diffdrive/figure8/fancyreps/10-09-2024-21-45-28";
|
||||
"results-diffdrive/figure8/toofast/10-09-2024-22-35-17";
|
||||
]
|
||||
|
||||
s_ = size(PLOT_TESTS)
|
||||
|
@ -49,7 +31,6 @@ for i = 1:s_(1)
|
|||
|
||||
|
||||
for n=1:3
|
||||
%{
|
||||
clf; plot_trajectory(t{n}, ref_t{n}, q{n})
|
||||
export_fig(gcf, '-transparent', [dir, num2str(n), '_trajectory.png'])
|
||||
clf; plot_error(t{n}, ref_t{n}, q{n})
|
||||
|
@ -67,58 +48,34 @@ for i = 1:s_(1)
|
|||
%export_fig(gcf, '-transparent', [dir, num2str(n), '_track_input.png'])
|
||||
%clf; plot_input(t{n}, sim_data{n}.SATURATION, U_corr{n}, 'corr')
|
||||
%export_fig(gcf, '-transparent', [dir, num2str(n), '_corr_input.png'])
|
||||
%}
|
||||
|
||||
clf; plot_input(t{n},sim_data{n}.SATURATION, U{n}, '', 0)
|
||||
export_fig(gcf, '-transparent', [dir, num2str(n), '_total_input_1x2.png'])
|
||||
clf; plot_input(t{n},sim_data{n}.SATURATION, U{n}, '', 1)
|
||||
export_fig(gcf, '-transparent', [dir, num2str(n), '_total_input_2x1.png'])
|
||||
end
|
||||
|
||||
|
||||
%{
|
||||
% correction difference (multistep, 1-step)
|
||||
<<<<<<< HEAD
|
||||
clf; plot_input_diff(t{3}, t{2}, U_corr{3}, U_corr{2}, 0, '\textbf{$$\omega_r^{corr, multistep}$$}', '\textbf{$$\omega_r^{corr, 1step}$$}', '\textbf{$$\omega_l^{corr, multistep}$$}', '\textbf{$$\omega_l^{corr, 1step}$$}')
|
||||
export_fig(gcf, '-transparent', [dir, 'corr_input_diff_1x2.eps'])
|
||||
clf; plot_input_diff(t{3}, t{2}, U_corr{3}, U_corr{2}, 1, '\textbf{$$\omega_r^{corr, multistep}$$}', '\textbf{$$\omega_r^{corr, 1step}$$}', '\textbf{$$\omega_l^{corr, multistep}$$}', '\textbf{$$\omega_l^{corr, 1step}$$}')
|
||||
export_fig(gcf, '-transparent', [dir, 'corr_input_diff_2x1.eps'])
|
||||
|
||||
% input difference (saturated track only, 1step)
|
||||
clf; plot_input_diff(t{1}, t{2}, U{1}, U{2}, 0, '\textbf{$$\omega_r^{trackonly-sat}$$}', '\textbf{$$\omega_r^{1step}$$}', '\textbf{$$\omega_l^{trackonly-sat}$$}', '\textbf{$$\omega_l^{1step}$$}')
|
||||
clf; plot_input_diff(t{1}, t{2}, U{1}, U{2}, 0, '\textbf{$$\omega_r^{trackonly_sat}$$}', '\textbf{$$\omega_r^{1step}$$}', '\textbf{$$\omega_l^{trackonly-sat}$$}', '\textbf{$$\omega_l^{1step}$$}')
|
||||
export_fig(gcf, '-transparent', [dir, 'input_diff_track_1step_1x2.eps'])
|
||||
clf; plot_input_diff(t{1}, t{2}, U{1}, U{2}, 1, '\textbf{$$\omega_r^{trackonly-sat}$$}', '\textbf{$$\omega_r^{1step}$$}', '\textbf{$$\omega_l^{trackonly-sat}$$}', '\textbf{$$\omega_l^{1step}$$}')
|
||||
clf; plot_input_diff(t{1}, t{2}, U{1}, U{2}, 1, '\textbf{$$\omega_r^{trackonly_sat}$$}', '\textbf{$$\omega_r^{1step}$$}', '\textbf{$$\omega_l^{trackonly-sat}$$}', '\textbf{$$\omega_l^{1step}$$}')
|
||||
export_fig(gcf, '-transparent', [dir, 'input_diff_track_1step_2x1.eps'])
|
||||
|
||||
% input difference (saturated track only, multistep)
|
||||
clf; plot_input_diff(t{1}, t{3}, U{1}, U{3}, 0, '\textbf{$$\omega_r^{trackonly_sat}$$}', '\textbf{$$\omega_r^{multistep}$$}', '\textbf{$$\omega_l^{1step}$$}', '\textbf{$$\omega_l^{multistep}$$}')
|
||||
export_fig(gcf, '-transparent', [dir, 'input_diff_1step_multistep_1x2.eps'])
|
||||
clf; plot_input_diff(t{1}, t{3}, U{1}, U{3}, 1, '\textbf{$$\omega_r^{trackonly_sat}$$}', '\textbf{$$\omega_r^{multistep}$$}', '\textbf{$$\omega_l^{1step}$$}', '\textbf{$$\omega_l^{multistep}$$}')
|
||||
export_fig(gcf, '-transparent', [dir, 'input_diff_1step_multistep_2x1.eps'])
|
||||
|
||||
% input difference (1-step, multistep)
|
||||
clf; plot_input_diff(t{2}, t{3}, U{2}, U{3}, 0, '\textbf{$$\omega_r^{1step}$$}', '\textbf{$$\omega_r^{multistep}$$}', '\textbf{$$\omega_l^{1step}$$}', '\textbf{$$\omega_l^{multistep}$$}')
|
||||
export_fig(gcf, '-transparent', [dir, 'input_diff_1step_multistep_1x2.eps'])
|
||||
clf; plot_input_diff(t{2}, t{3}, U{2}, U{3}, 1, '\textbf{$$\omega_r^{1step}$$}', '\textbf{$$\omega_r^{multistep}$$}', '\textbf{$$\omega_l^{1step}$$}', '\textbf{$$\omega_l^{multistep}$$}')
|
||||
export_fig(gcf, '-transparent', [dir, 'input_diff_1step_multistep_2x1.eps'])
|
||||
|
||||
=======
|
||||
clf; plot_input_diff(t{3}, t{2}, U_corr{3}, U_corr{2}, 0, '\textbf{$$v^{corr, multistep}$$}', '\textbf{$$v^{corr, 1step}$$}', '\textbf{$$\omega^{corr, multistep}$$}', '\textbf{$$\omega^{corr, 1step}$$}')
|
||||
export_fig(gcf, '-transparent', [dir, 'corr_input_diff_1x2.png'])
|
||||
clf; plot_input_diff(t{3}, t{2}, U_corr{3}, U_corr{2}, 1, '\textbf{$$v^{corr, multistep}$$}', '\textbf{$$v^{corr, 1step}$$}', '\textbf{$$\omega^{corr, multistep}$$}', '\textbf{$$\omega^{corr, 1step}$$}')
|
||||
export_fig(gcf, '-transparent', [dir, 'corr_input_diff_2x1.png'])
|
||||
|
||||
% input difference (saturated track only, 1step)
|
||||
clf; plot_input_diff(t{1}, t{2}, U{1}, U{2}, 0, '\textbf{$$v^{trackonly-sat}$$}', '\textbf{$$v^{1step}$$}', '\textbf{$$\omega^{trackonly-sat}$$}', '\textbf{$$\omega^{1step}$$}')
|
||||
export_fig(gcf, '-transparent', [dir, 'input_diff_track_1step_1x2.png'])
|
||||
clf; plot_input_diff(t{1}, t{2}, U{1}, U{2}, 1, '\textbf{$$v^{trackonly-sat}$$}', '\textbf{$$v^{1step}$$}', '\textbf{$$\omega^{trackonly-sat}$$}', '\textbf{$$\omega^{1step}$$}')
|
||||
export_fig(gcf, '-transparent', [dir, 'input_diff_track_1step_2x1.png'])
|
||||
|
||||
% input difference (saturated track only, 1step)
|
||||
clf; plot_input_diff(t{1}, t{3}, U{1}, U{3}, 0, '\textbf{$$v^{trackonly-sat}$$}', '\textbf{$$v^{multistep}$$}', '\textbf{$$\omega^{trackonly-sat}$$}', '\textbf{$$\omega^{multistep}$$}')
|
||||
export_fig(gcf, '-transparent', [dir, 'input_diff_track_multistep_1x2.png'])
|
||||
clf; plot_input_diff(t{1}, t{3}, U{1}, U{3}, 1, '\textbf{$$v^{trackonly-sat}$$}', '\textbf{$$v^{multistep}$$}', '\textbf{$$\omega^{trackonly-sat}$$}', '\textbf{$$\omega^{multistep}$$}')
|
||||
export_fig(gcf, '-transparent', [dir, 'input_diff_track_multistep_2x1.png'])
|
||||
|
||||
|
||||
% input difference (1-step, multistep)
|
||||
clf; plot_input_diff(t{2}, t{3}, U{2}, U{3}, 0, '\textbf{$$v^{1step}$$}', '\textbf{$$v^{multistep}$$}', '\textbf{$$\omega^{1step}$$}', '\textbf{$$\omega^{multistep}$$}')
|
||||
export_fig(gcf, '-transparent', [dir, 'input_diff_1step_multistep_1x2.png'])
|
||||
clf; plot_input_diff(t{2}, t{3}, U{2}, U{3}, 1, '\textbf{$$v^{1step}$$}', '\textbf{$$v^{multistep}$$}', '\textbf{$$\omega^{1step}$$}', '\textbf{$$\omega^{multistep}$$}')
|
||||
export_fig(gcf, '-transparent', [dir, 'input_diff_1step_multistep_2x1.png'])
|
||||
%}
|
||||
>>>>>>> c772cb1 (plots: increase font size for better reading in ppt)
|
||||
end
|
|
@ -3,6 +3,8 @@ function plot_doubleinput(t, sat, U_track, U_corr, type)
|
|||
tiledlayout(1,1,'Padding','tight', 'TileSpacing','compact')
|
||||
nexttile
|
||||
|
||||
ylim_ = 7;
|
||||
lw = 6;
|
||||
|
||||
if type == 0
|
||||
subplot(1,2,1);
|
||||
|
@ -11,11 +13,13 @@ subplot(2,1,1);
|
|||
end
|
||||
|
||||
hold on
|
||||
plot(t, U_track(:, 1), 'Linewidth', 8, 'DisplayName', '\omega_r^{track}');
|
||||
plot(t, U_corr(:, 1), 'Linewidth', 8, 'DisplayName', '\omega_r^{corr}');
|
||||
legend('FontSize', 22, 'Location', 'east', 'AutoUpdate','off')
|
||||
plot(t, ones(1,length(t))*sat(1), 'Linewidth', 2.5, 'LineStyle', '--');
|
||||
plot(t, -ones(1,length(t))*sat(1), 'Linewidth', 2.5, 'LineStyle', '--');
|
||||
plot(t, U_track(:, 1), 'Linewidth', lw, 'DisplayName', '\omega_r^{track}');
|
||||
plot(t, U_corr(:, 1), 'Linewidth', lw, 'DisplayName', '\omega_r^{corr}');
|
||||
legend('FontSize', 18, 'Location', 'northeast', 'AutoUpdate','off')
|
||||
|
||||
plot(t, ones(1,length(t))*sat(1), 'Linewidth', 2, 'Color', 'black');
|
||||
plot(t, -ones(1,length(t))*sat(1), 'Linewidth', 2, 'Color', 'black');
|
||||
|
||||
xlabel('\textbf{t[s]}', 'FontSize', 22, 'Interpreter','latex');
|
||||
hold off
|
||||
|
||||
|
@ -25,6 +29,8 @@ Axes.FontSize=22;
|
|||
Axes.FontWeight='bold';
|
||||
grid minor;
|
||||
Axes.PlotBoxAspectRatio = [1 1 1];
|
||||
ylim([-ylim_, ylim_])
|
||||
|
||||
|
||||
|
||||
if type == 0
|
||||
|
@ -34,18 +40,22 @@ subplot(2,1,2);
|
|||
end
|
||||
|
||||
hold on
|
||||
plot(t, U_track(:, 2), 'Linewidth', 8, 'DisplayName', '\omega_l^{track}');
|
||||
plot(t, U_corr(:, 2), 'Linewidth', 8, 'DisplayName', '\omega_l^{corr}');
|
||||
legend('FontSize', 22, 'Location', 'east', 'AutoUpdate','off')
|
||||
plot(t, ones(1,length(t))*sat(2), 'Linewidth', 2.5, 'LineStyle', '--');
|
||||
plot(t, -ones(1,length(t))*sat(2), 'Linewidth', 2.5, 'LineStyle', '--');
|
||||
xlabel('\textbf{t[s]}', 'FontSize', 22, 'Interpreter','latex');
|
||||
plot(t, U_track(:, 2), 'Linewidth', lw, 'DisplayName', '\omega_l^{track}');
|
||||
plot(t, U_corr(:, 2), 'Linewidth', lw, 'DisplayName', '\omega_l^{corr}');
|
||||
legend('FontSize', 18, 'Location', 'northeast', 'AutoUpdate','off')
|
||||
|
||||
plot(t, ones(1,length(t))*sat(1), 'Linewidth', 2, 'Color', 'black');
|
||||
plot(t, -ones(1,length(t))*sat(1), 'Linewidth', 2, 'Color', 'black');
|
||||
|
||||
xlabel('\textbf{t[s]}', 'Interpreter','latex');
|
||||
|
||||
Axes = gca;
|
||||
Axes.FontSize=22;
|
||||
Axes.FontWeight='bold';
|
||||
grid minor;
|
||||
Axes.PlotBoxAspectRatio = [1 1 1];
|
||||
ylim([-ylim_, ylim_])
|
||||
|
||||
|
||||
hold off
|
||||
end
|
|
@ -16,9 +16,9 @@ function plot_error(t,ref,x)
|
|||
Axes.PlotBoxAspectRatio = [1 1 1];
|
||||
grid minor;
|
||||
|
||||
legend('FontSize', 22, 'Location', 'northeast', 'AutoUpdate','off')
|
||||
xlabel("\textbf{t [s]}", FontSize=22, Interpreter="latex")
|
||||
ylabel("\textbf{tracking error}", FontSize=22, Interpreter="latex")
|
||||
legend('FontSize', 18, 'Location', 'northeast', 'AutoUpdate','off')
|
||||
xlabel("\textbf{t [s]}", Interpreter="latex")
|
||||
ylabel("\textbf{tracking error}", Interpreter="latex")
|
||||
|
||||
hold off
|
||||
end
|
23
plot_input.m
23
plot_input.m
|
@ -10,12 +10,17 @@ else
|
|||
subplot(2,1,1);
|
||||
end
|
||||
|
||||
|
||||
ylim_ = 7;
|
||||
|
||||
hold on
|
||||
plot(t, U(:, 1), 'Linewidth', 8);
|
||||
plot(t, U(:, 1), 'Linewidth', 6);
|
||||
|
||||
plot(t, ones(1,length(t))*sat(1), 'Linewidth', 2.5, 'LineStyle', '--');
|
||||
plot(t, -ones(1,length(t))*sat(1), 'Linewidth', 2.5, 'LineStyle', '--');
|
||||
|
||||
xlabel('\textbf{t[s]}', 'Interpreter','latex');
|
||||
ylabel(['\textbf{$$v^{' type '}$$[rad/s]}'], 'Interpreter','latex');
|
||||
ylabel(['\textbf{$$\omega_r^{' type '}$$[rad/s]}'], 'Interpreter','latex');
|
||||
hold off
|
||||
|
||||
|
||||
|
@ -24,6 +29,7 @@ Axes.FontSize=26;
|
|||
Axes.FontWeight='bold';
|
||||
grid minor;
|
||||
Axes.PlotBoxAspectRatio = [1 1 1];
|
||||
ylim([-ylim_, ylim_])
|
||||
|
||||
|
||||
if orient == 0
|
||||
|
@ -33,11 +39,13 @@ subplot(2,1,2);
|
|||
end
|
||||
|
||||
hold on
|
||||
plot(t, U(:, 2), 'Linewidth', 8);
|
||||
plot(t, ones(1,length(t))*sat(2), 'Linewidth', 2.5, 'LineStyle', '--');
|
||||
plot(t, -ones(1,length(t))*sat(2), 'Linewidth', 2.5, 'LineStyle', '--');
|
||||
plot(t, U(:, 2), 'Linewidth', 6);
|
||||
|
||||
plot(t, ones(1,length(t))*sat(1), 'Linewidth', 2, 'Color', 'black');
|
||||
plot(t, -ones(1,length(t))*sat(1), 'Linewidth', 2, 'Color', 'black');
|
||||
|
||||
xlabel('\textbf{t[s]}', 'Interpreter','latex');
|
||||
ylabel(['\textbf{$$\omega^{' type '}$$[rad/s]}'], 'Interpreter','latex');
|
||||
ylabel(['\textbf{$$\omega_l^{' type '}$$[rad/s]}'], 'Interpreter','latex');
|
||||
hold off
|
||||
|
||||
Axes = gca;
|
||||
|
@ -45,4 +53,7 @@ Axes.FontSize=26;
|
|||
Axes.FontWeight='bold';
|
||||
grid minor;
|
||||
Axes.PlotBoxAspectRatio = [1 1 1];
|
||||
ylim([-ylim_, ylim_])
|
||||
|
||||
|
||||
end
|
|
@ -5,16 +5,16 @@ function tl = plot_trajectory(t, ref, x)
|
|||
|
||||
hold on
|
||||
grid minor
|
||||
label_interval = 1:1200:length(x);
|
||||
label_interval = 1:1800:length(x);
|
||||
labels = strcat(num2str(round(t(label_interval),1)), "s");
|
||||
|
||||
%title("Reference trajectory / Robot position", "FontSize", 18)
|
||||
|
||||
plot(ref(:, 1), ref(:, 2), "DisplayName", "Reference trajectory", 'Color', 'blue', 'Linewidth', 12);
|
||||
plot(ref(:, 1), ref(:, 2), "DisplayName", "Reference trajectory", 'Color', 'blue', 'Linewidth', 4, 'Linestyle', ':');
|
||||
%plot(x(:, 1), x(:, 2), "DisplayName", "Robot position", 'Color', 'green', 'Linewidth', 6);
|
||||
[x_arr, y_arr] = arrowed_line(x(:, 1), x(:, 2), 600, 50, 50);
|
||||
[x_arr, y_arr] = arrowed_line(x(:, 1), x(:, 2), 1200, 65, 65);
|
||||
plot(x_arr, y_arr, "DisplayName", "Robot position", 'Color', 'green', 'Linewidth', 4);
|
||||
labelpoints(x(label_interval, 1), x(label_interval, 2), labels, 'N', 0.3, 'FontWeight', 'bold', 'FontSize', 15, 'Color', 'k', 'BackgroundColor', 'w');
|
||||
labelpoints(x(label_interval, 1), x(label_interval, 2), labels, 'N', 0.35, 'FontWeight', 'bold', 'FontSize', 14, 'Color', 'k', 'BackgroundColor', 'w');
|
||||
|
||||
Axes = gca;
|
||||
Axes.FontSize=22;
|
||||
|
@ -23,7 +23,7 @@ function tl = plot_trajectory(t, ref, x)
|
|||
|
||||
xlabel('\textbf{x [m]}', 'Interpreter', 'latex');
|
||||
ylabel('\textbf{y [m]}', 'Interpreter', 'latex');
|
||||
legend('FontSize', 22, 'Location', 'southeast', 'AutoUpdate','off')
|
||||
legend('FontSize', 18, 'Location', 'southeast', 'AutoUpdate','off')
|
||||
|
||||
%{
|
||||
xlim = Axes.XLim;
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
function plot_doubleinput(t, sat, U, U_track, U_corr, type)
|
||||
function plot_tripleinput(t, sat, U, U_track, U_corr, type)
|
||||
|
||||
tiledlayout(1,1,'Padding','tight', 'TileSpacing','compact')
|
||||
nexttile
|
||||
%tiledlayout(1,1,'Padding','tight', 'TileSpacing','compact')
|
||||
%nexttile
|
||||
|
||||
ylim_ = 7;
|
||||
lw = 6;
|
||||
|
||||
if type == 0
|
||||
subplot(1,2,1);
|
||||
|
@ -11,13 +13,16 @@ subplot(2,1,1);
|
|||
end
|
||||
|
||||
hold on
|
||||
plot(t, U_track(:, 1), 'Linewidth', 8, 'DisplayName', '\omega_r^{track}');
|
||||
plot(t, U_corr(:, 1), 'Linewidth',8, 'DisplayName', '\omega_r^{corr}');
|
||||
plot(t, U(:, 1), 'Linewidth', 4, 'DisplayName', '\omega');
|
||||
legend('FontSize', 22, 'Location', 'northeast', 'AutoUpdate','off')
|
||||
plot(t, ones(1,length(t))*sat(1), 'Linewidth', 2.5, 'LineStyle', '--');
|
||||
plot(t, -ones(1,length(t))*sat(1), 'Linewidth', 2.5, 'LineStyle', '--');
|
||||
xlabel('\textbf{t[s]}', 'FontSize', 22, 'Interpreter','latex');
|
||||
plot(t, U(:, 1), 'Linewidth', lw, 'DisplayName', '\omega_r');
|
||||
plot(t, U_track(:, 1), 'Linewidth', lw, 'DisplayName', '\omega_r^{track}', 'Linestyle', ':');
|
||||
plot(t, U_corr(:, 1), 'Linewidth', lw, 'DisplayName', '\omega_r^{corr}', 'Linestyle', ':');
|
||||
|
||||
legend('FontSize', 18, 'Location', 'northeast', 'AutoUpdate','off')
|
||||
xlabel('\textbf{t[s]}', 'Interpreter','latex');
|
||||
|
||||
plot(t, ones(1,length(t))*sat(1), 'Linewidth', 2, 'Color', 'black');
|
||||
plot(t, -ones(1,length(t))*sat(1), 'Linewidth', 2, 'Color', 'black');
|
||||
|
||||
hold off
|
||||
|
||||
|
||||
|
@ -26,6 +31,7 @@ Axes.FontSize=22;
|
|||
Axes.FontWeight='bold';
|
||||
grid minor;
|
||||
Axes.PlotBoxAspectRatio = [1 1 1];
|
||||
ylim([-ylim_, ylim_])
|
||||
|
||||
|
||||
if type == 0
|
||||
|
@ -35,19 +41,23 @@ subplot(2,1,2);
|
|||
end
|
||||
|
||||
hold on
|
||||
plot(t, U_track(:, 2), 'Linewidth', 8, 'DisplayName', '\omega_l^{track}');
|
||||
plot(t, U_corr(:, 2), 'Linewidth', 8, 'DisplayName', '\omega_l^{corr}');
|
||||
plot(t, U(:, 2), 'Linewidth', 4, 'DisplayName', '\omega_l');
|
||||
legend('FontSize', 22, 'Location', 'northeast', 'AutoUpdate','off')
|
||||
plot(t, ones(1,length(t))*sat(2), 'Linewidth', 2.5, 'LineStyle', '--');
|
||||
plot(t, -ones(1,length(t))*sat(2), 'Linewidth', 2.5, 'LineStyle', '--');
|
||||
xlabel('\textbf{t[s]}', 'FontSize', 22, 'Interpreter','latex');
|
||||
plot(t, U(:, 2), 'Linewidth', lw, 'DisplayName', '\omega_l');
|
||||
plot(t, U_track(:, 2), 'Linewidth', lw, 'DisplayName', '\omega_l^{track}', 'Linestyle', ':');
|
||||
plot(t, U_corr(:, 2), 'Linewidth', lw, 'DisplayName', '\omega_l^{corr}', 'Linestyle', ':');
|
||||
|
||||
legend('FontSize', 18, 'Location', 'northeast', 'AutoUpdate','off')
|
||||
xlabel('\textbf{t[s]}', 'Interpreter','latex');
|
||||
|
||||
plot(t, ones(1,length(t))*sat(1), 'Linewidth', 2, 'Color', 'black');
|
||||
plot(t, -ones(1,length(t))*sat(1), 'Linewidth', 2, 'Color', 'black');
|
||||
|
||||
|
||||
Axes = gca;
|
||||
Axes.FontSize=22;
|
||||
Axes.FontWeight='bold';
|
||||
grid minor;
|
||||
Axes.PlotBoxAspectRatio = [1 1 1];
|
||||
ylim([-ylim_, ylim_])
|
||||
|
||||
hold off
|
||||
end
|
11
tesi.m
11
tesi.m
|
@ -2,27 +2,24 @@ clc
|
|||
clear all
|
||||
close all
|
||||
|
||||
%TESTS = ["sin_faster", "sin", "circle", "straightline", "reverse_straightline"]
|
||||
TESTS = ["straightline/chill", "straightline/chill_errortheta_pisixths", "straightline/toofast", "straightline/chill_errory", "circle/start_center", "figure8/chill", "figure8/toofast", "square"]
|
||||
%TESTS = ["straightline/chill", "straightline/chill_errortheta_pisixths", "straightline/toofast", "straightline/chill_errory", "circle/start_center", "figure8/chill", "figure8/toofast", "square"]
|
||||
TESTS = ["circle/start_center"]
|
||||
|
||||
s_ = size(TESTS);
|
||||
|
||||
for i = 1:s_(1)
|
||||
clear data sim_data
|
||||
for i = 1:length(TESTS)
|
||||
clearvars -except i s_ TESTS
|
||||
close all
|
||||
|
||||
sim_data = load(["tests/robot_common.mat"]);
|
||||
|
||||
TEST = convertStringsToChars(TESTS(i))
|
||||
|
||||
|
||||
test_data = load(['tests/' TEST '/common.mat']);
|
||||
for fn = fieldnames(test_data)'
|
||||
sim_data.(fn{1}) = test_data.(fn{1});
|
||||
end
|
||||
|
||||
%sim_data.r=0.1
|
||||
%sim_data.b=0.5
|
||||
sim_data.q0 = set_initial_conditions(sim_data.INITIAL_CONDITIONS);
|
||||
[ref dref] = set_trajectory(sim_data.TRAJECTORY, sim_data);
|
||||
sim_data.ref = ref;
|
||||
|
|
29
video_all.m
29
video_all.m
|
@ -5,21 +5,14 @@ disp('Waiting 5s')
|
|||
pause(1)
|
||||
|
||||
PLOT_TESTS = [
|
||||
% "results-diffdrive/straightline/chill/01-Aug-2024 15-34-03";
|
||||
% "results-diffdrive/straightline/chill_errortheta_pisixths/01-Aug-2024 15-56-36";
|
||||
% "results-diffdrive/square/01-Aug-2024 16-18-51";
|
||||
% "results-diffdrive/circle/start_center/01-Aug-2024 16-46-41";
|
||||
% "results-diffdrive/circle/start_tangent/01-Aug-2024 16-55-09";
|
||||
% "results-diffdrive/circle/toofast/01-Aug-2024 17-35-25";
|
||||
% "results-diffdrive/straightline/toofast/01-Aug-2024 15-37-48";
|
||||
% "results-diffdrive/figure8/chill/15-Aug-2024 09-16-21";
|
||||
% "results-diffdrive/figure8/toofast/15-Aug-2024 09-10-32";
|
||||
"results-diffdrive/straightline/abrupt_stop_chill/27-Aug-2024 10-15-43";
|
||||
% "results-diffdrive/straightline/abrupt_stop_toofast/27-Aug-2024 10-44-35";
|
||||
% "results-diffdrive/sin/no_start_error/27-Aug-2024 19-28-17";
|
||||
% "results-diffdrive/sin/no_start_error/27-Aug-2024 19-29-42";
|
||||
% "results-diffdrive/sin/no_start_error/27-Aug-2024 19-31-17";
|
||||
% "results-diffdrive/sin/no_start_error/27-Aug-2024 19-38-03";
|
||||
"results-diffdrive/straightline/chill/10-09-2024-22-30-28";
|
||||
"results-diffdrive/straightline/chill_errortheta_pisixths/10-09-2024-22-31-10";
|
||||
"results-diffdrive/straightline/chill_errory/10-09-2024-22-32-34";
|
||||
"results-diffdrive/circle/start_center/10-09-2024-22-33-21";
|
||||
"results-diffdrive/square/10-09-2024-22-40-01";
|
||||
"results-diffdrive/figure8/chill/10-09-2024-22-34-26";
|
||||
"results-diffdrive/figure8/fancyreps/10-09-2024-21-45-28";
|
||||
"results-diffdrive/figure8/toofast/10-09-2024-22-35-17";
|
||||
]
|
||||
|
||||
s_ = size(PLOT_TESTS)
|
||||
|
@ -30,7 +23,7 @@ for i = 1:s_(1)
|
|||
PLOT_TEST = [sPLOT_TEST, '/workspace_composite.mat']
|
||||
load(PLOT_TEST)
|
||||
|
||||
dir = ['gifs-diffdrive/', sPLOT_TEST, '/']
|
||||
dir = ['videos-diffdrive/', sPLOT_TEST, '/']
|
||||
mkdir(dir);
|
||||
|
||||
close all; pause(2); video(q{1}', ref_t{1}', Q_pred{1}, U_track{1}, U_corr{1}, 0, 0.12, t{1}, 4, sim_data{1}.tc*0.25, "track only");
|
||||
|
@ -38,7 +31,7 @@ for i = 1:s_(1)
|
|||
close all; pause(2); video(q{3}', ref_t{3}', Q_pred{3}, U_track{3}, U_corr{3}, 3, 0.12, t{3}, 4, sim_data{3}.tc*0.25, "track and multistep");
|
||||
|
||||
%movefile("*.gif", dir);
|
||||
%movefile("*.avi", dir);
|
||||
movefile("*.mp4", dir);
|
||||
movefile("*.avi", dir);
|
||||
%movefile("*.mp4", dir);
|
||||
|
||||
end
|
Loading…
Reference in New Issue