GuilhemHnr / trackui

Web interface for the rustracker project
GNU General Public License v3.0
3 stars 1 forks source link

Bugs d'affichages #1

Closed rgrunbla closed 2 years ago

rgrunbla commented 2 years ago

Hello,

Vous avez des bugs d'affichages (ou plus en amont, de réception, …), êtes vous au courant ?

image

GuilhemHnr commented 2 years ago

Bonjour Monsieur,

C'est pas une erreur d'affichage, mais un type d'erreur qui existe dans l'algorithme CPR (encodage de la position dans les messages binaires) L'existence de ces erreurs est détaillé dans le 1090MHz book de Junzi Sun à la page 59-60 https://mode-s.org/decode/book-the_1090mhz_riddle-junzi_sun.pdf

Malheureusement, les méthodes de corrections qu'il propose sont compliquées à mettre en oeuvre dans notre programme pour un certains nombre de raison. Toute fois j'ai mis en place une technique qui je l'espère doit limiter ces erreurs, et qui n'est pas proposé dans ce book. Les résultats ne sont pas probants, mais je vais changer les marges de la méthodes de correction dans l'espoir d'améliorer ces résultats.

@rgrunbla

rgrunbla commented 2 years ago

Je note que dans le livre, il est noté "In rare cases, wrong positions can be calculated": image

Ces problèmes semblent tout sauf rares dans votre implémentation, il doit à avoir quelque chose à corriger quelque part (si c'est bien de ces pages dont il est question).

GuilhemHnr commented 2 years ago

J'ai déjà relu le code plusieurs fois. Cependant, pour revenir à l'algorithme CPR, on a besoin d'un message de 2 types différents pour décoder la première position, puis les positions suivantes sont calculées à partir d'un nouveau message mais aussi de la position précédente. Il suffit donc que notre première position décodée soit erronée pour que toutes les suivantes en subissent la conséquence.

Dans la première version du programme, on utilisait systématiquement deux messages (et non la dernière position), donc quand une erreur arrivait, on voyait l'avion faire un "bond" avant de revenir à une position cohérente, donc on pouvait constater que ces erreurs sont bien rares.

rgrunbla commented 2 years ago

Je viens d'ouvrir votre carte et je vois des problèmes sur au moins trois avions (notamment, ils font bien des bonds):

https://user-images.githubusercontent.com/42433779/169799679-c7e8c65c-a2ee-4a95-9452-82b78ce03063.mp4

Je maintiens donc mes observations, ce problème ne semble pas "rare". D'ailleurs, ça semble capter assez loin ;)

En tout cas, ça mérite des explications dans votre rapport, corrigé ou pas !

GuilhemHnr commented 2 years ago

J'ajoute un petit commentaire pour dire que notre méthode d'élimination des aberrations de positions vient d'être installée sur le git. Si une position absurde est crée, on la détecte au bout de quelques positions décodes à l'aide de la route magnétique que suit l'avion.

La route suive par l'avion (en degré) nous est directement transmise par ce dernier dans messages binaires de type vitesse. L'idée a été de calculer en plus cette route grâce aux deux dernières positions connues. Comme lorsque la trajectoire est erronée on observe des oscillations, alors une différence trop importante entre la route calculée et la route réelle transmise par l'avion permet d'identifier les aberrations.