Comparaison du calcul de distance par PCM (planétaire) ou le pid230 (kinetik)

thierryb

Participant hyperactif
Inscrit
20 Janv. 2011
messages
1,968
Score de réaction
1,032
Localisation
Yvelines
Véhicule
Prius 2 sol pack ipa 2008 verte
Comparaison du calcul de distance par PCM (planétaire) ou le pid230 (kinetik) ou GPS

Ma conclusion, après vous aurez le détail, c'est que planétaire a fait du beau travail, car il moyenne très bien pour tendre vers la bonne valeur.

En ligne droite, l'odo230 prend de l'avance sur l'odopcm, à une "vitesse" de1,25 m pour 1 km.
odo230pcmlignedroite.PNG


Par contre un tour à un rond point serré, ou un demi tour en braquant à fond ajoute entre 2,20 et 2,70m à PCM par rapport à odo230. Une rue à angle droit, la moitié environ : 1,20 m. La distance dépend de l'angle et du rayon de bracage ; vous me direz que c'est normal.

De plus, les deux compteurs sont très fidèles. Sur un ovale d'un km, l'erreur est d'environ 1,5m, et l'écart PCM /230 est reproductible à une erreur de 30 cm.
PCM trouve une longueur plus grande d'environ 1 mètre sur le tracé, c'est, à dire -1,25 m (pour les 1 km de distance) mais + 2,25 m (au lieu de environ 5m par un tour braqué à fond).

Maintenant, il faut que j' étalonne la ligne droite pour faire que odo230 soit juste en ligne droite. Et ensuite que l'on décide si l'on veut mesurer la distance faite par le train avant ou le train arrière. Car le train avant fait plus de distance.

Par ailleurs, je me suis trompé, les deux calculs ajoutent des mètres en marche arrière, voulez vous que nous laissions cela comme ça, ou qu'on retranche les mètres, ou qu'on mette 0 quand on est en marche arrière.

Par ailleurs, on note bien la variabilité plus forte du train avant au moment des freinages et accélérations, de quelques dizaines de centimètres. Plus probablement des temps de calcul (en fait de réception de pid) plus espacés, qui influent sur l'écart entre les deux distances en mouvement. A l'arrêt, tout se stabilise.

Par ailleurs, il n'y a pas d'impact d'arrêts fréquents, ou de non arrêt, sur le calcul de la distance sur PCM ou odo230 .
 
Dernière édition:
Là vous m'épatez les gars !!! :jap:

Donc ce que j'ai découvert comme 'glissement' n'était pas du aux arrêts/démarrages mais aux virages. En rallye y a pas mal de virages. Des épingles à cheveux. Je comprends mieux pour quoi on a engrangé autant d'avance en 2011 alors que selon le PCM on était pratiquement pile bon (coupage et arrondis des virages doit y être pour quelque chose quand même).

Là où on a problème c'est que la zone d'étalonnage est sur une ligne pratiquement droite alors que dans les ZR ça tournoie. Si on pouvait neutraliser la dérive due aux virages ce serait merveilleux.

J'aurais tendance à privilégier la prise des mesures sur les roues arrière.

Pour ce qui est de la marche arrière :

- je n'ai pas très bien compris si et comment on peut corriger la dérive (de combien est elle ? Valeur fixe ou proportionnelle ?)

- en principe on est pas censées faire la marche arrière

- si cela nous arrive, c'est après un tout droit pas trop long (donc la dérive ne doit pas être importante – de combien sur une 30-aine de mètres ?).

Je préfère que le compteur continue au lieu de ne pas s'incrémenter. Si on fait le tout droit on décale tout : on perd le bon ODO et on n'a pas trop le moyen de savoir le temps qu'on a mis. Donc on a tout faux.

Si le compteur en marche arrière fonctionne il suffit de relever L'ODO au début et à la fin de la marche arrière puis le multiplier par 2 pour avoir la distance supplémentaire en mètres. Cette distance supplémentaire doit être ajoutée au TripMaster. Exemple : si on naviguait avec un écart de 0 m eh bien à partir de là il va falloir viser à avoir toujours 30m d'avance sur le Trip Master.
 
Concernant mon analyse, elle peut-être revue. Ce serait bien que tu fasses de ton coté des mesures.

saurais-tu te rappeler quel était le décalage en ligne droite lors de l'étalonnage ?

Concernant la marche arrière, je proposais de soustraire la distance faite en marche arrière au lieu de l'ajouter.
 
ZE 2011
Distance offcielle 3 410m (mais ça peut être 3 405 jusqu'à 3 419 puisqu'ils la communiquent avec la précision de 10m)
Mesure en mars 2011 3 420m
Mesure en sept 2011 3 424m (avec 10 ou 12 000 km de plus au compteur)

Concernant la marche arrière je ne soustrairais pas mais additionnerais.
En tout cas pour le rallye car en dehors cela a moins d'importance. On pourrait soustraire mais je préfère l'addition (choix individuel via paramétrage ? :cool: ).

Dans le cas où on se loupe en faisant un tout droit on ne le fait pas exprès. Du coup on ne déclenche pas de chrono au début et à la fin de l'erreur. On pourrait le faire lorsqu'on s'arrête mais rien ne nous garanti qu'on aura mis le même temps pour la marche avant que pour revenir en arrière. Donc on ne saura pas quelle est la perte de temps.

Par contre si l'odomètre continue à additionner les mètres même en marche arrière on pourra en déduire la distance totale en plus qu'on a fait et qu'il va falloir rattraper pour se retrouver à nouveau au bon endroit au bon moment.

Je ne sais pas si je suis clair ?

Exemple :
on roule puis soudain ooops, c'était à droite.
on s'arrête
on relève l'odo
on fait la marche arrière
on s'arrête
on rèlève l'odo
on passe la marche avant
la marche arrière a fait 'tant de mètres' donc maintenant il faut qu'on roule avec les indications du TripMaster à 0 mètres d'écart + (2 * 'tant de mètres' de la marche arrière)
 
Pourquoi ne pas seulement supprimer les mètres et garder les compteurs tourner. Comme cela pas de calcul à faire.

Le temps est le temps écoulé au total depuis le top départ, la distance est la distance juste, en ayant une opération blanche entre ce qui a été fait en avant et en arrière.
 
Non, il faut garder le calcul des distances même en marche arrière.
Si on ne mesure pas la marche arrière on ne saura pas combien de mètres (à peu près) avait la marche avant qu'on aurait pas du faire. Et là à coup sur on a tout faux.

Je redécompose :
- on arrive à une intersection.
- on doit prendre à droite (par exemple) mais on se trompe et on va tout droit.
- on s’aperçoit qu'on a fait une erreur et qu'on doit revenir en arrière pour reprendre le bon chemin
- à ce moment on ne sait pas combien de mètres on a fait en dehors du bon tracé puisqu'au moment où on s'est trompé on ne savait pas qu'on le faisait (sinon on l'aurait pas fait) donc on ne connait pas la valeur de l'odomètre à l'endroit précis où on a quitté le bon chemin.
- donc notre odomètre est déjà faussé et, en plus, on ne sait pas de combien
- on note donc l'indication de l'odomètre (au crayon ou avec le bouton 'TOP') à l'endroit où l'on entame la manœuvre pour retourner sur le bon tracé
Cette manoeuvre peut être faite, si on est allé assez loin, en marche avant après avoir effectué un demi tour, ou en marche arrière si cela est possible. Donc, si la marche arrière ne fait pas incrémenter l'ODO on ne saura jamais la distance pour retourner sur le bon chemin.
Si on, connait cette distance on la multiplie par 2 et cela nous donne l'avance (en mètres) qu'on doit avoir sur TripMaster.

Je viens d'avoir palm35 au tél. J'ai le sentiment avoir réussi à le convaincre qu'il valait mieux que l'ODO s'incrémente en marche arrière aussi.
 
Ne t'inquiète pas, je ferai ce que vous voudrez, car c'est cela qui est important, et rien ne m'empêchera d'avoir une version qui me convient mieux.
 
Dernière modification par un modérateur:
Ah ça, rien ne t'en empêchera ou alors toi même ! C'est sur. :cool:

Merci en tout cas.

Ca pourrait éventuellement s'envisager sous forme d'un paramètre (ODO avance ou pas en marche arrière).
 
Voici la comparaison des relevés que j'ai fait depuis plusieurs jours entre les ODO PCM et 'kinetik'. Le ratio semble stable et pas si important même si un écart de 72m sur 9 km me parait énorme !

_PCM___ Kinetik___ ratio
7954 7889,58 0,9919
6515 6452,75 0,9904
2209 2189,54 0,9912
2725 2701,02 0,9912
8415 8354,61 0,9928
9314 9240,56 0,9921
6674 6617,08 0,9915
9112 9040,02 0,9921
9111 9040,99 0,9923


Reste à savoir lequel est plus fiable (mais l'ODO de la Prius semble plus proche de celui du PCM).

D'après mes observations l'ODO de la Prius et kinetik ne sont pas alimentés lorsque la voiture roule à moins de 2 km/h. La vitesse affichée par la Prius est = 0. PCM est capable de détecter des vitesses supérieures à 1 km/h et l'ODO PCM s'incrémente (alors que les autres non).

Lorsque j'ai poussé le vice jusqu'à rouler si lentement que même PCM ne détectait plus la vitesse (V PCM = 0, pourtant la voiture s'est déplacé sur une 30-aine de mètres) l'ODO PCM n'est pas alimenté non plus.

Le fait de braquer dans un virage semble ajouter des mètres à l'ODO PCM par rapport à l'ODO 'kinetik'. Hier dans le parking : après 70m tout droit la différence était de l'ordre de 20 cm en faveur de PCM. Puis un gauche à 90° suivi immédiatement d'un droit à 90°, le tout sur une 15-aine de mètres, et l'écart croit à 1,5m !
 
Attention, la différence de 72 m n'est pas une information significative. Il faut de toutes manières
calibrer les compteurs pour prendre en compte la circonférence des roues, qui n'est pas définie à 1% près.

La fiablilité du pid230 est certainement meilleure parce que le calcul sollicite très peu le calculateur. Mais ici PCM est apparu très fiable !

Le pid230 n'est pas utilisable aux vitesses faibles. Même lorsqu'il bouge, cela peut être trop lentement.

Le pid230 utilise les roues arrière. Il coupe plus les virages que les roues avant, d'où la différence. Noter que le pid025 permet de prendre en compte la position du volant de direction pour améliorer la mesure PCM.

Si vraiment c'est nécessaire, il y a moyen de mesurer les déplacements au mm près aux vitesses très faibles, en utilisant le pid03e (position angulaire absolue de MG2).
 
Je pense que nous passons peu de temps à des vitesses entre O et 2 km /h. Donc ce point n'est pas grave.
Le calibrage est important à réaliser. Less y travaille. Moi aussi. Nous allons y arriver.

Mais ensuite, lequel sera le plus proche des distances données par les commissaires de courses, celui calculé avec le train avant, ou celui avec le train arrière ? Comment pouvons nous décider ?
 
C'est vrai qu'il n'y aura qu'un bref instant au départ où l'on sera en dessous des 2km/h. Et moi qui me disait qu'avec le nouveau démarrage programmé du Trip Master on va s'ennuyer au départ. Qu'on ne sera plus obligés de démarrer comme des dératés. Eh bien au contraire, il faudra 'allumer' encore plus !

En effet les roues arrière doivent parcourir moins de distance dans les virages. Dans ce cas je pense qu'il faudra utiliser cette mesure car dans les lacets on arrondi pas mal l'histoire de perdre le moins de vitesse possible. Pour aborder un 180° à droite je me mets complètement à gauche pour sortir bien du coté droit de la route, ou carrément à gauche si j'ai de la visibilité.

Quand j'ai remesuré la ZR2 de 2011, le PCM, sur 16,22 km de la ZR m'a donné 330 m de plus lorsque j'ai roulé à 49 de moyenne, comme en rallye, que lors du passage calme toujours sur le côté droit. Or, la 2e partie de cette ZR n'était qu'une descente en lacets.

Y avait pas autant de différence dans la ZR1 qui était moins tortueuse.

Ce que j'ai du mal à m'expliquer c'est qu'en nous ajoutant du chemin on aurait du être pointés en retard puisqu'on a toujours navigué avec le Trip Master calé sur 0 sec 0 m d'avance/retard. On ils nous ont pointés en avance. Pareil dans les autres ZR.

Je vais me coucher. Peut-être que la nuit m'éclairera. C'est la pleine lune.


Bref, ce serait donc bien de pouvoir choisir, via une fenêtre de paramétrage, le PID qu'on va utiliser et la circonférence de la roue pour le 230.
 
La, c'est l'heure tardive.
Comme PCM compte plus de mètres à cause des tournants, tu dois rouler plus vite pour faire ces mètres en plus. Et comme c'est faux, tu arrives en avances.
 
Hmmm ... non. Enfin, je crois.

PCM compte des mètres en plus mais ils sont effectivement parcourus. Je ne parle pas de ceux qu'il ajoute à très faible vitesse mais des ceux qui découlent de la façon de prendre les virages, plus large. Or la moyenne de référence ne change pas. Elle est constante. Etablie selon la distance de référence et calculée en fonction de la distance parcourue.

On va prendre l’exemple de la piste d’athlétisme où l’on part au début d’une ligne droite pour finir à la fin de la ligne droite opposée. Entre les deux lignes droites il y a le virage, une large courbe qui fait 180°.

Normalement sur une piste d’athlétisme on tourne dans le sens opposé aux aiguilles d’une montre. Dans ma démonstration je vais inverser le sens pour que cela corresponde mieux à notre cas. On va dire que la distance entre le départ et l’arrivée a été mesurée en suivant le couloir le plus à droit, celui qui suit la bordure intérieure du virage (qui tourne à droite).

Si je cours dans le couloir le plus à gauche, celui qui suit la bordure extérieure, j’aurai plus de mètres à parcourir entre le début et la fin. Le relevé doit se faire au milieu de la courbe, quand on franchi une ligne imaginaire qui coupe le virage en 2 (parallèle aux deux lignes droites à équidistance de chacune d’elles). La distance de référence est celle du couloir intérieur, celui de droite. En courant à l’extérieur, dans le couloir à gauche, lorsque j’aurai parcouru la distance de référence je n’aurai pas encore franchi la ligne du milieu du virage. Je serai donc en retard.

Mais bon, ce n'est pas le problème principal ici. Si PCM arrive à compter très précisément la distance réellement parcourue par le véhicule on s'arrangera avec les dérives induites par la conduite. Ca le PCM il peut pas le mesurer, encore moins deviner.
 
Tu as raison. C'est moi qui n'était pas encore réveillé.
 
Mais bon, ce n'est pas le problème principal ici. Si PCM arrive à compter très précisément la distance réellement parcourue par le véhicule on s'arrangera avec les dérives induites par la conduite. Ca le PCM il peut pas le mesurer, encore moins deviner.

La mesure des quatre vitesses de roues, et le braquage du volant permettrait de récupérer pas mal de choses. Mais pas la position par rapport à l'axe de la route. Pas non plus la température des pneus, qui conditionne leur circonférence. Si la ceinture du pneu est en acier, 20°C de différence, c'est 0.024 %. Avec du synthétique, c'est plus.
 
On ne résoudra pas tous les problèmes.
Aujourd'hui PCM donne une mesure fiable, basée sur les roues avant.
On peut essayer d'avoir une mesure fiable basée sur les roues arrière, en utilisant le pid 230.

Le reste, ce sera pour bien plus tard, si ce n'est jamais.
 
Bien, j'ai réussi à stabiliser le calcul du pid230.
Le décalage entre pcm et le pid230 est du aux données pour une faible partie, mais la plus grosse partie est due aux erreurs dans les données reçues, et à mon traitement qui aggravait dans ce cas la situation.

Je viens de faire : 2138819 cm (21,3 km)
Et l'écart avec PCM était de 1484 cm.
PCM / Pid230 = 0,99931

J'ai aussi comparé avec l'odomètre du tableau de bord. PCM semble être beaucoup plus précis. Mais je dois encore faire quelques essais pour confirmer.

Je pense aussi que j'ai surévalué l'impact des ronds points. Peut-être aussi à cause de mes mauvais traitements.
 
Belles avancés ! :jap:

De mon côté je me suis promené dans les bois en fin d'après midi.
Je suis allé à Meudon derrière l'observatoire.
Il y a une longue ligne droite (env 1200m, juste dommage qu'il y ait une demi douzaine des gendarmes couchées, parfois debout aussi, avec les jumelles) suivi d'un double gauche qui au total fait dans les 90-100°. Le tout 1600m.

Sur les 1600m l'ODO PCM finissait toujours avec son mètre d'avance par rapport à l'ODO Prius (un seul arrêt). J'en ai déjà parlé. Je pense que c'est du à la sensibilité au très bases vitesses lors du démarrage. Mesure reproduite une demi douzaine de fois à l'identique.

Je n'ai pas encore calculé la dérive et la variabilité de L'ODO PID230 (kinetik). A première vue elle devrait être autour de 0,994. C'est peut-être plus la peine puisqu'il a été modifié. Sur mes tracés précédents ça variait entre 0,991 (retour maison) et 0,992 (aller boulot) par rapport à l'ODO PCM. Il se dégageait une certain constance. Comme l'ODO PCM dérive par rapport à l'ODO Prius il se peut que l'ODO 'kinetik' suive bien celui de la Prius.

Par contre je suis tombé sur 2 gros os !

Alors que j'avais fini mes tests en ligne (presque) droite et suis reparti vers chez moi j'ai soudainement constaté que l'ODO 'kinetik' a pris 700 m d'avance !!! Comme ça ! Sans raison particulière. Ca rejoint ce qu'avait décrit palm35. Je ne sais pas la raison. Avant j'ai pris 2 virages hyper serrés à angle droit mais je ne sais pas s'il y a un lien quelconque.

Une pareille fantaisie en ZR ... :coolman:

2e effet TripMaster pas cool : il se met parfois à complètement déconner.
Je roulais depuis 19 minutes. PCM indiquait la moyenne de 19km/h. TripMaster était réglé à 20 km/h et il m'indiquait un retard de 900 secondes !!! Quand j'ai voulu rétripoter la moyenne, remplacer le 0 de 20 par autre chose, à l'instant où la moyenne demande était égale à 2.00 km/h le TripMaster a modifié l'avance à 300 secondes (j'ai les photos). Je tiens à préciser que j'avais démarré le TripMaster par RAZ !!!

J'ai peut-être une piste. Comme je me servais abondamment de la touche RAZ JAUNE c'est peut-être elle la fautive de la grouille. Ca m'était déjà arrivé une fois. Je n'ai pas eu la possibilité de regarder àa de plus près occupé par la route que j'étais. Comme par hasard j'utilisais aussi la toutouche RAZ JAUNE.

Voilà, c'est un peu boulogène quand même. :coolman:
 
Je vais publier une version ce matin avec le dernier calcul de l'odo230 qui a la précision évoquée plus haut, et qui ne fait plus de grands sauts. La difficulté était de mieux gérer des trames fausses pour ce pid.

La touche RAZ jaune remet le compteur kilométrique à zéro sans mettre le compteur de temps à zéro. Mais elle va disparaitre ce matin ou demain. Et être remplacée par la touche top.
 
Peut-être as-tu décidé, en cas de trame fausse sur le 230, de répéter la précédente, ce qui est une manière de faire le moins d'erreur possible ?
 
Mais saperlipopette, qu'est-ce que c'est que cette histoire de trame fausse ?

1) Je n'en observe pas plus d'une par millon. J'ai accumulé 400 millons de trames en 130 acquisitions.
Linux+ODBLink, c'est peut-être plus fiable pour gober de l'USB à toute vitesse. Passons.

2) Profitez de l'octet de contrôle pour éliminer les trames incorrectes. Je rappelle plus bas la recette, donnée dans http://xomti.com/CAN_NHW20.html

3) L'odomètre 230 a l'avantage d'être robuste. Il n'y a aucune perte de précision si on abandonne une trame. Il faut en profiter. À 171 km/h, on fait 47,5 m/s. La cadence du PID est de 24 ms.
II n'est pas possible que cet odomètre augmente netement plus que de 100 à chaque fois. Même si on laisse passer 1 seconde, 40 trames, on n'est pas dans les chous avec le modulo 2*16.

4) L'unité de l'odomètre c'est le 1/192eme de circonférence des pneus. C'est un peu plus que 1 cm.

Contrôle de trame :

Le dernier octet des trames non sollicitées 0xx, 1xx, 2xx et 3xx est un octet de contrôle (checksum) Toyota. La trame 020 fait exception. Les trames 4xx, 5xx et 6xx n'ont pas non plus d'octet de contrôle. Séparant l'identificateur de trame en deux octets, on calcule la somme de tous les octets, sauf l'octet de contrôle, et on ajoute la longueur des données, plus 1. Le total doit être égal au dernier octet modulo 256 = 0x100).
Exemple

La trame hexa suivante est correcte : 230 E6 30 00 00 00 00 4F

Elle est formée :

d'un identificateur 230
de six octets de données E6 30 00 00 00 00
d'un octet de contrôle 4F

Le calcul de cet octet est obtenu ainsi :

L'identificateur 230 séparé en deux octets donne la somme 02+30=32.
La somme des octets de données donne E6 30 00 00 00 00 = 116.
À la somme 32+116 = 148, il faut ajouter 7 (6 octets de données plus 1).
Cela donne 14F, qui modulo 100 hexa donne 4F, valeur est bien égale à l'octet de contrôle.
 
Peut-être as-tu décidé, en cas de trame fausse sur le 230, de répéter la précédente, ce qui est une manière de faire le moins d'erreur possible ?

En fait quand une trame du pid230 ne me plait pas, je la saute. Il faut juste que je finisse par avoir une bonne trame avant d'avoir fait 600 mètres.
 
2) Profitez de l'octet de contrôle pour éliminer les trames incorrectes. Je rappelle plus bas la recette, donnée dans http://xomti.com/CAN_NHW20.html

Ton doc est ma bible.
Et je l'ai déjà évoqué, j'utiliserai plus tard l'octet de contrôle. Pour l'instant, ce n'est pas ma priorité. j'ai trouvé une autre solution.

Je n'ai pas trouvé dans la bible comment avoir les totalisateurs A et B, juste le total. serait-ce que je l'ai mal lu, ou que tu n'as pas encore trouvé, ou que tu ne l'as pas encore documenté ?

En tous les cas, merci.
 
Ton doc est ma bible.
Et je l'ai déjà évoqué, j'utiliserai plus tard l'octet de contrôle. Pour l'instant, ce n'est pas ma priorité. j'ai trouvé une autre solution.

Je n'ai pas trouvé dans la bible comment avoir les totalisateurs A et B, juste le total. serait-ce que je l'ai mal lu, ou que tu n'as pas encore trouvé, ou que tu ne l'as pas encore documenté ?

En tous les cas, merci.

Je peux dire avec une quasi certitude que les totalisateurs A et B ne circulent pas comme trames non sollicitées. Ma bible prend en compte la totalité des octets qui circulent. Je n'ai pas creusé l'interprétation de certains octets, mais ils sont signalés et je doute qu'ils concernent ces totalisateurs.
 
Pages vues depuis le 20 Oct 2005: 308,291,614
Retour
Haut Bas