Aller au contenu


bird12358

Inscrit(e) (le) 30 déc. 2012
Déconnecté Dernière activité janv. 04 2018 09:03
-----

Sujets que j'ai initiés

Detection de mouvement sur gyroscope

03 janvier 2018 - 04:38

Bonjour,

 

J'ai un moto z qui allume la lampe quand j'effectue une mouvement particulier avec mon téléphone.

Je voudrais pouvoir détecter ces mouvements avec ma centrale inertielle. Je cherche a comprendre comment la détection se fait.

Quelqu'un aurait-il des pistes ou des articles pour comprendre cet algo de détection?


Filtrage de vitesse

07 octobre 2015 - 09:00

Bonjour,

 

Je recherche des articles qui expliquent comment filtrer une mesure de vitesse connaissant la vitesse maximum d'un systeme.

 

Quelqu'un aurait-il une idée?

 

D'avance merci.


Mettre a jour matrice de covariance (kalman)

25 janvier 2015 - 12:24

Bonjour,

 

J'ai un modèle sous forme de représentation d'etat contenant la position, la vitesse et l'accélération d'un solide. Je voudrais faire un modèle théorique sous Matlab.

 

J'ai donc ma matrice A qui fait 9x9 et donc ma matrice de covariance et mon gain de kalman global font également 9x9.

 

Dans la réalité,  les capteurs ne donnent pas leur information au même moment.

 

Imaginons on arrive a l'instant tk et j'obtiens les informations d'un capteurs qui me donne l'accélération.

 

Comment puis-je faire à l'instant tk pour intégrer les valeurs du capteur et mettre à jour la matrice de covariance et le gain de kalman global?

 

 

D'avance merci.


Kalman sur centrale inertielle

30 décembre 2012 - 06:37

Bonjour à tous,
Tout d'abord je ne sais pas si il existe une endroit ou se présenter sur ce forum, mais bon voila je suis bird12358 et je suis nouveau sur ce forum.

Le sujet que je voudrais abordé porte sur les centrales inertielles et plus particulierement la chr6-dm. Cette centrale inertielle est livrée avec son code source.
Je suis familiarisé avec l'utilisation du filtrage de kalman et des notions mathématiques qui sont utiles pour ce sujet.
J'ai commencé a dépouiller le code fourni et je me heurte à un soucis.
- Donc la première étape est compréhensive, les gyros sont utilisés pour avoir un état prédit du système sur les 3 axes.
- Dans l'étape suivante, les accéléros sont utilisés pour apporter une correction. Je vous met en dessous le code source dont je parle:
                  // Now subtract the reference vector
		  acc_vect.data[0] = acc_vect.data[0] - acc_hat.data[0];
		  acc_vect.data[1] = acc_vect.data[1] - acc_hat.data[1];
		  acc_vect.data[2] = acc_vect.data[2] - acc_hat.data[2];
		  
		  // Multiply by Kalman gain
		  MatVectMult3( &L, &acc_vect, &correction );
		  
		  // Apply correction
		  estimated_states->phi = estimated_states->phi + correction.data[0];
		  estimated_states->theta = estimated_states->theta + correction.data[1];
		  estimated_states->psi = estimated_states->psi + correction.data[2];
Les données brutes des capteurs accéléros sont extraits (acc_vect.data[x]) et sont soustraits à l'estimation de l'accélération (acc_hat.data[x]). Cette accélération estimé est le vecteur de référence ([0,0,g] dans le repére terrestre) rotaté de la triple rotation R= Rphi*Rtheta*Rpsi. Par contre je ne comprends pas le dernière partie:
// Apply correction
		  estimated_states->phi = estimated_states->phi + correction.data[0];
		  estimated_states->theta = estimated_states->theta + correction.data[1];
		  estimated_states->psi = estimated_states->psi + correction.data[2];

Comment peut-on appliqué à chaqu'un des angles, une correction qui est une différence entre un vecteur d'accélération et sa référence? Il y a pas un problème d'unité?

Je suis consciens que c'est un sujet pas évident, j'espére que quelqu'un pourra m'aider.
D'avance merci.

bird12358.