Salut à tous,
Je suis sur un projet de petit robot mobile autonome pour la détection d’obstacles, avec capteurs IMU + LIDAR, et je me pose une question que vous avez sûrement rencontrée aussi :
Est-ce que ça vaut encore le coup de coder soi-même les filtres de fusion capteurs (Kalman, low-pass, moving average, complementary…) ou bien les librairies open source du type FilterLib, TinyEKF, ou même ce qu’il y a dans ROS font largement l’affaire ?
J’ai fait un Kalman maison pour m’entraîner, mais je me demande si c’est pas une perte de temps face à des libs éprouvées. Par contre j’aime bien comprendre ce que je mets dans mon système, surtout côté stabilité du contrôle.
Vos retours d’expérience m’intéressent, surtout si vous bossez sur des systèmes embarqués critiques ou contraints en ressources (genre STM32 ou ESP32).
Merci !
Bonne question !
En pro, on utilise rarement un filtre codé maison en prod. On part d’une lib validée, quitte à l’adapter. En embarqué sur STM32, j’utilise souvent TinyEKF pour du Kalman léger.
➕ Avantages des libs : gain de temps, testées, documentées
➖ Risque : boîte noire si tu ne creuses pas leur fonctionnement
Pour de la fusion IMU + GPS par exemple, j’utilise aussi RTIMULib — super stable et bien foutue.
Cela dit, coder un Kalman pour apprendre, c’est toujours bon. Tu comprends mieux les hypothèses derrière (modèle linéaire, covariance, bruit…).
Moi j’ai galéré à comprendre pourquoi mon IMU donnait des valeurs qui “tanguaient” en stationnaire. C’était juste un filtre moving average trop lent par rapport à mon sampling rate.
Depuis, je fais mes propres LPF (genre butterworth 1er ordre) avec coeffs recalculés à la main. C’est un bon compromis entre contrôle et simplicité.
PS : Super tuto ici pour les filtres passe-bas en C :
Simple Low-Pass Filter in C