From 0e1a9de685c999fdd0e5252c741cef9d06b16451 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustav=20S=C3=B6rn=C3=A4s?= Date: Tue, 19 Nov 2019 16:22:33 +0100 Subject: NOT WORKING seg_len and track_len --- Kod/bilbana/yc4/choose_position.m | 8 +++----- Kod/bilbana/yc4/detect_missed.m | 4 +--- Kod/bilbana/yc4/get_aprox_v.m | 11 +---------- Kod/bilbana/yc4/get_seg_constant.m | 6 ++---- Kod/bilbana/yc4/main.m | 6 ++++-- 5 files changed, 11 insertions(+), 24 deletions(-) (limited to 'Kod/bilbana/yc4') diff --git a/Kod/bilbana/yc4/choose_position.m b/Kod/bilbana/yc4/choose_position.m index cd18f85..874f223 100644 --- a/Kod/bilbana/yc4/choose_position.m +++ b/Kod/bilbana/yc4/choose_position.m @@ -1,16 +1,14 @@ -function [new_position, seg_plus] = choose_position(position,segment, track) +function [new_position, seg_plus] = choose_position(position,segment, track, track_len) %CHOOSE_POSITION Välj vad position ska vara % Kör endast vid ny indata. Kollar om indatan är rimlig eller om någon % givare missats. Sedan väljs position efter vilken givare det var som % passerades. seg_plus anger om och med hur mycket car.segment bör % justeras för att kompensera efter missad givare. -track_len = [0 2.53 3.05 4.73 7.68 8.98 10.93 14.96 17.57; - 0 2.53 3.05 4.92 7.60 8.84 10.65 14.68 17.76]; pos_c = position; %% Vilken givare ligger närmast pos_c? near = []; for i = 1:length(track_len) - diff = abs(track_len(track, i) - pos_c); + diff = abs(track_len(i) - pos_c); if i == 1 near = [i, diff]; else @@ -22,7 +20,7 @@ end disp(near); %% Beräkning av passerad givare seg_plus = max(0, near(1) - segment) -new_position = track_len(track, segment + seg_plus); +new_position = track_len(segment + seg_plus); end diff --git a/Kod/bilbana/yc4/detect_missed.m b/Kod/bilbana/yc4/detect_missed.m index fb80d1c..087a750 100644 --- a/Kod/bilbana/yc4/detect_missed.m +++ b/Kod/bilbana/yc4/detect_missed.m @@ -1,9 +1,7 @@ function [out] = detect_missed( position, segment, track) %DETECT_MISSED Retunerar true om position ligger utanför nuvarande segment % -track_len = [2.53 3.05 4.73 7.68 8.98 10.93 14.96 17.57 19.60; - 2.53 3.05 4.92 7.60 8.84 10.65 14.68 17.76 19.95]; -a = track_len(track, segment); +a = track_len(segment); out = a <= position; end diff --git a/Kod/bilbana/yc4/get_aprox_v.m b/Kod/bilbana/yc4/get_aprox_v.m index 1867565..737dfac 100644 --- a/Kod/bilbana/yc4/get_aprox_v.m +++ b/Kod/bilbana/yc4/get_aprox_v.m @@ -1,21 +1,12 @@ -function [v] = get_aprox_v(cur_seg, lap, seg_times, track) +function [v] = get_aprox_v(cur_seg, lap, seg_times, track, seg_len) %GET_APROX_V Tillf�llig? Beh�vs f�r att testa get_position. Ger %medelhastigheten f�r nuvarande segment p� f�rra varvet. %{ cur_seg: Nuvarande segment last_seg_times: 1x9 vektor med f�rra varvets segmenttider %} -seg_len1 = [2.53 0.53 1.68 2.92 1.2 2.01 3.83 2.89 1.99]; -seg_len2 = [2.53 0.53 1.87 2.68 1.24 1.81 4.03 3.09 2.19]; - % seg_len = []; -if track == 1 - seg_len = seg_len1; -else - seg_len = seg_len2; -end - if cur_seg > 9 cur_seg = cur_seg - 9; end diff --git a/Kod/bilbana/yc4/get_seg_constant.m b/Kod/bilbana/yc4/get_seg_constant.m index 9f4dd1d..1ce861b 100644 --- a/Kod/bilbana/yc4/get_seg_constant.m +++ b/Kod/bilbana/yc4/get_seg_constant.m @@ -1,4 +1,4 @@ -function [out] = get_seg_constant(position, lap_constants, track) +function [out] = get_seg_constant(position, lap_constants, track, track_len) %GET_SEG_CONSTANT Avgör vilken seg_constat som ska användas utifån %nuvarande position. %{ @@ -6,10 +6,8 @@ position - Position i meter fr lap_constants - De seg_constants som ska användas detta varv track - den bana/bil som beräkningarna ska göras för %} -track_len = [0 2.53 3.05 4.73 7.68 8.98 10.93 14.96 17.57; - 0 2.53 3.05 4.92 7.60 8.84 10.65 14.68 17.76]; for i = 1:length(track_len) - if position >= track_len(track, i) + if position >= track_len(i) seg_constant_num = i; end end diff --git a/Kod/bilbana/yc4/main.m b/Kod/bilbana/yc4/main.m index 885d518..11d4cad 100644 --- a/Kod/bilbana/yc4/main.m +++ b/Kod/bilbana/yc4/main.m @@ -51,7 +51,8 @@ car1.lap_times = []; car1.seg_times = []; car1.seg_constant_list = []; % TODO car1.position = 0; -car1.seg_len = [0.0 2.53 3.05 4.73 7.68 8.98 10.93 14.69 17.57]; +car1.pos_at = [0.0 2.53 3.05 4.73 7.68 8.98 10.93 14.69 17.57]; +car1.seg_len = [2.53 0.53 1.68 2.92 1.2 2.01 3.83 2.89 1.99] car1.map = Bana1; car1.approximation = []; car1.miss_probability = 0.0; @@ -68,7 +69,8 @@ car2.lap = 0; car2.lap_times = []; car2.seg_times = []; car2.position = 0; -car2.seg_len = [0.0 2.53 3.05 4.92 7.60 8.84 10.65 14.68 17.76]; +car2.pos_at = [0.0 2.53 3.05 4.92 7.60 8.84 10.65 14.68 17.76]; +car2.seg_len = [2.53 0.53 1.87 2.68 1.24 1.81 4.03 3.09 2.19]; car2.map = Bana2; car2.miss_probability = 0.1; car2.seg_constant_list = []; % TODO -- cgit v1.2.1