Aller au contenu


Photo
- - - - -

Capteur d'angle moto/vélo

raspberry langage c

13 réponses à ce sujet

#1 Creuvard

Creuvard

    Nouveau membre

  • Membres
  • 8 messages

Posté 19 novembre 2014 - 02:57

Bonjour,

 

J'espére ne pas m'être trompé de section, parceque mon problème est mécanique, mais pas uniquement.

 

Je sais qu'un sujet similaire à été ouvert sur le forum arduino, mais mon projet bien que similaire me semble un petit peu plus avancé. C'est la raison pour laquelle je  solicite votre avis.

 

 

Scénario:

Je me suis mis en tête de concevoir un boitier de télémétrie sur ma moto (usage piste ou ballade).

 

Mon objectif, la curiosité pour commencer, puis dans un second temps avoir assez de précision pour imaginer un gain en performance (en comparant avec un copain qui roule plus vite par exemple équipé du même boitier).

Savoir sur tel ou tel virage ou est mon angle max et savoir en fonction du pneu si j'ai de la marge ou pas...

 

Je ne souhaite pas avoir l'information en temps réel, mais post-processé les infos pour faire un genre de debreifing comme les pro.

 

Sur une base de RaspBerry voici ce que j'imagine intégrer:

  1. Angle suivant axe de la moto (droite, gauche)
  2. Angle suivant axe perdendiculaire à la moto (accélération, freinage)
  3. position géographique (x,y,z)
  4. vitesse
  5. temps au tour (et intermédiare)

 

Pour cela j'ai fait l'aquisition de différents capteurs et commencé à cabler deux ou trois choses

  1. Une central inertielle MINimu9-v2 (pour les angles Roulis, Tangage et lacet)                     [OK]
  2. puce GPS (pour vitesse et position)                                                                                   [OK]
  3. Capteur effet HAlL (Temps au tour & intermédiare en utilisant les aimants des pistes)       [NO]

Mon objectif final:

   Dans l'idée, je souhaiterais obtenir une mise en page de ces deux essaies (-iCi- et -Là- ) plus la vidéo avec une incrustation de l'angle (droite/gauche) de la vitesse, et de la position en couleur de la moto sur le circuit (rouge=frein, vert=accel).

  Pour la synchronisation vidéo, j'utilise une led que je fait clignoter à l'activation du boitier. Je film le boitier au moment ou la led s'allume (allumage de 1/24 de seconde) avec une (ou plusieurs caméras). Cela me permet de garantir une synchronisation des données lors de du montage vidéo (que je réalise avec OpenCV).

 

Mon problème:

 

Tout semble fonctionner à peu pret quand je suis sur la table de mon salon, mais en condition réel (simple trajet en ville), tout se dégrade.

Les vibrations de la route et les accélérations diverse dégrade les mesures. Et sur piste (au moins dans la théorie) il faut soit accélérer soit freiner, les phases neutres doivent être réduite au minimum. Sans compter le type de moteur de la moto (1, 2, 3 ou 4 cylindres)

Je pense que je me suis trompé dans le choix de mon capteur, la centrale inertielle correspont à mon besoin dans un milieur à vitesse constante (sans grande accélération). Les angles rendus sont correct quand j'accroche le boitier sur un quadricoptère, mais scotché sur le réservoir de la moto (avec une épaisseur de mousse de 10cm), plus rien n'est exploitable (comme le montre le lien -Là-).

 

Ce que j'ai fait:

Pour en arrivé la, j'ai tout dabord commencé par coder un truc moi même (résultat trop sensible), puis me suis tourné vers la libraire RTIMULib qui intègre en plus des filtres de kalman (chose que je n'ai tout simplement pas réussi à mettre en place tout seul) le rendu est moins broullon, mais toujours inexploitable.

 

Idée:

Mon idée suivante, est l'utilisation de la conbinaison d'un capteur d'angle "mécanique"(style roue codée) et du principe de gravité. Un système non soumis au vibration (ou moins)

 

Capteur posée sur la partie fixe (moto), une masselote accrochée à la roue libre qui pend dans le vide. En utilisant le principe du fil à plomb, je devrais obtenir (en principe, sans compter l'inertie de la masse...) l'angle désiré (au moins autour d'un axe).

 

Qu'en pensez-vous et est-ce que vous avez des idées de roues codeuse ou autre capteur d'angle (potentiométre bricolé...) compatible Raspberry Pi.

 

 

Bien cordialement,

 

Creuvard

 

 

 

 



#2 ChristianR

ChristianR

    Membre passionné

  • Membres
  • PipPipPip
  • 474 messages
  • Gender:Male
  • Location:Isère (38)

Posté 19 novembre 2014 - 03:55

Le fil à plomb est parfait pour mesurer une inclinaison en statique (pas d'accélération).

Mais dès que tu prends un virage, la force centrifuge le pousse vers l'extérieur, en se rajoutant à la gravité.

Même chose si tu freines ou accélères, le poids va avancer ou reculer.

 

Cf photo de "l'effet manège à balançoire" 

http://photos.antoine.soubigou.org/2013/02/18/manege-balancoires/

 

Et comme en virage tu t'inclines vers l'intérieur de la courbe avec ta moto, justement pour compenser cet effet, ton fil à plomb va rester parallèle au cadre de la moto.

C'est pour ça que la centrale inertielle qui mesure aussi les rotations est incontournable pour mesurer un angle sur une moto qui accélère, tourne ou freine.


Christian

#3 Creuvard

Creuvard

    Nouveau membre

  • Membres
  • 8 messages

Posté 19 novembre 2014 - 04:37

J'imagine 2 cas

  1. La masse est très lourde et donc difficile à mettre en mouvement donc sur le principe reste toujours verticale.
  2. La masse est lègére et se met instantanément à suivre l'angle du cadre.

Dans les deux cas, il suffit de conaitre l'état de la roue codée au repos (on va dire 0°) et de calculer la différence. Pour un virage pris avec 50° d'angle, dans le cas 1 on lira +50° dans le cas 2 on lira -50°.

 

Aprés on peut imaginer un peu de mécanique en ajoutant un mouvement de rotation sur l'axe verticale (cilyndre/disque) et compter sur la conservation du moment cinétique. Comme pour une toupie qui peut être vue comme un gyroscope dont 2 axes sont bloqués.



#4 Leon

Leon

    Membre passionné

  • Membres
  • PipPipPipPipPip
  • 1 289 messages
  • Gender:Male

Posté 23 novembre 2014 - 05:55

J'imagine 2 cas

  1. La masse est très lourde et donc difficile à mettre en mouvement donc sur le principe reste toujours verticale.
  2. La masse est lègére et se met instantanément à suivre l'angle du cadre.

Dans les deux cas, il suffit de conaitre l'état de la roue codée au repos (on va dire 0°) et de calculer la différence. Pour un virage pris avec 50° d'angle, dans le cas 1 on lira +50° dans le cas 2 on lira -50°.

Non, ça ne marchera pas. Accroche un pendule n'importe où sur ta moto pour t'en rendre compte. Le pendule ne sera jamais vertical par rapport au sol dans les virages, c'est impossible. Le pendule subit la même accélération que la moto. Cette accélération est la somme (vectorielle) de la gravité plus la force centrifuge, plus l'accélération/freinage de la moto. Donc ton pendule sera vertical uniquement quand ta moto ira en ligne droite à vitesse constante.

Et l'angle que prend ton pendule est indépendant de sa masse.

 

Leon.


BOB4, mon drone hélicoptère autonome d'intérieur http://heli.bot.free.fr/
BOB3, mon robot autonome d'intérieur avec WiFi + Foxboard Linux http://ze.bot.free.fr/
BOB5, robot bipède simulé, puis tentative de réalisation (fail)


#5 Creuvard

Creuvard

    Nouveau membre

  • Membres
  • 8 messages

Posté 24 novembre 2014 - 09:21

Effectivement, avec un poids mort au bout d'un fil ou d'un axe, je suis d'accord.

Mais si on met une masse en rotation dans le même esprit q'un gyroscope mécanique...

 

Visiblement il y a des gros gyroscope dans les bateaux afin de corriger l'assiette en cas de roulis et de tanguage.

On trouve même de train monorail qui utilise l'effet du gyroscope pour rester debout.

 

super2%283%29-450.jpg

 

 

J'ai pas accés au site de vidéo en ligne, mais sur youtube, on trouve des gens qui font des caméras gyroscopiques avec des moteurs de disque dure.

 

Donc je me disais que peut être en utilisant ce principe et une roue codeuse, je pourrais récupérer les Deltas d'angle.

 

Je vais continuer de chercher.

 

Merci pour vos commentaires, je reste à l'écoute.



#6 ChristianR

ChristianR

    Membre passionné

  • Membres
  • PipPipPip
  • 474 messages
  • Gender:Male
  • Location:Isère (38)

Posté 24 novembre 2014 - 10:03

Un gyro électronique c'est 5 grammes et la taille d'un ongle.


Christian

#7 Creuvard

Creuvard

    Nouveau membre

  • Membres
  • 8 messages

Posté 25 novembre 2014 - 09:36

En effet.

 

Autant sur un drone de quelques kilos il est vital d'utiliser quelque chose de léger sous peine d'avoir une baisse d'autonomie, autant pour une moto de 180Kilos + le pilote + l'essence, on est pas au kilos pret.



#8 Piquillos64

Piquillos64

    Membre

  • Membres
  • 23 messages
  • Gender:Male
  • Location:Biarritz

Posté 27 novembre 2014 - 12:04

Salut motard!

Je le suis moi aussi et me suis posé la même question (d'angle) il y a qq années! Tu veux savoir à combien t'as penché pour gratter tes nouveaux cales pieds hein?! 

J'aurai tendance à te dire que ton imu est une solution. Reste le code à pondre pour exploiter les résultats.

Le kalman est souvent utilsé pour les estimations d'angles des imu mais je ne pense pas qu'il soit utile pour toi.

 

Je me focaliserai d'abord sur un seul type de moteur... As-tu pensé à utiliser une caméra??

Les traitements d'image te donneront les angles de roulis et tangage et suis même certain que tu pourrais avoir une estimation de la vitesse.

Ta cam serait fixe sur la bécanne. La route comme zone de référence horizontale.

La cmucam (http://www.cmucam.org/) peut faire l'affaire je pense...... 



#9 transistance

transistance

    Membre passionné

  • Membres
  • PipPipPip
  • 411 messages

Posté 27 novembre 2014 - 12:22

Je me vois obligé de tempérer l'idée de la cmucam car, bien que l'idée soit bonne, la fiabilité sera pas au rendez vous du tout ne serais-ce qu'a cause des règlages relatif à la luminosité.


N'oubliez jamais que "Ban Ki-moon n'attrape pas mousse"


#10 Piquillos64

Piquillos64

    Membre

  • Membres
  • 23 messages
  • Gender:Male
  • Location:Biarritz

Posté 27 novembre 2014 - 03:21

Effectivement les différences de luminosités ne s'appliquent pas de la même façon sur la route que sur l'horizon. Mais ce qu'il faut déduire de l'image est l'orientation de la ligne qui sépare ces contrastes (peu importe la luminosité).



#11 transistance

transistance

    Membre passionné

  • Membres
  • PipPipPip
  • 411 messages

Posté 27 novembre 2014 - 05:35

 

ce qu'il faut déduire de l'image est l'orientation de la ligne qui sépare ces contrastes (peu importe la luminosité).

Je doute que cette ligne soit identifiable de nuit, par temps de pluie ou si on se prend les feux de croisement/route dans la tronche. C'est toujours loin d'être fiable comme système.


N'oubliez jamais que "Ban Ki-moon n'attrape pas mousse"


#12 Piquillos64

Piquillos64

    Membre

  • Membres
  • 23 messages
  • Gender:Male
  • Location:Biarritz

Posté 27 novembre 2014 - 05:41

C'est vrai , ca risque d'être compliqué...!



#13 Creuvard

Creuvard

    Nouveau membre

  • Membres
  • 8 messages

Posté 28 novembre 2014 - 12:06

J'avais pensé à la solution de post-traitement uniquement vidéo.

 

Mon idée qui semble rejoindre celle de Piquillos64

 

Caméra fixée sur le réservoir.

On passe devant le champ de la caméra quelque chose d'horizontale (verre d'eau, niveau à bulle de téléphone portable, on filme la mer...)

On pose deux boules rouge sur les tes de suspenseion.

 

Au post-traitement, on détermine la ligne horizontale de départ, et pour chaque frame, on trouve le segment de droite qui relie chaque boule rouge sur les tes, et du coup l'angle d'inclinaison de la moto.

 

Ce principe est sympas, mais pas évolutif dans le sens ou je peux pas imaginer en faire une caméra gyroscopique un jour (à moins encore de filmer en 4K et de rogner en 720p pour feindre une rotation).

 

 

Je me suis commandé un petit gyroscope mécanique à 10€, ca me permettra de faire des tests grossiers et d'imaginer la suite (moteur brushless + ESC + roue codeuse le tout piloter par mon Raspberry pi).

 

Merci pour votre intéret.



#14 dudule

dudule

    Nouveau membre

  • Membres
  • 3 messages

Posté 31 décembre 2014 - 05:43

Salut!

 

J'ai réalisé avec mon père une application similaire qui fonctionne très bien. Je ne vais pas rentrer dans les détails techniques, mais vous pourrez trouver les infos détaillées sur mon site:

 

https://sites.google...tude-de-la-moto

 

Personnellement je n'utilise pas le filtre de kalman qui présente surtout l'avantage de pouvoir effectuer un traitement en temps réel. Comme tous mes signaux sont post-processés pour l'exploitation j'utilise une simple succession de filtres de butterworth passe-haut ET passe-bas. Le résultat est assez probant, même avec une centrale inertielle à 30€. (je n'utilise pas le compas magnétique)





Répondre à ce sujet



  



Aussi étiqueté avec au moins un de ces mots-clés : raspberry, langage c

0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users