Supprimer la gravité de premières données d'accélérométrie de l'IMU--> veuillez approuver mathématiques et en algo

Je suis à l'aide de cet appareil (http://www.sparkfun.com/products/10724) et ont mis en œuvre avec succès un assez bien de travail de l'orientation de l'estimation basée sur une fusion de magnétomètre, l'accéléromètre et le gyroscope des données basées sur ce http://www.x-io.co.uk/node/8#open_source_imu_and_ahrs_algorithms mise en œuvre. Maintenant, je veux calculer la dynamique d'accélération (mesures d'accélération sans statique accélération de gravité). Pour ce faire, je suis venu à l'idée suivante.

Calculer une moyenne sur des premières données d'accélérométrie de l'. Si les premières accélération est stable pendant un certain temps (une petite différence entre la moyenne et le courant mesuré données brutes), nous supposons que l'appareil ne bouge pas, et à mesurer la crue de la gravité. Maintenant, sauvegardez le vecteur gravité et aussi de l'orientation actuelle comme les quaternions. Cette approche suppose que notre dispositif ne pouvait pas être accéléré en permanence, sans gravité.

Pour le calcul de l'accélération sans gravité je suis en train de faire la suite de quaternions de calcul:


RA = Quaternion with current x,y,z raw acceleration values
GA = Quaternion with x,y,z raw acceleration values of estimated gravity
CO = Quaternion of current orientation
GO = saved gravity orientation

DQ = GO^-1 * CO //difference of orientation between last gravity estimation and current orientation

DQ = DQ^-1 //get the inverse of the difference

SQ = DQ * GA * DQ^1  //rotate gravity vector

DA = RA - SQ //get the dynamic acceleration by subtracting the rotated gravity from the raw acceleration

Quelqu'un pourrait-il vérifier si c'est correct? Je ne suis pas sûr, parce que sur le test-je obtenir de haut de l'accélération de la rotation de ma carte de capteur, mais je suis en mesure d'obtenir certaines données d'accélération (mais est beaucoup plus petite que l'accelration lors de la rotation) si l'appareil est déplacé sans retournement.

En plus, j'ai la question de savoir si l'accéléromètre est également mesurer l'accélération si il est tourné sur place ou pas!

J'ai peur, je suis absent ici un point important. Si vous avez obtenir l'orientaion après la fusion des capteurs (et vous dites que vous l'avez déjà), alors pourquoi ne pas vous soustraire à la gravité de l'accélération mesurée? Vous ne pouvez pas faire mieux que cela. J'ai peur, je suis absent quelque chose ici, alors veuillez expliquer.
Je n'ai que l'orientation relative de l'appareil vu de l'arbitraire d'un point de départ, je ne sais pas la position courante dans le monde de l'espace. C'est pourquoi je suis de l'estimation de la gravité avec l'algorithme ci-dessus.

OriginalL'auteur chris LB | 2012-05-29