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.