Bonsoir,
si toutes les 20 secondes max tu as une remise à zéro(*), alors un IMU fera probablement l'affaire.
(*) Pour la remise à zéro, il y a 3 possibilités:
- tu connais parfaitement l'orientation : tu pourra calculer la position relativement à ta dernière mise à zéro
- tu connais parfaitement l'orientation et la position : tu peux garder une position absolue par rapport à l'origine
- tu connais l'orientation et la position sans biais, mais avec du bruit aléatoire: tu peux quand même t'en sortir, mais il te faudra un meilleur IMU que pour dans les autres cas (en gros, pour diviser ton "bruit" par N, il faut que ton IMU te permettes de naviguer pendant N^2 recalages, de anière à faire une "moyenne"
Lors des remises à zéro, la position n'est pas très critique (si tu as dx mm d'erreur sur la position initiale, tu aura dx mm d'erreur sur la position finale).
La précision de l'orientation est en revanche primordiale.
Supposons que du ais une erreur d'angle de d_alpha=0.01 rad (environ 0.5°)
l'accélération mesurée étant accélération-g, tu auras donc sur l'axe horrizontal (disons x), une erreur :
err_acc_x=-g*sin(d_alpha) - (-g*sin(0))= -g*sin(d_alpha) = -g*d_alpha (en supposant d_alpha en radians et petit)
on a donc err_vitesse_x(t)= -g*d_alpha *t
et err_position_x(t)= -g*d_alpha * t^2/2
Si on prends g=10m/s^2, d_alpha=0.01rad et t=20s, ça nous fait err_position_x(t)= -10*0.01 *20^2/2 = -20m
Donc 0.5° d'erreur d'orientation, au bout de 20 secondes, ça te fait 20m d'erreur !!!
Si en t=5 secondes, tu ne veux pas plus que dx=5cm=0.05m d'erreur, alors il te faudra une erreur d'angle d_alpha <= dx / (g*t^2 /2)=0.05/(10*5^2 /2)=0.0004 rad=0.02°
Est-ce que tu es capable d'initialiser ton orientation (orientation de l'objet + calibration) à une telle précision? C'est pas impossible, mais ça me semble difficile.
L'alternative est d'utiliser plusieurs positions successives, et d’interpoler entre avec l'IMU, et de se servir de cette interpolation pour déterminer les biais au passage. C'est possible (par exemple avec un filtre de kalman qui estime considère aussi les biais comme des états), mais c'est pas évident comme traitement du signal. Et ça nécessite un bon IMU.
Donc
- si tu peux garantir une orientation et une calibration quasi parfaite, alors c'est faisable et "pas trop dur" (bon, refaire l'intégration d'un IMU en 3D n'est pas facile non plus, mais tu dois pouvoir trouver des codes tout prêts).
- Si tu n'as pas une orientation initiale correcte mais pas quasi parfaite, mais que tu peux recaler très fréquemment (au pif, 1 fois/s), alors tu peux faire un filtre de Kalman "simple" (ou tu estimes juste la position et l'orientation)
- si tu as une orientation initiale de qualité "quelconque", et que tu ne peux pas recaler très souvent, mais que tu as un très bon IMU, tu peux estimer tes erreurs (orientation initiale, biais des capteurs) dans le filtre de Kalman : par contre, là, il vas te falloir quelqu'un qui maîtrise très bien les filtres de Kalman et les IMU.
Sinon, pour ta question du magnétomètre : si tu es dans un bâtiment, et qu'il y a soit du fer dans les murs/sols (béton armé), soit des appareils électriques qui consomment un peu (ordinateurs, ...), alors ton signal sera perturbé (tu peux utiliser une boussole pour voir à quel point).
Globalement, en intérieur, dans le meilleurs des cas tu obtiendras une orientation à quelques degrés près, au pire, tu peux avoir un signal inexploitable (par exemple proche d'un tuyau en acier, ta boussole vas s'aligner avec le tuyau).
Donc si tu vises quelques centimètres d'erreurs après avoir traversé la pièce, alors le magnétomètre ne te sera probablement pas utile.
(ou alors, si l'environnement est très stable, j'ai entendu dire qu'on pouvait utiliser les anomalies du champ magnétique comme moyen d'aider à se localiser, mais je penses que ton environnement est trop changeant).
Pour conclure, je penses que sur le principe, un IMU est possible (avec un budget matériel <1k€), mais avec les durées et précisions que tu donnes, ça ne m'a pas l'air trivial, encore moins pour quelqu'un qui ne semble avoir aucune expérience en utilisation d'IMUs. Si tu comptes le coût salarial, et que le but est de réaliser un seul exemplaire, alors je penses que tu explosera le budget de 1k€.
Bonne soirée
Sandro
PS : je commence à arriver aux limites de ce que je me souviens de mes cours sur les IMUs : si tu veux poursuivre dans cette voie, il te faudra soit te débrouiller tout seul, soit trouver plus compétant pour t'aider (pour aller plus loin, je devrais reprendre tout le cours, et là, il ne s'agirait plus de passer une heure pour t'aider, ce que j'ai fais volontiers, mais plusieurs jours ...)