1 Dernière modification par vrampal (17-05-2014 19:23)

Sujet : Centrale inertielle pour Raspberry Pi et/ou Arduino

Bonjour,

Voila, je cherche a suivre l'orientation ET LA POSITION d'un objet au cours du temps; et, si possible, de façon précise pendant longtemps.
Typiquement, je veut faire ça: http://www.x-io.co.uk/gait-tracking-with-x-imu/ (je reparle de X-IO plus bas).
Du coup je regarde pour ajouter une centrale inertielle sur mon Raspberry Pi.

Mes questions sont très simples, avez vous déjà fait ce genre de chose ?
Y'a t'il des personnes compétentes dans ce domaine qui peuvent m'aider ?
(Connaissez vous de bon capteurs ? ou de bonnes libs ? Quelles sont les meilleures méthodes de reconstruction ? Quelle calibration ? Quel filtrage ? Comment faire un bon Kalman ? C'est quoi un quaternion ? etc.)

J'ai regardé un peu sur le site et j'ai vu que vous aviez 2 cartes Atmel Xplained, quid des applications ?

Je pense que je vais commencer par prototyper sur téléphone portable mais voici les boards et documents que j'ai déjà regardés:

Pololu MinIMU-9 v3 (9-DOF) / AltIMU-10 v3 (10-DOF)
Pas trop cher resp. 40$ et 50$, c'est de l'I2C, ça marche en 3V3 et 5V.
Il y a déjà un programme Raspberry Pi pour les données brutes, les angles d'Euler, un visualizer et une belle démo en vidéo.
J'ai aussi trouvé un portage/adaptation pour arduino.
Edit: Support RTIMULib pour Raspbery Pi et Arduino (voir ci-dessous).

Adafuit 9-DOF IMU Breakout / 10-DOF IMU Breakout
Même prix 40$ / 50$, même capteurs pour les accéléromètres, gyros et magnétomètres, capteur différent pour la pression/température.
L'utilisation est documenté, le source est sous GitHub, par contre leur vidéo d'exemple semble très bruité.
Edit: Support RTIMULib pour Raspbery Pi et Arduino (voir ci-dessous).

Sparkfun MPU-9150 Breakout (9-DOF)
Moins chère que les autres, 35$ ! Un seul chip tout intégré, calcule les quaternion et les angles d'Euler tout seul (à vérifier).
Edit: On trouve même des cartes a 17 euros !!!
Toujours en I2C, toujours compatible 3V3 et 5V.
Un driver Arduino est fourni (particulièrement illisible!).
Le MPU-9150 est la suite du MPU-6050 (6 DOF) déjà utilisé dans des projets Raspberry (avec un bonne doc en français).
Edit: Support RTIMULib pour Arduino (voir ci-dessous).

Edit: SparkFun LSM9DS0 IMU Breakout (9-DOF)
Encore moins chère, 30$ ! Un seul chip tout intégré.
Un driver Arduino est fourni.
Edit: Support RTIMULib pour Arduino (voir ci-dessous).

DFRobot 10 DOF Mems IMU Sensor
Nettement plus chère 73$ (chez CoreElectronics).
Edit: On trouve la carte a 50$ chez le fabriquant.
Le constructeur fourni des exemples dont une partie du code proviens du projet FreeIMU (voir ci-dessous).
D'apres CamelSoftware, qui as aussi teste l'AltIMU-10 v1, les mesures sont d'une meilleur qualité.
Edit: Après discussion il recommande l'AltiMU v3 plutôt qu'une autre board.

FreeIMU 10-DOF
Hélas, l'initiateur du projet est décédé, les cartes sont très difficile a trouver mais on retrouve son travail d'autres kits.
La dernière version du logiciel a été migré sous GitHub.

X-IO x-IMU
La carte est horriblement chère 250£ ! mais elle fait tout, capteur, suivi de position, gestion d'une batterie, bluetooth, export Matlab et Excel.
Par contre la boite a eu la bonne idée de publier en open source ses algo d'IMU et d'AHRS : Lien 1 et lien 2.
L'algo est optimisé avec les racines carrée inverse rapide (J. Carmack style).

Edit: RTIMULib
Version Raspberry Pi, supporte Polulu, AdaFruit, MPU-9150 et LSM9DS0.
Version Arduino, supporte MPU-9150 et LSM9DS0.

Voila maintenant si quelqu'un qui connais bien le sujet et/ou lis couramment les datasheets peut me dire lequel ce ces capteur est le meilleur (fréquence d’échantillonnage max, précision, etc.), ça m'aiderai beaucoup.
Enfin je cherche toujours comment obtenir la position en plus de l'orientation.

Voila vos retours sont les bienvenus.
Vincent

2

Re : Centrale inertielle pour Raspberry Pi et/ou Arduino

Visiblement je ne suis pas le seul a regarde ce sujet...
http://www.raspberrypi.org/real-time-or … nimu-9-v2/

3

Re : Centrale inertielle pour Raspberry Pi et/ou Arduino

Un article important a propos des racines carrés inverses rapides
http://diydrones.com/forum/topics/madgw … quare-root

4

Re : Centrale inertielle pour Raspberry Pi et/ou Arduino

La démo est certes impressionnante, mais peut induire en erreur quant à la possibilité de calculer le positionnement du porteur dans l'espace à tout instant.

Calculer cela nécessite d'intégrer les diverses accélérations et vitesses angulaires, et c'est là que les choses se compliquent.

Si tu vas visiter par exemple le forum de la coupe de France de robotique, tu y trouveras un certain nombre de posts posant la même question. Plusieurs réponses y ont été apportées par des équipes qui relatent leurs expérimentations. Il semble en ressortir qu'il y a un important problème de dérive dans le temps, qui semble assez complexe à gérer, y compris en ayant recours à des filtrages de type Kalman ou analogue.

Il ne faut pas perdre de vue que la plupart des ces mini centrales inertielles ont pour origine la connaissance des mouvement et de l'orientation des  smartphones et tablettes de manière à utiliser cela comme dispositif d'entrée IHM.

Ceci étant, il apparaît presque chaque jour de nouveaux produits, toujours plus performants et moins chers. Alors l'espoir est toujours permis wink

Eric