summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Dokument/Designspec/Albins txt filer/position.txt25
1 files changed, 25 insertions, 0 deletions
diff --git a/Dokument/Designspec/Albins txt filer/position.txt b/Dokument/Designspec/Albins txt filer/position.txt
new file mode 100644
index 0000000..ef439f4
--- /dev/null
+++ b/Dokument/Designspec/Albins txt filer/position.txt
@@ -0,0 +1,25 @@
+Beräkning av position
+
+Det finns två fall när positionen ska beräknas. När en givare har passerats och
+när en givare inte har passerats. Under första varvet görs endast det första
+och från varv 2 och frammåt görs båda paralellt.
+
+Om en ny givare har passerats, \emph{car.new_check_point == true}, ökar
+programmet nuvarande segment (emph{car.segment}) med 1. emp{car.segment}, som
+alltid ligger mellan 1 och 9, används som index för att välja position i en
+lista (emph{car.pos_at}).
+
+Om ingen givare har passerars och bilen har avslutat första varvet, alltså
+oftast, görs lite mer avancerade beräkningar. För att beräkna positionen
+använder proggrammet först en funktion \emph{get_aprox_v}. Denna utgår
+ifrån förra varvets segmentstider
+ (\emph{car.seg_times}) och segmentslängder (\emph{car.seg_len}) och beräknar
+ med v = s/t medelhastigheten för nuvarnade segment, men förra varvet. Denna
+ antas vara ungefär samma sak som nuvarande hastiget.
+
+Sedan beräknas den fakiska positionen, i meter från målgivaren, med funktionen
+ \emph{get_position}. Den använder den ungefärliga hastigheten beräknad av
+ emph\aprox_v och tiden sedan denna beräkning gjordes senast (en programcykel)
+ och beräknar med s = v * t den sträcka som bilen har äkt. Sedan adderas denna
+ med förra kända postionen och retuneras i \emph{car.position}.
+