Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
Modérateur : Jérémy
Boussole Numérique !
M'en suis douté que tu avais donné les valeurs avant correction!
La valeur en Z va varier essentiellement si tu t'inclines dans le plan vertical Nord-Sud. donc avant arrière si tu vas vers le nord ou le sud!
Pour savoir si le robot est trop incliné, il faut utiliser les indications de l’accéléromètre, axe Z qui donne en statique la valeur de la gravité.
les données sur X et Y sont plus sensibles mais soumises aux variation de vitesse de ton engin. Tu peux essayer en évaluant X² + Y² .
page 38, c'est la page des registres des accéléromètres et des gyros !
Calcul de la vitesse avec les accéléromètres? Non, déjà discuté dans une vie antérieure...
Un accélérométrie te donne une valeur de variation de vitesse. à vitesse constante il ne te donne que l'accélération liée à la gravité.
Du coup j'ai rajouter l'angle Z . L'angle Z définit une inclinaison ? Mais une seule ? Puis je utiliser cette valeur pour signaler que le robot est trop incliné pour donner un cap par exemple ? Cette inclinaison n'est valable apparemment que de l'avant a l’arrière.
Je voulais testé de modifier le registre de l'offset du X comme tu me l'a précisé, mais dans la DS ( lien) page 38 l'adresse 0x05 correspond a ACT_DUR et à la page 40 en voit bien OFFSET_X_REG_L_M ??? bizarre !!
Croyez vous qu'il soit possible de calculer la vitesse du robot qui roule avec l’accéléromètre ?
La valeur en Z va varier essentiellement si tu t'inclines dans le plan vertical Nord-Sud. donc avant arrière si tu vas vers le nord ou le sud!
Pour savoir si le robot est trop incliné, il faut utiliser les indications de l’accéléromètre, axe Z qui donne en statique la valeur de la gravité.
les données sur X et Y sont plus sensibles mais soumises aux variation de vitesse de ton engin. Tu peux essayer en évaluant X² + Y² .
page 38, c'est la page des registres des accéléromètres et des gyros !
Calcul de la vitesse avec les accéléromètres? Non, déjà discuté dans une vie antérieure...
Un accélérométrie te donne une valeur de variation de vitesse. à vitesse constante il ne te donne que l'accélération liée à la gravité.
Boussole Numérique !
-
Jérémy
Administrateur du site- Messages : 2727
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
PieM a écrit :Source du message La valeur en Z va varier essentiellement si tu t'inclines dans le plan vertical Nord-Sud. donc avant arrière si tu vas vers le nord ou le sud!
Tout à fait , c'est ce que j'ai remarqué !
PieM a écrit :Source du message page 38, c'est la page des registres des accéléromètres et des gyros !
Ah oui, je n'avais pas vu !
PieM a écrit :Source du message Calcul de la vitesse avec les accéléromètres? Non, déjà discuté dans une vie antérieure...
Oui c'est vrai, je laisse tomber cette idée
PieM a écrit :Source du message il faut utiliser les indications de l’accéléromètre, axe Z qui donne en statique la valeur de la gravité.
les données sur X et Y sont plus sensibles mais soumises aux variation de vitesse de ton engin. Tu peux essayer en évaluant X² + Y² .
Ca ne m'as pas l’air très prometteur . je trouve les variations sur Z vachement fluctuantes .
LE module est jsute posé à cote sans le touché je lis les valeurs de accélérométre;
Code : Tout sélectionner
c9dof_readAccel( &accelX, &accelY, &accelZ );
Delay_10ms();
Gravite = (accelX*accelX) + (accelY*accelY) ;
UART1_Write_Text( " Accel X :");
IntToStr( accelX, T_Texte );
UART1_Write_Text( T_Texte);
UART1_Write_Text( " Y :");
IntToStr( accelY, T_Texte );
UART1_Write_Text( T_Texte );
UART1_Write_Text( " Z :" );
IntToStr( accelZ, T_Texte );
UART1_Write_Text( T_Texte );
UART1_Write_Text( " Gravité:" );
IntToStr(Gravite, T_Texte);
UART1_Write_Text( T_Texte );
UART1_Write( 13 );
UART1_Write( 10);
Code : Tout sélectionner
Accel X : -320 Y : 105 Z : 15880 Gravité:-17647
Accel X : -321 Y : 167 Z : 15879 Gravité: -142
Accel X : -319 Y : 150 Z : 15879 Gravité: -6811
Accel X : -312 Y : 190 Z : 16125 Gravité: 2372
Accel X : -325 Y : 158 Z : 15897 Gravité: -483
Accel X : -321 Y : 140 Z : 15886 Gravité: -8431
Accel X : -344 Y : 160 Z : 15893 Gravité: 12864
Accel X : -333 Y : 148 Z : 15900 Gravité: 1721
Accel X : -339 Y : 157 Z : 16114 Gravité: 8498
Accel X : -315 Y : 166 Z : 15876 Gravité: -4291
Accel X : -316 Y : 154 Z : 15645 Gravité: -7500
Accel X : -324 Y : 153 Z : 15643 Gravité: -2687
Accel X : -319 Y : 143 Z : 15895 Gravité: -8862
Accel X : -336 Y : 169 Z : 15879 Gravité: 10385
Accel X : -343 Y : 157 Z : 15894 Gravité: 11226
Accel X : -301 Y : 155 Z : 15890 Gravité:-16446
Accel X : -336 Y : 154 Z : 15625 Gravité: 5540
Accel X : -325 Y : 167 Z : 15896 Gravité: 2442
Accel X : -337 Y : 161 Z : 15878 Gravité: 8418
Accel X : -368 Y : 146 Z : 16124 Gravité: 25668
Accel X : -332 Y : -217 Z : 15891 Gravité: 26241
Accel X : -331 Y : 128 Z : 15625 Gravité: -5127
Accel X : -310 Y : 148 Z : 15628 Gravité:-13068
Accel X : -327 Y : 142 Z : 15632 Gravité: -3979
Accel X : -344 Y : 139 Z : 15886 Gravité: 6585
Accel X : -333 Y : 157 Z : 16115 Gravité: 4466
Accel X : -350 Y : 148 Z : 15878 Gravité: 13332
Accel X : -301 Y : 171 Z : 15872 Gravité:-11230
Accel X : -318 Y : 138 Z : 16125 Gravité:-10904
Accel X : -328 Y : 198 Z : 15642 Gravité: 15716
Accel X : -310 Y : 172 Z : 15915 Gravité: -5388
Accel X : -343 Y : 158 Z : 15876 Gravité: 11541
Accel X : -316 Y : 173 Z : 15886 Gravité: -1287
Accel X : -335 Y : 133 Z : 15912 Gravité: -1158
Accel X : -293 Y : 158 Z : 15901 Gravité:-20259
Accel X : -337 Y : 149 Z : 15890 Gravité: 4698
Accel X : -327 Y : 155 Z : 15895 Gravité: -118
Accel X : -326 Y : 115 Z : 15870 Gravité:-1157
Accel X : -340 Y : 163 Z : 15891 Gravité: 11097
Accel X : -334 Y : 142 Z : 15637 Gravité: 648
Accel X : -328 Y : 166 Z : 15885 Gravité: 4068
Accel X : -341 Y : 160 Z : 15884 Gravité: 10809
Accel X : -323 Y : 137 Z : 16114 Gravité: -7974
Accel X : -329 Y : 166 Z : 15638 Gravité: 4725
Accel X : -350 Y : 135 Z : 15894 Gravité: 9653
Accel X : -309 Y : 151 Z : 15881 Gravité:-12790
Accel X : -336 Y : 152 Z : 15878 Gravité: 4928
Accel X : -325 Y : 155 Z : 15889 Gravité: -1422
Accel X : -328 Y : 161 Z : 15890 Gravité: 2433
Accel X : -344 Y : 142 Z : 15890 Gravité: 7428
Accel X : -332 Y : 164 Z : 15893 Gravité: 6048
Accel X : -333 Y : 169 Z : 16125 Gravité: 8378
Accel X : -341 Y : 153 Z : 15879 Gravité: 8618
Accel X : -333 Y : 180 Z : 15905 Gravité: 12217
Accel X : -360 Y : 169 Z : 15889 Gravité: 27089
Accel X : -335 Y : 139 Z : 15878 Gravité: 474
Accel X : -336 Y : 158 Z : 15892 Gravité: 6788
Accel X : -320 Y : 151 Z : 15888 Gravité: -5871
Accel X : -319 Y : 150 Z : 15908 Gravité: -6811
Accel X : -316 Y : 161 Z : 15626 Gravité: -5295
Accel X : -321 Y : 157 Z : 15890 Gravité: -3382
Accel X : -320 Y : 141 Z : 15875 Gravité: -8791
Accel X : -326 Y : 206 Z : 15899 Gravité: 17640
Boussole Numérique !
Boussole Numérique !
-
Jérémy
Administrateur du site- Messages : 2727
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
PieM a écrit :Source du message Ton calcul X² + Y² est faux! le résultat ne peut pas être négatif ...
Ok , je dois le faire avec un code en complément a deux ? c'est ca !
PieM a écrit :Source du message Quant au Z il faut voir ce que tu as avec une inclinaison que tu estimes maxi pour ton robot.
Ok donc d’après toi la valeur est bonne , j'incline ma platine et je regarde quand le résultats semble être mauvais en dépassant un certain seuil !
PieM a écrit :Source du message Quand tu fais tes tableaux de valeurs, tu mets uniquement les chiffres sans les xxxx=. plus facile pour analyser après sur un tableur.
C'est noté ! seulement les valeurs
Boussole Numérique !
Mais les valeurs de ton tableau sont des valeurs décodées puisque négatives!
tu calcules -320² + 105² et ça donne +102400 + 11025 soit 113425 et non 15880 !
Pour Z, oui.
tu calcules -320² + 105² et ça donne +102400 + 11025 soit 113425 et non 15880 !
Ok donc d’après toi la valeur est bonne , j'incline ma platine et je regarde quand le résultats semble être mauvais en dépassant un certain seuil !
Pour Z, oui.
Boussole Numérique !
-
Jérémy
Administrateur du site- Messages : 2727
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
PieM a écrit :Source du message tu calcules -320² + 105² et ça donne +102400 + 11025 soit 113425 et non 15880 !
T uas raison mais je ne comprends pas pourquoi il m'affiche ça.
Boussole Numérique !
-
Jérémy
Administrateur du site- Messages : 2727
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Bonjour ,
Il s’agissait d'une erreur de cast .
voici la correction : Gravite = ((long)accelX * (long) accelX) + ((long)accelY * (long) accelY) ;
J'ai donc fait un test sur les valeurs de l’accéléromètre.
On voit que les valeurs changent bien sur un axe et sur l'autre. Sur l'axe Y que je le penche d'avant en arrière(pitch) et sur l'axe X quand je le penche sur le cote ( roll)
Ces valeurs me parraissent assez parlantes et changeantes pour déterminé sur le robot est grosso-modo à plat . Sinon j'envoie un message pour signaler que la boussole est indisponible !
Voila je pense que je pour mon niveau je peux en tirer que ca de mon 9DOF . Si vous avez d'autres idées je suis preneur ! car c'est un sujet plutôt délicat et difficile !
PS : la boule d'horizon artificielle dans les avions peut être faite numériquement avec un accéléromètre du coup ?
Il s’agissait d'une erreur de cast .
voici la correction : Gravite = ((long)accelX * (long) accelX) + ((long)accelY * (long) accelY) ;
J'ai donc fait un test sur les valeurs de l’accéléromètre.
On voit que les valeurs changent bien sur un axe et sur l'autre. Sur l'axe Y que je le penche d'avant en arrière(pitch) et sur l'axe X quand je le penche sur le cote ( roll)
Code : Tout sélectionner
X Y Z X²+Y²
-280 32 15872 79424 // A plat
-294 32 15620 87460
-273 30 15888 75429
-293 253 15885 149858
-281 30 16120 79861
-286 30 15905 82696
-302 43 15889 93053
-301 28 15875 91385
-315 -178 15893 130909 // Je le leve par devant à environ 45°
-286 -521 15739 353237
-272 -1543 16096 2454833
-483 -2064 15450 4493385
-232 -2890 15460 8405924
-302 -3594 15586 13008040
-270 -4878 14948 23867784
-324 -5877 14818 34644105
-301 -6694 14430 44900237
-304 -7875 14026 62108041
-303 -8338 13427 69614053
-283 -7779 14252 60592930
-294 -6500 14148 42336436
-270 -5393 15090 29157349
-270 -4425 15203 19653525
-284 -3390 15490 11572756
-290 -2571 15865 6694141
-285 -1186 15677 1487821
-299 -218 15597 136925
-316 77 15896 105785 // retour a plat je lève par l'arrière
-312 107 15895 108793
-282 328 15992 187108
-285 1277 15942 1711954
-335 1810 15785 3388325
-302 2986 15464 9007400
-291 4178 15226 17540365
-308 5233 14769 27479153
-356 6474 14571 42039412
-334 7641 13916 58496437
-362 8257 13337 68309093
-368 8887 13108 79114193
-342 9201 13278 84775365
-330 8577 13710 73673829
-329 7534 14070 56869397
-334 6660 14482 44467156
-331 5716 14895 32782217
-326 4885 15149 23969501
-306 3601 15536 13060837
-304 2788 15758 7865360
-281 1795 16120 3300986
-306 811 15853 751357
-300 347 15647 210409
-289 66 15903 87877 // retour a plat je le penche sur le cote droit
-305 84 15891 100081
-303 70 15905 96709
-468 -755 15870 789049
628 57 15840 397633
1361 70 15650 1857221
2657 76 15381 7065425
3276 63 15604 10736145
3854 45 15155 14855341
5128 74 14802 26301860
5708 60 14552 32584864
6958 69 14108 48418525
7557 159 13407 57133530
8897 39 13129 79158130
9281 13 12757 86137130
9620 20 12433 92544800
9398 182 12726 88355528
8690 28 13292 75516884
7407 60 14048 54867249
6220 64 14742 38692496
4373 51 15337 19125730
3062 66 15595 9380200
1918 56 15735 3681860
797 69 15861 639970
-122 72 15913 20068
-302 67 15659 95693 // retour a plat je le penche cote gauche
-389 52 15993 154025
-2188 -121 15656 4801985
-3361 52 15193 11299025
-4815 60 15118 23187825
-5830 5 14735 33988925
-7422 2 14114 55086088
-8095 252 13621 65592529
-8490 -4 13558 72080116
-9395 -14 13543 88266221
-9509 -20 12855 90421481
-10134 -30 12796 102698856
-10025 -5 12665 100500650
-9491 -7 13175 90079130
-9144 -4 13625 83612752
-7991 20 14220 63856481
-6775 12 14745 45900769
-4713 26 15247 22213045
-3485 47 15658 12147434
-2178 68 15783 4748308
-986 85 16112 979421
-341 87 16000 123850
-291 26 15903 85357 // retour a plat
-281 14 15639 79157
-285 24 15895 81801
-294 42 16115 88200
-277 13 15889 76898
-303 24 15898 92385
-277 38 15901 78173
-296 33 15908 88705
-272 17 15622 74273
Ces valeurs me parraissent assez parlantes et changeantes pour déterminé sur le robot est grosso-modo à plat . Sinon j'envoie un message pour signaler que la boussole est indisponible !
Voila je pense que je pour mon niveau je peux en tirer que ca de mon 9DOF . Si vous avez d'autres idées je suis preneur ! car c'est un sujet plutôt délicat et difficile !
PS : la boule d'horizon artificielle dans les avions peut être faite numériquement avec un accéléromètre du coup ?
Boussole Numérique !
Bonjour,
Oui les valeurs Xg² + Yg² donnent une indication utilisable. Par contre je suis étonné des non variations sur Zg. En principe, à 45° tu devrais avoir la valeur à 0° * 0.707. Tu es sûr de lire le bon registre ?
Pense que quand ton robot va changer de vitesse ou sera soumis à des chocs liés au roulage, les valeurs vont varier et accuser en plus les accélérations transversales. Donc à expérimenter en vraie grandeur, avec peut être du filtrage numérique sur X et sur Y.
Sur un avion, ce calcul serait inutilisable compte tenu des mouvements. Voir système AHRS...
Oui les valeurs Xg² + Yg² donnent une indication utilisable. Par contre je suis étonné des non variations sur Zg. En principe, à 45° tu devrais avoir la valeur à 0° * 0.707. Tu es sûr de lire le bon registre ?
Pense que quand ton robot va changer de vitesse ou sera soumis à des chocs liés au roulage, les valeurs vont varier et accuser en plus les accélérations transversales. Donc à expérimenter en vraie grandeur, avec peut être du filtrage numérique sur X et sur Y.
Sur un avion, ce calcul serait inutilisable compte tenu des mouvements. Voir système AHRS...
Boussole Numérique !
-
Jérémy
Administrateur du site- Messages : 2727
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
PieM a écrit :Source du message En principe, à 45° tu devrais avoir la valeur à 0° * 0.707. Tu es sûr de lire le bon registre ?
J'obtiens 0° quand le module est complétement sur la tranche ( 90° ) .
Oui je lis les bons registres ( enfin d'aprés leurs libriairies opaques) avec :
c9dof_readAccel( &accelX, &accelY, &accelZ );
En fait tout est tellement lié que c'est très difficile. On ne peut pas considérer qu'une seul mesure , c'est ca qui rends les choses complexes. Je pense que je vais me cantonner à mon cap avec une moyenne ça devrait me donner une indication !
Je pense enchainer avec le GPS. Si tu as des notions Pierre tu es le bienvenu ! lol
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 103 invités