Harrastajate kestvussõiduvõistkond · 2026
LapTimer: ringiaegade mõõtja ja kestvussõidu strateeg
Isetehtud Android-äpp, mis mõõdab ringiaegu millisekundi täpsusega eraldi GPS-seadme abil ja arvutab kestvussõidus sõitjate parima vahetuste järjekorra.
Eesmärk
Kuueliikmelisel harrastajate võistkonnal (8-tunnised kestvussõidud, kus hinnatakse ringiaegade ühtlust, mitte kiirust) polnud taskukohast ja piisavalt täpset viisi ringiaegu mõõta ega sõitjate vahetusi planeerida. Valmislahendused on kallid või ei anna meeskonnale reaalajas ligipääsu oma andmetele. Seepärast ehitasin ise kõik: Android-äpi, veebis töötava boksiseina ja strateegia arvutuse.
Tulemus numbrites
Mis muutus
10 Hz+
GPS-i uuendussagedus eraldi seadmega (telefoni enda GPS umbes 1 Hz)
±2 s
ringi lõpuaja ennustuse täpsus pärast ümberehitust (enne ±30 s)
191
mõõdetud ringi ühel 8-tunnisel võistlusel
56%
meeskonna ühtluse kaotusest tuli boksipeatustest: just seda strateegia nüüd parandab
Olukord
Kestvussõidus ei võida kõige kiirem ring, vaid kõige ühtlasemad ringiajad: hinnatakse, kui palju ringiajad kogu sõidu jooksul kõiguvad. Seepärast mõjutavad sõitjate valik ja vahetuste ajastus tulemust sama palju kui kiirus. Meeskonnal olid rada ja autod, aga puudus tööriist, mis ütleks reaalajas, kas ring vastab sihtajale, ja andmed, mille järgi sõitjate järjekorda valida. Ehitasin selle üksi: Android-äpi, mis loeb eraldi GPS-seadet, ennustab ringi lõppu, saadab kõik pilve ja arvutab sealt strateegia.
Piirangud
- Telefoni enda GPS uueneb liiga harva (umbes kord sekundis) ja hüpleb liiga palju, et teada, millisel sekundil auto finišijoone ületas.
- Äpp peab töötama tunde järjest ekraan väljas, ilma et telefon asukohateenust taustal välja lülitaks.
- Telefon peab vastu pidama terve 8-tunnise võistluspäeva, ka siis, kui see seisab pikalt paigal boksis.
- Erinevad autod annavad mootori kohta erinevat infot. Vale päring teeb lugemise aeglaseks või ei anna vastust üldse.
Lahendus
Kuidas lahendasin
Täpsus
Kuidas saada finišijoone ületamise hetk sekundi murdosa täpsusega, kui telefoni GPS uueneb harva ja pole piisavalt täpne?
Äpp ühendub USB kaudu eraldi GPS-seadmega (u-blox) ja loeb selle andmeid otse, kümneid kordi tihemini kui telefoni enda asukohateenus. Iga andmerida kontrollitakse ja häiretega read visatakse kohe minema. Kui USB-ühendus katkeb, taastub see ise.
Finišijoone ületus leitakse kahe järjestikuse GPS-punkti vahelt: arvutatakse, kus täpselt nende vaheline sirge joont lõikab. Mõnemeetrine „värav” lubab väikest külgnihet ja suunakontroll välistab vales suunas ületuse. Aja võtab äpp telefoni kellast, mis ei hüppa kunagi, ja tulemus on millisekundi täpsusega.
Ennustus
Esimene versioon ennustas ringi lõppu nii, nagu sõidaks auto kogu ringi sama kiirusega. Tegelikult sõidetakse sirgel 120 ja kurvis 40 km/h.
Nüüd võrreldakse auto asukohta jooksvalt sõitja enda võrdlusringiga: milline koht sellel ringil vastab praegusele asukohale ja kui palju aega sinna jõudmiseks kulus. Otsing liigub ainult edasi, et kurvis ei valitaks kogemata vale rajalõiku, ja arvestab ka seda, kui auto liikluse tõttu hetkeks seisab. Nii näeb sõitja iga GPS-punkti järel, kas ta on eest või taga ja millal ring eeldatavasti lõpeb.
Andmekvaliteet
Kuidas vältida, et üks juhuslik aeglane ring (liiklus, külm ring pärast sõitjavahetust) rikuks võrdlusringi, kuid näidata sõitjale ikka ausalt tema päris aega?
Ennustus uueneb alati reaalajas, nii et sõitja näeb ausalt, kui palju ring venib, ka liikluses. Võrdlusringi uuendavad aga ainult „puhtad” ringid: mitte boksist väljasõidu ring, mitte liikluses sõidetud ring ja mitte ring, mis on sõitja tavalisest ajast liiga kaugel. Iga uus puhas ring mõjutab võrdlusringi seda vähem, mida rohkem ringe on juba kogunenud. Nii näitab võrdlusring sõitja tavalist ühtlast tempot, mitte tema parimat ringi.
Reaalajas jälgimine
Boksis tahetakse näha ringiaegu, GPS-i olekut ja praegust sõitjat reaalajas, ilma rajaäärde minemata.
Äpp saadab iga ringi alguse, lõpu, jooksva aja, kiiruse ja GPS-i oleku kohe pilve. Veebis töötav boksisein näitab seda otse brauseris. Sõitjate ja sessioonide nimesid saab muuta veebis ja muudatus jõuab ise telefoni tagasi.
Auto andmed
Kuidas lugeda auto enda andmeid (pöördeid, jahutusvedeliku temperatuuri, pinget), kui eri autod annavad eri infot ja valed päringud teevad lugemise aeglaseks?
Äpp ühendub Bluetoothi kaudu auto diagnostikapesa (OBD-II) adapteriga ja küsib autolt kõigepealt, milliseid andmeid see üldse annab. Pärast seda küsitakse ainult neid andmeid, mis päriselt vastuse annavad, selle asemel et iga puuduva näitaja puhul vastust oodata.
Strateegia
Tulemus sõltub ringiaegade ühtlusest, mitte ainult kiirusest. Kuidas otsustada andmete põhjal, mis järjekorras ja kui kaua iga sõitja sõidab?
Eraldi analüüs loeb pilvest nii meie kui ka konkurentide ringiajad. Sealt selgus oluline asi: hindamine karistab suuri kõrvalekaldeid palju rohkem kui väikesi, nii et üks väga aeglane boksiring teeb rohkem kahju kui kümme natuke aeglast ringi. Sellest tuleb konkreetne järjekord: kõige ühtlasem sõitja alustab ja lõpetab ning kõige kõikuvama ajaga sõitja saab lühikese ja hoolikalt jälgitud vahetuse keset sõitu.
Süsteem eristab ka seda, kas aeglaseks läks kogu rada (vihm, punane lipp) või väsis ainult üks sõitja, sest võrdleb iga hetk kõigi meeskondade tempot. Nii ei vahetata sõitjat asjata, kui tegelikult muutus hoopis rada.
Tulemus
Esimesel päris kestvusvõistlusel mõõdeti 8 tunni jooksul 191 ringi, ilma et äppi oleks tulnud taaskäivitada või GPS-ühendus oleks katkenud. Andmete analüüs näitas midagi, mida silmaga poleks märganud: 56% kogu meeskonna ühtluse kaotusest tuli boksipeatustest ja suurema osa sellest tegid kolm eriti aeglast vahetust. See arvudega tõestatud leid, mitte oletus, määrab järgmise võistluse sõidujärjekorra ja boksipeatuste korra.
Edasi
Järgmine samm on näidata strateegia soovitusi (iga sõitja sihtkiirus ja raja olukord) otse võistluse ajal, mitte ainult tagantjärele, ja lasta ennustusel kasutada võrdlusringi ka uuel rajal kohe esimesest ringist.