Cool
, on va pouvoir échanger et s'entraider (à plusieurs, on a toujours plus de bonnes idées).
1> Vous êtes parti sur un Arduino ou sur un Raspberry Pi comme calculateur ?
2> Sur le calcul de vitesse, clairement la précision doit amener un traitement des données pour trier/lisser les données brutes et produire quelque chose qui est fiable.
- Sur un échantillonnage à la seconde, si l'on part sur (delta distance entre les points n-1 et n) / temps, avec des vitesses de l'ordre de 3m/s (6kts), une erreur de positionnement de quelques mètres, va se traduire par des vitesses qui passent de zero à 18kts.
- Le premier correctif, est de comprendre qu'en voile, on a pas besoin de vitesse instantanée (sauf pour ceux qui veulent dire qu'ils ont fait plus de 20kts ... sur 1 seconde
).
On a donc intérêt soit à diminuer l'échantillonnage, soit, encore mieux, à travailler sur un intervalle glissant de 5-10 points.
- Le deuxième correctif est de rejeter les valeur aberrantes, ou les modifier.
Après récolte d'un point, on peut calculer la vitesse (dx/dt), et l’accélération (dv/dt).
Hors les valeurs d'accélération possible pour un bateau sont connues (on peut partir sur 1G en décélération et 0.5G en accélération).
Il est donc possible après chaque point de calculer un cercle (ou plutôt une ellipse) théorique où doit se trouver la prochaine mesure, en fonction de la vitesse et du cap du bateau. Si le nouveau point mesuré n'est pas dans ce cercle, alors soit on l'ignore soit on le corrige en le mettant en limite du cercle ... le temps d'attendre le suivant, pour affiner.
- Après effectivement, comme tu le mentionnes, on peut utiliser d'autre données pour affiner ce cercle théorique. Principalement le cap et l’accéléromètre.
Avec ces deux valeurs on réalise "une navigation à l'estime" exactement comme en quillard ... j'ai un point, une direction, une accélération ... ca me donne la prochaine vitesse vectorielle, et donc ma prochaine position.
Sachant que là aussi les valeurs récoltées, vont peut être avoir besoin d'un traitement de cohérence/bornage/lissage.
La boussole fait partie des capteurs nécessaire pour la centrale. Je ne sais pas si vous l'avez déjà acheté, mais souvent elle est couplée avec accéléromètre, voir gyroscope , par exemple :
tiptopboards.com/309-centrale-inertielle...roscope-boussole.htm
Dernière recommandation : Pour travailler sur les algorithmes de traitement, je vous conseille dans un premier temps d'exporter les données brutes (position/cap/accélération) vers un PC (tableur) de plotter le résultat, et de tester différents traitements (sélection, bornage, lissage), avant de se lancer dans la programmation de l'arduino.
On peut même récolter les données à terre lors d'un footing ou d'une balade en vélo, c'est relativement similaire.
Après il y a le problème de la marinisation de la centrale (sur l'Open çà doit être plus simple mais sur le D-One, faut prévoir le pire
), je cherche une solution en particulier pour envoyer des impulsions de commande (boutons poussoir étanche).
Par exemple pour relever le vent moyen, et/ou l'axe du parcours (ce qui permet ensuite de calculer les VMG / CMG), ou pour changer le mode d'affichage, de Vi / VMG à Vi /VMax, ou Vi/Cap etc etc ....
Si vous avez déjà récup. quelques données n'hésite pas à me les envoyer que je les "mouline" pour voir quels traitements seraient les plus appropriés
PS : Je mets quelques dessins ce soir ... mais là je suis un peu à la bourre, je pars naviguer retrouver Alex/Del et Manu