Bilan du projet
Ce projet nous a plongés au cœur d’un défi technique passionnant : localiser avec précision un objet en mouvement à l’intérieur d’un bâtiment. Pour y parvenir, nous avons exploité la technologie Ultra-Wideband (UWB) via des cartes Decawave DMW1001, testées sur la plateforme expérimentale FitIotLab.
Le défi de la synchronisation
Le cœur de notre travail a porté sur l’implémentation de la méthode TDoA (Time Difference of Arrival). L’idée est simple : le nœud mobile émet un signal (un « CLAP ») et les ancres fixes notent l’heure d’arrivée. Cependant, nous avons rapidement été confrontés à une réalité physique majeure : chaque ancre possède sa propre horloge interne, et ces horloges ne sont pas naturellement synchronisées. Sans une référence commune, les calculs de position deviennent impossibles.
La solution : Le protocole ODS
Pour contourner ce problème sans modifier physiquement les horloges, nous avons mis en œuvre le protocole ODS (On-Demand Synchronization). Ce protocole permet à une ancre « Maître » (S1) de calculer mathématiquement les corrections à appliquer aux relevés des autres ancres. Notre réalisation technique s’est structurée autour de trois piliers :
- TDMA : Pour organiser la prise de parole des ancres et éviter les collisions radio.
- TWR (Two-Way Ranging) : Pour mesurer précisément le temps de vol entre les ancres.
- Traitement Python : Le développement d’un script utilisant des algorithmes d’optimisation pour transformer les différences de temps en coordonnées (x, y) exploitables.
Résultats et apprentissages
Les phases de test ont révélé l’influence cruciale de la topologie des nœuds sur la précision. Selon la disposition des ancres dans la pièce, nous avons observé des écarts de localisation allant de 1 mètre dans des conditions optimales à plus de 10 mètres dans des configurations extrêmes.
Au-delà de l’aspect technique (utilisation de la bibliothèque Decaduino, outils mathématiques), ce projet a été une véritable expérience de gestion d’équipe . L’utilisation d’outils comme GitHub pour le versioning, Trello pour l’organisation et un diagramme de Gantt pour le respect des délais a été déterminante pour mener à bien cette preuve de concept
Perspectives
Pour aller plus loin, nous avons déjà identifié plusieurs axes d’amélioration, notamment l’intégration du protocole MQTT pour une récupération de données en temps réel et l’approfondissement des aspects liés à la cybersécurité du réseau de capteurs.
Synthèse personelle
Romain
Ce projet de SAE 512 a été intéressant car il nous a permis de toucher à toute la chaîne technique, du capteur jusqu’au calcul final. On a dû faire de la localisation indoor en utilisant la technologie UWB et la méthode TDoA, ce qui nous a permis de découvrir des problématiques variées : d’abord l’IoT avec la gestion des nœuds sur FitIotLab, puis les télécommunications pour comprendre comment les signaux circulent entre les ancres. Le plus formateur a été la partie correction logicielle : comme les horloges des ancres ne sont jamais parfaitement synchronisées, on a dû implémenter le protocole ODS et coder un script Python pour corriger ces erreurs physiquement inévitables.
Joseph
Ce projet a été une vraie source d’intérêts, il m’a permis de développer mes compétences en programmation, mais il m’a aussi appris comment aborder une consigne d’un point de vue de recherche (à quoi cela sert, quels sont les outils à notre disposition, les contraintes). Ce projet est un bel exemple de ce que nous pourrions faire dans le monde professionnel, car notre réfèrent sur le projet pourrait être un client, avec ses contraintes, ses attentes. J’ai pu, également, renforcer mes compétence en leadership et en communication, un vrai plus pour mon projet professionnel.
Fabien
Ce projet a été pour moi l’occasion de me plonger dans le développement en C++ et de prendre en main la bibliothèque « DecaDuino ». C’était un vrai défi technique car j’ai eu du mal à faire fonctionner le code au début, mais j’ai fini par obtenir une version stable. Au-delà de la technique, j’ai aussi l’impression d’avoir amélioré mes capacités de communication : travailler sur les deux présentations et réaliser les schémas du site web m’a forcé à mieux expliquer des concepts complexes. Je suis cependant un peu déçu de ne pas avoir pu aller jusqu’au bout, notamment sur la partie MQTT. J’ai manqué de temps sur la fin, car la production de la vidéo de présentation s’est avérée beaucoup plus longue que je ne l’imaginais.
Evalutation
Romain
| Critère | Détail et Barème | Notes |
| Implication & Fiabilité | Était-il invesit dans le projet ? A-t-il tenu ses engagements dans les temps ? (8pts) | Par Fabien : 3/8 Par Joseph : 5/8 |
| Force de proposition | A-t-il apporté des idées pertinentes pour débloquer ou améliorer le projet ? (5pts) | Par Fabien : 3/5 Par Joseph : 4/5 |
| Esprit d’équipe | Communication fluide, bonne ambiance, aide apportée aux autres en cas de difficulté. (4pts) | Par Fabien : 4/4 Par Joseph : 4/4 |
| Transmission de savoir | A-t-il partagé ses connaissances ? A-t-il expliqué son code/travail aux autres ? (3pts) | Par Fabien : 3/3 Par Joseph : 5/3 |
| Total / 20 | Par Fabien : 13/20 Par Joseph : 16/20 |
Joseph
| Critère | Détail et Barème | Notes |
| Implication & Fiabilité | Était-il invesit dans le projet ? A-t-il tenu ses engagements dans les temps ? (8pts) | Par Fabien : 3/8 Par Romain : 6,5/8 |
| Force de proposition | A-t-il apporté des idées pertinentes pour débloquer ou améliorer le projet ? (5pts) | Par Fabien : 3/5 Par Romain : 3,5/5 |
| Esprit d’équipe | Communication fluide, bonne ambiance, aide apportée aux autres en cas de difficulté. (4pts) | Par Fabien : 4/4 Par Romain : 4/4 |
| Transmission de savoir | A-t-il partagé ses connaissances ? A-t-il expliqué son code/travail aux autres ? (3pts) | Par Fabien : 3/3 Par Romain : 3/3 |
| Total / 20 | Par Fabien : 13/20 Par Romain : 17/20 |
Fabien
| Critère | Détail et Barème | Notes |
| Implication & Fiabilité | Était-il invesit dans le projet ? A-t-il tenu ses engagements dans les temps ? (8pts) | Par Joseph : 7/8 Par Romain : 6/8 |
| Force de proposition | A-t-il apporté des idées pertinentes pour débloquer ou améliorer le projet ? (5pts) | Par Joseph : 4/5 Par Romain : 4/5 |
| Esprit d’équipe | Communication fluide, bonne ambiance, aide apportée aux autres en cas de difficulté. (4pts) | Par Joseph : 3/4 Par Romain : 4/4 |
| Transmission de savoir | A-t-il partagé ses connaissances ? A-t-il expliqué son code/travail aux autres ? (3pts) | Par Joseph : 3/3 Par Romain : 3/3 |
| Total / 20 | Par Joseph : 17/20 Par Romain : 17/20 |